From fdbf300746827016f535de089991f6545cd961bc Mon Sep 17 00:00:00 2001 From: CircleCI Docs Date: Fri, 22 Nov 2024 20:24:16 +0000 Subject: [PATCH] rebase --- docs/build/html/.buildinfo | 2 +- docs/build/html/_sources/dev/extensions.rst | 16 +- docs/build/html/_sources/install.rst | 2 +- .../mlx.core.fast.affine_quantize.rst | 6 - docs/build/html/_sources/python/fast.rst | 1 - .../nn/_autosummary/mlx.nn.AvgPool3d.rst | 16 + .../nn/_autosummary/mlx.nn.MaxPool3d.rst | 16 + docs/build/html/_sources/python/nn/layers.rst | 2 + .../_sources/usage/function_transforms.rst | 4 +- .../html/_static/documentation_options.js | 2 +- docs/build/html/annotated.html | 417 +- docs/build/html/atomic_8h_source.html | 6 +- docs/build/html/attn_2loader_8h.html | 126 + docs/build/html/attn_2loader_8h_source.html | 426 ++ docs/build/html/attn_2mma_8h.html | 142 + docs/build/html/attn_2mma_8h_source.html | 986 ++++ docs/build/html/attn_2params_8h.html | 119 + docs/build/html/attn_2params_8h_source.html | 154 + docs/build/html/attn_8h.html | 127 + docs/build/html/attn_8h_source.html | 424 ++ .../build/html/backend_2common_2utils_8h.html | 4 + .../backend_2common_2utils_8h_source.html | 13 +- .../backend_2metal_2device_8h_source.html | 467 +- ...nd_2metal_2kernels_2complex_8h_source.html | 2 +- ...ackend_2metal_2kernels_2fft_8h_source.html | 4 +- ...backend_2metal_2kernels_2jit_2bf16_8h.html | 160 + ..._2metal_2kernels_2jit_2bf16_8h_source.html | 121 + ...metal_2kernels_2metal__3__0_2bf16_8h.html} | 69 +- ...kernels_2metal__3__0_2bf16_8h_source.html} | 641 ++- ...2metal_2kernels_2metal__3__1_2bf16_8h.html | 186 + ...2kernels_2metal__3__1_2bf16_8h_source.html | 126 + ...nd_2metal_2kernels_2reduction_2ops_8h.html | 2 +- ...al_2kernels_2reduction_2ops_8h_source.html | 2 +- ..._2kernels_2steel_2attn_2transforms_8h.html | 128 + ...ls_2steel_2attn_2transforms_8h_source.html | 201 + ...ls_2steel_2gemm_2transforms_8h_source.html | 8 +- .../backend_2metal_2kernels_2utils_8h.html | 154 +- ...kend_2metal_2kernels_2utils_8h_source.html | 923 ++-- docs/build/html/backend_2metal_2utils_8h.html | 14 +- .../html/backend_2metal_2utils_8h_source.html | 159 +- docs/build/html/bf16__math_8h.html | 391 +- docs/build/html/bf16__math_8h_source.html | 769 ++- docs/build/html/binary__ops_8h_source.html | 24 +- docs/build/html/classes.html | 18 +- ...assmlx_1_1core_1_1_contiguous-members.html | 129 + .../html/classmlx_1_1core_1_1_contiguous.html | 481 ++ .../html/classmlx_1_1core_1_1_contiguous.png | Bin 0 -> 924 bytes .../html/classmlx_1_1core_1_1_primitive.html | 12 +- .../classmlx_1_1core_1_1_unary_primitive.html | 139 +- .../classmlx_1_1core_1_1_unary_primitive.png | Bin 33747 -> 34133 bytes ...e_1_1fast_1_1_affine_quantize-members.html | 2 +- ...x_1_1core_1_1fast_1_1_affine_quantize.html | 2 +- docs/build/html/compiled_8h.html | 2 +- docs/build/html/compiled_8h_source.html | 7 +- docs/build/html/conv_8h.html | 2 +- docs/build/html/conv_8h_source.html | 8 +- docs/build/html/cpp/ops.html | 20 +- docs/build/html/dev/custom_metal_kernels.html | 13 +- docs/build/html/dev/extensions.html | 29 +- docs/build/html/dev/metal_debugger.html | 13 +- ...dir_5aea41cce495e77a0857a0aecf063e33.html} | 18 +- .../dir_6768c99e6145fb9510ccdb40db8ede25.html | 2 +- .../dir_70a37effa88bcbd6b791977fa1e64356.html | 10 +- .../dir_76215a6c54e2b67053e723fc2395583c.html | 2 + .../dir_83367edb60e23ad59b1a493d8c883287.html | 107 + .../dir_d36f9e79442ec4bd53287b83bdefe7e5.html | 107 + .../dir_e1756c7634b0c14aead026895ad71c6d.html | 120 + .../dir_fb5e52e7ad5a84a63db2993d12f7610c.html | 107 + docs/build/html/doxygen_crawl.html | 1111 +++-- docs/build/html/erf_8h_source.html | 8 +- .../html/examples/linear_regression.html | 13 +- docs/build/html/examples/llama-inference.html | 13 +- docs/build/html/examples/mlp.html | 13 +- docs/build/html/fast_8h.html | 2 - docs/build/html/fast_8h_source.html | 62 +- .../html/fast__primitives_8h_source.html | 148 +- docs/build/html/files.html | 140 +- docs/build/html/functions_a.html | 10 +- docs/build/html/functions_b.html | 15 +- docs/build/html/functions_c.html | 5 +- docs/build/html/functions_d.html | 8 +- docs/build/html/functions_e.html | 6 +- docs/build/html/functions_f.html | 2 +- docs/build/html/functions_func_a.html | 4 +- docs/build/html/functions_func_b.html | 1 + docs/build/html/functions_func_c.html | 1 + docs/build/html/functions_func_d.html | 4 +- docs/build/html/functions_func_e.html | 4 +- docs/build/html/functions_func_i.html | 2 +- docs/build/html/functions_func_j.html | 2 +- docs/build/html/functions_func_l.html | 7 +- docs/build/html/functions_func_n.html | 2 +- docs/build/html/functions_func_o.html | 3 +- docs/build/html/functions_func_p.html | 2 +- docs/build/html/functions_func_q.html | 2 +- docs/build/html/functions_func_r.html | 2 + docs/build/html/functions_func_s.html | 4 + docs/build/html/functions_func_t.html | 1 + docs/build/html/functions_func_u.html | 1 + docs/build/html/functions_func_v.html | 4 +- docs/build/html/functions_func_w.html | 1 + docs/build/html/functions_g.html | 5 +- docs/build/html/functions_h.html | 1 + docs/build/html/functions_i.html | 7 +- docs/build/html/functions_j.html | 2 +- docs/build/html/functions_k.html | 11 +- docs/build/html/functions_l.html | 17 +- docs/build/html/functions_m.html | 10 +- docs/build/html/functions_n.html | 12 +- docs/build/html/functions_o.html | 6 +- docs/build/html/functions_p.html | 2 +- docs/build/html/functions_q.html | 5 +- docs/build/html/functions_r.html | 5 +- docs/build/html/functions_s.html | 14 +- docs/build/html/functions_t.html | 9 +- docs/build/html/functions_type.html | 24 +- docs/build/html/functions_u.html | 1 + docs/build/html/functions_v.html | 11 +- docs/build/html/functions_vars.html | 4 +- docs/build/html/functions_vars_b.html | 14 +- docs/build/html/functions_vars_c.html | 3 +- docs/build/html/functions_vars_d.html | 4 +- docs/build/html/functions_vars_g.html | 5 +- docs/build/html/functions_vars_h.html | 1 + docs/build/html/functions_vars_i.html | 5 +- docs/build/html/functions_vars_k.html | 11 +- docs/build/html/functions_vars_l.html | 6 +- docs/build/html/functions_vars_m.html | 2 +- docs/build/html/functions_vars_n.html | 10 +- docs/build/html/functions_vars_o.html | 3 +- docs/build/html/functions_vars_q.html | 3 +- docs/build/html/functions_vars_r.html | 2 +- docs/build/html/functions_vars_s.html | 10 +- docs/build/html/functions_vars_t.html | 8 +- docs/build/html/functions_vars_v.html | 7 +- docs/build/html/functions_w.html | 1 + docs/build/html/gather_8h.html | 12 +- docs/build/html/gather_8h_source.html | 40 +- docs/build/html/gemm_2loader_8h_source.html | 34 +- .../html/{mma_8h.html => gemm_2mma_8h.html} | 2 +- ...h_source.html => gemm_2mma_8h_source.html} | 268 +- docs/build/html/gemm_8h.html | 2 +- docs/build/html/gemm_8h_source.html | 42 +- docs/build/html/genindex.html | 29 +- docs/build/html/globals_a.html | 7 +- docs/build/html/globals_b.html | 26 +- docs/build/html/globals_c.html | 24 +- docs/build/html/globals_defs.html | 27 +- docs/build/html/globals_e.html | 12 +- docs/build/html/globals_f.html | 2 +- docs/build/html/globals_func.html | 4 +- docs/build/html/globals_func_b.html | 9 +- docs/build/html/globals_func_c.html | 20 +- docs/build/html/globals_func_e.html | 12 +- docs/build/html/globals_func_f.html | 2 +- docs/build/html/globals_func_g.html | 2 +- docs/build/html/globals_func_o.html | 30 +- docs/build/html/globals_func_r.html | 6 +- docs/build/html/globals_func_s.html | 4 +- docs/build/html/globals_func_t.html | 6 +- docs/build/html/globals_func_u.html | 3 +- docs/build/html/globals_g.html | 2 +- docs/build/html/globals_j.html | 101 + docs/build/html/globals_o.html | 30 +- docs/build/html/globals_r.html | 6 +- docs/build/html/globals_s.html | 4 +- docs/build/html/globals_t.html | 6 +- docs/build/html/globals_type.html | 2 +- docs/build/html/globals_u.html | 4 +- docs/build/html/globals_vars.html | 7 +- docs/build/html/group__ops.html | 28 + docs/build/html/half__types_8h.html | 20 +- docs/build/html/half__types_8h_source.html | 6 +- docs/build/html/hierarchy.html | 757 +-- docs/build/html/index.html | 13 +- docs/build/html/install.html | 15 +- docs/build/html/jit_2indexing_8h_source.html | 8 +- .../html/kernels_2gemv__masked_8h_source.html | 18 +- docs/build/html/kernels_2indexing_8h.html | 12 +- .../html/kernels_2indexing_8h_source.html | 4 +- .../html/kernels_2softmax_8h_source.html | 4 +- ...2conv_2kernels_2steel__conv_8h_source.html | 6 +- docs/build/html/kernels_8h.html | 10 +- docs/build/html/kernels_8h_source.html | 278 +- .../html/loader__channel__l_8h_source.html | 4 +- docs/build/html/matmul_8h_source.html | 2 +- docs/build/html/menudata.js | 6 +- .../build/html/metal_2kernels_2binary_8h.html | 36 +- .../metal_2kernels_2binary_8h_source.html | 99 +- .../html/metal_2kernels_2binary__two_8h.html | 36 +- ...metal_2kernels_2binary__two_8h_source.html | 109 +- docs/build/html/metal_2kernels_2copy_8h.html | 72 +- .../html/metal_2kernels_2copy_8h_source.html | 207 +- .../metal_2kernels_2hadamard_8h_source.html | 2 +- .../html/metal_2kernels_2ternary_8h.html | 36 +- .../metal_2kernels_2ternary_8h_source.html | 118 +- docs/build/html/metal_2kernels_2unary_8h.html | 12 +- .../html/metal_2kernels_2unary_8h_source.html | 50 +- docs/build/html/metal_2reduce_8h_source.html | 2 +- docs/build/html/namespacemembers_b.html | 1 + docs/build/html/namespacemembers_c.html | 3 +- docs/build/html/namespacemembers_func_b.html | 1 + docs/build/html/namespacemembers_func_c.html | 3 +- docs/build/html/namespacemembers_func_g.html | 5 +- docs/build/html/namespacemembers_func_m.html | 2 + docs/build/html/namespacemembers_func_s.html | 1 - docs/build/html/namespacemembers_func_t.html | 2 +- docs/build/html/namespacemembers_g.html | 5 +- docs/build/html/namespacemembers_m.html | 2 + docs/build/html/namespacemembers_s.html | 1 - docs/build/html/namespacemembers_t.html | 2 +- docs/build/html/namespacemetal.html | 626 +-- docs/build/html/namespacemetal_1_1fast.html | 356 +- .../build/html/namespacemetal_1_1precise.html | 356 +- docs/build/html/namespacemlx_1_1core.html | 308 +- .../html/namespacemlx_1_1core_1_1env.html | 185 + .../html/namespacemlx_1_1core_1_1fast.html | 45 +- docs/build/html/namespacemlx_1_1steel.html | 10 + docs/build/html/namespaces.html | 23 +- docs/build/html/objects.inv | Bin 26647 -> 26720 bytes docs/build/html/ops_8h.html | 2 + docs/build/html/ops_8h_source.html | 15 +- docs/build/html/primitives_8h.html | 2 + docs/build/html/primitives_8h_source.html | 3683 +++++++-------- .../python/_autosummary/mlx.core.Device.html | 13 +- .../python/_autosummary/mlx.core.Dtype.html | 13 +- .../_autosummary/mlx.core.DtypeCategory.html | 13 +- .../python/_autosummary/mlx.core.abs.html | 13 +- .../python/_autosummary/mlx.core.add.html | 13 +- .../python/_autosummary/mlx.core.addmm.html | 13 +- .../python/_autosummary/mlx.core.all.html | 13 +- .../_autosummary/mlx.core.allclose.html | 13 +- .../python/_autosummary/mlx.core.any.html | 13 +- .../python/_autosummary/mlx.core.arange.html | 13 +- .../python/_autosummary/mlx.core.arccos.html | 13 +- .../python/_autosummary/mlx.core.arccosh.html | 13 +- .../python/_autosummary/mlx.core.arcsin.html | 13 +- .../python/_autosummary/mlx.core.arcsinh.html | 13 +- .../python/_autosummary/mlx.core.arctan.html | 13 +- .../python/_autosummary/mlx.core.arctan2.html | 13 +- .../python/_autosummary/mlx.core.arctanh.html | 13 +- .../python/_autosummary/mlx.core.argmax.html | 13 +- .../python/_autosummary/mlx.core.argmin.html | 13 +- .../_autosummary/mlx.core.argpartition.html | 13 +- .../python/_autosummary/mlx.core.argsort.html | 13 +- .../python/_autosummary/mlx.core.array.T.html | 13 +- .../_autosummary/mlx.core.array.abs.html | 13 +- .../_autosummary/mlx.core.array.all.html | 13 +- .../_autosummary/mlx.core.array.any.html | 13 +- .../_autosummary/mlx.core.array.argmax.html | 13 +- .../_autosummary/mlx.core.array.argmin.html | 13 +- .../_autosummary/mlx.core.array.astype.html | 13 +- .../_autosummary/mlx.core.array.at.html | 13 +- .../_autosummary/mlx.core.array.conj.html | 13 +- .../_autosummary/mlx.core.array.cos.html | 13 +- .../_autosummary/mlx.core.array.cummax.html | 13 +- .../_autosummary/mlx.core.array.cummin.html | 13 +- .../_autosummary/mlx.core.array.cumprod.html | 13 +- .../_autosummary/mlx.core.array.cumsum.html | 13 +- .../_autosummary/mlx.core.array.diag.html | 13 +- .../_autosummary/mlx.core.array.diagonal.html | 13 +- .../_autosummary/mlx.core.array.dtype.html | 13 +- .../_autosummary/mlx.core.array.exp.html | 13 +- .../_autosummary/mlx.core.array.flatten.html | 13 +- .../python/_autosummary/mlx.core.array.html | 13 +- .../_autosummary/mlx.core.array.item.html | 13 +- .../_autosummary/mlx.core.array.itemsize.html | 13 +- .../_autosummary/mlx.core.array.log.html | 13 +- .../_autosummary/mlx.core.array.log10.html | 13 +- .../_autosummary/mlx.core.array.log1p.html | 13 +- .../_autosummary/mlx.core.array.log2.html | 13 +- .../mlx.core.array.logsumexp.html | 13 +- .../_autosummary/mlx.core.array.max.html | 13 +- .../_autosummary/mlx.core.array.mean.html | 13 +- .../_autosummary/mlx.core.array.min.html | 13 +- .../_autosummary/mlx.core.array.moveaxis.html | 13 +- .../_autosummary/mlx.core.array.nbytes.html | 13 +- .../_autosummary/mlx.core.array.ndim.html | 13 +- .../_autosummary/mlx.core.array.prod.html | 13 +- .../mlx.core.array.reciprocal.html | 13 +- .../_autosummary/mlx.core.array.reshape.html | 13 +- .../_autosummary/mlx.core.array.round.html | 13 +- .../_autosummary/mlx.core.array.rsqrt.html | 13 +- .../_autosummary/mlx.core.array.shape.html | 13 +- .../_autosummary/mlx.core.array.sin.html | 13 +- .../_autosummary/mlx.core.array.size.html | 13 +- .../_autosummary/mlx.core.array.split.html | 13 +- .../_autosummary/mlx.core.array.sqrt.html | 13 +- .../_autosummary/mlx.core.array.square.html | 13 +- .../_autosummary/mlx.core.array.squeeze.html | 13 +- .../_autosummary/mlx.core.array.std.html | 13 +- .../_autosummary/mlx.core.array.sum.html | 13 +- .../_autosummary/mlx.core.array.swapaxes.html | 13 +- .../_autosummary/mlx.core.array.tolist.html | 13 +- .../mlx.core.array.transpose.html | 13 +- .../_autosummary/mlx.core.array.var.html | 13 +- .../_autosummary/mlx.core.array.view.html | 13 +- .../_autosummary/mlx.core.array_equal.html | 13 +- .../_autosummary/mlx.core.as_strided.html | 13 +- .../_autosummary/mlx.core.atleast_1d.html | 13 +- .../_autosummary/mlx.core.atleast_2d.html | 13 +- .../_autosummary/mlx.core.atleast_3d.html | 13 +- .../_autosummary/mlx.core.bitwise_and.html | 13 +- .../_autosummary/mlx.core.bitwise_or.html | 13 +- .../_autosummary/mlx.core.bitwise_xor.html | 13 +- .../mlx.core.block_masked_mm.html | 13 +- .../_autosummary/mlx.core.broadcast_to.html | 13 +- .../python/_autosummary/mlx.core.ceil.html | 13 +- .../python/_autosummary/mlx.core.clip.html | 13 +- .../python/_autosummary/mlx.core.compile.html | 13 +- .../_autosummary/mlx.core.concatenate.html | 13 +- .../python/_autosummary/mlx.core.conj.html | 13 +- .../_autosummary/mlx.core.conjugate.html | 13 +- .../python/_autosummary/mlx.core.conv1d.html | 13 +- .../python/_autosummary/mlx.core.conv2d.html | 13 +- .../python/_autosummary/mlx.core.conv3d.html | 13 +- .../_autosummary/mlx.core.conv_general.html | 13 +- .../mlx.core.conv_transpose1d.html | 13 +- .../mlx.core.conv_transpose2d.html | 13 +- .../mlx.core.conv_transpose3d.html | 13 +- .../_autosummary/mlx.core.convolve.html | 13 +- .../python/_autosummary/mlx.core.cos.html | 13 +- .../python/_autosummary/mlx.core.cosh.html | 13 +- .../python/_autosummary/mlx.core.cummax.html | 13 +- .../python/_autosummary/mlx.core.cummin.html | 13 +- .../python/_autosummary/mlx.core.cumprod.html | 13 +- .../python/_autosummary/mlx.core.cumsum.html | 13 +- .../mlx.core.custom_function.html | 13 +- .../_autosummary/mlx.core.default_device.html | 13 +- .../_autosummary/mlx.core.default_stream.html | 13 +- .../python/_autosummary/mlx.core.degrees.html | 13 +- .../_autosummary/mlx.core.dequantize.html | 13 +- .../python/_autosummary/mlx.core.diag.html | 13 +- .../_autosummary/mlx.core.diagonal.html | 13 +- .../mlx.core.disable_compile.html | 13 +- .../mlx.core.distributed.Group.html | 13 +- .../mlx.core.distributed.all_gather.html | 13 +- .../mlx.core.distributed.all_sum.html | 13 +- .../mlx.core.distributed.init.html | 13 +- .../mlx.core.distributed.is_available.html | 13 +- .../mlx.core.distributed.recv.html | 13 +- .../mlx.core.distributed.recv_like.html | 13 +- .../mlx.core.distributed.send.html | 13 +- .../python/_autosummary/mlx.core.divide.html | 13 +- .../python/_autosummary/mlx.core.divmod.html | 13 +- .../python/_autosummary/mlx.core.einsum.html | 13 +- .../_autosummary/mlx.core.einsum_path.html | 13 +- .../_autosummary/mlx.core.enable_compile.html | 13 +- .../python/_autosummary/mlx.core.equal.html | 13 +- .../python/_autosummary/mlx.core.erf.html | 13 +- .../python/_autosummary/mlx.core.erfinv.html | 13 +- .../python/_autosummary/mlx.core.eval.html | 13 +- .../python/_autosummary/mlx.core.exp.html | 13 +- .../_autosummary/mlx.core.expand_dims.html | 13 +- .../python/_autosummary/mlx.core.expm1.html | 13 +- .../python/_autosummary/mlx.core.eye.html | 13 +- .../mlx.core.fast.affine_quantize.html | 1001 ---- .../mlx.core.fast.layer_norm.html | 13 +- .../mlx.core.fast.metal_kernel.html | 19 +- .../_autosummary/mlx.core.fast.rms_norm.html | 13 +- .../_autosummary/mlx.core.fast.rope.html | 13 +- ...ore.fast.scaled_dot_product_attention.html | 38 +- .../python/_autosummary/mlx.core.fft.fft.html | 13 +- .../_autosummary/mlx.core.fft.fft2.html | 13 +- .../_autosummary/mlx.core.fft.fftn.html | 13 +- .../_autosummary/mlx.core.fft.ifft.html | 13 +- .../_autosummary/mlx.core.fft.ifft2.html | 13 +- .../_autosummary/mlx.core.fft.ifftn.html | 13 +- .../_autosummary/mlx.core.fft.irfft.html | 13 +- .../_autosummary/mlx.core.fft.irfft2.html | 13 +- .../_autosummary/mlx.core.fft.irfftn.html | 13 +- .../_autosummary/mlx.core.fft.rfft.html | 13 +- .../_autosummary/mlx.core.fft.rfft2.html | 13 +- .../_autosummary/mlx.core.fft.rfftn.html | 13 +- .../python/_autosummary/mlx.core.flatten.html | 13 +- .../python/_autosummary/mlx.core.floor.html | 13 +- .../_autosummary/mlx.core.floor_divide.html | 13 +- .../python/_autosummary/mlx.core.full.html | 13 +- .../_autosummary/mlx.core.gather_mm.html | 13 +- .../_autosummary/mlx.core.gather_qmm.html | 13 +- .../python/_autosummary/mlx.core.grad.html | 13 +- .../python/_autosummary/mlx.core.greater.html | 13 +- .../_autosummary/mlx.core.greater_equal.html | 13 +- .../mlx.core.hadamard_transform.html | 13 +- .../_autosummary/mlx.core.identity.html | 13 +- .../python/_autosummary/mlx.core.imag.html | 13 +- .../python/_autosummary/mlx.core.inner.html | 13 +- .../python/_autosummary/mlx.core.isclose.html | 13 +- .../_autosummary/mlx.core.isfinite.html | 13 +- .../python/_autosummary/mlx.core.isinf.html | 13 +- .../python/_autosummary/mlx.core.isnan.html | 13 +- .../_autosummary/mlx.core.isneginf.html | 13 +- .../_autosummary/mlx.core.isposinf.html | 13 +- .../_autosummary/mlx.core.issubdtype.html | 13 +- .../python/_autosummary/mlx.core.jvp.html | 13 +- .../_autosummary/mlx.core.left_shift.html | 13 +- .../python/_autosummary/mlx.core.less.html | 13 +- .../_autosummary/mlx.core.less_equal.html | 13 +- .../mlx.core.linalg.cholesky.html | 13 +- .../mlx.core.linalg.cholesky_inv.html | 13 +- .../_autosummary/mlx.core.linalg.cross.html | 13 +- .../_autosummary/mlx.core.linalg.eigh.html | 13 +- .../mlx.core.linalg.eigvalsh.html | 13 +- .../_autosummary/mlx.core.linalg.inv.html | 13 +- .../_autosummary/mlx.core.linalg.norm.html | 13 +- .../_autosummary/mlx.core.linalg.qr.html | 13 +- .../_autosummary/mlx.core.linalg.svd.html | 13 +- .../_autosummary/mlx.core.linalg.tri_inv.html | 13 +- .../_autosummary/mlx.core.linspace.html | 13 +- .../python/_autosummary/mlx.core.load.html | 13 +- .../python/_autosummary/mlx.core.log.html | 13 +- .../python/_autosummary/mlx.core.log10.html | 13 +- .../python/_autosummary/mlx.core.log1p.html | 13 +- .../python/_autosummary/mlx.core.log2.html | 13 +- .../_autosummary/mlx.core.logaddexp.html | 13 +- .../_autosummary/mlx.core.logical_and.html | 13 +- .../_autosummary/mlx.core.logical_not.html | 13 +- .../_autosummary/mlx.core.logical_or.html | 13 +- .../_autosummary/mlx.core.logsumexp.html | 13 +- .../python/_autosummary/mlx.core.matmul.html | 13 +- .../python/_autosummary/mlx.core.max.html | 13 +- .../python/_autosummary/mlx.core.maximum.html | 13 +- .../python/_autosummary/mlx.core.mean.html | 13 +- .../_autosummary/mlx.core.meshgrid.html | 13 +- .../mlx.core.metal.clear_cache.html | 13 +- .../mlx.core.metal.device_info.html | 13 +- .../mlx.core.metal.get_active_memory.html | 13 +- .../mlx.core.metal.get_cache_memory.html | 13 +- .../mlx.core.metal.get_peak_memory.html | 13 +- .../mlx.core.metal.is_available.html | 13 +- .../mlx.core.metal.reset_peak_memory.html | 13 +- .../mlx.core.metal.set_cache_limit.html | 13 +- .../mlx.core.metal.set_memory_limit.html | 13 +- .../mlx.core.metal.set_wired_limit.html | 13 +- .../mlx.core.metal.start_capture.html | 13 +- .../mlx.core.metal.stop_capture.html | 13 +- .../python/_autosummary/mlx.core.min.html | 13 +- .../python/_autosummary/mlx.core.minimum.html | 13 +- .../_autosummary/mlx.core.moveaxis.html | 13 +- .../_autosummary/mlx.core.multiply.html | 13 +- .../_autosummary/mlx.core.nan_to_num.html | 13 +- .../_autosummary/mlx.core.negative.html | 13 +- .../_autosummary/mlx.core.new_stream.html | 13 +- .../_autosummary/mlx.core.not_equal.html | 13 +- .../python/_autosummary/mlx.core.ones.html | 13 +- .../_autosummary/mlx.core.ones_like.html | 13 +- .../python/_autosummary/mlx.core.outer.html | 13 +- .../python/_autosummary/mlx.core.pad.html | 13 +- .../_autosummary/mlx.core.partition.html | 13 +- .../python/_autosummary/mlx.core.power.html | 13 +- .../python/_autosummary/mlx.core.prod.html | 13 +- .../_autosummary/mlx.core.put_along_axis.html | 13 +- .../_autosummary/mlx.core.quantize.html | 13 +- .../mlx.core.quantized_matmul.html | 13 +- .../python/_autosummary/mlx.core.radians.html | 13 +- .../mlx.core.random.bernoulli.html | 13 +- .../mlx.core.random.categorical.html | 13 +- .../_autosummary/mlx.core.random.gumbel.html | 13 +- .../_autosummary/mlx.core.random.key.html | 13 +- .../_autosummary/mlx.core.random.laplace.html | 13 +- .../mlx.core.random.multivariate_normal.html | 13 +- .../_autosummary/mlx.core.random.normal.html | 13 +- .../mlx.core.random.permutation.html | 13 +- .../_autosummary/mlx.core.random.randint.html | 13 +- .../_autosummary/mlx.core.random.seed.html | 13 +- .../_autosummary/mlx.core.random.split.html | 13 +- .../mlx.core.random.truncated_normal.html | 13 +- .../_autosummary/mlx.core.random.uniform.html | 13 +- .../python/_autosummary/mlx.core.real.html | 13 +- .../_autosummary/mlx.core.reciprocal.html | 13 +- .../_autosummary/mlx.core.remainder.html | 13 +- .../python/_autosummary/mlx.core.repeat.html | 13 +- .../python/_autosummary/mlx.core.reshape.html | 13 +- .../_autosummary/mlx.core.right_shift.html | 13 +- .../python/_autosummary/mlx.core.roll.html | 13 +- .../python/_autosummary/mlx.core.round.html | 13 +- .../python/_autosummary/mlx.core.rsqrt.html | 13 +- .../python/_autosummary/mlx.core.save.html | 13 +- .../_autosummary/mlx.core.save_gguf.html | 13 +- .../mlx.core.save_safetensors.html | 13 +- .../python/_autosummary/mlx.core.savez.html | 13 +- .../mlx.core.savez_compressed.html | 13 +- .../mlx.core.set_default_device.html | 13 +- .../mlx.core.set_default_stream.html | 13 +- .../python/_autosummary/mlx.core.sigmoid.html | 13 +- .../python/_autosummary/mlx.core.sign.html | 13 +- .../python/_autosummary/mlx.core.sin.html | 13 +- .../python/_autosummary/mlx.core.sinh.html | 13 +- .../python/_autosummary/mlx.core.softmax.html | 13 +- .../python/_autosummary/mlx.core.sort.html | 13 +- .../python/_autosummary/mlx.core.split.html | 13 +- .../python/_autosummary/mlx.core.sqrt.html | 13 +- .../python/_autosummary/mlx.core.square.html | 13 +- .../python/_autosummary/mlx.core.squeeze.html | 13 +- .../python/_autosummary/mlx.core.stack.html | 13 +- .../python/_autosummary/mlx.core.std.html | 13 +- .../_autosummary/mlx.core.stop_gradient.html | 13 +- .../python/_autosummary/mlx.core.stream.html | 13 +- .../_autosummary/mlx.core.subtract.html | 13 +- .../python/_autosummary/mlx.core.sum.html | 13 +- .../_autosummary/mlx.core.swapaxes.html | 13 +- .../_autosummary/mlx.core.synchronize.html | 13 +- .../python/_autosummary/mlx.core.take.html | 13 +- .../mlx.core.take_along_axis.html | 13 +- .../python/_autosummary/mlx.core.tan.html | 13 +- .../python/_autosummary/mlx.core.tanh.html | 13 +- .../_autosummary/mlx.core.tensordot.html | 13 +- .../python/_autosummary/mlx.core.tile.html | 13 +- .../python/_autosummary/mlx.core.topk.html | 13 +- .../python/_autosummary/mlx.core.trace.html | 13 +- .../_autosummary/mlx.core.transpose.html | 13 +- .../python/_autosummary/mlx.core.tri.html | 13 +- .../python/_autosummary/mlx.core.tril.html | 13 +- .../python/_autosummary/mlx.core.triu.html | 13 +- .../_autosummary/mlx.core.value_and_grad.html | 13 +- .../python/_autosummary/mlx.core.var.html | 13 +- .../python/_autosummary/mlx.core.view.html | 13 +- .../python/_autosummary/mlx.core.vjp.html | 13 +- .../python/_autosummary/mlx.core.vmap.html | 13 +- .../python/_autosummary/mlx.core.where.html | 13 +- .../python/_autosummary/mlx.core.zeros.html | 13 +- .../_autosummary/mlx.core.zeros_like.html | 13 +- .../python/_autosummary/mlx.nn.quantize.html | 13 +- .../_autosummary/mlx.nn.value_and_grad.html | 13 +- .../mlx.optimizers.clip_grad_norm.html | 13 +- .../_autosummary/mlx.utils.tree_flatten.html | 13 +- .../_autosummary/mlx.utils.tree_map.html | 13 +- .../mlx.utils.tree_map_with_path.html | 13 +- .../_autosummary/mlx.utils.tree_reduce.html | 13 +- .../mlx.utils.tree_unflatten.html | 13 +- .../python/_autosummary/stream_class.html | 13 +- docs/build/html/python/array.html | 13 +- docs/build/html/python/data_types.html | 13 +- .../html/python/devices_and_streams.html | 13 +- docs/build/html/python/distributed.html | 13 +- docs/build/html/python/fast.html | 19 +- docs/build/html/python/fft.html | 13 +- docs/build/html/python/linalg.html | 13 +- docs/build/html/python/metal.html | 13 +- docs/build/html/python/nn.html | 21 +- .../python/nn/_autosummary/mlx.nn.ALiBi.html | 13 +- .../nn/_autosummary/mlx.nn.AvgPool1d.html | 26 +- .../nn/_autosummary/mlx.nn.AvgPool2d.html | 41 +- .../nn/_autosummary/mlx.nn.AvgPool3d.html | 1012 ++++ .../nn/_autosummary/mlx.nn.BatchNorm.html | 19 +- .../python/nn/_autosummary/mlx.nn.CELU.html | 13 +- .../python/nn/_autosummary/mlx.nn.Conv1d.html | 13 +- .../python/nn/_autosummary/mlx.nn.Conv2d.html | 17 +- .../python/nn/_autosummary/mlx.nn.Conv3d.html | 13 +- .../_autosummary/mlx.nn.ConvTranspose1d.html | 13 +- .../_autosummary/mlx.nn.ConvTranspose2d.html | 13 +- .../_autosummary/mlx.nn.ConvTranspose3d.html | 13 +- .../nn/_autosummary/mlx.nn.Dropout.html | 13 +- .../nn/_autosummary/mlx.nn.Dropout2d.html | 13 +- .../nn/_autosummary/mlx.nn.Dropout3d.html | 13 +- .../python/nn/_autosummary/mlx.nn.ELU.html | 13 +- .../nn/_autosummary/mlx.nn.Embedding.html | 13 +- .../python/nn/_autosummary/mlx.nn.GELU.html | 13 +- .../python/nn/_autosummary/mlx.nn.GLU.html | 13 +- .../python/nn/_autosummary/mlx.nn.GRU.html | 13 +- .../nn/_autosummary/mlx.nn.GroupNorm.html | 13 +- .../nn/_autosummary/mlx.nn.HardShrink.html | 13 +- .../nn/_autosummary/mlx.nn.HardTanh.html | 13 +- .../nn/_autosummary/mlx.nn.Hardswish.html | 13 +- .../nn/_autosummary/mlx.nn.InstanceNorm.html | 13 +- .../python/nn/_autosummary/mlx.nn.LSTM.html | 13 +- .../nn/_autosummary/mlx.nn.LayerNorm.html | 13 +- .../nn/_autosummary/mlx.nn.LeakyReLU.html | 13 +- .../python/nn/_autosummary/mlx.nn.Linear.html | 13 +- .../nn/_autosummary/mlx.nn.LogSigmoid.html | 13 +- .../nn/_autosummary/mlx.nn.LogSoftmax.html | 13 +- .../nn/_autosummary/mlx.nn.MaxPool1d.html | 26 +- .../nn/_autosummary/mlx.nn.MaxPool2d.html | 41 +- .../nn/_autosummary/mlx.nn.MaxPool3d.html | 1012 ++++ .../python/nn/_autosummary/mlx.nn.Mish.html | 19 +- .../nn/_autosummary/mlx.nn.Module.apply.html | 13 +- .../mlx.nn.Module.apply_to_modules.html | 13 +- .../_autosummary/mlx.nn.Module.children.html | 13 +- .../nn/_autosummary/mlx.nn.Module.eval.html | 13 +- .../mlx.nn.Module.filter_and_map.html | 13 +- .../nn/_autosummary/mlx.nn.Module.freeze.html | 13 +- .../mlx.nn.Module.leaf_modules.html | 13 +- .../mlx.nn.Module.load_weights.html | 13 +- .../_autosummary/mlx.nn.Module.modules.html | 13 +- .../mlx.nn.Module.named_modules.html | 13 +- .../mlx.nn.Module.parameters.html | 13 +- .../mlx.nn.Module.save_weights.html | 13 +- .../_autosummary/mlx.nn.Module.set_dtype.html | 13 +- .../nn/_autosummary/mlx.nn.Module.state.html | 13 +- .../nn/_autosummary/mlx.nn.Module.train.html | 13 +- .../mlx.nn.Module.trainable_parameters.html | 13 +- .../_autosummary/mlx.nn.Module.training.html | 13 +- .../_autosummary/mlx.nn.Module.unfreeze.html | 13 +- .../nn/_autosummary/mlx.nn.Module.update.html | 13 +- .../mlx.nn.Module.update_modules.html | 13 +- .../mlx.nn.MultiHeadAttention.html | 13 +- .../python/nn/_autosummary/mlx.nn.PReLU.html | 13 +- .../mlx.nn.QuantizedEmbedding.html | 13 +- .../_autosummary/mlx.nn.QuantizedLinear.html | 13 +- .../nn/_autosummary/mlx.nn.RMSNorm.html | 13 +- .../python/nn/_autosummary/mlx.nn.RNN.html | 13 +- .../python/nn/_autosummary/mlx.nn.ReLU.html | 13 +- .../python/nn/_autosummary/mlx.nn.ReLU6.html | 13 +- .../python/nn/_autosummary/mlx.nn.RoPE.html | 13 +- .../python/nn/_autosummary/mlx.nn.SELU.html | 13 +- .../nn/_autosummary/mlx.nn.Sequential.html | 13 +- .../python/nn/_autosummary/mlx.nn.SiLU.html | 13 +- .../nn/_autosummary/mlx.nn.Sigmoid.html | 13 +- .../mlx.nn.SinusoidalPositionalEncoding.html | 13 +- .../nn/_autosummary/mlx.nn.Softmax.html | 13 +- .../nn/_autosummary/mlx.nn.Softmin.html | 13 +- .../nn/_autosummary/mlx.nn.Softplus.html | 13 +- .../nn/_autosummary/mlx.nn.Softshrink.html | 13 +- .../nn/_autosummary/mlx.nn.Softsign.html | 13 +- .../python/nn/_autosummary/mlx.nn.Step.html | 13 +- .../python/nn/_autosummary/mlx.nn.Tanh.html | 13 +- .../nn/_autosummary/mlx.nn.Transformer.html | 13 +- .../nn/_autosummary/mlx.nn.Upsample.html | 13 +- .../nn/_autosummary/mlx.nn.init.constant.html | 13 +- .../mlx.nn.init.glorot_normal.html | 13 +- .../mlx.nn.init.glorot_uniform.html | 13 +- .../_autosummary/mlx.nn.init.he_normal.html | 13 +- .../_autosummary/mlx.nn.init.he_uniform.html | 13 +- .../nn/_autosummary/mlx.nn.init.identity.html | 13 +- .../nn/_autosummary/mlx.nn.init.normal.html | 13 +- .../nn/_autosummary/mlx.nn.init.uniform.html | 13 +- .../_autosummary_functions/mlx.nn.celu.html | 13 +- .../nn/_autosummary_functions/mlx.nn.elu.html | 13 +- .../_autosummary_functions/mlx.nn.gelu.html | 13 +- .../mlx.nn.gelu_approx.html | 13 +- .../mlx.nn.gelu_fast_approx.html | 13 +- .../nn/_autosummary_functions/mlx.nn.glu.html | 13 +- .../mlx.nn.hard_shrink.html | 13 +- .../mlx.nn.hard_tanh.html | 13 +- .../mlx.nn.hardswish.html | 13 +- .../mlx.nn.leaky_relu.html | 13 +- .../mlx.nn.log_sigmoid.html | 13 +- .../mlx.nn.log_softmax.html | 13 +- .../mlx.nn.losses.binary_cross_entropy.html | 13 +- .../mlx.nn.losses.cosine_similarity_loss.html | 13 +- .../mlx.nn.losses.cross_entropy.html | 13 +- .../mlx.nn.losses.gaussian_nll_loss.html | 13 +- .../mlx.nn.losses.hinge_loss.html | 13 +- .../mlx.nn.losses.huber_loss.html | 13 +- .../mlx.nn.losses.kl_div_loss.html | 13 +- .../mlx.nn.losses.l1_loss.html | 13 +- .../mlx.nn.losses.log_cosh_loss.html | 13 +- .../mlx.nn.losses.margin_ranking_loss.html | 13 +- .../mlx.nn.losses.mse_loss.html | 13 +- .../mlx.nn.losses.nll_loss.html | 13 +- .../mlx.nn.losses.smooth_l1_loss.html | 13 +- .../mlx.nn.losses.triplet_loss.html | 13 +- .../_autosummary_functions/mlx.nn.mish.html | 13 +- .../_autosummary_functions/mlx.nn.prelu.html | 13 +- .../_autosummary_functions/mlx.nn.relu.html | 13 +- .../_autosummary_functions/mlx.nn.relu6.html | 13 +- .../_autosummary_functions/mlx.nn.selu.html | 13 +- .../mlx.nn.sigmoid.html | 13 +- .../_autosummary_functions/mlx.nn.silu.html | 13 +- .../mlx.nn.softmax.html | 13 +- .../mlx.nn.softmin.html | 13 +- .../mlx.nn.softplus.html | 13 +- .../mlx.nn.softshrink.html | 13 +- .../_autosummary_functions/mlx.nn.step.html | 13 +- .../_autosummary_functions/mlx.nn.tanh.html | 13 +- docs/build/html/python/nn/functions.html | 13 +- docs/build/html/python/nn/init.html | 13 +- docs/build/html/python/nn/layers.html | 77 +- docs/build/html/python/nn/losses.html | 13 +- docs/build/html/python/nn/module.html | 13 +- docs/build/html/python/ops.html | 13 +- docs/build/html/python/optimizers.html | 13 +- .../_autosummary/mlx.optimizers.AdaDelta.html | 13 +- .../mlx.optimizers.Adafactor.html | 13 +- .../_autosummary/mlx.optimizers.Adagrad.html | 13 +- .../_autosummary/mlx.optimizers.Adam.html | 13 +- .../_autosummary/mlx.optimizers.AdamW.html | 13 +- .../_autosummary/mlx.optimizers.Adamax.html | 13 +- .../_autosummary/mlx.optimizers.Lion.html | 13 +- ....optimizers.Optimizer.apply_gradients.html | 13 +- .../mlx.optimizers.Optimizer.init.html | 13 +- .../mlx.optimizers.Optimizer.state.html | 13 +- .../mlx.optimizers.Optimizer.update.html | 13 +- .../_autosummary/mlx.optimizers.RMSprop.html | 13 +- .../_autosummary/mlx.optimizers.SGD.html | 13 +- .../mlx.optimizers.cosine_decay.html | 13 +- .../mlx.optimizers.exponential_decay.html | 13 +- .../mlx.optimizers.join_schedules.html | 13 +- .../mlx.optimizers.linear_schedule.html | 13 +- .../mlx.optimizers.step_decay.html | 13 +- .../python/optimizers/common_optimizers.html | 13 +- .../html/python/optimizers/optimizer.html | 13 +- .../html/python/optimizers/schedulers.html | 13 +- docs/build/html/python/random.html | 13 +- docs/build/html/python/transforms.html | 13 +- docs/build/html/python/tree_utils.html | 13 +- docs/build/html/quantized_8h.html | 46 - docs/build/html/quantized_8h_source.html | 4149 +++++++++-------- docs/build/html/radix_8h_source.html | 4 +- docs/build/html/readwrite_8h_source.html | 4 +- docs/build/html/reduce__all_8h.html | 12 +- docs/build/html/reduce__all_8h_source.html | 124 +- docs/build/html/reduce__col_8h.html | 50 +- docs/build/html/reduce__col_8h_source.html | 544 +-- docs/build/html/reduce__row_8h.html | 36 +- docs/build/html/reduce__row_8h_source.html | 364 +- ..._product__attention__params_8h_source.html | 174 - docs/build/html/scan_8h.html | 2 +- docs/build/html/scan_8h_source.html | 8 +- docs/build/html/scatter_8h.html | 12 +- docs/build/html/scatter_8h_source.html | 101 +- docs/build/html/sdpa__vector_8h.html | 137 + docs/build/html/sdpa__vector_8h_source.html | 374 +- docs/build/html/search.html | 13 +- docs/build/html/search/all_1.js | 33 +- docs/build/html/search/all_10.js | 4 +- docs/build/html/search/all_11.js | 57 +- docs/build/html/search/all_12.js | 21 +- docs/build/html/search/all_13.js | 383 +- docs/build/html/search/all_14.js | 53 +- docs/build/html/search/all_15.js | 13 +- docs/build/html/search/all_16.js | 47 +- docs/build/html/search/all_17.js | 31 +- docs/build/html/search/all_2.js | 214 +- docs/build/html/search/all_3.js | 243 +- docs/build/html/search/all_4.js | 125 +- docs/build/html/search/all_5.js | 23 +- docs/build/html/search/all_6.js | 6 +- docs/build/html/search/all_7.js | 164 +- docs/build/html/search/all_8.js | 49 +- docs/build/html/search/all_9.js | 79 +- docs/build/html/search/all_a.js | 7 +- docs/build/html/search/all_b.js | 47 +- docs/build/html/search/all_c.js | 153 +- docs/build/html/search/all_d.js | 183 +- docs/build/html/search/all_e.js | 54 +- docs/build/html/search/all_f.js | 74 +- docs/build/html/search/classes_1.js | 3 +- docs/build/html/search/classes_12.js | 43 +- docs/build/html/search/classes_13.js | 5 +- docs/build/html/search/classes_2.js | 15 +- docs/build/html/search/classes_3.js | 48 +- docs/build/html/search/classes_4.js | 3 +- docs/build/html/search/classes_5.js | 3 +- docs/build/html/search/classes_b.js | 63 +- docs/build/html/search/classes_c.js | 26 +- docs/build/html/search/defines_2.js | 19 +- docs/build/html/search/defines_8.js | 10 +- docs/build/html/search/defines_9.js | 26 +- docs/build/html/search/defines_a.js | 20 +- docs/build/html/search/defines_b.js | 3 +- docs/build/html/search/defines_c.js | 3 +- docs/build/html/search/files_0.js | 3 +- docs/build/html/search/files_1.js | 2 +- docs/build/html/search/files_10.js | 16 +- docs/build/html/search/files_11.js | 2 +- docs/build/html/search/files_a.js | 2 +- docs/build/html/search/files_b.js | 2 +- docs/build/html/search/files_d.js | 2 +- docs/build/html/search/functions_1.js | 134 +- docs/build/html/search/functions_10.js | 2 +- docs/build/html/search/functions_11.js | 2 +- docs/build/html/search/functions_12.js | 14 +- docs/build/html/search/functions_13.js | 247 +- docs/build/html/search/functions_14.js | 31 +- docs/build/html/search/functions_15.js | 24 +- docs/build/html/search/functions_16.js | 4 +- docs/build/html/search/functions_17.js | 15 +- docs/build/html/search/functions_2.js | 91 +- docs/build/html/search/functions_3.js | 126 +- docs/build/html/search/functions_4.js | 4 +- docs/build/html/search/functions_5.js | 18 +- docs/build/html/search/functions_6.js | 4 +- docs/build/html/search/functions_7.js | 35 +- docs/build/html/search/functions_9.js | 2 +- docs/build/html/search/functions_a.js | 2 +- docs/build/html/search/functions_c.js | 11 +- docs/build/html/search/functions_d.js | 80 +- docs/build/html/search/functions_e.js | 2 +- docs/build/html/search/functions_f.js | 61 +- docs/build/html/search/namespaces_0.js | 17 +- docs/build/html/search/searchdata.js | 4 +- docs/build/html/search/typedefs_0.js | 2 +- docs/build/html/search/typedefs_1.js | 2 +- docs/build/html/search/typedefs_2.js | 3 +- docs/build/html/search/typedefs_3.js | 4 +- docs/build/html/search/typedefs_4.js | 5 +- docs/build/html/search/typedefs_5.js | 5 +- docs/build/html/search/typedefs_6.js | 5 +- docs/build/html/search/typedefs_7.js | 5 +- docs/build/html/search/typedefs_8.js | 9 +- docs/build/html/search/typedefs_9.js | 8 +- docs/build/html/search/typedefs_a.js | 2 +- docs/build/html/search/typedefs_b.js | 3 +- docs/build/html/search/typedefs_c.js | 8 +- docs/build/html/search/typedefs_d.js | 9 +- docs/build/html/search/typedefs_e.js | 9 +- docs/build/html/search/typedefs_f.js | 8 + docs/build/html/search/variables_0.js | 11 +- docs/build/html/search/variables_1.js | 66 +- docs/build/html/search/variables_10.js | 7 +- docs/build/html/search/variables_11.js | 2 +- docs/build/html/search/variables_12.js | 10 +- docs/build/html/search/variables_13.js | 8 +- docs/build/html/search/variables_15.js | 11 +- docs/build/html/search/variables_2.js | 29 +- docs/build/html/search/variables_3.js | 20 +- docs/build/html/search/variables_6.js | 25 +- docs/build/html/search/variables_7.js | 17 +- docs/build/html/search/variables_8.js | 17 +- docs/build/html/search/variables_a.js | 33 +- docs/build/html/search/variables_b.js | 16 +- docs/build/html/search/variables_c.js | 2 +- docs/build/html/search/variables_d.js | 24 +- docs/build/html/search/variables_e.js | 15 +- docs/build/html/searchindex.js | 2 +- docs/build/html/sort_8h_source.html | 16 +- docs/build/html/steel__attention_8h.html | 226 + .../html/steel__attention_8h_source.html | 508 ++ .../html/steel__gemm__fused_8h_source.html | 14 +- .../html/steel__gemm__masked_8h_source.html | 12 +- .../html/steel__gemm__splitk_8h_source.html | 2 +- .../html/struct___m_l_x___b_float16.html | 4 +- ...b_float16_1_1bits__to__bfloat__struct.html | 4 +- ...embers.html => struct_div_op-members.html} | 8 +- docs/build/html/struct_div_op.html | 144 + ...rs.html => struct_exp_sub_op-members.html} | 9 +- docs/build/html/struct_exp_sub_op.html | 144 + docs/build/html/struct_floor_divide.html | 8 +- .../struct_limits_3_01bfloat16__t_01_4.html | 16 +- .../struct_looped_elem_to_loc-members.html | 108 + .../build/html/struct_looped_elem_to_loc.html | 317 ++ ..._01_offset_t_00_01false_01_4-members.html} | 15 +- ...3_011_00_01_offset_t_00_01false_01_4.html} | 102 +- ...00_01_offset_t_00_01true_01_4-members.html | 107 + ..._3_011_00_01_offset_t_00_01true_01_4.html} | 126 +- ...t_m_l_x_fast_attention_params-members.html | 120 - .../struct_m_l_x_fast_attention_params.html | 430 -- docs/build/html/struct_max_op-members.html | 101 + docs/build/html/struct_max_op.html | 144 + docs/build/html/struct_mul_op-members.html | 101 + docs/build/html/struct_mul_op.html | 144 + ...struct_quantized_block_loader-members.html | 31 +- .../html/struct_quantized_block_loader.html | 52 +- docs/build/html/struct_sub_op-members.html | 101 + docs/build/html/struct_sub_op.html | 144 + docs/build/html/struct_sum_op-members.html | 101 + docs/build/html/struct_sum_op.html | 144 + ...ml => struct_transform_scale-members.html} | 12 +- ..._01_4.html => struct_transform_scale.html} | 140 +- ...ic__limits__impl_3_01bfloat16__t_01_4.html | 56 +- ...structmlx_1_1core_1_1_print_formatter.html | 4 +- ..._1_1metal_1_1_command_encoder-members.html | 16 +- ..._1_1core_1_1metal_1_1_command_encoder.html | 274 +- ...mlx_1_1steel_1_1_accum_helper-members.html | 2 +- .../structmlx_1_1steel_1_1_accum_helper.html | 15 +- ...tmlx_1_1steel_1_1_attn_params-members.html | 119 + .../structmlx_1_1steel_1_1_attn_params.html | 399 ++ ...tructmlx_1_1steel_1_1_base_m_m_a_frag.html | 7 +- ...rag_3_01_t_00_018_00_018_01_4-members.html | 15 +- ..._m_m_a_frag_3_01_t_00_018_00_018_01_4.html | 524 ++- ...mlx_1_1steel_1_1_block_loader-members.html | 21 +- .../structmlx_1_1steel_1_1_block_loader.html | 202 +- ..._block_loader_1_1_read_vector-members.html | 2 +- ...teel_1_1_block_loader_1_1_read_vector.html | 15 +- ...x_1_1steel_1_1_block_loader_t-members.html | 118 + ...structmlx_1_1steel_1_1_block_loader_t.html | 449 ++ ...tmlx_1_1steel_1_1_block_m_m_a-members.html | 47 +- .../structmlx_1_1steel_1_1_block_m_m_a.html | 442 +- ...lx_1_1steel_1_1_block_swizzle-members.html | 1 + .../structmlx_1_1steel_1_1_block_swizzle.html | 38 +- ...tructmlx_1_1steel_1_1_c_shape-members.html | 106 + .../html/structmlx_1_1steel_1_1_c_shape.html | 150 + ...x_1_1steel_1_1_g_e_m_m_kernel-members.html | 8 +- ...structmlx_1_1steel_1_1_g_e_m_m_kernel.html | 202 +- ...uctmlx_1_1steel_1_1_layout2_d-members.html | 106 + .../structmlx_1_1steel_1_1_layout2_d.html | 150 + ...structmlx_1_1steel_1_1_loop_alignment.html | 5 +- ...ctmlx_1_1steel_1_1_m_m_a_tile-members.html | 45 +- .../structmlx_1_1steel_1_1_m_m_a_tile.html | 636 ++- ...ructmlx_1_1steel_1_1_shape2_d-members.html | 107 + ...l => structmlx_1_1steel_1_1_shape2_d.html} | 124 +- ...lx_1_1steel_1_1_transform_add-members.html | 3 + .../structmlx_1_1steel_1_1_transform_add.html | 106 +- ..._1_1steel_1_1_transform_axpby-members.html | 3 + ...tructmlx_1_1steel_1_1_transform_axpby.html | 106 +- ...x_1_1steel_1_1_transform_none-members.html | 2 + ...structmlx_1_1steel_1_1_transform_none.html | 71 +- docs/build/html/type__traits_8h_source.html | 2 +- docs/build/html/types_2bf16_8h.html | 4 +- docs/build/html/types_2bf16_8h_source.html | 34 +- docs/build/html/types_2complex_8h.html | 8 +- docs/build/html/unary__ops_8h_source.html | 48 +- docs/build/html/usage/compile.html | 13 +- docs/build/html/usage/distributed.html | 13 +- .../build/html/usage/function_transforms.html | 17 +- docs/build/html/usage/indexing.html | 13 +- docs/build/html/usage/lazy_evaluation.html | 13 +- docs/build/html/usage/numpy.html | 13 +- docs/build/html/usage/quick_start.html | 13 +- docs/build/html/usage/saving_and_loading.html | 13 +- docs/build/html/usage/unified_memory.html | 13 +- docs/build/html/usage/using_streams.html | 13 +- docs/build/html/utils_8h.html | 10 +- docs/build/html/utils_8h_source.html | 29 +- 905 files changed, 30035 insertions(+), 16934 deletions(-) delete mode 100644 docs/build/html/_sources/python/_autosummary/mlx.core.fast.affine_quantize.rst create mode 100644 docs/build/html/_sources/python/nn/_autosummary/mlx.nn.AvgPool3d.rst create mode 100644 docs/build/html/_sources/python/nn/_autosummary/mlx.nn.MaxPool3d.rst create mode 100644 docs/build/html/attn_2loader_8h.html create mode 100644 docs/build/html/attn_2loader_8h_source.html create mode 100644 docs/build/html/attn_2mma_8h.html create mode 100644 docs/build/html/attn_2mma_8h_source.html create mode 100644 docs/build/html/attn_2params_8h.html create mode 100644 docs/build/html/attn_2params_8h_source.html create mode 100644 docs/build/html/attn_8h.html create mode 100644 docs/build/html/attn_8h_source.html create mode 100644 docs/build/html/backend_2metal_2kernels_2jit_2bf16_8h.html create mode 100644 docs/build/html/backend_2metal_2kernels_2jit_2bf16_8h_source.html rename docs/build/html/{backend_2metal_2kernels_2bf16_8h.html => backend_2metal_2kernels_2metal__3__0_2bf16_8h.html} (99%) rename docs/build/html/{backend_2metal_2kernels_2bf16_8h_source.html => backend_2metal_2kernels_2metal__3__0_2bf16_8h_source.html} (60%) create mode 100644 docs/build/html/backend_2metal_2kernels_2metal__3__1_2bf16_8h.html create mode 100644 docs/build/html/backend_2metal_2kernels_2metal__3__1_2bf16_8h_source.html create mode 100644 docs/build/html/backend_2metal_2kernels_2steel_2attn_2transforms_8h.html create mode 100644 docs/build/html/backend_2metal_2kernels_2steel_2attn_2transforms_8h_source.html create mode 100644 docs/build/html/classmlx_1_1core_1_1_contiguous-members.html create mode 100644 docs/build/html/classmlx_1_1core_1_1_contiguous.html create mode 100644 docs/build/html/classmlx_1_1core_1_1_contiguous.png rename docs/build/html/{scaled__dot__product__attention__params_8h.html => dir_5aea41cce495e77a0857a0aecf063e33.html} (81%) create mode 100644 docs/build/html/dir_83367edb60e23ad59b1a493d8c883287.html create mode 100644 docs/build/html/dir_d36f9e79442ec4bd53287b83bdefe7e5.html create mode 100644 docs/build/html/dir_e1756c7634b0c14aead026895ad71c6d.html create mode 100644 docs/build/html/dir_fb5e52e7ad5a84a63db2993d12f7610c.html rename docs/build/html/{mma_8h.html => gemm_2mma_8h.html} (99%) rename docs/build/html/{mma_8h_source.html => gemm_2mma_8h_source.html} (84%) create mode 100644 docs/build/html/globals_j.html create mode 100644 docs/build/html/namespacemlx_1_1core_1_1env.html delete mode 100644 docs/build/html/python/_autosummary/mlx.core.fast.affine_quantize.html create mode 100644 docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool3d.html create mode 100644 docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool3d.html delete mode 100644 docs/build/html/scaled__dot__product__attention__params_8h_source.html create mode 100644 docs/build/html/search/typedefs_f.js create mode 100644 docs/build/html/steel__attention_8h.html create mode 100644 docs/build/html/steel__attention_8h_source.html rename docs/build/html/{structlooped__elem__to__loc_3_010_00_01offset__t_01_4-members.html => struct_div_op-members.html} (70%) create mode 100644 docs/build/html/struct_div_op.html rename docs/build/html/{structlooped__elem__to__loc_3_011_00_01offset__t_01_4-members.html => struct_exp_sub_op-members.html} (65%) create mode 100644 docs/build/html/struct_exp_sub_op.html create mode 100644 docs/build/html/struct_looped_elem_to_loc-members.html create mode 100644 docs/build/html/struct_looped_elem_to_loc.html rename docs/build/html/{structlooped__elem__to__loc-members.html => struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4-members.html} (60%) rename docs/build/html/{structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html => struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html} (61%) create mode 100644 docs/build/html/struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4-members.html rename docs/build/html/{structlooped__elem__to__loc.html => struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html} (56%) delete mode 100644 docs/build/html/struct_m_l_x_fast_attention_params-members.html delete mode 100644 docs/build/html/struct_m_l_x_fast_attention_params.html create mode 100644 docs/build/html/struct_max_op-members.html create mode 100644 docs/build/html/struct_max_op.html create mode 100644 docs/build/html/struct_mul_op-members.html create mode 100644 docs/build/html/struct_mul_op.html create mode 100644 docs/build/html/struct_sub_op-members.html create mode 100644 docs/build/html/struct_sub_op.html create mode 100644 docs/build/html/struct_sum_op-members.html create mode 100644 docs/build/html/struct_sum_op.html rename docs/build/html/{struct_m_l_x_scaled_dot_product_attention_params-members.html => struct_transform_scale-members.html} (68%) rename docs/build/html/{structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html => struct_transform_scale.html} (50%) create mode 100644 docs/build/html/structmlx_1_1steel_1_1_attn_params-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_attn_params.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_block_loader_t-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_block_loader_t.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_c_shape-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_c_shape.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_layout2_d-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_layout2_d.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_shape2_d-members.html rename docs/build/html/{struct_m_l_x_scaled_dot_product_attention_params.html => structmlx_1_1steel_1_1_shape2_d.html} (50%) diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index b92778bc..c20792bb 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: aa9c5e5c24909e63ee7546fee2f7474d +config: 8880bb5f0a2c9a353db73959d72b9edf tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/dev/extensions.rst b/docs/build/html/_sources/dev/extensions.rst index ecb41846..196f8bf6 100644 --- a/docs/build/html/_sources/dev/extensions.rst +++ b/docs/build/html/_sources/dev/extensions.rst @@ -494,7 +494,7 @@ below. // Prepare to encode kernel auto& compute_encoder = d.get_command_encoder(s.index); - compute_encoder->setComputePipelineState(kernel); + compute_encoder.set_compute_pipeline_state(kernel); // Kernel parameters are registered with buffer indices corresponding to // those in the kernel declaration at axpby.metal @@ -509,14 +509,14 @@ below. compute_encoder.set_output_array(out, 2); // Encode alpha and beta - compute_encoder->setBytes(&alpha_, sizeof(float), 3); - compute_encoder->setBytes(&beta_, sizeof(float), 4); + compute_encoder.set_bytes(alpha_, 3); + compute_encoder.set_bytes(beta_, 4); // Encode shape, strides and ndim - compute_encoder->setBytes(x.shape().data(), ndim * sizeof(int), 5); - compute_encoder->setBytes(x.strides().data(), ndim * sizeof(size_t), 6); - compute_encoder->setBytes(y.strides().data(), ndim * sizeof(size_t), 7); - compute_encoder->setBytes(&ndim, sizeof(int), 8); + compute_encoder.set_vector_bytes(x.shape(), 5); + compute_encoder.set_vector_bytes(x.strides(), 6); + compute_encoder.set_bytes(y.strides(), 7); + compute_encoder.set_bytes(ndim, 8); // We launch 1 thread for each input and make sure that the number of // threads in any given threadgroup is not higher than the max allowed @@ -530,7 +530,7 @@ below. // Launch the grid with the given number of threads divided among // the given threadgroups - compute_encoder.dispatchThreads(grid_dims, group_dims); + compute_encoder.dispatch_threads(grid_dims, group_dims); } We can now call the :meth:`axpby` operation on both the CPU and the GPU! diff --git a/docs/build/html/_sources/install.rst b/docs/build/html/_sources/install.rst index 7c68942f..1566d1f2 100644 --- a/docs/build/html/_sources/install.rst +++ b/docs/build/html/_sources/install.rst @@ -209,7 +209,7 @@ Metal library by run-time compiling kernels the first time they are used in MLX on a given machine. Note run-time compilation incurs a cold-start cost which can be anwywhere from a few hundred millisecond to a few seconds depending on the application. Once a kernel is compiled, it will be cached by the system. The -Metal kernel cache persists accross reboots. +Metal kernel cache persists across reboots. Troubleshooting ^^^^^^^^^^^^^^^ diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.fast.affine_quantize.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.fast.affine_quantize.rst deleted file mode 100644 index 9daa5e11..00000000 --- a/docs/build/html/_sources/python/_autosummary/mlx.core.fast.affine_quantize.rst +++ /dev/null @@ -1,6 +0,0 @@ -mlx.core.fast.affine\_quantize -============================== - -.. currentmodule:: mlx.core.fast - -.. autofunction:: affine_quantize \ No newline at end of file diff --git a/docs/build/html/_sources/python/fast.rst b/docs/build/html/_sources/python/fast.rst index 30ade264..f78f4056 100644 --- a/docs/build/html/_sources/python/fast.rst +++ b/docs/build/html/_sources/python/fast.rst @@ -12,5 +12,4 @@ Fast layer_norm rope scaled_dot_product_attention - affine_quantize metal_kernel diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.AvgPool3d.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.AvgPool3d.rst new file mode 100644 index 00000000..71dc765d --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.AvgPool3d.rst @@ -0,0 +1,16 @@ +mlx.nn.AvgPool3d +================ + +.. currentmodule:: mlx.nn + +.. autoclass:: AvgPool3d + + + + + .. rubric:: Methods + + .. autosummary:: + + + diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.MaxPool3d.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.MaxPool3d.rst new file mode 100644 index 00000000..2656eef3 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.MaxPool3d.rst @@ -0,0 +1,16 @@ +mlx.nn.MaxPool3d +================ + +.. currentmodule:: mlx.nn + +.. autoclass:: MaxPool3d + + + + + .. rubric:: Methods + + .. autosummary:: + + + diff --git a/docs/build/html/_sources/python/nn/layers.rst b/docs/build/html/_sources/python/nn/layers.rst index fc24d410..4eb14b08 100644 --- a/docs/build/html/_sources/python/nn/layers.rst +++ b/docs/build/html/_sources/python/nn/layers.rst @@ -12,6 +12,7 @@ Layers ALiBi AvgPool1d AvgPool2d + AvgPool3d BatchNorm CELU Conv1d @@ -41,6 +42,7 @@ Layers LSTM MaxPool1d MaxPool2d + MaxPool3d Mish MultiHeadAttention PReLU diff --git a/docs/build/html/_sources/usage/function_transforms.rst b/docs/build/html/_sources/usage/function_transforms.rst index 9769fcea..045c36c9 100644 --- a/docs/build/html/_sources/usage/function_transforms.rst +++ b/docs/build/html/_sources/usage/function_transforms.rst @@ -184,8 +184,8 @@ Let's time these two different versions: print(timeit.timeit(lambda: mx.eval(naive_add(xs, ys)), number=100)) print(timeit.timeit(lambda: mx.eval(vmap_add(xs, ys)), number=100)) -On an M1 Max the naive version takes in total ``0.390`` seconds whereas the -vectorized version takes only ``0.025`` seconds, more than ten times faster. +On an M1 Max the naive version takes in total ``5.639`` seconds whereas the +vectorized version takes only ``0.024`` seconds, more than 200 times faster. Of course, this operation is quite contrived. A better approach is to simply do ``xs + ys.T``, but for more complex functions :func:`vmap` can be quite handy. diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index a531c3d5..75c0fd73 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.20.0', + VERSION: '0.21.0', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/build/html/annotated.html b/docs/build/html/annotated.html index 87141e0a..cbd46ef8 100644 --- a/docs/build/html/annotated.html +++ b/docs/build/html/annotated.html @@ -236,129 +236,135 @@ $(function(){ initResizable(false); });  Ccomplex64_t  CConcatenate  CConjugate - CContiguousIterator - CConvolution - CCopy - CCos - CCosh - CCustomTransforms - CDefaultContiguousReduce - CDefaultStridedReduce - CDepends - CDevice - CDivide - CDivMod - CDtype - CEigh - CEqual - CErf - CErfInv - CEvent - CExp - CExpm1 - CFFT - CFloor - CFull - CGather - CGatherMM - CGatherQMM - CGreater - CGreaterEqual - CHadamard - CImag - CInverse - CLess - CLessEqual - CLoad - CLog - CLog1p - CLogAddExp - CLogicalAnd - CLogicalNot - CLogicalOr - CMatmul - CMaximum - CMinimum - CMultiply - CNegative - CNodeNamer - CNotEqual - CNumberOfElements - CPad - CPartition - CPower - CPrimitive - CPrintFormatter - CQRF - CQuantizedMatmul - CRandomBits - CReal - CReduce - CReductionPlan - CRemainder - CReshape - CRound - CScan - CScatter - CSelect - CSigmoid - CSign - CSin - CSinh - CSlice - CSliceUpdate - CSoftmax - CSort - CSplit - CSqrt - CSquare - CStopGradient - CStream - CStreamContext - CSubtract - CSVD - CTan - CTanh - CTranspose - CTypeToDtype - CUnaryPrimitive - CUniform - CView + CContiguous + CContiguousIterator + CConvolution + CCopy + CCos + CCosh + CCustomTransforms + CDefaultContiguousReduce + CDefaultStridedReduce + CDepends + CDevice + CDivide + CDivMod + CDtype + CEigh + CEqual + CErf + CErfInv + CEvent + CExp + CExpm1 + CFFT + CFloor + CFull + CGather + CGatherMM + CGatherQMM + CGreater + CGreaterEqual + CHadamard + CImag + CInverse + CLess + CLessEqual + CLoad + CLog + CLog1p + CLogAddExp + CLogicalAnd + CLogicalNot + CLogicalOr + CMatmul + CMaximum + CMinimum + CMultiply + CNegative + CNodeNamer + CNotEqual + CNumberOfElements + CPad + CPartition + CPower + CPrimitive + CPrintFormatter + CQRF + CQuantizedMatmul + CRandomBits + CReal + CReduce + CReductionPlan + CRemainder + CReshape + CRound + CScan + CScatter + CSelect + CSigmoid + CSign + CSin + CSinh + CSlice + CSliceUpdate + CSoftmax + CSort + CSplit + CSqrt + CSquare + CStopGradient + CStream + CStreamContext + CSubtract + CSVD + CTan + CTanh + CTranspose + CTypeToDtype + CUnaryPrimitive + CUniform + CView  Nsteel  CAccumHelper - CBaseMMAFrag - CBaseMMAFrag< T, 8, 8 > - CBlockLoader - CReadVector - CBlockMMA - CBlockSwizzle - CChannelHelper - CChannelHelper< 1 > - CChannelHelper< 2 > - CChannelHelper< 3 > - CChannelHelper< 4 > - CConv2DGeneralBaseInfo - CConv2DGeneralJumpParams - CConv2DInputBlockLoaderGeneral - CConv2DInputBlockLoaderLargeFilter - CConv2DInputBlockLoaderSmallChannels - CConv2DInputBlockLoaderSmallFilter - CConv2DWeightBlockLoader - CConv2DWeightBlockLoaderGeneral - CConv2DWeightBlockLoaderSmallChannels - CGEMMAddMMParams - CGEMMKernel - CGEMMParams - CGEMMSpiltKParams - CImplicitGemmConv2DParams - Cintegral_constant - Cis_integral - Cis_integral< integral_constant< T, v > > - CLoopAlignment - CMMATile - CTransformAdd - CTransformAxpby - CTransformNone + CAttnParams + CBaseMMAFrag + CBaseMMAFrag< T, 8, 8 > + CBlockLoader + CReadVector + CBlockLoaderT + CBlockMMA + CBlockSwizzle + CChannelHelper + CChannelHelper< 1 > + CChannelHelper< 2 > + CChannelHelper< 3 > + CChannelHelper< 4 > + CConv2DGeneralBaseInfo + CConv2DGeneralJumpParams + CConv2DInputBlockLoaderGeneral + CConv2DInputBlockLoaderLargeFilter + CConv2DInputBlockLoaderSmallChannels + CConv2DInputBlockLoaderSmallFilter + CConv2DWeightBlockLoader + CConv2DWeightBlockLoaderGeneral + CConv2DWeightBlockLoaderSmallChannels + CCShape + CGEMMAddMMParams + CGEMMKernel + CGEMMParams + CGEMMSpiltKParams + CImplicitGemmConv2DParams + Cintegral_constant + Cis_integral + Cis_integral< integral_constant< T, v > > + CLayout2D + CLoopAlignment + CMMATile + CShape2D + CTransformAdd + CTransformAxpby + CTransformNone  Npocketfft  Ndetail  Nthreading @@ -423,88 +429,93 @@ $(function(){ initResizable(false); });  CCumSum  CDivide  CDivMod - CEqual - CErf - CErfInv - CExp - CExpm1 - CFloor - CFloorDivide - CGEMVKernel - CGEMVTKernelVector matrix multiplication - CGreater - CGreaterEqual - CImag - CIndices - CKernelMergeSort - CKernelMultiBlockMergeSort - CLeftShift - CLess - CLessEqual - CLessThan - CLimits - CLimits< bfloat16_t > - CLimits< bool > - CLimits< complex64_t > - CLimits< float > - CLimits< half > - CLimits< int16_t > - CLimits< int32_t > - CLimits< int64_t > - CLimits< int8_t > - CLimits< uint16_t > - CLimits< uint32_t > - CLimits< uint64_t > - CLimits< uint8_t > - CLog - CLog10 - CLog1p - CLog2 - CLogAddExp - CLogicalAnd - CLogicalNot - CLogicalOr - Clooped_elem_to_loc - Clooped_elem_to_loc< 0, offset_t > - Clooped_elem_to_loc< 1, offset_t > - CMax - CMaximum - CMin - CMinimum - Cmlx_atomic - Cmlx_atomic< T, enable_if_t< is_metal_atomic< T > > > - CMLXConvParams - CMLXFastAttentionParams - CMLXScaledDotProductAttentionParams - CMultiply - CNaNEqual - CNegative - CNone - CNotEqual - COr - CPower - CProd - CQuantizedBlockLoader - CReadWriter - CReal - CRemainder - CRightShift - CRound - CRsqrt - CScaleOp - CSelect - CSigmoid - CSign - CSin - CSinh - CSqrt - CSquare - CSubtract - CSum - CTan - CTanh - CThreadPool - CThreadSort + CDivOp + CEqual + CErf + CErfInv + CExp + CExpm1 + CExpSubOp + CFloor + CFloorDivide + CGEMVKernel + CGEMVTKernelVector matrix multiplication + CGreater + CGreaterEqual + CImag + CIndices + CKernelMergeSort + CKernelMultiBlockMergeSort + CLeftShift + CLess + CLessEqual + CLessThan + CLimits + CLimits< bfloat16_t > + CLimits< bool > + CLimits< complex64_t > + CLimits< float > + CLimits< half > + CLimits< int16_t > + CLimits< int32_t > + CLimits< int64_t > + CLimits< int8_t > + CLimits< uint16_t > + CLimits< uint32_t > + CLimits< uint64_t > + CLimits< uint8_t > + CLog + CLog10 + CLog1p + CLog2 + CLogAddExp + CLogicalAnd + CLogicalNot + CLogicalOr + CLoopedElemToLoc + CLoopedElemToLoc< 1, OffsetT, false > + CLoopedElemToLoc< 1, OffsetT, true > + CMax + CMaximum + CMaxOp + CMin + CMinimum + Cmlx_atomic + Cmlx_atomic< T, enable_if_t< is_metal_atomic< T > > > + CMLXConvParams + CMulOp + CMultiply + CNaNEqual + CNegative + CNone + CNotEqual + COr + CPower + CProd + CQuantizedBlockLoader + CReadWriter + CReal + CRemainder + CRightShift + CRound + CRsqrt + CScaleOp + CSelect + CSigmoid + CSign + CSin + CSinh + CSqrt + CSquare + CSubOp + CSubtract + CSum + CSumOp + CTan + CTanh + CThreadPool + CThreadSort + CTransformScale diff --git a/docs/build/html/atomic_8h_source.html b/docs/build/html/atomic_8h_source.html index 796c0a05..a5c220e8 100644 --- a/docs/build/html/atomic_8h_source.html +++ b/docs/build/html/atomic_8h_source.html @@ -472,9 +472,9 @@ $(function(){ initResizable(false); });
METAL_FUNC void mlx_atomic_fetch_mul_explicit(device mlx_atomic< T > *object, T val, size_t offset)
Definition atomic.h:91
Op op
Definition binary.h:129
array identity(int n, Dtype dtype, StreamOrDevice s={})
Create a square matrix of shape (n,n) of zeros, and ones in the major diagonal.
-
Definition bf16.h:265
-
METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:234
-
METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:234
+
Definition bf16_math.h:226
+
METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:232
+
METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:232
Group init(bool strict=false)
Initialize the distributed backend and return the group containing all discoverable processes.
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.
atomic< T > val
Definition atomic.h:31
diff --git a/docs/build/html/attn_2loader_8h.html b/docs/build/html/attn_2loader_8h.html new file mode 100644 index 00000000..882286ae --- /dev/null +++ b/docs/build/html/attn_2loader_8h.html @@ -0,0 +1,126 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/loader.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
loader.h File Reference
+
+ + + +
+ + diff --git a/docs/build/html/attn_2loader_8h_source.html b/docs/build/html/attn_2loader_8h_source.html new file mode 100644 index 00000000..311bc155 --- /dev/null +++ b/docs/build/html/attn_2loader_8h_source.html @@ -0,0 +1,426 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/loader.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
loader.h
+
+
+Go to the documentation of this file.
1// Copyright © 2024 Apple Inc.
+
2
+
3#pragma once
+
4
+ +
6
+
8// Loading helper
+
10
+
11namespace mlx {
+
12namespace steel {
+
13
+
14template <
+
15 typename T,
+
16 short BROWS,
+
17 short BCOLS,
+
18 short dst_ld,
+
19 short reduction_dim,
+
20 short tgp_size,
+
21 short alignment = 1,
+
22 short n_reads = (BCOLS * BROWS) / (tgp_size),
+
23 short TCOLS = BCOLS / n_reads,
+
24 short TROWS = tgp_size / TCOLS>
+
25struct BlockLoader {
+
26 STEEL_CONST short n_rows = (BROWS + TROWS - 1) / TROWS;
+
27 STEEL_CONST short vec_size = n_reads;
+
28
+
29 // Leading dimension for src
+
30 const int src_ld;
+
31 const int tile_stride;
+
32
+
33 // Thread location indices
+
34 const short thread_idx;
+
35 const short bi;
+
36 const short bj;
+
37
+
38 // threadgroup and device memory
+
39 threadgroup T* dst;
+
40 const device T* src;
+
41
+
42 struct alignas(alignment * sizeof(T)) ReadVector {
+
43 uint8_t v[sizeof(T) * vec_size];
+
44 };
+
45
+
46 /* Constructor */
+
+
47 METAL_FUNC BlockLoader(
+
48 const device T* src_,
+
49 const int src_ld_,
+
50 threadgroup T* dst_,
+
51 ushort simd_group_id [[simdgroup_index_in_threadgroup]],
+
52 ushort simd_lane_id [[thread_index_in_simdgroup]])
+
53 : src_ld(src_ld_),
+
54 tile_stride(reduction_dim ? BCOLS : BROWS * src_ld),
+
55 thread_idx(simd_group_id * 32 + simd_lane_id),
+
56 bi(thread_idx / TCOLS),
+
57 bj(vec_size * (thread_idx % TCOLS)),
+
58 dst(dst_ + bi * dst_ld + bj),
+
59 src(src_ + bi * src_ld + bj) {}
+
+
60
+
61 /* Apply operation to threadgroup without bound checking */
+
62 template <typename UnaryOp>
+
+
63 METAL_FUNC void apply_inplace_op(thread const UnaryOp& op) const {
+ +
65 for (short i = 0; i < BROWS; i += TROWS) {
+ +
67 for (short j = 0; j < vec_size; j++) {
+
68 dst[i * dst_ld + j] = op.apply(dst[i * dst_ld + j]);
+
69 }
+
70 }
+
71 }
+
+
72
+
73 /* Load from device memory into threadgroup memory - without bound checking */
+
+
74 METAL_FUNC void load_unsafe() const {
+ +
76 for (short i = 0; i < BROWS; i += TROWS) {
+
77 *((threadgroup ReadVector*)(&dst[i * dst_ld])) =
+
78 *((const device ReadVector*)(&src[i * src_ld]));
+
79 }
+
80 }
+
+
81
+
82 /* Load from device memory into threadgroup memory - with bound checking */
+
+
83 METAL_FUNC void load_safe(short2 src_tile_dim) const {
+
84 src_tile_dim = src_tile_dim - short2(bj, bi);
+
85
+
86 // Skip loading if thread has no valid reads
+
87 if (src_tile_dim.x <= 0 || src_tile_dim.y <= 0) {
+ +
89 for (short i = 0; i < BROWS; i += TROWS) {
+ +
91 for (short j = 0; j < vec_size; j++) {
+
92 dst[i * dst_ld + j] = T(0);
+
93 }
+
94 }
+
95 return;
+
96 }
+
97
+
98 // Use fast thread memory for bound checks
+
99 bool tmp_idx[vec_size];
+
100 T tmp_val[vec_size];
+
101
+ +
103 for (short i = 0; i < BROWS; i += TROWS) {
+
104 // Make sure tmp_idx only contains valid indices
+ +
106 for (short j = 0; j < vec_size; j++) {
+
107 tmp_idx[j] = (i < src_tile_dim.y) && (j < src_tile_dim.x);
+
108 }
+
109
+
110 // Read valid indices into tmp_val
+ +
112 for (short j = 0; j < vec_size; j++) {
+
113 tmp_val[j] = src[(tmp_idx[j] ? i * src_ld + j : 0)];
+
114 }
+
115
+
116 // Zero out uneeded values
+ +
118 for (short j = 0; j < vec_size; j++) {
+
119 tmp_val[j] = tmp_idx[j] ? tmp_val[j] : T(0);
+
120 }
+
121
+
122 // Copy values to threadgroup memory
+ +
124 for (short j = 0; j < vec_size; j++) {
+
125 dst[i * dst_ld + j] = tmp_val[j];
+
126 }
+
127 }
+
128 }
+
+
129
+
130 /* Iteration helper */
+
+
131 METAL_FUNC void next() {
+
132 src += tile_stride;
+
133 }
+
+
134};
+
135
+
136template <int R, int C>
+
+
137struct CShape {
+ + +
140};
+
+
141
+
142template <
+
143 typename T,
+
144 short BROWS,
+
145 short BCOLS,
+
146 short kDstStrRow,
+
147 short kDstStrCol,
+
148 short reduction_dim,
+
149 short tgp_size,
+
150 short n_reads = (BCOLS * BROWS) / (tgp_size),
+
151 short TCOLS = BCOLS / n_reads,
+
152 short TROWS = tgp_size / TCOLS>
+
+ +
154 STEEL_CONST short n_rows = (BROWS + TROWS - 1) / TROWS;
+
155 STEEL_CONST short vec_size = n_reads;
+
156
+
157 // Leading dimension for src
+
158 const int src_ld;
+
159 const int tile_stride;
+
160
+
161 // Thread location indices
+
162 const short thread_idx;
+
163 const short bi;
+
164 const short bj;
+
165
+
166 // threadgroup and device memory
+
167 threadgroup T* dst;
+
168 const device T* src;
+
169
+
170 /* Constructor */
+
+
171 METAL_FUNC BlockLoaderT(
+
172 const device T* src_,
+
173 const int src_ld_,
+
174 threadgroup T* dst_,
+
175 ushort simd_group_id [[simdgroup_index_in_threadgroup]],
+
176 ushort simd_lane_id [[thread_index_in_simdgroup]])
+
177 : src_ld(src_ld_),
+
178 tile_stride(reduction_dim ? BCOLS : BROWS * src_ld),
+
179 thread_idx(simd_group_id * 32 + simd_lane_id),
+
180 bi(thread_idx / TCOLS),
+
181 bj(vec_size * (thread_idx % TCOLS)),
+
182 dst(dst_ + bi * kDstStrRow + bj * kDstStrCol),
+
183 src(src_ + bi * src_ld + bj) {}
+
+
184
+
185 /* Apply operation to threadgroup without bound checking */
+
186 template <typename UnaryOp>
+
+
187 METAL_FUNC void apply_inplace_op(thread const UnaryOp& op) const {
+ +
189 for (short i = 0; i < BROWS; i += TROWS) {
+ +
191 for (short j = 0; j < vec_size; j++) {
+
192 dst[i * kDstStrRow + j * kDstStrCol] =
+
193 op.apply(dst[i * kDstStrRow + j * kDstStrCol]);
+
194 }
+
195 }
+
196 }
+
+
197
+
198 /* Load from device memory into threadgroup memory - without bound checking */
+
+
199 METAL_FUNC void load_unsafe() const {
+ +
201 for (short i = 0; i < BROWS; i += TROWS) {
+ +
203 for (short j = 0; j < vec_size; j++) {
+
204 dst[i * kDstStrRow + j * kDstStrCol] = src[i * src_ld + j];
+
205 }
+
206 }
+
207 }
+
+
208
+
209 /* Load from device memory into threadgroup memory - with bound checking */
+
+
210 METAL_FUNC void load_safe(short2 src_tile_dim) const {
+
211 src_tile_dim = src_tile_dim - short2(bj, bi);
+
212
+
213 // Skip loading if thread has no valid reads
+
214 if (src_tile_dim.x <= 0 || src_tile_dim.y <= 0) {
+ +
216 for (short i = 0; i < BROWS; i += TROWS) {
+ +
218 for (short j = 0; j < vec_size; j++) {
+
219 dst[i * kDstStrRow + j * kDstStrCol] = T(0);
+
220 }
+
221 }
+
222 return;
+
223 }
+
224
+
225 // Use fast thread memory for bound checks
+
226 bool tmp_idx[vec_size];
+
227 T tmp_val[vec_size];
+
228
+ +
230 for (short i = 0; i < BROWS; i += TROWS) {
+
231 // Make sure tmp_idx only contains valid indices
+ +
233 for (short j = 0; j < vec_size; j++) {
+
234 tmp_idx[j] = (i < src_tile_dim.y) && (j < src_tile_dim.x);
+
235 }
+
236
+
237 // Read valid indices into tmp_val
+ +
239 for (short j = 0; j < vec_size; j++) {
+
240 tmp_val[j] = src[(tmp_idx[j] ? i * src_ld + j : 0)];
+
241 }
+
242
+
243 // Zero out uneeded values
+ +
245 for (short j = 0; j < vec_size; j++) {
+
246 tmp_val[j] = tmp_idx[j] ? tmp_val[j] : T(0);
+
247 }
+
248
+
249 // Copy values to threadgroup memory
+ +
251 for (short j = 0; j < vec_size; j++) {
+
252 dst[i * kDstStrRow + j * kDstStrCol] = tmp_val[j];
+
253 }
+
254 }
+
255 }
+
+
256
+
257 /* Iteration helper */
+
+
258 METAL_FUNC void next() {
+
259 src += tile_stride;
+
260 }
+
+
261};
+
+
262
+
263} // namespace steel
+
264} // namespace mlx
+
Op op
Definition binary.h:129
+
Definition allocator.h:7
+ +
#define STEEL_PRAGMA_UNROLL
Definition defines.h:4
+
#define STEEL_CONST
Definition defines.h:3
+ +
uint8_t v[sizeof(T) *vec_size]
Definition loader.h:43
+
const short thread_idx
Definition loader.h:34
+
METAL_FUNC BlockLoader(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)
Definition loader.h:47
+
STEEL_CONST short vec_size
Definition loader.h:27
+
METAL_FUNC void next()
Definition loader.h:131
+
METAL_FUNC void load_unsafe() const
Definition loader.h:74
+
const short bj
Definition loader.h:36
+
STEEL_CONST short n_rows
Definition loader.h:26
+
const short bi
Definition loader.h:35
+
const int src_ld
Definition loader.h:30
+
const int tile_stride
Definition loader.h:31
+
METAL_FUNC void load_safe(short2 src_tile_dim) const
Definition loader.h:83
+
const device T * src
Definition loader.h:40
+
METAL_FUNC void apply_inplace_op(thread const UnaryOp &op) const
Definition loader.h:63
+
threadgroup T * dst
Definition loader.h:39
+
Definition loader.h:153
+
METAL_FUNC BlockLoaderT(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)
Definition loader.h:171
+
STEEL_CONST short n_rows
Definition loader.h:154
+
METAL_FUNC void apply_inplace_op(thread const UnaryOp &op) const
Definition loader.h:187
+
const int tile_stride
Definition loader.h:159
+
METAL_FUNC void next()
Definition loader.h:258
+
const short bi
Definition loader.h:163
+
threadgroup T * dst
Definition loader.h:167
+
const device T * src
Definition loader.h:168
+
STEEL_CONST short vec_size
Definition loader.h:155
+
METAL_FUNC void load_safe(short2 src_tile_dim) const
Definition loader.h:210
+
const short bj
Definition loader.h:164
+
METAL_FUNC void load_unsafe() const
Definition loader.h:199
+
const int src_ld
Definition loader.h:158
+
const short thread_idx
Definition loader.h:162
+
Definition loader.h:137
+
STEEL_CONST int kCols
Definition loader.h:139
+
STEEL_CONST int kRows
Definition loader.h:138
+
+ + +
+ + diff --git a/docs/build/html/attn_2mma_8h.html b/docs/build/html/attn_2mma_8h.html new file mode 100644 index 00000000..9c7def40 --- /dev/null +++ b/docs/build/html/attn_2mma_8h.html @@ -0,0 +1,142 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/mma.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
mma.h File Reference
+
+
+
#include <metal_simdgroup>
+#include <metal_simdgroup_matrix>
+#include <metal_stdlib>
+#include "mlx/backend/metal/kernels/steel/attn/transforms.h"
+#include "mlx/backend/metal/kernels/steel/defines.h"
+#include "mlx/backend/metal/kernels/steel/utils/integral_constant.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Classes

struct  mlx::steel::Shape2D< RInt, CInt >
 
struct  mlx::steel::Layout2D< Shape, Layout >
 
struct  mlx::steel::BaseMMAFrag< T, kFragRows_, kFragCols_ >
 
struct  mlx::steel::BaseMMAFrag< T, 8, 8 >
 
struct  mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >
 
struct  mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >
 
+ + + + + +

+Namespaces

namespace  mlx
 
namespace  mlx::steel
 
+ + + + +

+Functions

template<typename T , typename U , int M, int N, int K>
METAL_FUNC void mlx::steel::tile_matmad (thread MMATile< T, M, N > &D, thread MMATile< U, M, K > &A, thread MMATile< U, K, N > &B, thread MMATile< T, M, N > &C)
 
+
+ + +
+ + diff --git a/docs/build/html/attn_2mma_8h_source.html b/docs/build/html/attn_2mma_8h_source.html new file mode 100644 index 00000000..156ab79e --- /dev/null +++ b/docs/build/html/attn_2mma_8h_source.html @@ -0,0 +1,986 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/mma.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
mma.h
+
+
+Go to the documentation of this file.
1// Copyright © 2024 Apple Inc.
+
2
+
3#pragma once
+
4
+
5#include <metal_simdgroup>
+
6#include <metal_simdgroup_matrix>
+
7#include <metal_stdlib>
+
8
+ + + +
12
+
13using namespace metal;
+
14
+
16// MMA helper
+
18
+
19namespace mlx {
+
20namespace steel {
+
21
+
22template <typename RInt, typename CInt>
+
+
23struct Shape2D {
+
24 RInt r;
+
25 CInt c;
+
26
+
27 Shape2D(RInt r_, CInt c_) : r(r_), c(c_) {}
+
28};
+
+
29
+
30template <typename Shape, typename Layout>
+
+
31struct Layout2D {
+
32 Shape shape;
+
33 Layout layout;
+
34};
+
+
35
+
36template <typename T, int kFragRows_, int kFragCols_>
+
37struct BaseMMAFrag {
+
38 static_assert(
+
39 kFragRows_ == 8,
+
40 "Only 8 x 8 fragment matrices are currently supported");
+
41 static_assert(
+
42 kFragCols_ == 8,
+
43 "Only 8 x 8 fragment matrices are currently supported");
+
44};
+
45
+
46template <typename T>
+
47struct BaseMMAFrag<T, 8, 8> {
+
48 STEEL_CONST int kFragRows = 8;
+
49 STEEL_CONST int kFragCols = 8;
+
50
+
51 STEEL_CONST int kElemsPerFrag = (kFragRows * kFragCols) / 32;
+
52
+
53 STEEL_CONST int kElemRows = 1;
+
54 STEEL_CONST int kElemCols = 2;
+
55
+
56 static_assert(
+
57 kElemRows * kElemCols == kElemsPerFrag,
+
58 "MMAFrag shape is not consistent with MMAFrag size");
+
59
+
60 typedef metal::simdgroup_matrix<T, kFragRows, kFragCols> mat_type;
+
61 typedef metal::vec<T, kElemsPerFrag> frag_type;
+
62 typedef metal::vec<T, kElemRows> row_frag_type;
+
63 typedef metal::vec<T, kElemCols> col_frag_type;
+
64
+
+
65 METAL_FUNC static constexpr short2 get_coord(ushort simd_lane_id
+
66 [[thread_index_in_simdgroup]]) {
+
67 const short qid = simd_lane_id / 4;
+
68 const short fm = (qid & 4) + ((simd_lane_id / 2) % 4);
+
69 const short fn = (qid & 2) * 2 + (simd_lane_id % 2) * 2;
+
70 return short2{fn, fm};
+
71 }
+
+
72
+
73 template <typename SrcPtrType, typename StrX, typename StrY>
+
74 METAL_FUNC static constexpr void
+
+
75 load(thread frag_type& dst, SrcPtrType src, StrX str_x, StrY str_y) {
+ +
77 for (short i = 0; i < kElemRows; i++) {
+ +
79 for (short j = 0; j < kElemCols; j++) {
+
80 dst[i * kElemCols + j] = static_cast<T>(src[i * str_x + j * str_y]);
+
81 }
+
82 }
+
83 }
+
+
84
+
85 template <
+
86 typename SrcPtrType,
+
87 typename StrX,
+
88 typename StrY,
+
89 typename LimX,
+
90 typename LimY,
+
91 typename OffX,
+
92 typename OffY>
+
+
93 METAL_FUNC static constexpr void load_safe(
+
94 thread frag_type& dst,
+
95 SrcPtrType src,
+
96 StrX str_x,
+
97 StrY str_y,
+
98 LimX lim_x,
+
99 LimY lim_y,
+
100 OffX off_x = Int<0>{},
+
101 OffY off_y = Int<0>{}) {
+ +
103 for (short i = 0; i < kElemRows; i++) {
+ +
105 for (short j = 0; j < kElemCols; j++) {
+
106 if ((off_x + i) < lim_x && (off_y + j) < lim_y) {
+
107 dst[i * kElemCols + j] =
+
108 static_cast<T>(src[(off_x + i) * str_x + (off_x + j) * str_y]);
+
109 } else {
+
110 dst[i * kElemCols + j] = T(0);
+
111 }
+
112 }
+
113 }
+
114 }
+
+
115
+
116 template <typename DstPtrType, typename StrX, typename StrY>
+
117 METAL_FUNC static constexpr void
+
+
118 store(const thread frag_type& src, DstPtrType dst, StrX str_x, StrY str_y) {
+ +
120
+ +
122 for (short i = 0; i < kElemRows; i++) {
+ +
124 for (short j = 0; j < kElemCols; j++) {
+
125 dst[i * str_x + j * str_y] = static_cast<U>(src[i * kElemCols + j]);
+
126 }
+
127 }
+
128 }
+
+
129
+
130 template <
+
131 typename DstPtrType,
+
132 typename StrX,
+
133 typename StrY,
+
134 typename LimX,
+
135 typename LimY,
+
136 typename OffX,
+
137 typename OffY>
+
+
138 METAL_FUNC static constexpr void store_safe(
+
139 const thread frag_type& src,
+
140 DstPtrType dst,
+
141 StrX str_x,
+
142 StrY str_y,
+
143 LimX lim_x,
+
144 LimY lim_y,
+
145 OffX off_x = Int<0>{},
+
146 OffY off_y = Int<0>{}) {
+ +
148
+ +
150 for (short i = 0; i < kElemRows; i++) {
+ +
152 for (short j = 0; j < kElemCols; j++) {
+
153 if ((off_x + i) < lim_x && (off_y + j) < lim_y) {
+
154 dst[(off_x + i) * str_x + (off_y + j) * str_y] =
+
155 static_cast<U>(src[i * kElemCols + j]);
+
156 }
+
157 }
+
158 }
+
159 }
+
+
160
+
+
161 METAL_FUNC static constexpr void mma(
+
162 thread frag_type& D,
+
163 thread frag_type& A,
+
164 thread frag_type& B,
+
165 thread frag_type& C) {
+
166 mat_type D_mat;
+
167 mat_type A_mat;
+
168 mat_type B_mat;
+
169 mat_type C_mat;
+
170
+
171 reinterpret_cast<thread frag_type&>(A_mat.thread_elements()) = A;
+
172 reinterpret_cast<thread frag_type&>(B_mat.thread_elements()) = B;
+
173 reinterpret_cast<thread frag_type&>(C_mat.thread_elements()) = C;
+
174
+
175 mma(D_mat, A_mat, B_mat, C_mat);
+
176
+
177 D = reinterpret_cast<thread frag_type&>(D_mat.thread_elements());
+
178 }
+
+
179
+
+
180 METAL_FUNC static constexpr void mma(
+
181 thread mat_type& D,
+
182 thread mat_type& A,
+
183 thread mat_type& B,
+
184 thread mat_type& C) {
+
185 simdgroup_multiply_accumulate(D, A, B, C);
+
186 }
+
+
187
+
188 template <typename Op>
+
+
189 METAL_FUNC static constexpr void row_reduce(
+
190 thread const frag_type& inp_vals,
+
191 thread T* reduced_vals) {
+
192 T thr_reduce = Op::apply(inp_vals.x, inp_vals.y);
+
193
+
194 T qgr_reduce = simd_shuffle_xor(thr_reduce, ushort(1));
+
195 qgr_reduce = Op::apply(thr_reduce, qgr_reduce);
+
196
+
197 T sgr_reduce = simd_shuffle_xor(qgr_reduce, ushort(8));
+
198 sgr_reduce = Op::apply(qgr_reduce, sgr_reduce);
+
199
+
200 reduced_vals[0] = Op::apply(reduced_vals[0], sgr_reduce);
+
201 }
+
+
202
+
203 template <typename Op>
+
+
204 METAL_FUNC static constexpr void row_bin_op(
+
205 thread frag_type& inp_vals,
+
206 thread T* row_vals) {
+ +
208 for (short i = 0; i < kElemRows; i++) {
+ +
210 for (short j = 0; j < kElemCols; j++) {
+
211 inp_vals[i * kElemCols + j] =
+
212 Op::apply(inp_vals[i * kElemCols + j], row_vals[i]);
+
213 }
+
214 }
+
215 }
+
+
216};
+
217
+
218template <
+
219 typename T,
+
220 int kTileRows_,
+
221 int kTileCols_,
+
222 class MMAFrag_ = BaseMMAFrag<T, 8, 8>>
+
223struct MMATile {
+
224 using MMAFrag_t = MMAFrag_;
+
225 using elem_type = T;
+
226 STEEL_CONST int kFragRows = MMAFrag_t::kFragRows;
+
227 STEEL_CONST int kFragCols = MMAFrag_t::kFragCols;
+
228 STEEL_CONST int kElemsPerFrag = MMAFrag_t::kElemsPerFrag;
+
229
+
230 STEEL_CONST int kTileRows = kTileRows_;
+
231 STEEL_CONST int kTileCols = kTileCols_;
+
232
+ + +
235
+ + +
238
+
239 STEEL_CONST int kRowsPerThread = kTileRows * MMAFrag_t::kElemRows;
+
240 STEEL_CONST int kColsPerThread = kTileCols * MMAFrag_t::kElemCols;
+
241
+
242 typedef typename MMAFrag_t::mat_type mat_type;
+
243 typedef typename MMAFrag_t::frag_type frag_type;
+
244
+ +
246
+
247 METAL_FUNC MMATile() thread {}
+
248
+
+
249 METAL_FUNC constexpr void clear() {
+ +
251 for (short i = 0; i < kNumFrags; ++i) {
+
252 val_frags[i] = frag_type(0);
+
253 }
+
254 }
+
+
255
+
+
256 METAL_FUNC constexpr thread frag_type& frag_at(const short i, const short j) {
+
257 return val_frags[i * kTileCols + j];
+
258 }
+
+
259
+
+
260 METAL_FUNC constexpr const thread frag_type& frag_at(
+
261 const short i,
+
262 const short j) const {
+
263 return val_frags[i * kTileCols + j];
+
264 }
+
+
265
+
+
266 METAL_FUNC mat_type mat_at(const short i, const short j) {
+
267 mat_type val_mat;
+ +
269 for (short ii = 0; ii < kElemsPerFrag; ++ii) {
+
270 val_mat.thread_elements()[ii] = frag_at(i, j)[ii];
+
271 }
+
272 return val_mat;
+
273 }
+
+
274
+
+
275 METAL_FUNC thread elem_type* elems() {
+
276 return reinterpret_cast<thread elem_type*>(val_frags);
+
277 }
+
+
278
+
+
279 METAL_FUNC const thread elem_type* elems() const {
+
280 return reinterpret_cast<const thread elem_type*>(val_frags);
+
281 }
+
+
282
+
283 template <typename Op>
+
+
284 METAL_FUNC void row_reduce(thread T vals[kRowsPerThread]) const {
+ +
286 for (short i = 0; i < kTileRows; ++i) {
+ +
288 for (short j = 0; j < kTileCols; ++j) {
+
289 MMAFrag_t::template row_reduce<Op>(
+
290 frag_at(i, j), &vals[i * MMAFrag_t::kElemRows]);
+
291 }
+
292 }
+
293 }
+
+
294
+
295 template <typename Op>
+
+
296 METAL_FUNC void row_bin_op(thread T vals[kRowsPerThread]) {
+ +
298 for (short i = 0; i < kTileRows; ++i) {
+ +
300 for (short j = 0; j < kTileCols; ++j) {
+
301 MMAFrag_t::template row_bin_op<Op>(
+
302 frag_at(i, j), &vals[i * MMAFrag_t::kElemRows]);
+
303 }
+
304 }
+
305 }
+
+
306
+
307 template <typename U, int w_x, int w_y, int str_x, int str_y>
+
+
308 METAL_FUNC void load(const threadgroup U* src) {
+ +
310 for (short i = 0; i < kTileRows; ++i) {
+ +
312 for (short j = 0; j < kTileCols; ++j) {
+
313 MMAFrag_t::load(
+
314 frag_at(i, j),
+
315 &(
+
316 src[(i * kFragRows) * w_x * str_x +
+
317 (j * kFragCols) * w_y * str_y]),
+
318 Int<str_x>{},
+
319 Int<str_y>{});
+
320 }
+
321 }
+
322 }
+
+
323
+
324 template <typename U, int w_x, int w_y, int str_x, int str_y>
+
+
325 METAL_FUNC void store(threadgroup U* dst) const {
+ +
327 for (short i = 0; i < kTileRows; ++i) {
+ +
329 for (short j = 0; j < kTileCols; ++j) {
+
330 MMAFrag_t::store(
+
331 frag_at(i, j),
+
332 &(
+
333 dst[(i * kFragRows) * w_x * str_x +
+
334 (j * kFragCols) * w_y * str_y]),
+
335 Int<str_x>{},
+
336 Int<str_y>{});
+
337 }
+
338 }
+
339 }
+
+
340
+
341 template <typename U, int w_x, int w_y>
+
+
342 METAL_FUNC void load(const device U* src, const int ld) {
+ +
344 for (short i = 0; i < kTileRows; ++i) {
+ +
346 for (short j = 0; j < kTileCols; ++j) {
+
347 MMAFrag_t::load(
+
348 frag_at(i, j),
+
349 &(src[(i * kFragRows) * w_x * ld + (j * kFragCols) * w_y]),
+
350 ld,
+
351 Int<1>{});
+
352 }
+
353 }
+
354 }
+
+
355
+
356 template <typename U, int w_x, int w_y>
+
+
357 METAL_FUNC void store(device U* dst, const int ld) const {
+ +
359 for (short i = 0; i < kTileRows; ++i) {
+ +
361 for (short j = 0; j < kTileCols; ++j) {
+
362 MMAFrag_t::store(
+
363 frag_at(i, j),
+
364 &(dst[(i * kFragRows) * w_x * ld + (j * kFragCols) * w_y]),
+
365 ld,
+
366 Int<1>{});
+
367 }
+
368 }
+
369 }
+
+
370
+
371 template <typename U, int w_x, int w_y>
+
372 METAL_FUNC void
+
+
373 load_safe(const device U* src, const int ld, const short2 src_tile_dims) {
+ +
375 for (int i = 0; i < kTileRows; ++i) {
+ +
377 for (int j = 0; j < kTileCols; ++j) {
+
378 MMAFrag_t::load_safe(
+
379 frag_at(i, j),
+
380 src,
+
381 ld,
+
382 Int<1>{},
+
383 src_tile_dims.y,
+
384 src_tile_dims.x,
+
385 (i * kFragRows) * w_x,
+
386 (j * kFragCols) * w_y);
+
387 }
+
388 }
+
389 }
+
+
390
+
391 template <typename U, int w_x, int w_y>
+
392 METAL_FUNC void
+
+
393 store_safe(device U* dst, const int ld, const short2 dst_tile_dims) const {
+ +
395 for (int i = 0; i < kTileRows; ++i) {
+ +
397 for (int j = 0; j < kTileCols; ++j) {
+
398 MMAFrag_t::store_safe(
+
399 frag_at(i, j),
+
400 dst,
+
401 ld,
+
402 Int<1>{},
+
403 dst_tile_dims.y,
+
404 dst_tile_dims.x,
+
405 (i * kFragRows) * w_x,
+
406 (j * kFragCols) * w_y);
+
407 }
+
408 }
+
409 }
+
+
410};
+
411
+
412template <typename T, typename U, int M, int N, int K>
+
+
413METAL_FUNC void tile_matmad(
+
414 thread MMATile<T, M, N>& D,
+
415 thread MMATile<U, M, K>& A,
+
416 thread MMATile<U, K, N>& B,
+
417 thread MMATile<T, M, N>& C) {
+ +
419 for (short k = 0; k < K; ++k) {
+ +
421 for (short m = 0; m < M; ++m) {
+ +
423 for (short n = 0; n < N; ++n) {
+
424 short n_serp = (m % 2) ? (N - 1 - n) : n;
+ +
426 D.frag_at(m, n_serp),
+
427 A.frag_at(m, k),
+
428 B.frag_at(k, n_serp),
+
429 C.frag_at(m, n_serp));
+
430 }
+
431 }
+
432 }
+
433}
+
+
434
+
435template <
+
436 typename T,
+
437 typename U,
+
438 int BM,
+
439 int BN,
+
440 int BK,
+
441 int WM,
+
442 int WN,
+
443 bool transpose_a,
+
444 bool transpose_b,
+
445 short lda_tgp,
+
446 short ldb_tgp,
+
447 typename AccumType = float,
+
448 typename Epilogue = TransformNone<U, AccumType>>
+
449struct BlockMMA {
+
450 // MMAFrag size
+ + +
453
+
454 // Warp tile simdgroup matrix strides along M
+ +
456 // Warp tile simdgroup matrix strides along M
+ +
458
+
459 // Warp tile size along M
+ +
461 // Warp tile size along N
+ +
463
+
464 // Threadgroup A strides
+
465 STEEL_CONST short A_str_m = transpose_a ? 1 : lda_tgp; // M
+
466 STEEL_CONST short A_str_k = transpose_a ? lda_tgp : 1; // K
+
467
+
468 // Threadgroup B strides
+
469 STEEL_CONST short B_str_k = transpose_b ? 1 : ldb_tgp; // K
+
470 STEEL_CONST short B_str_n = transpose_b ? ldb_tgp : 1; // N
+
471
+
472 // Threadgroup strides along K
+ + +
475
+
476 // Simdgroup matrices
+ + + +
480
+
481 // Offsets within threadgroup
+
482 short sm;
+
483 short sn;
+
484
+ + +
487
+
488 /* Constructor */
+
+
489 METAL_FUNC BlockMMA(
+
490 ushort simd_group_id [[simdgroup_index_in_threadgroup]],
+
491 ushort simd_lane_id [[thread_index_in_simdgroup]]) {
+
492 // Determine thread position in simdgroup matrix
+
493 short tm = kFragSize * (simd_group_id / WN);
+
494 short tn = kFragSize * (simd_group_id % WN);
+
495
+
496 short2 simd_coord = MMAFrag_acc_t::get_coord(simd_lane_id);
+
497 sm = simd_coord.y;
+
498 sn = simd_coord.x;
+
499
+
500 // Determine thread and simdgroup offset
+
501 As_offset = (tm + sm) * A_str_m + (sn)*A_str_k; // M, K
+
502 Bs_offset = (sm)*B_str_k + (tn + sn) * B_str_n; // K, N
+
503
+
504 sm += tm;
+
505 sn += tn;
+
506 }
+
+
507
+
508 /* (BM, BK) X (BK, BN) multiply accumulate function */
+
+
509 METAL_FUNC void mma(const threadgroup T* As, const threadgroup T* Bs) {
+
510 // Adjust for simdgroup and thread location
+
511 As += As_offset;
+
512 Bs += Bs_offset;
+
513
+
514 // Iterate over BK in blocks of kFragSize
+ +
516 for (short kk = 0; kk < BK; kk += kFragSize) {
+
517 simdgroup_barrier(mem_flags::mem_none);
+
518
+
519 Atile.template load<T, WM, 1, A_str_m, A_str_k>(As);
+
520
+
521 simdgroup_barrier(mem_flags::mem_none);
+
522
+
523 Btile.template load<T, 1, WN, B_str_k, B_str_n>(Bs);
+
524
+
525 simdgroup_barrier(mem_flags::mem_none);
+
526
+ +
528
+
529 // Progress to next simdgroup tile
+
530 As += tile_stride_a;
+
531 Bs += tile_stride_b;
+
532 }
+
533 }
+
+
534
+
535 /* Store results from simdgroup_matrix results into device memory */
+
+
536 METAL_FUNC void store_result(device U* D, const int ldd) {
+
537 // Apply epilogue
+ +
539 for (short i = 0; i < decltype(Ctile)::kElemsPerTile; i++) {
+
540 Ctile.elems()[i] = Epilogue::apply(Ctile.elems()[i]);
+
541 }
+
542
+
543 // Adjust for simdgroup and thread location
+
544 D += sm * ldd + sn;
+
545
+
546 Ctile.template store<U, WM, WN>(D, ldd);
+
547 }
+
+
548
+
549 METAL_FUNC void
+
+
550 store_result_safe(device U* D, const int ldd, short2 dst_tile_dims) {
+
551 // Apply epilogue
+ +
553 for (short i = 0; i < decltype(Ctile)::kElemsPerTile; i++) {
+
554 Ctile.elems()[i] = Epilogue::apply(Ctile.elems()[i]);
+
555 }
+
556
+
557 // Adjust for simdgroup and thread location
+
558 D += sm * ldd + sn;
+
559 dst_tile_dims -= short2(sn, sm);
+
560
+
561 if (dst_tile_dims.x <= 0 || dst_tile_dims.y <= 0)
+
562 return;
+
563
+
564 Ctile.template store_safe<U, WM, WN>(D, ldd, dst_tile_dims);
+
565 }
+
+
566
+
567 /* Apply epilogue */
+
568 template <typename UnaryEpilogue>
+
+
569 METAL_FUNC void apply_epilogue(thread const UnaryEpilogue& epilogue_op) {
+
570 // Loop over all simdgroup tiles
+ +
572 for (short i = 0; i < decltype(Ctile)::kElemsPerTile; i++) {
+
573 Ctile.elems()[i] = epilogue_op.apply(Ctile.elems()[i]);
+
574 }
+
575 }
+
+
576
+
577 /* Apply epilogue */
+
578 template <typename BinaryEpilogue>
+
+
579 METAL_FUNC void apply_epilogue(
+
580 const device U* C,
+
581 const int ldc,
+
582 const int fdc,
+
583 thread const BinaryEpilogue& epilogue_op) {
+
584 // Adjust for simdgroup and thread location
+
585 C += (sm)*ldc + (sn)*fdc;
+
586
+
587 // Loop over all simdgroup tiles
+ +
589 for (short i = 0; i < TM; i++) {
+ +
591 for (short j = 0; j < TN; j++) {
+
592 // Get accumulated result and associated offset in C
+
593 thread auto& accum = Ctile.frag_at(i, j);
+
594 int offset_c = (i * TM_stride) * ldc + (j * TN_stride) * fdc;
+
595
+
596 // Apply epilogue
+ +
598 for (short k = 0; k < decltype(Ctile)::kElemsPerFrag; k++) {
+
599 accum[k] = epilogue_op.apply(accum[k], C[offset_c + k * fdc]);
+
600 }
+
601 }
+
602 }
+
603 }
+
+
604
+
605 /* Apply epilogue */
+
606 template <typename BinaryEpilogue>
+
+
607 METAL_FUNC void apply_epilogue_safe(
+
608 const device U* C,
+
609 const int ldc,
+
610 const int fdc,
+
611 short2 dst_tile_dims,
+
612 thread const BinaryEpilogue& epilogue_op) {
+
613 // Adjust for simdgroup and thread location
+
614 C += (sm)*ldc + (sn)*fdc;
+
615 dst_tile_dims -= short2(sn, sm);
+
616
+
617 if (dst_tile_dims.x <= 0 || dst_tile_dims.y <= 0)
+
618 return;
+
619
+
620 // Loop over all simdgroup tiles
+ +
622 for (short i = 0; i < TM; i++) {
+ +
624 for (short j = 0; j < TN; j++) {
+
625 // Get accumulated result and associated offset in C
+
626 thread auto& accum = Ctile.frag_at(i, j);
+
627 int offset_c = (i * TM_stride) * ldc + (j * TN_stride) * fdc;
+
628
+
629 constexpr short kelems = decltype(Ctile)::kElemsPerFrag;
+
630
+
631 // Read C
+
632 U c_elems[kelems] = {0};
+
633
+ +
635 for (short k = 0; k < kelems; k++) {
+
636 if ((j * TN_stride + k) < dst_tile_dims.x) {
+
637 c_elems[k] = C[offset_c + k * fdc];
+
638 }
+
639 }
+
640
+
641 // Apply epilogue
+ +
643 for (short k = 0; k < kelems; k++) {
+
644 accum[k] = epilogue_op.apply(accum[k], c_elems[k]);
+
645 }
+
646 }
+
647 }
+
648 }
+
+
649
+
650 /* Store results from simdgroup_matrix results into device memory */
+
+
651 METAL_FUNC void store_result(
+
652 device U* D,
+
653 const int ldd,
+
654 const device U* C,
+
655 const int ldc,
+
656 const int fdc,
+
657 thread const Epilogue& epilogue_op) const {
+
658 // Adjust for simdgroup and thread location
+
659 C += (sm)*ldc + (sn)*fdc;
+
660 D += (sm)*ldd + sn;
+
661
+
662 constexpr short kelems = decltype(Ctile)::kElemsPerFrag;
+
663
+
664 // Loop over all simdgroup tiles
+ +
666 for (short i = 0; i < TM; i++) {
+ +
668 for (short j = 0; j < TN; j++) {
+
669 // Get accumulated result and associated offset in C
+
670 thread const auto& accum = Ctile.frag_at(i, j);
+
671 int offset_c = (i * TM_stride) * ldc + (j * TN_stride) * fdc;
+
672 int offset_d = (i * TM_stride) * ldd + (j * TN_stride);
+
673
+
674 // Apply epilogue
+ +
676 for (short k = 0; k < kelems; k++) {
+
677 D[offset_d + k] = epilogue_op.apply(accum[k], C[offset_c + k * fdc]);
+
678 }
+
679 }
+
680 }
+
681 }
+
+
682
+
+
683 METAL_FUNC void store_result_safe(
+
684 device U* D,
+
685 const int ldd,
+
686 const device U* C,
+
687 const int ldc,
+
688 const int fdc,
+
689 short2 dst_tile_dims,
+
690 thread const Epilogue& epilogue_op) const {
+
691 // Adjust for simdgroup and thread location
+
692 C += (sm)*ldc + (sn)*fdc;
+
693 D += (sm)*ldd + sn;
+
694 dst_tile_dims -= short2(sn, sm);
+
695
+
696 if (dst_tile_dims.x <= 0 || dst_tile_dims.y <= 0)
+
697 return;
+
698
+
699 constexpr short kelems = decltype(Ctile)::kElemsPerFrag;
+
700
+ +
702 for (int i = 0; i < TM; i++) {
+
703 if (i * TM_stride < dst_tile_dims.y) {
+ +
705 for (int j = 0; j < TN; j++) {
+
706 // Get accumulated result and associated offset in C
+
707 thread const auto& accum = Ctile.frag_at(i, j);
+
708 int offset_c = (i * TM_stride) * ldc + (j * TN_stride) * fdc;
+
709 int offset_d = (i * TM_stride) * ldd + (j * TN_stride);
+
710
+
711 // Apply epilogue
+ +
713 for (short k = 0; k < kelems; k++) {
+
714 if ((j * TN_stride + k) < dst_tile_dims.x) {
+
715 D[offset_d + k] =
+
716 epilogue_op.apply(accum[k], C[offset_c + k * fdc]);
+
717 }
+
718 }
+
719 }
+
720 }
+
721 }
+
722 }
+
+
723};
+
724
+
725} // namespace steel
+
726} // namespace mlx
+ + +
Definition bf16_math.h:226
+
METAL_FUNC bfloat16_t simd_shuffle_xor(bfloat16_t data, ushort mask)
Definition bf16_math.h:377
+
typename pointer_element< remove_cv_t< T > >::type pointer_element_t
Definition type_traits.h:51
+
METAL_FUNC void tile_matmad(thread MMATile< T, M, N > &D, thread MMATile< U, M, K > &A, thread MMATile< U, K, N > &B, thread MMATile< T, M, N > &C)
Definition mma.h:413
+
Definition allocator.h:7
+ +
#define STEEL_PRAGMA_UNROLL
Definition defines.h:4
+
#define STEEL_CONST
Definition defines.h:3
+
static METAL_FUNC constexpr void mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)
Definition mma.h:180
+
static METAL_FUNC constexpr void store_safe(const thread frag_type &src, DstPtrType dst, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int< 0 >{}, OffY off_y=Int< 0 >{})
Definition mma.h:138
+
static METAL_FUNC constexpr void row_bin_op(thread frag_type &inp_vals, thread T *row_vals)
Definition mma.h:204
+
static METAL_FUNC constexpr void row_reduce(thread const frag_type &inp_vals, thread T *reduced_vals)
Definition mma.h:189
+
metal::vec< T, kElemRows > row_frag_type
Definition mma.h:62
+
static METAL_FUNC constexpr short2 get_coord(ushort simd_lane_id)
Definition mma.h:65
+
static METAL_FUNC constexpr void mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)
Definition mma.h:161
+
metal::simdgroup_matrix< T, kFragRows, kFragCols > mat_type
Definition mma.h:60
+
metal::vec< T, kElemsPerFrag > frag_type
Definition mma.h:61
+
static METAL_FUNC constexpr void store(const thread frag_type &src, DstPtrType dst, StrX str_x, StrY str_y)
Definition mma.h:118
+
metal::vec< T, kElemCols > col_frag_type
Definition mma.h:63
+
static METAL_FUNC constexpr void load(thread frag_type &dst, SrcPtrType src, StrX str_x, StrY str_y)
Definition mma.h:75
+
static METAL_FUNC constexpr void load_safe(thread frag_type &dst, SrcPtrType src, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int< 0 >{}, OffY off_y=Int< 0 >{})
Definition mma.h:93
+
Definition mma.h:23
+
METAL_FUNC void store_result(device U *D, const int ldd)
Definition mma.h:536
+
METAL_FUNC void store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)
Definition mma.h:550
+
short As_offset
Definition mma.h:485
+
MMATile< AccumType, TM, TN, MMAFrag_acc_t > Ctile
Definition mma.h:479
+
STEEL_CONST short A_str_k
Definition mma.h:466
+
MMATile< AccumType, 1, TN, MMAFrag_acc_t > Btile
Definition mma.h:478
+
MMATile< AccumType, TM, 1, MMAFrag_acc_t > Atile
Definition mma.h:477
+
STEEL_CONST short B_str_n
Definition mma.h:470
+
STEEL_CONST short TM_stride
Definition mma.h:455
+
METAL_FUNC void mma(const threadgroup T *As, const threadgroup T *Bs)
Definition mma.h:509
+
STEEL_CONST short TN
Definition mma.h:462
+
METAL_FUNC void 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
Definition mma.h:683
+
METAL_FUNC void store_result(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, thread const Epilogue &epilogue_op) const
Definition mma.h:651
+
METAL_FUNC void apply_epilogue(const device U *C, const int ldc, const int fdc, thread const BinaryEpilogue &epilogue_op)
Definition mma.h:579
+
STEEL_CONST short TN_stride
Definition mma.h:457
+
STEEL_CONST short tile_stride_a
Definition mma.h:473
+
short Bs_offset
Definition mma.h:486
+
METAL_FUNC void apply_epilogue_safe(const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const BinaryEpilogue &epilogue_op)
Definition mma.h:607
+
METAL_FUNC BlockMMA(ushort simd_group_id, ushort simd_lane_id)
Definition mma.h:489
+
STEEL_CONST short B_str_k
Definition mma.h:469
+
short sm
Definition mma.h:482
+
STEEL_CONST short A_str_m
Definition mma.h:465
+
STEEL_CONST short TM
Definition mma.h:460
+
short sn
Definition mma.h:483
+
STEEL_CONST short tile_stride_b
Definition mma.h:474
+
STEEL_CONST short kFragSize
Definition mma.h:451
+
METAL_FUNC void apply_epilogue(thread const UnaryEpilogue &epilogue_op)
Definition mma.h:569
+
Definition mma.h:31
+
Shape shape
Definition mma.h:32
+
Layout layout
Definition mma.h:33
+
Definition mma.h:178
+
METAL_FUNC constexpr thread frag_type & frag_at(const short i, const short j)
Definition mma.h:256
+
STEEL_CONST int kTileRows
Definition mma.h:230
+
STEEL_CONST int kColsPerThread
Definition mma.h:240
+
MMAFrag_t::mat_type mat_type
Definition mma.h:242
+
METAL_FUNC void store(threadgroup U *dst) const
Definition mma.h:325
+
METAL_FUNC mat_type mat_at(const short i, const short j)
Definition mma.h:266
+
METAL_FUNC void row_bin_op(thread T vals[kRowsPerThread])
Definition mma.h:296
+
STEEL_CONST int kTileCols
Definition mma.h:231
+
METAL_FUNC void store_safe(device U *dst, const int ld, const short2 dst_tile_dims) const
Definition mma.h:393
+
STEEL_CONST int kFragRows
Definition mma.h:226
+
STEEL_CONST int kRowsPerThread
Definition mma.h:239
+
STEEL_CONST int kRows
Definition mma.h:233
+
frag_type val_frags[kNumFrags]
Definition mma.h:245
+
MMAFrag_ MMAFrag_t
Definition mma.h:224
+
METAL_FUNC void store(device U *dst, const int ld) const
Definition mma.h:357
+
T elem_type
Definition mma.h:225
+
METAL_FUNC thread elem_type * elems()
Definition mma.h:275
+
STEEL_CONST int kCols
Definition mma.h:234
+
STEEL_CONST int kElemsPerTile
Definition mma.h:237
+
METAL_FUNC void row_reduce(thread T vals[kRowsPerThread]) const
Definition mma.h:284
+
METAL_FUNC void load_safe(const device U *src, const int ld, const short2 src_tile_dims)
Definition mma.h:373
+
METAL_FUNC MMATile() thread
Definition mma.h:247
+
METAL_FUNC void load(const threadgroup U *src)
Definition mma.h:308
+
METAL_FUNC constexpr void clear()
Definition mma.h:249
+
METAL_FUNC void load(const device U *src, const int ld)
Definition mma.h:342
+
MMAFrag_t::frag_type frag_type
Definition mma.h:243
+
STEEL_CONST int kFragCols
Definition mma.h:227
+
METAL_FUNC constexpr const thread frag_type & frag_at(const short i, const short j) const
Definition mma.h:260
+
METAL_FUNC const thread elem_type * elems() const
Definition mma.h:279
+
STEEL_CONST int kNumFrags
Definition mma.h:236
+
STEEL_CONST int kElemsPerFrag
Definition mma.h:228
+
Definition mma.h:23
+
Shape2D(RInt r_, CInt c_)
Definition mma.h:27
+
RInt r
Definition mma.h:24
+
CInt c
Definition mma.h:25
+
Definition integral_constant.h:18
+
+ + +
+ + diff --git a/docs/build/html/attn_2params_8h.html b/docs/build/html/attn_2params_8h.html new file mode 100644 index 00000000..e7fe51aa --- /dev/null +++ b/docs/build/html/attn_2params_8h.html @@ -0,0 +1,119 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/params.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
params.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Classes

struct  mlx::steel::AttnParams
 
+ + + + + +

+Namespaces

namespace  mlx
 
namespace  mlx::steel
 
+
+ + +
+ + diff --git a/docs/build/html/attn_2params_8h_source.html b/docs/build/html/attn_2params_8h_source.html new file mode 100644 index 00000000..b7657a3e --- /dev/null +++ b/docs/build/html/attn_2params_8h_source.html @@ -0,0 +1,154 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/params.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
params.h
+
+
+Go to the documentation of this file.
1// Copyright © 2024 Apple Inc.
+
2
+
3#pragma once
+
4
+
6// Attn param classes
+
8
+
9namespace mlx {
+
10namespace steel {
+
11
+
+
12struct AttnParams {
+
13 int B;
+
14 int H;
+
15 int D;
+
16
+
17 int qL;
+
18 int kL;
+
19
+ +
21 float scale;
+
22
+
23 int NQ;
+
24 int NK;
+
25
+ + +
28
+
29 size_t Q_strides[3];
+
30 size_t K_strides[3];
+
31 size_t V_strides[3];
+
32 size_t O_strides[3];
+
33};
+
+
34
+
35} // namespace steel
+
36} // namespace mlx
+
Definition allocator.h:7
+
Definition params.h:12
+
size_t K_strides[3]
Key strides (B, H, L, D = 1)
Definition params.h:30
+
int D
Head Dim.
Definition params.h:15
+
int B
Batch Size.
Definition params.h:13
+
size_t O_strides[3]
Output strides (B, H, L, D = 1)
Definition params.h:32
+
int gqa_factor
Group Query factor.
Definition params.h:20
+
int H
Heads.
Definition params.h:14
+
int NQ
Number of query blocks.
Definition params.h:23
+
int kL
Key Sequence Length.
Definition params.h:18
+
int NQ_aligned
Number of full query blocks.
Definition params.h:26
+
int qL
Query Sequence Length.
Definition params.h:17
+
int NK
Number of key/value blocks.
Definition params.h:24
+
size_t Q_strides[3]
Query strides (B, H, L, D = 1)
Definition params.h:29
+
int NK_aligned
Number of full key/value blocks.
Definition params.h:27
+
size_t V_strides[3]
Value strides (B, H, L, D = 1)
Definition params.h:31
+
float scale
Attention scale.
Definition params.h:21
+
+ + +
+ + diff --git a/docs/build/html/attn_8h.html b/docs/build/html/attn_8h.html new file mode 100644 index 00000000..e7a1ad19 --- /dev/null +++ b/docs/build/html/attn_8h.html @@ -0,0 +1,127 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/attn.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
attn.h File Reference
+
+ + + +
+ + diff --git a/docs/build/html/attn_8h_source.html b/docs/build/html/attn_8h_source.html new file mode 100644 index 00000000..c8e033f3 --- /dev/null +++ b/docs/build/html/attn_8h_source.html @@ -0,0 +1,424 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/attn.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
attn.h
+
+
+Go to the documentation of this file.
1// Copyright © 2024 Apple Inc.
+
2
+
3#pragma once
+
4
+ + + + + + +
11
+
12using namespace metal;
+
13
+
15// GEMM kernel class
+
17
+
18namespace mlx {
+
+
19namespace steel {
+
20
+
21template <bool M_aligned, bool N_aligned, bool K_aligned>
+
22struct LoopAlignment {};
+
23
+
24template <
+
25 typename T,
+
26 typename U,
+
27 int BM,
+
28 int BN,
+
29 int BK,
+
30 int WM,
+
31 int WN,
+
32 bool transpose_a,
+
33 bool transpose_b,
+
34 bool MN_aligned,
+
35 bool K_aligned,
+
36 typename AccumType = typename AccumHelper<T>::accum_type,
+
37 typename Epilogue = TransformNone<U, AccumType>>
+
38struct GEMMKernel {
+
39 STEEL_CONST short tgp_padding_a = 16 / sizeof(T);
+
40 STEEL_CONST short tgp_padding_b = 16 / sizeof(T);
+ +
42 transpose_a ? BK * (BM + tgp_padding_a) : BM * (BK + tgp_padding_a);
+ +
44 transpose_b ? BN * (BK + tgp_padding_b) : BK * (BN + tgp_padding_b);
+ +
46
+
47 STEEL_CONST short tgp_size = WM * WN * 32;
+
48
+ +
50 T,
+
51 transpose_a ? BK : BM,
+
52 transpose_a ? BM : BK,
+
53 transpose_a ? BM + tgp_padding_a : BK + tgp_padding_a,
+
54 !transpose_a,
+
55 tgp_size>;
+ +
57 T,
+
58 transpose_b ? BN : BK,
+
59 transpose_b ? BK : BN,
+
60 transpose_b ? BK + tgp_padding_b : BN + tgp_padding_b,
+
61 transpose_b,
+
62 tgp_size>;
+
63 using mma_t = BlockMMA<
+
64 T,
+
65 U,
+
66 BM,
+
67 BN,
+
68 BK,
+
69 WM,
+
70 WN,
+
71 transpose_a,
+
72 transpose_b,
+
73 transpose_a ? BM + tgp_padding_a : BK + tgp_padding_a,
+
74 transpose_b ? BK + tgp_padding_b : BN + tgp_padding_b,
+
75 AccumType,
+
76 Epilogue>;
+
77
+
78 /* Main kernel function */
+
79 template <bool M_aligned, bool N_aligned, bool K_aligned_>
+
+
80 static METAL_FUNC void gemm_loop(
+
81 threadgroup T* As [[threadgroup(0)]],
+
82 threadgroup T* Bs [[threadgroup(1)]],
+
83 const int gemm_k_iterations,
+
84 thread loader_a_t& loader_a,
+
85 thread loader_b_t& loader_b,
+
86 thread mma_t& mma_op,
+
87 thread const short& tgp_bm,
+
88 thread const short& tgp_bn,
+
89 thread const short& lbk,
+ +
91 // Appease the compiler
+
92 (void)l;
+
93
+
94 short2 tile_dims_A = transpose_a ? short2(tgp_bm, BK) : short2(BK, tgp_bm);
+
95
+
96 short2 tile_dims_B = transpose_b ? short2(BK, tgp_bn) : short2(tgp_bn, BK);
+
97
+
98 for (int k = 0; k < gemm_k_iterations; k++) {
+
99 threadgroup_barrier(mem_flags::mem_threadgroup);
+
100 // Load elements into threadgroup
+
101 if (M_aligned) {
+
102 loader_a.load_unsafe();
+
103 } else {
+
104 loader_a.load_safe(tile_dims_A);
+
105 }
+
106
+
107 if (N_aligned) {
+
108 loader_b.load_unsafe();
+
109 } else {
+
110 loader_b.load_safe(tile_dims_B);
+
111 }
+
112
+
113 threadgroup_barrier(mem_flags::mem_threadgroup);
+
114
+
115 // Multiply and accumulate threadgroup elements
+
116 mma_op.mma(As, Bs);
+
117
+
118 // Prepare for next iteration
+
119 loader_a.next();
+
120 loader_b.next();
+
121 }
+
122
+
123 if (!K_aligned_) {
+
124 threadgroup_barrier(mem_flags::mem_threadgroup);
+
125
+
126 short2 tile_dims_A_last =
+
127 transpose_a ? short2(tgp_bm, lbk) : short2(lbk, tgp_bm);
+
128 short2 tile_dims_B_last =
+
129 transpose_b ? short2(lbk, tgp_bn) : short2(tgp_bn, lbk);
+
130
+
131 loader_a.load_safe(tile_dims_A_last);
+
132 loader_b.load_safe(tile_dims_B_last);
+
133
+
134 threadgroup_barrier(mem_flags::mem_threadgroup);
+
135
+
136 mma_op.mma(As, Bs);
+
137 }
+
138 }
+
+
139
+
140 /* Main kernel function */
+
+
141 static METAL_FUNC void run(
+
142 const device T* A [[buffer(0)]],
+
143 const device T* B [[buffer(1)]],
+
144 device U* D [[buffer(2)]],
+
145 const constant GEMMParams* params [[buffer(3)]],
+
146 threadgroup T* As [[threadgroup(0)]],
+
147 threadgroup T* Bs [[threadgroup(1)]],
+
148 uint simd_lane_id [[thread_index_in_simdgroup]],
+
149 uint simd_group_id [[simdgroup_index_in_threadgroup]],
+
150 uint3 tid [[threadgroup_position_in_grid]],
+
151 uint3 lid [[thread_position_in_threadgroup]]) {
+
152 // Pacifying compiler
+
153 (void)lid;
+
154
+
155 const int tid_y = ((tid.y) << params->swizzle_log) +
+
156 ((tid.x) & ((1 << params->swizzle_log) - 1));
+
157 const int tid_x = (tid.x) >> params->swizzle_log;
+
158
+
159 if (params->tiles_n <= tid_x || params->tiles_m <= tid_y) {
+
160 return;
+
161 }
+
162
+
163 threadgroup_barrier(mem_flags::mem_none);
+
164
+
165 // Find block in A, B, C
+
166 const int c_row = tid_y * BM;
+
167 const int c_col = tid_x * BN;
+
168 const size_t c_row_long = size_t(c_row);
+
169 const size_t c_col_long = size_t(c_col);
+
170
+
171 A += transpose_a ? c_row_long : c_row_long * params->lda;
+
172 B += transpose_b ? c_col_long * params->ldb : c_col_long;
+
173 D += c_row_long * params->ldd + c_col_long;
+
174
+
175 // Prepare threadgroup loading operations
+
176 thread loader_a_t loader_a(A, params->lda, As, simd_group_id, simd_lane_id);
+
177 thread loader_b_t loader_b(B, params->ldb, Bs, simd_group_id, simd_lane_id);
+
178
+
179 // Prepare threadgroup mma operation
+
180 thread mma_t mma_op(simd_group_id, simd_lane_id);
+
181
+
182 int gemm_k_iterations = params->gemm_k_iterations_aligned;
+
183
+
185 // MNK aligned loop
+
186 if (MN_aligned) {
+
187 for (int k = 0; k < gemm_k_iterations; k++) {
+
188 threadgroup_barrier(mem_flags::mem_threadgroup);
+
189 // Load elements into threadgroup
+
190 loader_a.load_unsafe();
+
191 loader_b.load_unsafe();
+
192
+
193 threadgroup_barrier(mem_flags::mem_threadgroup);
+
194
+
195 // Multiply and accumulate threadgroup elements
+
196 mma_op.mma(As, Bs);
+
197
+
198 // Prepare for next iteration
+
199 loader_a.next();
+
200 loader_b.next();
+
201 }
+
202
+
203 threadgroup_barrier(mem_flags::mem_none);
+
204
+
205 // Loop tail
+
206 if (!K_aligned) {
+
207 int lbk = params->K - params->gemm_k_iterations_aligned * BK;
+
208 short2 tile_dims_A = transpose_a ? short2(BM, lbk) : short2(lbk, BM);
+
209 short2 tile_dims_B = transpose_b ? short2(lbk, BN) : short2(BN, lbk);
+
210
+
211 loader_a.load_safe(tile_dims_A);
+
212 loader_b.load_safe(tile_dims_B);
+
213
+
214 threadgroup_barrier(mem_flags::mem_threadgroup);
+
215
+
216 mma_op.mma(As, Bs);
+
217 }
+
218
+
219 // Store results to device memory
+
220 mma_op.store_result(D, params->ldd);
+
221 return;
+
222
+
223 }
+
225 // MN unaligned loop
+
226 else { // Loop over K - unaligned case
+
227 short tgp_bm = min(BM, params->M - c_row);
+
228 short tgp_bn = min(BN, params->N - c_col);
+
229 short leftover_bk = params->K - params->gemm_k_iterations_aligned * BK;
+
230
+
231 if (tgp_bm == BM && tgp_bn == BN) {
+ +
233 As,
+
234 Bs,
+
235 gemm_k_iterations,
+
236 loader_a,
+
237 loader_b,
+
238 mma_op,
+
239 tgp_bm,
+
240 tgp_bn,
+
241 leftover_bk);
+
242
+
243 mma_op.store_result(D, params->ldd);
+
244 return;
+
245
+
246 } else if (tgp_bn == BN) {
+ +
248 As,
+
249 Bs,
+
250 gemm_k_iterations,
+
251 loader_a,
+
252 loader_b,
+
253 mma_op,
+
254 tgp_bm,
+
255 tgp_bn,
+
256 leftover_bk);
+
257
+
258 mma_op.store_result_safe(D, params->ldd, short2(tgp_bn, tgp_bm));
+
259 return;
+
260
+
261 } else if (tgp_bm == BM) {
+ +
263 As,
+
264 Bs,
+
265 gemm_k_iterations,
+
266 loader_a,
+
267 loader_b,
+
268 mma_op,
+
269 tgp_bm,
+
270 tgp_bn,
+
271 leftover_bk);
+
272
+
273 mma_op.store_result_safe(D, params->ldd, short2(tgp_bn, tgp_bm));
+
274 return;
+
275
+
276 } else {
+ +
278 As,
+
279 Bs,
+
280 gemm_k_iterations,
+
281 loader_a,
+
282 loader_b,
+
283 mma_op,
+
284 tgp_bm,
+
285 tgp_bn,
+
286 leftover_bk);
+
287
+
288 mma_op.store_result_safe(D, params->ldd, short2(tgp_bn, tgp_bm));
+
289 return;
+
290 }
+
291 }
+
292 }
+
+
293};
+
294
+
295} // namespace steel
+
+
296} // namespace mlx
+ + + + + + +
Definition bf16_math.h:226
+
METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:232
+
Definition allocator.h:7
+
#define STEEL_CONST
Definition defines.h:3
+
float accum_type
Definition transforms.h:57
+
Definition loader.h:25
+
Definition mma.h:377
+
Definition gemm.h:37
+
static METAL_FUNC void run(const device T *A, const device T *B, device U *D, const constant GEMMParams *params, threadgroup T *As, threadgroup T *Bs, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)
Definition attn.h:141
+
STEEL_CONST short tgp_mem_size_b
Definition attn.h:43
+
STEEL_CONST short tgp_mem_size
Definition attn.h:45
+
static METAL_FUNC void gemm_loop(threadgroup T *As, threadgroup T *Bs, const int gemm_k_iterations, thread loader_a_t &loader_a, thread loader_b_t &loader_b, thread mma_t &mma_op, thread const short &tgp_bm, thread const short &tgp_bn, thread const short &lbk, LoopAlignment< M_aligned, N_aligned, K_aligned_ > l={})
Definition attn.h:80
+
STEEL_CONST short tgp_size
Definition attn.h:47
+
STEEL_CONST short tgp_mem_size_a
Definition attn.h:41
+
STEEL_CONST short tgp_padding_b
Definition attn.h:40
+
STEEL_CONST short tgp_padding_a
Definition attn.h:39
+
Definition params.h:12
+
Definition gemm.h:21
+
Definition transforms.h:15
+
+ + +
+ + diff --git a/docs/build/html/backend_2common_2utils_8h.html b/docs/build/html/backend_2common_2utils_8h.html index e5c00a23..f09f5481 100644 --- a/docs/build/html/backend_2common_2utils_8h.html +++ b/docs/build/html/backend_2common_2utils_8h.html @@ -142,6 +142,10 @@ Functions   bool mlx::core::is_donatable (const array &in, const array &out)   +void mlx::core::move_or_copy (const array &in, array &out) +  +void mlx::core::move_or_copy (const array &in, array &out, const std::vector< size_t > &strides, array::Flags flags, size_t data_size, size_t offset=0) +  diff --git a/docs/build/html/backend_2common_2utils_8h_source.html b/docs/build/html/backend_2common_2utils_8h_source.html index 0e6718d7..be28e148 100644 --- a/docs/build/html/backend_2common_2utils_8h_source.html +++ b/docs/build/html/backend_2common_2utils_8h_source.html @@ -297,7 +297,16 @@ $(function(){ initResizable(false); });
179}
180
-
181} // namespace mlx::core
+
181void move_or_copy(const array& in, array& out);
+
182void move_or_copy(
+
183 const array& in,
+
184 array& out,
+
185 const std::vector<size_t>& strides,
+
186 array::Flags flags,
+
187 size_t data_size,
+
188 size_t offset = 0);
+
189
+
190} // namespace mlx::core
Definition array.h:20
const Flags & flags() const
Get the Flags bit-field.
Definition array.h:302
@@ -312,6 +321,7 @@ $(function(){ initResizable(false); });
std::tuple< std::vector< int >, std::vector< std::vector< int64_t > > > collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< std::vector< int64_t > > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())
auto check_contiguity(const std::vector< int > &shape, const std::vector< StrideT > &strides)
Definition utils.h:151
StrideT elem_to_loc(int elem, const std::vector< int > &shape, const std::vector< StrideT > &strides)
Definition utils.h:12
+
void move_or_copy(const array &in, array &out)
bool is_donatable(const array &in, const array &out)
Definition utils.h:174
typename std::enable_if_t< is_arrays_v< T... > > enable_for_arrays_t
Definition array.h:611
Definition utils.h:89
@@ -322,6 +332,7 @@ $(function(){ initResizable(false); });
ContiguousIterator()
Definition utils.h:120
ContiguousIterator(const array &a)
Definition utils.h:122
void step()
Definition utils.h:90
+
Definition array.h:221
bool row_contiguous
Definition array.h:233
diff --git a/docs/build/html/backend_2metal_2device_8h_source.html b/docs/build/html/backend_2metal_2device_8h_source.html index bb0b3537..7cf8c375 100644 --- a/docs/build/html/backend_2metal_2device_8h_source.html +++ b/docs/build/html/backend_2metal_2device_8h_source.html @@ -160,225 +160,264 @@ $(function(){ initResizable(false); });
59 };
60
-
-
61 MTL::ComputeCommandEncoder* operator->() {
-
62 return enc_;
-
63 }
+
61 void set_input_array(const array& a, int idx, int64_t offset = 0);
+
62 void set_output_array(array& a, int idx, int64_t offset = 0);
+
63 void dispatch_threadgroups(MTL::Size grid_dims, MTL::Size group_dims);
+
64 void dispatch_threads(MTL::Size grid_dims, MTL::Size group_dims);
+ +
66
+
+
67 void set_compute_pipeline_state(MTL::ComputePipelineState* kernel) {
+
68 enc_->setComputePipelineState(kernel);
+
69 }
-
64
-
65 void set_input_array(const array& a, int idx, int64_t offset = 0);
-
66 void set_output_array(array& a, int idx, int64_t offset = 0);
-
67 void dispatchThreadgroups(MTL::Size grid_dims, MTL::Size group_dims);
-
68 void dispatchThreads(MTL::Size grid_dims, MTL::Size group_dims);
-
70
- -
72 return ConcurrentContext(*this);
+
71 void wait_for_fence(MTL::Fence* fence) {
+
72 enc_->waitForFence(fence);
73 }
- -
75
-
76 // Inputs to all kernels in the encoder including temporaries
-
-
77 std::unordered_set<const void*>& inputs() {
-
78 return all_inputs_;
-
79 };
+
74
+
+
75 void update_fence(MTL::Fence* fence) {
+
76 enc_->updateFence(fence);
+
77 }
-
80
-
81 // Outputs of all kernels in the encoder including temporaries
-
-
82 std::unordered_set<const void*> outputs() {
-
83 return all_outputs_;
-
84 };
+
78
+
79 template <typename T>
+
+
80 void set_vector_bytes(const std::vector<T>& vec, size_t nelems, int idx) {
+
81 enc_->setBytes(vec.data(), nelems * sizeof(T), idx);
+
82 }
-
85
-
86 private:
-
87 MTL::ComputeCommandEncoder* enc_;
-
88 bool needs_barrier_{false};
-
89 bool concurrent_{false};
-
90 std::unordered_set<MTL::Resource*> prev_outputs_;
-
91 std::unordered_set<MTL::Resource*> next_outputs_;
-
92 std::unordered_set<MTL::Resource*> concurrent_outputs_;
-
93 std::unordered_set<const void*> all_inputs_;
-
94 std::unordered_set<const void*> all_outputs_;
-
95};
+
83 template <typename T>
+
+
84 void set_vector_bytes(const std::vector<T>& vec, int idx) {
+
85 return set_vector_bytes(vec, vec.size(), idx);
+
86 }
-
96
-
-
97struct Fence {
-
98 Fence(MTL::Fence* fence) : fence(fence) {}
-
- -
100 fence->release();
-
101 }
+
87
+
88 template <typename T>
+
+
89 void set_bytes(const T* v, int n, int idx) {
+
90 return enc_->setBytes(v, n * sizeof(T), idx);
+
91 }
-
102 MTL::Fence* fence;
-
103};
+
92
+
93 template <typename T>
+
+
94 void set_bytes(const T& v, int idx) {
+
95 return enc_->setBytes(&v, sizeof(T), idx);
+
96 }
-
104
-
- -
106 DeviceStream(MTL::CommandQueue* queue) : queue(queue) {};
-
- -
108 queue->release();
-
109 if (buffer != nullptr) {
-
110 buffer->release();
-
111 }
-
112 };
+
97
+
+ +
99 return ConcurrentContext(*this);
+
100 }
+
+ +
102
+
103 // Inputs to all kernels in the encoder including temporaries
+
+
104 std::unordered_set<const void*>& inputs() {
+
105 return all_inputs_;
+
106 };
+
+
107
+
108 // Outputs of all kernels in the encoder including temporaries
+
+
109 std::unordered_set<const void*> outputs() {
+
110 return all_outputs_;
+
111 };
+
+
112
+
113 private:
+
114 MTL::ComputeCommandEncoder* enc_;
+
115 bool needs_barrier_{false};
+
116 bool concurrent_{false};
+
117 std::unordered_set<MTL::Resource*> prev_outputs_;
+
118 std::unordered_set<MTL::Resource*> next_outputs_;
+
119 std::unordered_set<MTL::Resource*> concurrent_outputs_;
+
120 std::unordered_set<const void*> all_inputs_;
+
121 std::unordered_set<const void*> all_outputs_;
+
122};
-
113 MTL::CommandQueue* queue;
-
114 // A map of prior command encoder outputs to their corresponding fence
-
115 std::unordered_map<const void*, std::shared_ptr<Fence>> outputs;
-
116 // Used to allow thread-safe access to the outputs map
-
117 std::mutex fence_mtx;
-
118
-
119 // The buffer and buffer op count are updated
-
120 // between command buffers
-
121 MTL::CommandBuffer* buffer{nullptr};
-
123
-
124 // The command encoder, fence, and temporaries are updated between command
-
125 // encoders
-
126 std::unique_ptr<CommandEncoder> encoder{nullptr};
-
127 std::shared_ptr<Fence> fence;
-
128 std::vector<array> temporaries;
-
129};
+
+
124struct Fence {
+
125 Fence(MTL::Fence* fence) : fence(fence) {}
+
+ +
127 fence->release();
+
128 }
-
130
-
-
131class Device {
-
132 public:
- -
134 Device(const Device&) = delete;
-
135 Device& operator=(const Device&) = delete;
- -
137
-
-
138 MTL::Device* mtl_device() {
-
139 return device_;
-
140 };
+
129 MTL::Fence* fence;
+
130};
-
141
-
-
142 const std::string& get_architecture() {
-
143 return arch_;
-
144 }
+
131
+
+ +
133 DeviceStream(MTL::CommandQueue* queue) : queue(queue) {};
+
+ +
135 queue->release();
+
136 if (buffer != nullptr) {
+
137 buffer->release();
+
138 }
+
139 };
+
140 MTL::CommandQueue* queue;
+
141 // A map of prior command encoder outputs to their corresponding fence
+
142 std::unordered_map<const void*, std::shared_ptr<Fence>> outputs;
+
143 // Used to allow thread-safe access to the outputs map
+
144 std::mutex fence_mtx;
145
-
146 void new_queue(int index);
-
147 MTL::CommandBuffer* get_command_buffer(int index);
- - -
150 void commit_command_buffer(int index);
- -
152 void end_encoding(int index);
-
153
- -
155 const std::string& lib_name,
-
156 const std::string& lib_path);
+
146 // The buffer and buffer op count are updated
+
147 // between command buffers
+
148 MTL::CommandBuffer* buffer{nullptr};
+ +
150
+
151 // The command encoder, fence, and temporaries are updated between command
+
152 // encoders
+
153 std::unique_ptr<CommandEncoder> encoder{nullptr};
+
154 std::shared_ptr<Fence> fence;
+
155 std::vector<array> temporaries;
+
156};
+
157
-
158 // Note, this should remain in the header so that it is not dynamically
-
159 // linked
-
-
160 void register_library(const std::string& lib_name) {
-
161 if (auto it = library_map_.find(lib_name); it == library_map_.end()) {
-
162 register_library(lib_name, get_colocated_mtllib_path(lib_name));
-
163 }
-
164 }
+
+
158class Device {
+
159 public:
+ +
161 Device(const Device&) = delete;
+
162 Device& operator=(const Device&) = delete;
+ +
164
+
+
165 MTL::Device* mtl_device() {
+
166 return device_;
+
167 };
+
+
168
+
+
169 const std::string& get_architecture() {
+
170 return arch_;
+
171 }
+
+
172
+
173 void new_queue(int index);
+
174 MTL::CommandBuffer* get_command_buffer(int index);
+ + +
177 void commit_command_buffer(int index);
+ +
179 void end_encoding(int index);
+
180
+ +
182 const std::string& lib_name,
+
183 const std::string& lib_path);
+
184
+
185 // Note, this should remain in the header so that it is not dynamically
+
186 // linked
+
+
187 void register_library(const std::string& lib_name) {
+
188 if (auto it = library_map_.find(lib_name); it == library_map_.end()) {
+
189 register_library(lib_name, get_colocated_mtllib_path(lib_name));
+
190 }
+
191 }
-
165
-
166 MTL::Library* get_library(
-
167 const std::string& name,
-
168 const std::function<std::string(void)>& builder);
-
169
-
170 MTL::ComputePipelineState* get_kernel(
-
171 const std::string& base_name,
-
172 MTL::Library* mtl_lib,
-
173 const std::string& hash_name = "",
-
174 const MTLFCList& func_consts = {},
-
175 const std::vector<MTL::Function*>& linked_functions = {});
-
176
-
177 MTL::ComputePipelineState* get_kernel(
-
178 const std::string& base_name,
-
179 const std::string& lib_name = "mlx",
-
180 const std::string& hash_name = "",
-
181 const MTLFCList& func_consts = {},
-
182 const std::vector<MTL::Function*>& linked_functions = {});
-
183
-
184 MTL::ArgumentEncoder* argument_encoder(
-
185 const std::vector<MTL::ArgumentDescriptor*>& arg_descs) const;
-
186
-
187 // Record temporary arrays for the given stream index
-
188 void add_temporary(array arr, int index);
-
189 void add_temporaries(std::vector<array> arrays, int index);
-
190
-
191 void set_residency_set(const MTL::ResidencySet* residency_set);
192
-
193 private:
-
194 DeviceStream& get_stream_(int index) {
-
195 return stream_map_.find(index)->second;
-
196 }
-
197 MTL::Library* get_library_cache_(const std::string& name);
-
198
-
199 MTL::Library* get_library_(const std::string& name);
-
200 MTL::Library* build_library_(const std::string& source_string);
-
201
-
202 MTL::Function* get_function_(const std::string& name, MTL::Library* mtl_lib);
+
193 MTL::Library* get_library(
+
194 const std::string& name,
+
195 const std::function<std::string(void)>& builder);
+
196
+
197 MTL::ComputePipelineState* get_kernel(
+
198 const std::string& base_name,
+
199 MTL::Library* mtl_lib,
+
200 const std::string& hash_name = "",
+
201 const MTLFCList& func_consts = {},
+
202 const std::vector<MTL::Function*>& linked_functions = {});
203
-
204 MTL::Function* get_function_(
-
205 const std::string& name,
-
206 const std::string& specialized_name,
-
207 const MTLFCList& func_consts,
-
208 MTL::Library* mtl_lib);
-
209
-
210 MTL::LinkedFunctions* get_linked_functions_(
-
211 const std::vector<MTL::Function*>& funcs);
-
212
-
213 MTL::ComputePipelineState* get_kernel_(
-
214 const std::string& name,
-
215 const MTL::Function* mtl_function);
-
216
-
217 MTL::ComputePipelineState* get_kernel_(
-
218 const std::string& name,
-
219 const MTL::Function* mtl_function,
-
220 const MTL::LinkedFunctions* linked_functions);
-
221
-
222 MTL::ComputePipelineState* get_kernel_(
-
223 const std::string& base_name,
-
224 MTL::Library* mtl_lib,
-
225 const std::string& hash_name,
-
226 const MTLFCList& func_consts = {},
-
227 const std::vector<MTL::Function*>& linked_functions = {});
+
204 MTL::ComputePipelineState* get_kernel(
+
205 const std::string& base_name,
+
206 const std::string& lib_name = "mlx",
+
207 const std::string& hash_name = "",
+
208 const MTLFCList& func_consts = {},
+
209 const std::vector<MTL::Function*>& linked_functions = {});
+
210
+
211 MTL::ArgumentEncoder* argument_encoder(
+
212 const std::vector<MTL::ArgumentDescriptor*>& arg_descs) const;
+
213
+
214 // Record temporary arrays for the given stream index
+
215 void add_temporary(array arr, int index);
+
216 void add_temporaries(std::vector<array> arrays, int index);
+
217
+
218 void set_residency_set(const MTL::ResidencySet* residency_set);
+
219
+
220 private:
+
221 DeviceStream& get_stream_(int index) {
+
222 return stream_map_.find(index)->second;
+
223 }
+
224 MTL::Library* get_library_cache_(const std::string& name);
+
225
+
226 MTL::Library* get_library_(const std::string& name);
+
227 MTL::Library* build_library_(const std::string& source_string);
228
-
229 MTL::Device* device_;
-
230 std::unordered_map<int32_t, DeviceStream> stream_map_;
-
231
-
232 std::shared_mutex kernel_mtx_;
-
233 std::unordered_map<std::string, MTL::ComputePipelineState*> kernel_map_;
-
234
-
235 std::shared_mutex library_mtx_;
-
236 std::unordered_map<std::string, MTL::Library*> library_map_;
-
237 const MTL::ResidencySet* residency_set_{nullptr};
-
238 std::string arch_;
-
239};
+
229 MTL::Function* get_function_(const std::string& name, MTL::Library* mtl_lib);
+
230
+
231 MTL::Function* get_function_(
+
232 const std::string& name,
+
233 const std::string& specialized_name,
+
234 const MTLFCList& func_consts,
+
235 MTL::Library* mtl_lib);
+
236
+
237 MTL::LinkedFunctions* get_linked_functions_(
+
238 const std::vector<MTL::Function*>& funcs);
+
239
+
240 MTL::ComputePipelineState* get_kernel_(
+
241 const std::string& name,
+
242 const MTL::Function* mtl_function);
+
243
+
244 MTL::ComputePipelineState* get_kernel_(
+
245 const std::string& name,
+
246 const MTL::Function* mtl_function,
+
247 const MTL::LinkedFunctions* linked_functions);
+
248
+
249 MTL::ComputePipelineState* get_kernel_(
+
250 const std::string& base_name,
+
251 MTL::Library* mtl_lib,
+
252 const std::string& hash_name,
+
253 const MTLFCList& func_consts = {},
+
254 const std::vector<MTL::Function*>& linked_functions = {});
+
255
+
256 MTL::Device* device_;
+
257 std::unordered_map<int32_t, DeviceStream> stream_map_;
+
258
+
259 std::shared_mutex kernel_mtx_;
+
260 std::unordered_map<std::string, MTL::ComputePipelineState*> kernel_map_;
+
261
+
262 std::shared_mutex library_mtx_;
+
263 std::unordered_map<std::string, MTL::Library*> library_map_;
+
264 const MTL::ResidencySet* residency_set_{nullptr};
+
265 std::string arch_;
+
266};
-
240
- -
242
-
243} // namespace mlx::core::metal
+
267
+ +
269
+
270} // namespace mlx::core::metal
Definition array.h:20
-
Definition device.h:131
+
Definition device.h:158
void set_residency_set(const MTL::ResidencySet *residency_set)
int get_command_buffer_ops(int index)
-
MTL::Device * mtl_device()
Definition device.h:138
+
MTL::Device * mtl_device()
Definition device.h:165
void register_library(const std::string &lib_name, const std::string &lib_path)
MTL::CommandBuffer * get_command_buffer(int index)
void end_encoding(int index)
-
const std::string & get_architecture()
Definition device.h:142
+
const std::string & get_architecture()
Definition device.h:169
MTL::ComputePipelineState * get_kernel(const std::string &base_name, MTL::Library *mtl_lib, const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})
MTL::ArgumentEncoder * argument_encoder(const std::vector< MTL::ArgumentDescriptor * > &arg_descs) const
void add_temporaries(std::vector< array > arrays, int index)
@@ -386,7 +425,7 @@ $(function(){ initResizable(false); });
void increment_command_buffer_ops(int index)
void new_queue(int index)
void commit_command_buffer(int index)
-
void register_library(const std::string &lib_name)
Definition device.h:160
+
void register_library(const std::string &lib_name)
Definition device.h:187
Device(const Device &)=delete
void add_temporary(array arr, int index)
Device & operator=(const Device &)=delete
@@ -403,34 +442,40 @@ $(function(){ initResizable(false); });
ConcurrentContext(CommandEncoder &enc)
Definition device.h:47
Definition device.h:41
-
void dispatchThreads(MTL::Size grid_dims, MTL::Size group_dims)
+
void dispatch_threads(MTL::Size grid_dims, MTL::Size group_dims)
CommandEncoder(MTL::CommandBuffer *cbuf)
-
std::unordered_set< const void * > & inputs()
Definition device.h:77
+
std::unordered_set< const void * > & inputs()
Definition device.h:104
CommandEncoder & operator=(const CommandEncoder &)=delete
-
ConcurrentContext start_concurrent()
Definition device.h:71
+
ConcurrentContext start_concurrent()
Definition device.h:98
+
void set_vector_bytes(const std::vector< T > &vec, size_t nelems, int idx)
Definition device.h:80
void set_output_array(array &a, int idx, int64_t offset=0)
-
void dispatchThreadgroups(MTL::Size grid_dims, MTL::Size group_dims)
+
void set_compute_pipeline_state(MTL::ComputePipelineState *kernel)
Definition device.h:67
+
void set_vector_bytes(const std::vector< T > &vec, int idx)
Definition device.h:84
+
void dispatch_threadgroups(MTL::Size grid_dims, MTL::Size group_dims)
-
MTL::ComputeCommandEncoder * operator->()
Definition device.h:61
+
void set_bytes(const T *v, int n, int idx)
Definition device.h:89
void set_input_array(const array &a, int idx, int64_t offset=0)
+
void set_bytes(const T &v, int idx)
Definition device.h:94
CommandEncoder(const CommandEncoder &)=delete
-
std::unordered_set< const void * > outputs()
Definition device.h:82
-
Definition device.h:105
-
~DeviceStream()
Definition device.h:107
-
std::unordered_map< const void *, std::shared_ptr< Fence > > outputs
Definition device.h:115
-
DeviceStream(MTL::CommandQueue *queue)
Definition device.h:106
-
std::unique_ptr< CommandEncoder > encoder
Definition device.h:126
-
std::mutex fence_mtx
Definition device.h:117
-
MTL::CommandQueue * queue
Definition device.h:113
-
std::shared_ptr< Fence > fence
Definition device.h:127
-
MTL::CommandBuffer * buffer
Definition device.h:121
-
int buffer_ops
Definition device.h:122
-
std::vector< array > temporaries
Definition device.h:128
-
Definition device.h:97
-
Fence(MTL::Fence *fence)
Definition device.h:98
-
~Fence()
Definition device.h:99
-
MTL::Fence * fence
Definition device.h:102
+
void update_fence(MTL::Fence *fence)
Definition device.h:75
+
std::unordered_set< const void * > outputs()
Definition device.h:109
+
void wait_for_fence(MTL::Fence *fence)
Definition device.h:71
+
Definition device.h:132
+
~DeviceStream()
Definition device.h:134
+
std::unordered_map< const void *, std::shared_ptr< Fence > > outputs
Definition device.h:142
+
DeviceStream(MTL::CommandQueue *queue)
Definition device.h:133
+
std::unique_ptr< CommandEncoder > encoder
Definition device.h:153
+
std::mutex fence_mtx
Definition device.h:144
+
MTL::CommandQueue * queue
Definition device.h:140
+
std::shared_ptr< Fence > fence
Definition device.h:154
+
MTL::CommandBuffer * buffer
Definition device.h:148
+
int buffer_ops
Definition device.h:149
+
std::vector< array > temporaries
Definition device.h:155
+
Definition device.h:124
+
Fence(MTL::Fence *fence)
Definition device.h:125
+
~Fence()
Definition device.h:126
+
MTL::Fence * fence
Definition device.h:129
@@ -99,9 +99,8 @@ $(function(){ initResizable(false); });
#include <metal_stdlib>
-#include "mlx/backend/metal/kernels/bf16_math.h"
-

Go to the source code of this file.

+

Go to the source code of this file.

@@ -821,6 +820,10 @@ Functions + + + +

Classes

 
METAL_FUNC bool metal::isnan (_MLX_BFloat16 x)
 
uint16_t bfloat16_to_uint16 (const bfloat16_t x)
 
bfloat16_t uint16_to_bfloat16 (const uint16_t x)
 
@@ -858,8 +861,8 @@ Variables
bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, uint32_t, float); \
bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, int64_t, float); \
bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, uint64_t, float);
-
#define bfloat_binop_base(__op__, __operator__, otype, atype, btype, ctype)
Definition bf16.h:141
-
Definition bf16.h:54
+
#define bfloat_binop_base(__op__, __operator__, otype, atype, btype, ctype)
Definition bf16.h:135
+
Definition bf16.h:48
@@ -996,7 +999,7 @@ Variables
bfloat_inplace_op_addr_space_helper(-, operator-=, itype); \
bfloat_inplace_op_addr_space_helper(*, operator*=, itype); \
bfloat_inplace_op_addr_space_helper(/, operator/=, itype);
-
#define bfloat_inplace_op_addr_space_helper(__op__, __operator__, itype)
Definition bf16.h:209
+
#define bfloat_inplace_op_addr_space_helper(__op__, __operator__, itype)
Definition bf16.h:203
@@ -1021,7 +1024,7 @@ VariablesValue:
bfloat_inplace_op_helper(__op__, __operator__, device); \
bfloat_inplace_op_helper(__op__, __operator__, thread); \
bfloat_inplace_op_helper(__op__, __operator__, threadgroup);
-
#define bfloat_inplace_op_helper(__op__, __operator__, itype, addr_space)
Definition bf16.h:197
+
#define bfloat_inplace_op_helper(__op__, __operator__, itype, addr_space)
Definition bf16.h:191
@@ -1142,6 +1145,31 @@ Variables

Function Documentation

+ +

◆ bfloat16_to_uint16()

+ +
+
+

Variables

+ + + + +
+ + + + + + + +
uint16_t bfloat16_to_uint16 (const bfloat16_t x)
+
+inline
+
+ +
+

◆ bfloat_bits_to_float()

@@ -10901,6 +10929,31 @@ Variables
+
+
+ +

◆ uint16_to_bfloat16()

+ +
+
+ + + + + +
+ + + + + + + +
bfloat16_t uint16_to_bfloat16 (const uint16_t x)
+
+inline
+
+

Variable Documentation

diff --git a/docs/build/html/backend_2metal_2kernels_2bf16_8h_source.html b/docs/build/html/backend_2metal_2kernels_2metal__3__0_2bf16_8h_source.html similarity index 60% rename from docs/build/html/backend_2metal_2kernels_2bf16_8h_source.html rename to docs/build/html/backend_2metal_2kernels_2metal__3__0_2bf16_8h_source.html index c29e3c42..9c4dd6bc 100644 --- a/docs/build/html/backend_2metal_2kernels_2bf16_8h_source.html +++ b/docs/build/html/backend_2metal_2kernels_2metal__3__0_2bf16_8h_source.html @@ -5,7 +5,7 @@ -MLX: mlx/backend/metal/kernels/bf16.h Source File +MLX: mlx/backend/metal/kernels/metal_3_0/bf16.h Source File @@ -83,7 +83,7 @@ $(function(){ initResizable(false); });
@@ -91,7 +91,7 @@ $(function(){ initResizable(false); });
bf16.h
-Go to the documentation of this file.
1// Copyright © 2023 Apple Inc.
+Go to the documentation of this file.
1// Copyright © 2023 Apple Inc.
2
3#pragma once
4
@@ -99,395 +99,394 @@ $(function(){ initResizable(false); });
6
7using namespace metal;
8
-
9#if (MLX_METAL_VERSION >= 310) || (__METAL_VERSION__ >= 310)
-
10
-
11typedef bfloat bfloat16_t;
+
10// Helpers
12
-
13#else
-
14
-
16// Helpers
-
18
-
-
19constexpr METAL_FUNC uint16_t float_to_bfloat_bits(float x) {
-
20 // Check for nan
-
21 if ((as_type<uint32_t>(x) & ~_fp_encoding_traits<float>::sign_mask) >
-
22 _fp_encoding_traits<float>::inf_mask) {
-
23 return uint16_t(as_type<uint32_t>(0x7FC0));
-
24 }
-
25 // Take bits
-
26 uint32_t float_bits = as_type<uint32_t>(x);
-
27
-
28 // Round to nearest even
-
29 float_bits += ((float_bits >> 16) & 1) + as_type<uint32_t>(0x7FFF);
-
30
-
31 // Take upper 16 bits
-
32 return float_bits >> 16;
-
33}
+
+
13constexpr METAL_FUNC uint16_t float_to_bfloat_bits(float x) {
+
14 // Check for nan
+
15 if ((as_type<uint32_t>(x) & ~_fp_encoding_traits<float>::sign_mask) >
+
16 _fp_encoding_traits<float>::inf_mask) {
+
17 return uint16_t(as_type<uint32_t>(0x7FC0));
+
18 }
+
19 // Take bits
+
20 uint32_t float_bits = as_type<uint32_t>(x);
+
21
+
22 // Round to nearest even
+
23 float_bits += ((float_bits >> 16) & 1) + as_type<uint32_t>(0x7FFF);
+
24
+
25 // Take upper 16 bits
+
26 return float_bits >> 16;
+
27}
-
34
-
-
35constexpr METAL_FUNC float bfloat_bits_to_float(uint16_t x) {
-
36 // Upper 16 bits are the data and lower 16 bits are 0s
-
37 return as_type<float>((uint32_t)x << 16);
-
38}
+
28
+
+
29constexpr METAL_FUNC float bfloat_bits_to_float(uint16_t x) {
+
30 // Upper 16 bits are the data and lower 16 bits are 0s
+
31 return as_type<float>((uint32_t)x << 16);
+
32}
+
33
+
34struct _MLX_BFloat16;
+
35
+
36template <typename T>
+
37static constexpr constant bool can_convert_to_bfloat =
+
38 !is_same_v<T, _MLX_BFloat16> && is_convertible_v<T, float>;
39
-
40struct _MLX_BFloat16;
-
41
-
42template <typename T>
-
43static constexpr constant bool can_convert_to_bfloat =
-
44 !is_same_v<T, _MLX_BFloat16> && is_convertible_v<T, float>;
-
45
-
46template <typename T>
-
47static constexpr constant bool can_convert_from_bfloat =
-
48 !is_same_v<T, _MLX_BFloat16> && is_convertible_v<float, T>;
-
49
-
51// Bfloat struct
-
53
-
- -
56 // Constructors
-
57 uint16_t bits_;
-
58 _MLX_BFloat16() thread = default;
-
59 _MLX_BFloat16() threadgroup = default;
-
60 _MLX_BFloat16() device = default;
-
61 _MLX_BFloat16() constant = default;
-
62
- -
-
64 static constexpr METAL_FUNC bits_to_bfloat_struct bits_to_bfloat() {
-
65 return bits_to_bfloat_struct();
-
66 }
+
40template <typename T>
+
41static constexpr constant bool can_convert_from_bfloat =
+
42 !is_same_v<T, _MLX_BFloat16> && is_convertible_v<float, T>;
+
43
+
45// Bfloat struct
+
47
+
+ +
50 // Constructors
+
51 uint16_t bits_;
+
52 _MLX_BFloat16() thread = default;
+
53 _MLX_BFloat16() threadgroup = default;
+
54 _MLX_BFloat16() device = default;
+
55 _MLX_BFloat16() constant = default;
+
56
+ +
+
58 static constexpr METAL_FUNC bits_to_bfloat_struct bits_to_bfloat() {
+
59 return bits_to_bfloat_struct();
+
60 }
-
-
67 constexpr METAL_FUNC _MLX_BFloat16(uint16_t bits, bits_to_bfloat_struct)
-
68 : bits_(bits) {}
+
+
61 constexpr METAL_FUNC _MLX_BFloat16(uint16_t bits, bits_to_bfloat_struct)
+
62 : bits_(bits) {}
+
+
63
+
65 // Conversions to bfloat
+
66
+
67 template <
+
68 typename T,
+
69 typename = typename enable_if<can_convert_to_bfloat<T>>::type>
+
+
70 constexpr METAL_FUNC _MLX_BFloat16(T x) thread
+
71 : bits_(float_to_bfloat_bits(static_cast<float>(x))) {}
-
69
-
71 // Conversions to bfloat
72
73 template <
74 typename T,
75 typename = typename enable_if<can_convert_to_bfloat<T>>::type>
-
76 constexpr METAL_FUNC _MLX_BFloat16(T x) thread
-
77 : bits_(float_to_bfloat_bits(static_cast<float>(x))) {}
+
76 constexpr METAL_FUNC _MLX_BFloat16(T x) threadgroup
+
77 : bits_(float_to_bfloat_bits(static_cast<float>(x))) {}
78
79 template <
80 typename T,
81 typename = typename enable_if<can_convert_to_bfloat<T>>::type>
-
82 constexpr METAL_FUNC _MLX_BFloat16(T x) threadgroup
-
83 : bits_(float_to_bfloat_bits(static_cast<float>(x))) {}
+
82 constexpr METAL_FUNC _MLX_BFloat16(T x) device
+
83 : bits_(float_to_bfloat_bits(static_cast<float>(x))) {}
84
85 template <
86 typename T,
87 typename = typename enable_if<can_convert_to_bfloat<T>>::type>
-
88 constexpr METAL_FUNC _MLX_BFloat16(T x) device
-
89 : bits_(float_to_bfloat_bits(static_cast<float>(x))) {}
+
88 constexpr METAL_FUNC _MLX_BFloat16(T x) constant
+
89 : bits_(float_to_bfloat_bits(static_cast<float>(x))) {}
90
-
91 template <
-
92 typename T,
-
93 typename = typename enable_if<can_convert_to_bfloat<T>>::type>
-
-
94 constexpr METAL_FUNC _MLX_BFloat16(T x) constant
-
95 : bits_(float_to_bfloat_bits(static_cast<float>(x))) {}
+
92 // Conversions from bfloat
+
93
+
94 template <
+
95 typename T,
+
96 typename = typename enable_if<can_convert_from_bfloat<T>>::type>
+
+
97 constexpr METAL_FUNC operator T() const thread {
+
98 return static_cast<T>(bfloat_bits_to_float(bits_));
+
99 }
-
96
-
98 // Conversions from bfloat
-
99
-
100 template <
-
101 typename T,
-
102 typename = typename enable_if<can_convert_from_bfloat<T>>::type>
-
-
103 constexpr METAL_FUNC operator T() const thread {
-
104 return static_cast<T>(bfloat_bits_to_float(bits_));
-
105 }
+
100
+
101 template <
+
102 typename T,
+
103 typename = typename enable_if<can_convert_from_bfloat<T>>::type>
+
+
104 constexpr METAL_FUNC operator T() const threadgroup {
+
105 return static_cast<T>(bfloat_bits_to_float(bits_));
+
106 }
-
106
-
107 template <
-
108 typename T,
-
109 typename = typename enable_if<can_convert_from_bfloat<T>>::type>
-
-
110 constexpr METAL_FUNC operator T() const threadgroup {
-
111 return static_cast<T>(bfloat_bits_to_float(bits_));
-
112 }
+
107
+
108 template <
+
109 typename T,
+
110 typename = typename enable_if<can_convert_from_bfloat<T>>::type>
+
+
111 constexpr METAL_FUNC operator T() const device {
+
112 return static_cast<T>(bfloat_bits_to_float(bits_));
+
113 }
-
113
-
114 template <
-
115 typename T,
-
116 typename = typename enable_if<can_convert_from_bfloat<T>>::type>
-
-
117 constexpr METAL_FUNC operator T() const device {
-
118 return static_cast<T>(bfloat_bits_to_float(bits_));
-
119 }
+
114
+
115 template <
+
116 typename T,
+
117 typename = typename enable_if<can_convert_from_bfloat<T>>::type>
+
+
118 constexpr METAL_FUNC operator T() const constant {
+
119 return static_cast<T>(bfloat_bits_to_float(bits_));
+
120 }
-
120
-
121 template <
-
122 typename T,
-
123 typename = typename enable_if<can_convert_from_bfloat<T>>::type>
-
-
124 constexpr METAL_FUNC operator T() const constant {
-
125 return static_cast<T>(bfloat_bits_to_float(bits_));
-
126 }
+
121};
-
127};
+
122
+
124// Bfloat operators
+
126
+
128// Unary ops
+
+
129constexpr METAL_FUNC _MLX_BFloat16 operator-(_MLX_BFloat16 x) {
+
130 return -static_cast<float>(x);
+
131}
-
128
-
130// Bfloat operators
132
-
134// Unary ops
-
-
135constexpr METAL_FUNC _MLX_BFloat16 operator-(_MLX_BFloat16 x) {
-
136 return -static_cast<float>(x);
-
137}
+
134// Binary operators
+
+
135#define bfloat_binop_base(__op__, __operator__, otype, atype, btype, ctype) \
+
136 constexpr METAL_FUNC otype __operator__(atype lhs, btype rhs) { \
+
137 return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
+
138 }
-
138
-
140// Binary operators
-
-
141#define bfloat_binop_base(__op__, __operator__, otype, atype, btype, ctype) \
-
142 constexpr METAL_FUNC otype __operator__(atype lhs, btype rhs) { \
-
143 return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
-
144 }
+
139
+
+
140#define bfloat_binop_helper(__op__, __operator__, otype, itype, ctype) \
+
141 constexpr METAL_FUNC otype __operator__(_MLX_BFloat16 lhs, itype rhs) { \
+
142 return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
+
143 } \
+
144 constexpr METAL_FUNC otype __operator__(itype lhs, _MLX_BFloat16 rhs) { \
+
145 return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
+
146 }
-
145
-
-
146#define bfloat_binop_helper(__op__, __operator__, otype, itype, ctype) \
-
147 constexpr METAL_FUNC otype __operator__(_MLX_BFloat16 lhs, itype rhs) { \
-
148 return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
-
149 } \
-
150 constexpr METAL_FUNC otype __operator__(itype lhs, _MLX_BFloat16 rhs) { \
-
151 return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
-
152 }
+
147
+
149// Arithmetic Operators
+
+
150#define bfloat_binop(_op_, _operator_) \
+
151 bfloat_binop_base( \
+
152 _op_, _operator_, _MLX_BFloat16, _MLX_BFloat16, _MLX_BFloat16, float); \
+
153 bfloat_binop_helper(_op_, _operator_, float, float, float); \
+
154 bfloat_binop_helper(_op_, _operator_, float, half, float); \
+
155 bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, int32_t, float); \
+
156 bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, uint32_t, float); \
+
157 bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, int64_t, float); \
+
158 bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, uint64_t, float);
-
153
-
155// Arithmetic Operators
-
-
156#define bfloat_binop(_op_, _operator_) \
-
157 bfloat_binop_base( \
-
158 _op_, _operator_, _MLX_BFloat16, _MLX_BFloat16, _MLX_BFloat16, float); \
-
159 bfloat_binop_helper(_op_, _operator_, float, float, float); \
-
160 bfloat_binop_helper(_op_, _operator_, float, half, float); \
-
161 bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, int32_t, float); \
-
162 bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, uint32_t, float); \
-
163 bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, int64_t, float); \
-
164 bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, uint64_t, float);
+
159
+
160bfloat_binop(+, operator+);
+
161bfloat_binop(-, operator-);
+
162bfloat_binop(*, operator*);
+
163bfloat_binop(/, operator/);
+
164
+
166// Comparison ops
+
+
167#define bfloat_compop(__op__, __operator__) \
+
168 bfloat_binop_base( \
+
169 __op__, __operator__, bool, _MLX_BFloat16, _MLX_BFloat16, float); \
+
170 bfloat_binop_helper(__op__, __operator__, bool, float, float); \
+
171 bfloat_binop_helper(__op__, __operator__, bool, half, float); \
+
172 bfloat_binop_helper(__op__, __operator__, bool, int32_t, float); \
+
173 bfloat_binop_helper(__op__, __operator__, bool, uint32_t, float); \
+
174 bfloat_binop_helper(__op__, __operator__, bool, int64_t, float); \
+
175 bfloat_binop_helper(__op__, __operator__, bool, uint64_t, float);
-
165
-
166bfloat_binop(+, operator+);
-
167bfloat_binop(-, operator-);
-
168bfloat_binop(*, operator*);
-
169bfloat_binop(/, operator/);
-
170
-
172// Comparison ops
-
-
173#define bfloat_compop(__op__, __operator__) \
-
174 bfloat_binop_base( \
-
175 __op__, __operator__, bool, _MLX_BFloat16, _MLX_BFloat16, float); \
-
176 bfloat_binop_helper(__op__, __operator__, bool, float, float); \
-
177 bfloat_binop_helper(__op__, __operator__, bool, half, float); \
-
178 bfloat_binop_helper(__op__, __operator__, bool, int32_t, float); \
-
179 bfloat_binop_helper(__op__, __operator__, bool, uint32_t, float); \
-
180 bfloat_binop_helper(__op__, __operator__, bool, int64_t, float); \
-
181 bfloat_binop_helper(__op__, __operator__, bool, uint64_t, float);
+
176
+
177bfloat_compop(>, operator>);
+
178bfloat_compop(<, operator<);
+
179bfloat_compop(>=, operator>=);
+
180bfloat_compop(<=, operator<=);
+
181bfloat_compop(==, operator==);
+
182bfloat_compop(!=, operator!=);
+
183
+
184#undef bfloat_compop
+
185#undef bfloat_binop_base
+
186#undef bfloat_binop_helper
+
187#undef bfloat_binop
+
188
+
190// Inplace Operators
+
+
191#define bfloat_inplace_op_helper(__op__, __operator__, itype, addr_space) \
+
192 constexpr METAL_FUNC addr_space _MLX_BFloat16& __operator__( \
+
193 addr_space _MLX_BFloat16& lhs, itype rhs) { \
+
194 lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
+
195 return lhs; \
+
196 } \
+
197 constexpr METAL_FUNC addr_space itype& __operator__( \
+
198 addr_space itype& lhs, _MLX_BFloat16 rhs) { \
+
199 lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
+
200 return lhs; \
+
201 }
-
182
-
183bfloat_compop(>, operator>);
-
184bfloat_compop(<, operator<);
-
185bfloat_compop(>=, operator>=);
-
186bfloat_compop(<=, operator<=);
-
187bfloat_compop(==, operator==);
-
188bfloat_compop(!=, operator!=);
-
189
-
190#undef bfloat_compop
-
191#undef bfloat_binop_base
-
192#undef bfloat_binop_helper
-
193#undef bfloat_binop
-
194
-
196// Inplace Operators
-
-
197#define bfloat_inplace_op_helper(__op__, __operator__, itype, addr_space) \
-
198 constexpr METAL_FUNC addr_space _MLX_BFloat16& __operator__( \
-
199 addr_space _MLX_BFloat16& lhs, itype rhs) { \
-
200 lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
-
201 return lhs; \
-
202 } \
-
203 constexpr METAL_FUNC addr_space itype& __operator__( \
-
204 addr_space itype& lhs, _MLX_BFloat16 rhs) { \
-
205 lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
-
206 return lhs; \
-
207 }
+
202
+
+
203#define bfloat_inplace_op_addr_space_helper(__op__, __operator__, itype) \
+
204 bfloat_inplace_op_helper(__op__, __operator__, itype, device); \
+
205 bfloat_inplace_op_helper(__op__, __operator__, itype, thread); \
+
206 bfloat_inplace_op_helper(__op__, __operator__, itype, threadgroup);
-
208
-
-
209#define bfloat_inplace_op_addr_space_helper(__op__, __operator__, itype) \
-
210 bfloat_inplace_op_helper(__op__, __operator__, itype, device); \
-
211 bfloat_inplace_op_helper(__op__, __operator__, itype, thread); \
-
212 bfloat_inplace_op_helper(__op__, __operator__, itype, threadgroup);
+
207
+
+
208#define bfloat_inplace_op(itype) \
+
209 bfloat_inplace_op_addr_space_helper(+, operator+=, itype); \
+
210 bfloat_inplace_op_addr_space_helper(-, operator-=, itype); \
+
211 bfloat_inplace_op_addr_space_helper(*, operator*=, itype); \
+
212 bfloat_inplace_op_addr_space_helper(/, operator/=, itype);
213
-
-
214#define bfloat_inplace_op(itype) \
-
215 bfloat_inplace_op_addr_space_helper(+, operator+=, itype); \
-
216 bfloat_inplace_op_addr_space_helper(-, operator-=, itype); \
-
217 bfloat_inplace_op_addr_space_helper(*, operator*=, itype); \
-
218 bfloat_inplace_op_addr_space_helper(/, operator/=, itype);
-
-
219
- - - - - - - - -
228
-
229#undef bfloat_inplace_op_helper
-
230#undef bfloat_inplace_op_addr_space_helper
-
231#undef bfloat_inplace_op
-
232
-
233#define bfloat_inplace_op_helper(__op__, __operator__, addr_space) \
-
234 constexpr METAL_FUNC addr_space _MLX_BFloat16& __operator__( \
-
235 addr_space _MLX_BFloat16& lhs, _MLX_BFloat16 rhs) { \
-
236 lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
-
237 return lhs; \
-
238 }
-
239
-
240#define bfloat_inplace_op_addr_space_helper(__op__, __operator__) \
-
241 bfloat_inplace_op_helper(__op__, __operator__, device); \
-
242 bfloat_inplace_op_helper(__op__, __operator__, thread); \
-
243 bfloat_inplace_op_helper(__op__, __operator__, threadgroup);
-
244
- - - - -
249
-
250#undef bfloat_inplace_op_helper
-
251#undef bfloat_inplace_op_addr_space_helper
+ + + + + + + + +
222
+
223#undef bfloat_inplace_op_helper
+
224#undef bfloat_inplace_op_addr_space_helper
+
225#undef bfloat_inplace_op
+
226
+
227#define bfloat_inplace_op_helper(__op__, __operator__, addr_space) \
+
228 constexpr METAL_FUNC addr_space _MLX_BFloat16& __operator__( \
+
229 addr_space _MLX_BFloat16& lhs, _MLX_BFloat16 rhs) { \
+
230 lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
+
231 return lhs; \
+
232 }
+
233
+
234#define bfloat_inplace_op_addr_space_helper(__op__, __operator__) \
+
235 bfloat_inplace_op_helper(__op__, __operator__, device); \
+
236 bfloat_inplace_op_helper(__op__, __operator__, thread); \
+
237 bfloat_inplace_op_helper(__op__, __operator__, threadgroup);
+
238
+ + + + +
243
+
244#undef bfloat_inplace_op_helper
+
245#undef bfloat_inplace_op_addr_space_helper
+
246
+
248// Bfloat typedef
+
250
+
252
-
254// Bfloat typedef
+
254// Bfloat numeric limits
256
- +
257#pragma METAL internals : enable
258
-
260// Bfloat numeric limits
-
262
-
263#pragma METAL internals : enable
-
264
-
-
265namespace metal {
-
266
-
267template <>
-
-
268struct _numeric_limits_impl<bfloat16_t> : _fp_numeric_limits_impl_base {
-
269 static constexpr constant int digits = 8;
-
270 static constexpr constant int digits10 = 2;
-
271 static constexpr constant int max_digits10 = 4;
-
272 static constexpr constant int radix = 2;
-
273 static constexpr constant int min_exponent = -125;
-
274 static constexpr constant int min_exponent10 = -37;
-
275 static constexpr constant int max_exponent = 128;
-
276 static constexpr constant int max_exponent10 = 38;
-
277
+
259namespace metal {
+
260
+
261template <>
+
+
262struct _numeric_limits_impl<bfloat16_t> : _fp_numeric_limits_impl_base {
+
263 static constexpr constant int digits = 8;
+
264 static constexpr constant int digits10 = 2;
+
265 static constexpr constant int max_digits10 = 4;
+
266 static constexpr constant int radix = 2;
+
267 static constexpr constant int min_exponent = -125;
+
268 static constexpr constant int min_exponent10 = -37;
+
269 static constexpr constant int max_exponent = 128;
+
270 static constexpr constant int max_exponent10 = 38;
+
271
+
+
272 static constexpr bfloat16_t min() {
+ +
274 }
+
+
+
275 static constexpr bfloat16_t lowest() {
+ +
277 }
+
-
278 static constexpr bfloat16_t min() {
- +
278 static constexpr bfloat16_t max() {
+
280 }
-
281 static constexpr bfloat16_t lowest() {
- +
281 static constexpr bfloat16_t epsilon() {
+
283 }
-
284 static constexpr bfloat16_t max() {
- +
284 static constexpr bfloat16_t round_error() {
+
286 }
-
287 static constexpr bfloat16_t epsilon() {
- +
287 static constexpr bfloat16_t infinity() {
+
289 }
-
290 static constexpr bfloat16_t round_error() {
- +
290 static constexpr bfloat16_t quiet_NaN() {
+
292 }
-
293 static constexpr bfloat16_t infinity() {
+
293 static constexpr bfloat16_t signaling_NaN() {
295 }
-
296 static constexpr bfloat16_t quiet_NaN() {
- +
296 static constexpr bfloat16_t denorm_min() {
+
298 }
-
-
299 static constexpr bfloat16_t signaling_NaN() {
- -
301 }
+
299};
-
-
302 static constexpr bfloat16_t denorm_min() {
- -
304 }
-
-
305};
+
300
+
+
301METAL_FUNC bool isnan(_MLX_BFloat16 x) {
+
302 return x != x;
+
303}
+
304
+
305} // namespace metal
306
-
-
307METAL_FUNC bool isnan(_MLX_BFloat16 x) {
-
308 return x != x;
-
309}
+
307#pragma METAL internals : disable
+
+
308inline uint16_t bfloat16_to_uint16(const bfloat16_t x) {
+
309 return x.bits_;
+
310}
-
310
-
311} // namespace metal
+
311
+
+
312inline bfloat16_t uint16_to_bfloat16(const uint16_t x) {
+ +
314}
-
312
-
313#pragma METAL internals : disable
-
314
-
315#endif
-
316
- -
constexpr METAL_FUNC uint16_t float_to_bfloat_bits(float x)
Definition bf16.h:19
-
#define bfloat_compop(__op__, __operator__)
Definition bf16.h:173
-
constexpr METAL_FUNC float bfloat_bits_to_float(uint16_t x)
Definition bf16.h:35
-
#define bfloat_inplace_op(itype)
Definition bf16.h:214
-
constexpr METAL_FUNC _MLX_BFloat16 operator-(_MLX_BFloat16 x)
Definition bf16.h:135
-
#define bfloat_binop(_op_, _operator_)
Definition bf16.h:156
-
struct _MLX_BFloat16 bfloat16_t
Definition bf16.h:257
-
static constexpr constant bool can_convert_from_bfloat
Definition bf16.h:47
-
static constexpr constant bool can_convert_to_bfloat
Definition bf16.h:43
-
#define bfloat_inplace_op_addr_space_helper(__op__, __operator__, itype)
Definition bf16.h:209
- -
Definition bf16.h:265
-
METAL_FUNC bool isnan(_MLX_BFloat16 x)
Definition bf16.h:307
- -
Definition bf16.h:54
-
constexpr METAL_FUNC _MLX_BFloat16(T x) thread
Definition bf16.h:76
-
uint16_t bits_
Definition bf16.h:57
-
constexpr METAL_FUNC _MLX_BFloat16(uint16_t bits, bits_to_bfloat_struct)
Definition bf16.h:67
-
static constexpr METAL_FUNC bits_to_bfloat_struct bits_to_bfloat()
Definition bf16.h:64
+
uint16_t bfloat16_to_uint16(const bfloat16_t x)
Definition bf16.h:308
+
constexpr METAL_FUNC uint16_t float_to_bfloat_bits(float x)
Definition bf16.h:13
+
#define bfloat_compop(__op__, __operator__)
Definition bf16.h:167
+
constexpr METAL_FUNC float bfloat_bits_to_float(uint16_t x)
Definition bf16.h:29
+
#define bfloat_inplace_op(itype)
Definition bf16.h:208
+
constexpr METAL_FUNC _MLX_BFloat16 operator-(_MLX_BFloat16 x)
Definition bf16.h:129
+
#define bfloat_binop(_op_, _operator_)
Definition bf16.h:150
+
static constexpr constant bool can_convert_from_bfloat
Definition bf16.h:41
+
bfloat16_t uint16_to_bfloat16(const uint16_t x)
Definition bf16.h:312
+
static constexpr constant bool can_convert_to_bfloat
Definition bf16.h:37
+
#define bfloat_inplace_op_addr_space_helper(__op__, __operator__, itype)
Definition bf16.h:203
+
Definition bf16_math.h:226
+
METAL_FUNC bool isnan(_MLX_BFloat16 x)
Definition bf16.h:301
+ +
Definition bf16.h:48
+
constexpr METAL_FUNC _MLX_BFloat16(T x) thread
Definition bf16.h:70
+
uint16_t bits_
Definition bf16.h:51
+
constexpr METAL_FUNC _MLX_BFloat16(uint16_t bits, bits_to_bfloat_struct)
Definition bf16.h:61
+
static constexpr METAL_FUNC bits_to_bfloat_struct bits_to_bfloat()
Definition bf16.h:58
_MLX_BFloat16() thread=default
-
constexpr METAL_FUNC _MLX_BFloat16(T x) device
Definition bf16.h:88
-
constexpr METAL_FUNC _MLX_BFloat16(T x) threadgroup
Definition bf16.h:82
-
constexpr METAL_FUNC _MLX_BFloat16(T x) const ant
Definition bf16.h:94
-
static constexpr bfloat16_t infinity()
Definition bf16.h:293
-
static constexpr bfloat16_t denorm_min()
Definition bf16.h:302
-
static constexpr bfloat16_t max()
Definition bf16.h:284
-
static constexpr bfloat16_t epsilon()
Definition bf16.h:287
-
static constexpr bfloat16_t signaling_NaN()
Definition bf16.h:299
-
static constexpr bfloat16_t min()
Definition bf16.h:278
-
static constexpr bfloat16_t lowest()
Definition bf16.h:281
-
static constexpr bfloat16_t quiet_NaN()
Definition bf16.h:296
-
static constexpr bfloat16_t round_error()
Definition bf16.h:290
+
constexpr METAL_FUNC _MLX_BFloat16(T x) device
Definition bf16.h:82
+
constexpr METAL_FUNC _MLX_BFloat16(T x) threadgroup
Definition bf16.h:76
+
constexpr METAL_FUNC _MLX_BFloat16(T x) const ant
Definition bf16.h:88
+
static constexpr bfloat16_t infinity()
Definition bf16.h:287
+
static constexpr bfloat16_t denorm_min()
Definition bf16.h:296
+
static constexpr bfloat16_t max()
Definition bf16.h:278
+
static constexpr bfloat16_t epsilon()
Definition bf16.h:281
+
static constexpr bfloat16_t signaling_NaN()
Definition bf16.h:293
+
static constexpr bfloat16_t min()
Definition bf16.h:272
+
static constexpr bfloat16_t lowest()
Definition bf16.h:275
+
static constexpr bfloat16_t quiet_NaN()
Definition bf16.h:290
+
static constexpr bfloat16_t round_error()
Definition bf16.h:284
diff --git a/docs/build/html/backend_2metal_2kernels_2reduction_2ops_8h_source.html b/docs/build/html/backend_2metal_2kernels_2reduction_2ops_8h_source.html index 3bd0aa0c..35b73c8b 100644 --- a/docs/build/html/backend_2metal_2kernels_2reduction_2ops_8h_source.html +++ b/docs/build/html/backend_2metal_2kernels_2reduction_2ops_8h_source.html @@ -325,7 +325,7 @@ $(function(){ initResizable(false); });
static constant constexpr const uint8_t simd_size
Definition ops.h:22
#define DEFINE_SIMD_REDUCE()
Definition ops.h:8
Definition ops.h:37
-
Definition utils.h:17
+
Definition utils.h:23
Definition ops.h:185
b a
Definition ops.h:202
Definition ops.h:163
diff --git a/docs/build/html/backend_2metal_2kernels_2steel_2attn_2transforms_8h.html b/docs/build/html/backend_2metal_2kernels_2steel_2attn_2transforms_8h.html new file mode 100644 index 00000000..9e8b79eb --- /dev/null +++ b/docs/build/html/backend_2metal_2kernels_2steel_2attn_2transforms_8h.html @@ -0,0 +1,128 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/transforms.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
transforms.h File Reference
+
+ + + +
+ + diff --git a/docs/build/html/backend_2metal_2kernels_2steel_2attn_2transforms_8h_source.html b/docs/build/html/backend_2metal_2kernels_2steel_2attn_2transforms_8h_source.html new file mode 100644 index 00000000..38d8120a --- /dev/null +++ b/docs/build/html/backend_2metal_2kernels_2steel_2attn_2transforms_8h_source.html @@ -0,0 +1,201 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/transforms.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
transforms.h
+
+
+Go to the documentation of this file.
1// Copyright © 2024 Apple Inc.
+
2
+
3#pragma once
+
4
+ +
6
+
8// Transforms and Epilogues
+
10
+
11namespace mlx {
+
12namespace steel {
+
13
+
14template <typename OutT, typename InT>
+
15struct TransformNone {
+
+
16 static METAL_FUNC OutT apply(InT x) {
+
17 return static_cast<OutT>(x);
+
18 }
+
+
19
+
+
20 static METAL_FUNC OutT apply(InT x, OutT) {
+
21 return static_cast<OutT>(x);
+
22 }
+
+
23};
+
24
+
25template <typename OutT, typename InT>
+
26struct TransformAdd {
+
27 TransformAdd(const float, const float) {}
+
28
+
+
29 static METAL_FUNC OutT apply(InT x) {
+
30 return static_cast<OutT>(x);
+
31 }
+
+
32
+
+
33 static METAL_FUNC OutT apply(InT x, OutT c) {
+
34 return static_cast<OutT>(x) + c;
+
35 }
+
+
36};
+
37
+
38template <typename OutT, typename InT>
+
39struct TransformAxpby {
+
40 const float alpha;
+
41 const float beta;
+
42
+
+
43 TransformAxpby(const float alpha_, const float beta_)
+
44 : alpha(alpha_), beta(beta_) {}
+
+
45
+
+
46 static METAL_FUNC OutT apply(InT x) {
+
47 return static_cast<OutT>(x);
+
48 }
+
+
49
+
+
50 METAL_FUNC OutT apply(InT x, OutT c) const {
+
51 return static_cast<OutT>(x * alpha + (beta * c));
+
52 }
+
+
53};
+
54
+
55template <typename T>
+
56struct AccumHelper {
+
57 typedef float accum_type;
+
58};
+
59
+
60struct BlockSwizzle {
+
61 static METAL_FUNC int2
+
+
62 swizzle(uint3 tid [[threadgroup_position_in_grid]], const int swizzle_log) {
+
63 const int tid_x = (tid.x) >> swizzle_log;
+
64 const int tid_y =
+
65 ((tid.y) << swizzle_log) + ((tid.x) & ((1 << swizzle_log) - 1));
+
66 return int2(tid_x, tid_y);
+
67 }
+
+
68};
+
69
+
70} // namespace steel
+
71} // namespace mlx
+ +
Definition allocator.h:7
+
float accum_type
Definition transforms.h:57
+
Definition transforms.h:60
+
static METAL_FUNC int2 swizzle(uint3 tid, const int swizzle_log)
Definition transforms.h:62
+
static METAL_FUNC OutT apply(InT x, OutT c)
Definition transforms.h:33
+
TransformAdd(const float, const float)
Definition transforms.h:27
+
static METAL_FUNC OutT apply(InT x)
Definition transforms.h:29
+
static METAL_FUNC OutT apply(InT x)
Definition transforms.h:46
+
const float beta
Definition transforms.h:41
+
METAL_FUNC OutT apply(InT x, OutT c) const
Definition transforms.h:50
+
const float alpha
Definition transforms.h:40
+
TransformAxpby(const float alpha_, const float beta_)
Definition transforms.h:43
+
static METAL_FUNC OutT apply(InT x)
Definition transforms.h:16
+
static METAL_FUNC OutT apply(InT x, OutT)
Definition transforms.h:20
+
+ + +
+ + diff --git a/docs/build/html/backend_2metal_2kernels_2steel_2gemm_2transforms_8h_source.html b/docs/build/html/backend_2metal_2kernels_2steel_2gemm_2transforms_8h_source.html index e5a0a3b9..c8295ad7 100644 --- a/docs/build/html/backend_2metal_2kernels_2steel_2gemm_2transforms_8h_source.html +++ b/docs/build/html/backend_2metal_2kernels_2steel_2gemm_2transforms_8h_source.html @@ -141,8 +141,8 @@ $(function(){ initResizable(false); });
38template <typename OutT, typename InT>
-
40 const float alpha;
-
41 const float beta;
+
40 const float alpha;
+
41 const float beta;
42
43 TransformAxpby(const float alpha_, const float beta_)
@@ -166,7 +166,7 @@ $(function(){ initResizable(false); });
55template <typename T>
-
57 typedef float accum_type;
+
57 typedef float accum_type;
58};
59
@@ -189,7 +189,7 @@ $(function(){ initResizable(false); });
Definition allocator.h:7
Definition transforms.h:56
-
float accum_type
Definition transforms.h:57
+
float accum_type
Definition transforms.h:57
Definition transforms.h:60
static METAL_FUNC int2 swizzle(uint3 tid, const int swizzle_log)
Definition transforms.h:62
Definition transforms.h:26
diff --git a/docs/build/html/backend_2metal_2kernels_2utils_8h.html b/docs/build/html/backend_2metal_2kernels_2utils_8h.html index 39067084..90774282 100644 --- a/docs/build/html/backend_2metal_2kernels_2utils_8h.html +++ b/docs/build/html/backend_2metal_2kernels_2utils_8h.html @@ -97,7 +97,8 @@ $(function(){ initResizable(false); });
@@ -133,11 +134,11 @@ Classes   struct  Limits< complex64_t >   -struct  looped_elem_to_loc< dim, offset_t > +struct  LoopedElemToLoc< DIM, OffsetT, General >   -struct  looped_elem_to_loc< 1, offset_t > +struct  LoopedElemToLoc< 1, OffsetT, true >   -struct  looped_elem_to_loc< 0, offset_t > +struct  LoopedElemToLoc< 1, OffsetT, false >  

@@ -156,36 +157,37 @@ Typedefs

- - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -244,11 +246,11 @@ Functions
static constexpr constant type finite_min = \
metal::numeric_limits<type>::min(); \
};
-
Definition utils.h:17
-
static const constant U max
Definition utils.h:18
-
static const constant U finite_max
Definition utils.h:20
-
static const constant U min
Definition utils.h:19
-
static const constant U finite_min
Definition utils.h:21
+
Definition utils.h:23
+
static const constant U max
Definition utils.h:24
+
static const constant U finite_max
Definition utils.h:26
+
static const constant U min
Definition utils.h:25
+
static const constant U finite_min
Definition utils.h:27
@@ -343,18 +345,18 @@ template<typename T , typename U > - -

◆ elem_to_loc() [1/3]

+ +

◆ elem_to_loc() [1/3]

-template<typename stride_t >
+template<typename StrideT , typename IdxT = StrideT>

Functions

template<typename stride_t >
METAL_FUNC stride_t elem_to_loc (uint elem, constant const int *shape, constant const stride_t *strides, int ndim)
 
template<typename stride_t >
METAL_FUNC stride_t elem_to_loc (stride_t elem, constant const int *shape, constant const stride_t *strides, int ndim)
 
template<typename stride_t >
METAL_FUNC stride_t elem_to_loc (uint3 elem, constant const int *shape, constant const stride_t *strides, int ndim)
 
template<typename stride_t >
METAL_FUNC stride_t elem_to_loc_1 (uint elem, constant const stride_t &stride)
 
template<typename stride_t >
METAL_FUNC stride_t elem_to_loc_2 (uint2 elem, constant const stride_t strides[2])
 
template<typename stride_t >
METAL_FUNC stride_t elem_to_loc_3 (uint3 elem, constant const stride_t strides[3])
 
template<typename stride_t >
METAL_FUNC ulong2 elem_to_loc_2_nd (uint3 elem, constant const int *shape, constant const stride_t *a_strides, constant const stride_t *b_strides, int ndim)
 
METAL_FUNC ulong3 elem_to_loc_3_nd (uint3 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)
 
template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC IdxT elem_to_loc (uint elem, constant const int *shape, constant const StrideT *strides, int ndim)
 
template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC IdxT elem_to_loc (StrideT elem, constant const int *shape, constant const StrideT *strides, int ndim)
 
template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC IdxT elem_to_loc (uint3 elem, constant const int *shape, constant const StrideT *strides, int ndim)
 
template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC IdxT elem_to_loc_1 (uint elem, constant const StrideT &stride)
 
template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC IdxT elem_to_loc_2 (uint2 elem, constant const StrideT strides[2])
 
template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC IdxT elem_to_loc_3 (uint3 elem, constant const StrideT strides[3])
 
template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC vec< IdxT, 2 > elem_to_loc_2_nd (uint3 elem, constant const int *shape, constant const StrideT *a_strides, constant const StrideT *b_strides, int ndim)
 
template<typename IdxT = size_t>
METAL_FUNC vec< IdxT, 3 > elem_to_loc_3_nd (uint3 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)
 
template<typename T , typename U >
ceildiv (T N, U M)
 Compute ceil((float)N/(float)M)
 
float log1p (float x)
 
bfloat16_t log1p (bfloat16_t x)
bfloat16_t log1p (bfloat16_t x)
 
uint64_t simd_shuffle_down (uint64_t data, uint16_t delta)
 
- + - + @@ -364,7 +366,7 @@ template<typename stride_t > - + @@ -376,16 +378,16 @@ template<typename stride_t > - -

◆ elem_to_loc() [2/3]

+ +

◆ elem_to_loc() [2/3]

-template<typename stride_t >
+template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC stride_t elem_to_loc METAL_FUNC IdxT elem_to_loc (stride_t elem, StrideT elem,
constant const stride_t * strides, constant const StrideT * strides,
- + @@ -397,7 +399,7 @@ template<typename stride_t > - + @@ -409,16 +411,16 @@ template<typename stride_t > - -

◆ elem_to_loc() [3/3]

+ +

◆ elem_to_loc() [3/3]

-template<typename stride_t >
+template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC stride_t elem_to_loc METAL_FUNC IdxT elem_to_loc ( uint elem,
constant const stride_t * strides, constant const StrideT * strides,
- + @@ -430,7 +432,7 @@ template<typename stride_t > - + @@ -442,62 +444,62 @@ template<typename stride_t > - -

◆ elem_to_loc_1()

+ +

◆ elem_to_loc_1()

-template<typename stride_t >
+template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC stride_t elem_to_loc METAL_FUNC IdxT elem_to_loc ( uint3 elem,
constant const stride_t * strides, constant const StrideT * strides,
- + - +
METAL_FUNC stride_t elem_to_loc_1 METAL_FUNC IdxT elem_to_loc_1 ( uint elem,
constant const stride_t & stride )constant const StrideT & stride )
- -

◆ elem_to_loc_2()

+ +

◆ elem_to_loc_2()

-template<typename stride_t >
+template<typename StrideT , typename IdxT = StrideT>
- + - +
METAL_FUNC stride_t elem_to_loc_2 METAL_FUNC IdxT elem_to_loc_2 ( uint2 elem,
constant const stride_t strides[2] )constant const StrideT strides[2] )
- -

◆ elem_to_loc_2_nd()

+ +

◆ elem_to_loc_2_nd()

-template<typename stride_t >
+template<typename StrideT , typename IdxT = StrideT>
- + @@ -509,12 +511,12 @@ template<typename stride_t > - + - + @@ -526,37 +528,39 @@ template<typename stride_t > - -

◆ elem_to_loc_3()

+ +

◆ elem_to_loc_3()

-template<typename stride_t >
+template<typename StrideT , typename IdxT = StrideT>
METAL_FUNC ulong2 elem_to_loc_2_nd METAL_FUNC vec< IdxT, 2 > elem_to_loc_2_nd ( uint3 elem,
constant const stride_t * a_strides, constant const StrideT * a_strides,
constant const stride_t * b_strides, constant const StrideT * b_strides,
- + - +
METAL_FUNC stride_t elem_to_loc_3 METAL_FUNC IdxT elem_to_loc_3 ( uint3 elem,
constant const stride_t strides[3] )constant const StrideT strides[3] )
- -

◆ elem_to_loc_3_nd()

+ +

◆ elem_to_loc_3_nd()

+
+template<typename IdxT = size_t>
- + @@ -600,9 +604,9 @@ template<typename stride_t >
METAL_FUNC ulong3 elem_to_loc_3_nd METAL_FUNC vec< IdxT, 3 > elem_to_loc_3_nd ( uint3 elem,
- + - +
bfloat16_t log1p bfloat16_t log1p (bfloat16_t x)bfloat16_t x)
diff --git a/docs/build/html/backend_2metal_2kernels_2utils_8h_source.html b/docs/build/html/backend_2metal_2kernels_2utils_8h_source.html index ddb1325c..66c8011c 100644 --- a/docs/build/html/backend_2metal_2kernels_2utils_8h_source.html +++ b/docs/build/html/backend_2metal_2kernels_2utils_8h_source.html @@ -96,497 +96,546 @@ $(function(){ initResizable(false); });
3#pragma once
4
5#include <metal_math>
- - - -
9
-
10typedef half float16_t;
+
6
+
7// The correct bf16.h is included based on the metal version
+
8// by giving the correct path to -I during compilation
+
9// e.g. mlx/backend/metal/kernels/metal_3_0/ for Metal 3.0
+
10#include "bf16.h"
11
-
13// Type limits utils
+ + +
15
-
16template <typename U>
-
-
17struct Limits {
-
18 static const constant U max = metal::numeric_limits<U>::max();
-
19 static const constant U min = metal::numeric_limits<U>::min();
-
20 static const constant U finite_max = metal::numeric_limits<U>::max();
-
21 static const constant U finite_min = metal::numeric_limits<U>::min();
-
22};
+
16typedef half float16_t;
+
17
+
19// Type limits utils
+
21
+
22template <typename U>
+
+
23struct Limits {
+
24 static const constant U max = metal::numeric_limits<U>::max();
+
25 static const constant U min = metal::numeric_limits<U>::min();
+
26 static const constant U finite_max = metal::numeric_limits<U>::max();
+
27 static const constant U finite_min = metal::numeric_limits<U>::min();
+
28};
-
23
-
-
24#define instantiate_default_limit(type) \
-
25 template <> \
-
26 struct Limits<type> { \
-
27 static constexpr constant type max = metal::numeric_limits<type>::max(); \
-
28 static constexpr constant type min = metal::numeric_limits<type>::min(); \
-
29 static constexpr constant type finite_max = \
-
30 metal::numeric_limits<type>::max(); \
-
31 static constexpr constant type finite_min = \
-
32 metal::numeric_limits<type>::min(); \
-
33 };
+
29
+
+
30#define instantiate_default_limit(type) \
+
31 template <> \
+
32 struct Limits<type> { \
+
33 static constexpr constant type max = metal::numeric_limits<type>::max(); \
+
34 static constexpr constant type min = metal::numeric_limits<type>::min(); \
+
35 static constexpr constant type finite_max = \
+
36 metal::numeric_limits<type>::max(); \
+
37 static constexpr constant type finite_min = \
+
38 metal::numeric_limits<type>::min(); \
+
39 };
-
34
- - - - - - - - -
43
-
-
44#define instantiate_float_limit(type) \
-
45 template <> \
-
46 struct Limits<type> { \
-
47 static constexpr constant type max = \
-
48 metal::numeric_limits<type>::infinity(); \
-
49 static constexpr constant type min = \
-
50 -metal::numeric_limits<type>::infinity(); \
-
51 static constexpr constant type finite_max = \
-
52 metal::numeric_limits<type>::max(); \
-
53 static constexpr constant type finite_min = \
-
54 -metal::numeric_limits<type>::max(); \
-
55 };
-
-
56
- - - -
60
-
61template <>
-
-
62struct Limits<bool> {
-
63 static constexpr constant bool max = true;
-
64 static constexpr constant bool min = false;
-
65};
+
40
+ + + + + + + + +
49
+
+
50#define instantiate_float_limit(type) \
+
51 template <> \
+
52 struct Limits<type> { \
+
53 static constexpr constant type max = \
+
54 metal::numeric_limits<type>::infinity(); \
+
55 static constexpr constant type min = \
+
56 -metal::numeric_limits<type>::infinity(); \
+
57 static constexpr constant type finite_max = \
+
58 metal::numeric_limits<type>::max(); \
+
59 static constexpr constant type finite_min = \
+
60 -metal::numeric_limits<type>::max(); \
+
61 };
+
62
+ + +
66
67template <>
- -
69 static constexpr constant complex64_t max = complex64_t(
-
70 metal::numeric_limits<float>::infinity(),
-
71 metal::numeric_limits<float>::infinity());
-
72 static constexpr constant complex64_t min = complex64_t(
-
73 -metal::numeric_limits<float>::infinity(),
-
74 -metal::numeric_limits<float>::infinity());
-
75};
+
68struct Limits<bool> {
+
69 static constexpr constant bool max = true;
+
70 static constexpr constant bool min = false;
+
71};
+
+
72
+
73template <>
+
+ +
75 static constexpr constant complex64_t max = complex64_t(
+
76 metal::numeric_limits<float>::infinity(),
+
77 metal::numeric_limits<float>::infinity());
+
78 static constexpr constant complex64_t min = complex64_t(
+
79 -metal::numeric_limits<float>::infinity(),
+
80 -metal::numeric_limits<float>::infinity());
+
81};
-
76
-
78// Indexing utils
-
80
-
81#define MLX_MTL_PRAGMA_UNROLL _Pragma("clang loop unroll(full)")
82
-
84// Single Array with generic dims
-
85
-
86template <typename stride_t>
-
-
87METAL_FUNC stride_t elem_to_loc(
-
88 uint elem,
-
89 constant const int* shape,
-
90 constant const stride_t* strides,
-
91 int ndim) {
-
92 stride_t loc = 0;
-
93 for (int i = ndim - 1; i >= 0 && elem > 0; --i) {
-
94 loc += (elem % shape[i]) * strides[i];
-
95 elem /= shape[i];
-
96 }
-
97 return loc;
-
98}
+
84// Indexing utils
+
86
+
87#define MLX_MTL_PRAGMA_UNROLL _Pragma("clang loop unroll(full)")
+
88
+
90// Single Array with generic dims
+
91
+
92template <typename StrideT, typename IdxT = StrideT>
+
+
93METAL_FUNC IdxT elem_to_loc(
+
94 uint elem,
+
95 constant const int* shape,
+
96 constant const StrideT* strides,
+
97 int ndim) {
+
98 IdxT loc = 0;
+
99 for (int i = ndim - 1; i >= 0 && elem > 0; --i) {
+
100 loc += (elem % shape[i]) * IdxT(strides[i]);
+
101 elem /= shape[i];
+
102 }
+
103 return loc;
+
104}
-
99
-
100template <typename stride_t>
-
-
101METAL_FUNC stride_t elem_to_loc(
-
102 stride_t elem,
-
103 constant const int* shape,
-
104 constant const stride_t* strides,
-
105 int ndim) {
-
106 stride_t loc = 0;
-
107 for (int i = ndim - 1; i >= 0 && elem > 0; --i) {
-
108 loc += (elem % shape[i]) * strides[i];
-
109 elem /= shape[i];
-
110 }
-
111 return loc;
-
112}
+
105
+
106template <typename StrideT, typename IdxT = StrideT>
+
+
107METAL_FUNC IdxT elem_to_loc(
+
108 StrideT elem,
+
109 constant const int* shape,
+
110 constant const StrideT* strides,
+
111 int ndim) {
+
112 IdxT loc = 0;
+
113 for (int i = ndim - 1; i >= 0 && elem > 0; --i) {
+
114 loc += (elem % shape[i]) * IdxT(strides[i]);
+
115 elem /= shape[i];
+
116 }
+
117 return loc;
+
118}
-
113
-
114// Non templated version to handle arbitrary dims
-
115template <typename stride_t>
-
-
116METAL_FUNC stride_t elem_to_loc(
-
117 uint3 elem,
-
118 constant const int* shape,
-
119 constant const stride_t* strides,
-
120 int ndim) {
-
121 stride_t loc = elem.x * strides[ndim - 1] + elem.y * strides[ndim - 2];
-
122 for (int d = ndim - 3; d >= 0; --d) {
-
123 loc += (elem.z % shape[d]) * strides[d];
-
124 elem.z /= shape[d];
-
125 }
-
126 return loc;
-
127}
+
119
+
120// Non templated version to handle arbitrary dims
+
121template <typename StrideT, typename IdxT = StrideT>
+
+
122METAL_FUNC IdxT elem_to_loc(
+
123 uint3 elem,
+
124 constant const int* shape,
+
125 constant const StrideT* strides,
+
126 int ndim) {
+
127 IdxT loc =
+
128 elem.x * IdxT(strides[ndim - 1]) + elem.y * IdxT(strides[ndim - 2]);
+
129 for (int d = ndim - 3; d >= 0; --d) {
+
130 loc += (elem.z % shape[d]) * IdxT(strides[d]);
+
131 elem.z /= shape[d];
+
132 }
+
133 return loc;
+
134}
-
128
-
130// Single Array with fixed N dims
-
131
-
132template <typename stride_t>
-
-
133METAL_FUNC stride_t elem_to_loc_1(uint elem, constant const stride_t& stride) {
-
134 return elem * stride;
-
135}
+
135
+
137// Single Array with fixed N dims
+
138
+
139template <typename StrideT, typename IdxT = StrideT>
+
+
140METAL_FUNC IdxT elem_to_loc_1(uint elem, constant const StrideT& stride) {
+
141 return elem * IdxT(stride);
+
142}
-
136
-
137template <typename stride_t>
-
138METAL_FUNC stride_t
-
-
139elem_to_loc_2(uint2 elem, constant const stride_t strides[2]) {
-
140 return elem.x * strides[1] + elem.y * strides[0];
-
141}
-
-
142
-
143template <typename stride_t>
-
144METAL_FUNC stride_t
+
143
+
144template <typename StrideT, typename IdxT = StrideT>
-
145elem_to_loc_3(uint3 elem, constant const stride_t strides[3]) {
-
146 return elem.x * strides[2] + elem.y * strides[1] + elem.z * strides[0];
+
145METAL_FUNC IdxT elem_to_loc_2(uint2 elem, constant const StrideT strides[2]) {
+
146 return elem.x * IdxT(strides[1]) + elem.y * IdxT(strides[0]);
147}
148
-
150// Multiple Arrays with generic dims
-
151
-
152template <typename stride_t>
-
-
153METAL_FUNC ulong2 elem_to_loc_2_nd(
-
154 uint3 elem,
-
155 constant const int* shape,
-
156 constant const stride_t* a_strides,
-
157 constant const stride_t* b_strides,
-
158 int ndim) {
-
159 ulong2 loc = {
-
160 ulong(elem.x * a_strides[ndim - 1] + elem.y * a_strides[ndim - 2]),
-
161 ulong(elem.x * b_strides[ndim - 1] + elem.y * b_strides[ndim - 2])};
-
162 for (int d = ndim - 3; d >= 0; --d) {
-
163 uint l = elem.z % shape[d];
-
164 loc.x += l * a_strides[d];
-
165 loc.y += l * b_strides[d];
-
166 elem.z /= shape[d];
-
167 }
-
168 return loc;
-
169}
+
149template <typename StrideT, typename IdxT = StrideT>
+
+
150METAL_FUNC IdxT elem_to_loc_3(uint3 elem, constant const StrideT strides[3]) {
+
151 return elem.x * IdxT(strides[2]) + elem.y * IdxT(strides[1]) +
+
152 elem.z * IdxT(strides[0]);
+
153}
-
170
-
-
171METAL_FUNC ulong3 elem_to_loc_3_nd(
-
172 uint3 elem,
-
173 constant const int* shape,
-
174 constant const size_t* a_strides,
-
175 constant const size_t* b_strides,
-
176 constant const size_t* c_strides,
-
177 int ndim) {
-
178 ulong3 loc = {
-
179 elem.x * a_strides[ndim - 1] + elem.y * a_strides[ndim - 2],
-
180 elem.x * b_strides[ndim - 1] + elem.y * b_strides[ndim - 2],
-
181 elem.x * c_strides[ndim - 1] + elem.y * c_strides[ndim - 2]};
-
182 for (int d = ndim - 3; d >= 0; --d) {
-
183 uint l = elem.z % shape[d];
-
184 loc.x += l * a_strides[d];
-
185 loc.y += l * b_strides[d];
-
186 loc.z += l * c_strides[d];
-
187 elem.z /= shape[d];
-
188 }
-
189 return loc;
-
190}
+
154
+
156// Multiple Arrays with generic dims
+
157
+
158template <typename StrideT, typename IdxT = StrideT>
+
+
159METAL_FUNC vec<IdxT, 2> elem_to_loc_2_nd(
+
160 uint3 elem,
+
161 constant const int* shape,
+
162 constant const StrideT* a_strides,
+
163 constant const StrideT* b_strides,
+
164 int ndim) {
+
165 vec<IdxT, 2> loc = {
+
166 IdxT(
+
167 elem.x * IdxT(a_strides[ndim - 1]) +
+
168 IdxT(elem.y) * IdxT(a_strides[ndim - 2])),
+
169 IdxT(
+
170 elem.x * IdxT(b_strides[ndim - 1]) +
+
171 elem.y * IdxT(b_strides[ndim - 2]))};
+
172 for (int d = ndim - 3; d >= 0; --d) {
+
173 uint l = elem.z % shape[d];
+
174 loc.x += l * IdxT(a_strides[d]);
+
175 loc.y += l * IdxT(b_strides[d]);
+
176 elem.z /= shape[d];
+
177 }
+
178 return loc;
+
179}
-
191
-
193// Elem to loc in a loop utils
-
195
-
196template <int dim, typename offset_t = size_t>
-
- - -
199 offset_t offset{0};
-
200 int index{0};
-
201
-
-
202 void next(const constant int* shape, const constant size_t* strides) {
-
203 index++;
-
204 offset += strides[dim - 1];
-
205
-
206 if (index >= shape[dim - 1]) {
-
207 index = 0;
-
208 inner_looper.next(shape, strides);
-
209 offset = inner_looper.offset;
-
210 }
-
211 }
+
180
+
181template <typename IdxT = size_t>
+
+
182METAL_FUNC vec<IdxT, 3> elem_to_loc_3_nd(
+
183 uint3 elem,
+
184 constant const int* shape,
+
185 constant const size_t* a_strides,
+
186 constant const size_t* b_strides,
+
187 constant const size_t* c_strides,
+
188 int ndim) {
+
189 vec<IdxT, 3> loc = {
+
190 elem.x * IdxT(a_strides[ndim - 1]) + elem.y * IdxT(a_strides[ndim - 2]),
+
191 elem.x * IdxT(b_strides[ndim - 1]) + elem.y * IdxT(b_strides[ndim - 2]),
+
192 elem.x * IdxT(c_strides[ndim - 1]) + elem.y * IdxT(c_strides[ndim - 2])};
+
193 for (int d = ndim - 3; d >= 0; --d) {
+
194 uint l = elem.z % shape[d];
+
195 loc.x += l * IdxT(a_strides[d]);
+
196 loc.y += l * IdxT(b_strides[d]);
+
197 loc.z += l * IdxT(c_strides[d]);
+
198 elem.z /= shape[d];
+
199 }
+
200 return loc;
+
201}
-
212
-
-
213 void next(int n, const constant int* shape, const constant size_t* strides) {
-
214 index += n;
-
215 offset += n * strides[dim - 1];
-
216
-
217 if (index >= shape[dim - 1]) {
-
218 int extra = index - shape[dim - 1];
-
219 index = 0;
-
220 inner_looper.next(shape, strides);
-
221 offset = inner_looper.offset;
-
222 if (extra > 0) {
-
223 next(extra, shape, strides);
-
224 }
-
225 }
-
226 }
+
202
+
204// Elem to loc in a loop utils
+
206
+
207template <int DIM, typename OffsetT = size_t, bool General = true>
+
+ +
209 int dim;
+
210 LoopedElemToLoc<DIM - 1, OffsetT, General> inner_looper;
+
211 OffsetT offset{0};
+
212 int index{0};
+
213
+ +
215
+
+
216 void next(const constant int* shape, const constant size_t* strides) {
+
217 if (dim == 0) {
+
218 return;
+
219 }
+
220 index++;
+
221 offset += OffsetT(strides[dim - 1]);
+
222 if (index >= shape[dim - 1]) {
+
223 index = 0;
+
224 inner_looper.next(shape, strides);
+
225 offset = inner_looper.offset;
+
226 }
+
227 }
-
227
-
228 offset_t
+
228
-
229 location(offset_t, const constant int*, const constant size_t*, int) {
-
230 return offset;
-
231 }
-
-
232};
-
-
233
-
234template <typename offset_t>
-
-
235struct looped_elem_to_loc<1, offset_t> {
-
236 offset_t offset{0};
-
237
-
-
238 void next(const constant int*, const constant size_t* strides) {
-
239 offset += strides[0];
-
240 }
-
-
241
-
-
242 void next(int n, const constant int*, const constant size_t* strides) {
-
243 offset += n * strides[0];
-
244 }
-
-
245
-
246 offset_t
-
-
247 location(offset_t, const constant int*, const constant size_t*, int) {
-
248 return offset;
-
249 }
-
-
250};
+
229 void next(int n, const constant int* shape, const constant size_t* strides) {
+
230 if (dim == 0) {
+
231 return;
+
232 }
+
233 index += n;
+
234 offset += n * OffsetT(strides[dim - 1]);
+
235
+
236 if (index >= shape[dim - 1]) {
+
237 int extra = index - shape[dim - 1];
+
238 if (extra >= shape[dim - 1]) {
+
239 inner_looper.next(1 + extra / shape[dim - 1], shape, strides);
+
240 extra = extra % shape[dim - 1];
+
241 } else {
+
242 inner_looper.next(shape, strides);
+
243 }
+
244 index = 0;
+
245 offset = inner_looper.offset;
+
246 if (extra > 0) {
+
247 next(extra, shape, strides);
+
248 }
+
249 }
+
250 }
251
-
252template <typename offset_t>
-
-
253struct looped_elem_to_loc<0, offset_t> {
-
254 void next(const constant int*, const constant size_t*) {}
-
255 void next(int, const constant int*, const constant size_t*) {}
+
+
252 OffsetT location() {
+
253 return offset;
+
254 }
+
+
255};
+
256
-
-
257 offset_t location(
-
258 offset_t idx,
-
259 const constant int* shape,
-
260 const constant size_t* strides,
-
261 int ndim) {
-
262 return elem_to_loc(idx, shape, strides, ndim);
-
263 }
+
257template <typename OffsetT>
+
+
258struct LoopedElemToLoc<1, OffsetT, true> {
+
259 int dim;
+
260 OffsetT offset{0};
+
261 uint index{0};
+
262
+ +
264
+
+
265 void next(const constant int* shape, const constant size_t* strides) {
+
266 index++;
+
267 if (dim > 1) {
+
268 offset = elem_to_loc<size_t, OffsetT>(index, shape, strides, dim);
+
269 } else {
+
270 offset += OffsetT(strides[0]);
+
271 }
+
272 }
-
264};
-
-
265
-
267// Calculation utils
-
269
-
271template <typename T, typename U>
-
-
272inline T ceildiv(T N, U M) {
-
273 return (N + M - 1) / M;
-
274}
-
-
275
-
276// https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#1202
-
-
277inline float log1p(float x) {
-
278 float xp1 = 1.0f + x;
-
279 if (xp1 == Limits<float>::max) {
-
280 return Limits<float>::max;
+
273
+
+
274 void next(int n, const constant int* shape, const constant size_t* strides) {
+
275 index += n;
+
276 if (dim > 1) {
+
277 offset = elem_to_loc<size_t, OffsetT>(index, shape, strides, dim);
+
278 } else {
+
279 offset = index * OffsetT(strides[0]);
+
280 }
281 }
-
282 if (xp1 == 1.0f) {
-
283 return x;
-
284 }
-
285
-
286 return x * (metal::log(xp1) / (xp1 - 1.0f));
-
287}
-
288
-
- -
290 float xp1 = 1.0f + static_cast<float>(x);
-
291 if (xp1 == Limits<float>::max) {
- -
293 }
-
294 if (xp1 == 1.0f) {
-
295 return x;
+
282
+
+
283 OffsetT location() {
+
284 return offset;
+
285 }
+
+
286};
+
+
287
+
288template <typename OffsetT>
+
+
289struct LoopedElemToLoc<1, OffsetT, false> {
+
290 OffsetT offset{0};
+
291
+ +
293
+
+
294 void next(const constant int*, const constant size_t* strides) {
+
295 offset += OffsetT(strides[0]);
296 }
+
297
-
298 return bfloat16_t(x * (metal::log(xp1) / (xp1 - 1.0f)));
-
299}
+
+
298 void next(int n, const constant int*, const constant size_t* strides) {
+
299 offset += n * OffsetT(strides[0]);
+
300 }
-
300
-
302// SIMD shuffle ops
-
304
-
-
305inline uint64_t simd_shuffle_down(uint64_t data, uint16_t delta) {
-
306 return as_type<uint64_t>(
-
307 metal::simd_shuffle_down(as_type<uint2>(data), delta));
-
308}
+
301
+
+
302 OffsetT location() {
+
303 return offset;
+
304 }
-
309
-
-
310inline int64_t simd_shuffle_down(int64_t data, uint16_t delta) {
-
311 return as_type<int64_t>(
-
312 metal::simd_shuffle_down(as_type<uint2>(data), delta));
-
313}
+
305};
-
314
-
-
315inline bool simd_shuffle_down(bool data, uint16_t delta) {
-
316 return simd_shuffle_down(static_cast<uint32_t>(data), delta);
-
317}
+
306
+
308// Calculation utils
+
310
+
312template <typename T, typename U>
+
+
313inline T ceildiv(T N, U M) {
+
314 return (N + M - 1) / M;
+
315}
-
318
-
-
319inline complex64_t simd_shuffle_down(complex64_t data, uint16_t delta) {
-
320 return complex64_t(
-
321 simd_shuffle_down(data.real, delta), simd_shuffle_down(data.imag, delta));
-
322}
+
316
+
317// https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#1202
+
+
318inline float log1p(float x) {
+
319 float xp1 = 1.0f + x;
+
320 if (xp1 == Limits<float>::max) {
+
321 return Limits<float>::max;
+
322 }
+
323 if (xp1 == 1.0f) {
+
324 return x;
+
325 }
+
326
+
327 return x * (metal::log(xp1) / (xp1 - 1.0f));
+
328}
-
323
-
-
324inline uint64_t simd_shuffle_up(uint64_t data, uint16_t delta) {
-
325 return as_type<uint64_t>(metal::simd_shuffle_up(as_type<uint2>(data), delta));
-
326}
+
329
+
+ +
331 float xp1 = 1.0f + static_cast<float>(x);
+
332 if (xp1 == Limits<float>::max) {
+ +
334 }
+
335 if (xp1 == 1.0f) {
+
336 return x;
+
337 }
+
338
+
339 return bfloat16_t(x * (metal::log(xp1) / (xp1 - 1.0f)));
+
340}
-
327
-
-
328inline int64_t simd_shuffle_up(int64_t data, uint16_t delta) {
-
329 return as_type<int64_t>(metal::simd_shuffle_up(as_type<uint2>(data), delta));
-
330}
+
341
+
343// SIMD shuffle ops
+
345
+
+
346inline uint64_t simd_shuffle_down(uint64_t data, uint16_t delta) {
+
347 return as_type<uint64_t>(
+
348 metal::simd_shuffle_down(as_type<uint2>(data), delta));
+
349}
-
331
-
-
332inline bool simd_shuffle_up(bool data, uint16_t delta) {
-
333 return simd_shuffle_up(static_cast<uint32_t>(data), delta);
-
334}
+
350
+
+
351inline int64_t simd_shuffle_down(int64_t data, uint16_t delta) {
+
352 return as_type<int64_t>(
+
353 metal::simd_shuffle_down(as_type<uint2>(data), delta));
+
354}
-
335
-
-
336inline complex64_t simd_shuffle_up(complex64_t data, uint16_t delta) {
-
337 return complex64_t(
-
338 simd_shuffle_up(data.real, delta), simd_shuffle_up(data.imag, delta));
-
339}
+
355
+
+
356inline bool simd_shuffle_down(bool data, uint16_t delta) {
+
357 return simd_shuffle_down(static_cast<uint32_t>(data), delta);
+
358}
-
340
-
341inline uint64_t
-
-
342simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta) {
-
343 return as_type<uint64_t>(metal::simd_shuffle_and_fill_up(
-
344 as_type<uint2>(data), as_type<uint2>(filling), delta));
-
345}
+
359
+
+
360inline complex64_t simd_shuffle_down(complex64_t data, uint16_t delta) {
+
361 return complex64_t(
+
362 simd_shuffle_down(data.real, delta), simd_shuffle_down(data.imag, delta));
+
363}
-
346
-
347inline int64_t
-
-
348simd_shuffle_and_fill_up(int64_t data, int64_t filling, uint16_t delta) {
-
349 return as_type<int64_t>(metal::simd_shuffle_and_fill_up(
-
350 as_type<uint2>(data), as_type<uint2>(filling), delta));
-
351}
+
364
+
+
365inline uint64_t simd_shuffle_up(uint64_t data, uint16_t delta) {
+
366 return as_type<uint64_t>(metal::simd_shuffle_up(as_type<uint2>(data), delta));
+
367}
-
352
-
-
353inline bool simd_shuffle_and_fill_up(bool data, bool filling, uint16_t delta) {
- -
355 static_cast<uint32_t>(data), static_cast<uint32_t>(filling), delta);
-
356}
+
368
+
+
369inline int64_t simd_shuffle_up(int64_t data, uint16_t delta) {
+
370 return as_type<int64_t>(metal::simd_shuffle_up(as_type<uint2>(data), delta));
+
371}
-
357
-
- -
359 complex64_t data,
-
360 complex64_t filling,
-
361 uint16_t delta) {
-
362 return complex64_t(
-
363 simd_shuffle_and_fill_up(data.real, filling.real, delta),
-
364 simd_shuffle_and_fill_up(data.imag, filling.imag, delta));
-
365}
+
372
+
+
373inline bool simd_shuffle_up(bool data, uint16_t delta) {
+
374 return simd_shuffle_up(static_cast<uint32_t>(data), delta);
+
375}
-
366
-
-
367inline uint64_t simd_shuffle(uint64_t data, uint16_t lane) {
-
368 return as_type<uint64_t>(metal::simd_shuffle(as_type<uint2>(data), lane));
-
369}
+
376
+
+
377inline complex64_t simd_shuffle_up(complex64_t data, uint16_t delta) {
+
378 return complex64_t(
+
379 simd_shuffle_up(data.real, delta), simd_shuffle_up(data.imag, delta));
+
380}
-
370
-
-
371inline int64_t simd_shuffle(int64_t data, uint16_t lane) {
-
372 return as_type<int64_t>(metal::simd_shuffle(as_type<uint2>(data), lane));
-
373}
+
381
+
382inline uint64_t
+
+
383simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta) {
+
384 return as_type<uint64_t>(metal::simd_shuffle_and_fill_up(
+
385 as_type<uint2>(data), as_type<uint2>(filling), delta));
+
386}
-
374
-
-
375inline bool simd_shuffle(bool data, uint16_t lane) {
-
376 return simd_shuffle(static_cast<uint32_t>(data), lane);
-
377}
+
387
+
388inline int64_t
+
+
389simd_shuffle_and_fill_up(int64_t data, int64_t filling, uint16_t delta) {
+
390 return as_type<int64_t>(metal::simd_shuffle_and_fill_up(
+
391 as_type<uint2>(data), as_type<uint2>(filling), delta));
+
392}
-
378
-
-
379inline complex64_t simd_shuffle(complex64_t data, uint16_t lane) {
-
380 return complex64_t(
-
381 simd_shuffle(data.real, lane), simd_shuffle(data.imag, lane));
-
382}
+
393
+
+
394inline bool simd_shuffle_and_fill_up(bool data, bool filling, uint16_t delta) {
+ +
396 static_cast<uint32_t>(data), static_cast<uint32_t>(filling), delta);
+
397}
+
+
398
+
+ +
400 complex64_t data,
+
401 complex64_t filling,
+
402 uint16_t delta) {
+
403 return complex64_t(
+
404 simd_shuffle_and_fill_up(data.real, filling.real, delta),
+
405 simd_shuffle_and_fill_up(data.imag, filling.imag, delta));
+
406}
+
+
407
+
+
408inline uint64_t simd_shuffle(uint64_t data, uint16_t lane) {
+
409 return as_type<uint64_t>(metal::simd_shuffle(as_type<uint2>(data), lane));
+
410}
+
+
411
+
+
412inline int64_t simd_shuffle(int64_t data, uint16_t lane) {
+
413 return as_type<int64_t>(metal::simd_shuffle(as_type<uint2>(data), lane));
+
414}
+
+
415
+
+
416inline bool simd_shuffle(bool data, uint16_t lane) {
+
417 return simd_shuffle(static_cast<uint32_t>(data), lane);
+
418}
+
+
419
+
+
420inline complex64_t simd_shuffle(complex64_t data, uint16_t lane) {
+
421 return complex64_t(
+
422 simd_shuffle(data.real, lane), simd_shuffle(data.imag, lane));
+
423}
BufferHolder * next
Definition allocator.h:38
- -
struct _MLX_BFloat16 bfloat16_t
Definition bf16.h:257
-
METAL_FUNC ulong2 elem_to_loc_2_nd(uint3 elem, constant const int *shape, constant const stride_t *a_strides, constant const stride_t *b_strides, int ndim)
Definition utils.h:153
-
METAL_FUNC stride_t elem_to_loc_1(uint elem, constant const stride_t &stride)
Definition utils.h:133
-
#define instantiate_float_limit(type)
Definition utils.h:44
-
float log1p(float x)
Definition utils.h:277
-
METAL_FUNC stride_t elem_to_loc_3(uint3 elem, constant const stride_t strides[3])
Definition utils.h:145
-
METAL_FUNC ulong3 elem_to_loc_3_nd(uint3 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)
Definition utils.h:171
-
T ceildiv(T N, U M)
Compute ceil((float)N/(float)M)
Definition utils.h:272
-
METAL_FUNC stride_t elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim)
Definition utils.h:87
-
#define instantiate_default_limit(type)
Definition utils.h:24
-
half float16_t
Definition utils.h:10
-
METAL_FUNC stride_t elem_to_loc_2(uint2 elem, constant const stride_t strides[2])
Definition utils.h:139
+
struct _MLX_BFloat16 bfloat16_t
Definition bf16.h:251
+
#define instantiate_float_limit(type)
Definition utils.h:50
+
METAL_FUNC IdxT elem_to_loc(uint elem, constant const int *shape, constant const StrideT *strides, int ndim)
Definition utils.h:93
+
float log1p(float x)
Definition utils.h:318
+
METAL_FUNC IdxT elem_to_loc_2(uint2 elem, constant const StrideT strides[2])
Definition utils.h:145
+
METAL_FUNC IdxT elem_to_loc_3(uint3 elem, constant const StrideT strides[3])
Definition utils.h:150
+
METAL_FUNC vec< IdxT, 3 > elem_to_loc_3_nd(uint3 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)
Definition utils.h:182
+
METAL_FUNC vec< IdxT, 2 > elem_to_loc_2_nd(uint3 elem, constant const int *shape, constant const StrideT *a_strides, constant const StrideT *b_strides, int ndim)
Definition utils.h:159
+
T ceildiv(T N, U M)
Compute ceil((float)N/(float)M)
Definition utils.h:313
+
#define instantiate_default_limit(type)
Definition utils.h:30
+
METAL_FUNC IdxT elem_to_loc_1(uint elem, constant const StrideT &stride)
Definition utils.h:140
+
half float16_t
Definition utils.h:16
+ -
METAL_FUNC bfloat16_t simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)
Definition bf16_math.h:391
-
METAL_FUNC bfloat16_t simd_shuffle(bfloat16_t data, ushort simd_lane_id)
Definition bf16_math.h:391
-
METAL_FUNC bfloat16_t log(bfloat16_t x)
Definition bf16_math.h:234
-
METAL_FUNC bfloat16_t simd_shuffle_down(bfloat16_t data, ushort delta)
Definition bf16_math.h:391
-
METAL_FUNC bfloat16_t simd_shuffle_up(bfloat16_t data, ushort delta)
Definition bf16_math.h:391
-
std::vector< ptrdiff_t > stride_t
Definition pocketfft.h:103
-
Definition bf16.h:54
-
Definition utils.h:17
-
static const constant U max
Definition utils.h:18
-
static const constant U finite_max
Definition utils.h:20
-
static const constant U min
Definition utils.h:19
-
static const constant U finite_min
Definition utils.h:21
+
METAL_FUNC bfloat16_t simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)
Definition bf16_math.h:377
+
METAL_FUNC bfloat16_t simd_shuffle(bfloat16_t data, ushort simd_lane_id)
Definition bf16_math.h:377
+
METAL_FUNC bfloat16_t log(bfloat16_t x)
Definition bf16_math.h:232
+
METAL_FUNC bfloat16_t simd_shuffle_down(bfloat16_t data, ushort delta)
Definition bf16_math.h:377
+
METAL_FUNC bfloat16_t simd_shuffle_up(bfloat16_t data, ushort delta)
Definition bf16_math.h:377
+
Definition bf16.h:48
+
Definition utils.h:23
+
static const constant U max
Definition utils.h:24
+
static const constant U finite_max
Definition utils.h:26
+
static const constant U min
Definition utils.h:25
+
static const constant U finite_min
Definition utils.h:27
+
void next(const constant int *, const constant size_t *strides)
Definition utils.h:294
+
LoopedElemToLoc(int)
Definition utils.h:292
+
OffsetT location()
Definition utils.h:302
+
void next(int n, const constant int *, const constant size_t *strides)
Definition utils.h:298
+
OffsetT location()
Definition utils.h:283
+
int dim
Definition utils.h:259
+
void next(int n, const constant int *shape, const constant size_t *strides)
Definition utils.h:274
+
LoopedElemToLoc(int dim)
Definition utils.h:263
+
void next(const constant int *shape, const constant size_t *strides)
Definition utils.h:265
+
Definition utils.h:208
+
void next(const constant int *shape, const constant size_t *strides)
Definition utils.h:216
+
LoopedElemToLoc(int dim)
Definition utils.h:214
+
void next(int n, const constant int *shape, const constant size_t *strides)
Definition utils.h:229
+
LoopedElemToLoc< DIM - 1, OffsetT, General > inner_looper
Definition utils.h:210
+
OffsetT location()
Definition utils.h:252
+
int index
Definition utils.h:212
+
OffsetT offset
Definition utils.h:211
+
int dim
Definition utils.h:209
Definition complex.h:20
float imag
Definition complex.h:22
float real
Definition complex.h:21
-
void next(int, const constant int *, const constant size_t *)
Definition utils.h:255
-
offset_t location(offset_t idx, const constant int *shape, const constant size_t *strides, int ndim)
Definition utils.h:257
-
void next(const constant int *, const constant size_t *)
Definition utils.h:254
-
offset_t location(offset_t, const constant int *, const constant size_t *, int)
Definition utils.h:247
-
void next(const constant int *, const constant size_t *strides)
Definition utils.h:238
-
void next(int n, const constant int *, const constant size_t *strides)
Definition utils.h:242
-
Definition utils.h:197
-
void next(const constant int *shape, const constant size_t *strides)
Definition utils.h:202
-
offset_t offset
Definition utils.h:199
-
int index
Definition utils.h:200
-
looped_elem_to_loc< dim - 1, offset_t > inner_looper
Definition utils.h:198
-
offset_t location(offset_t, const constant int *, const constant size_t *, int)
Definition utils.h:229
-
void next(int n, const constant int *shape, const constant size_t *strides)
Definition utils.h:213
- - - - - - + + @@ -131,6 +127,12 @@ Functions + + + + + +

Functions

template<typename T >
void mlx::core::set_vector_bytes (CommandEncoder &enc, const std::vector< T > &vec, size_t nelems, int idx)
 
template<typename T >
void mlx::core::set_vector_bytes (CommandEncoder &enc, const std::vector< T > &vec, int idx)
 
std::string mlx::core::type_to_name (const Dtype &t)
 
std::string mlx::core::type_to_name (const array &a)
 
MTL::Size mlx::core::get_block_dims (int dim0, int dim1, int dim2, int pow2=10)
 
std::string mlx::core::get_primitive_string (Primitive *primitive)
 
template<typename T >
void mlx::core::concatenate (std::string &acc, T first)
 
template<typename T , typename... Args>
void mlx::core::concatenate (std::string &acc, T first, Args... args)
 
diff --git a/docs/build/html/backend_2metal_2utils_8h_source.html b/docs/build/html/backend_2metal_2utils_8h_source.html index 0795ecb3..32b2bae6 100644 --- a/docs/build/html/backend_2metal_2utils_8h_source.html +++ b/docs/build/html/backend_2metal_2utils_8h_source.html @@ -101,87 +101,82 @@ $(function(){ initResizable(false); });
8
9namespace mlx::core {
10
-
11using metal::CommandEncoder;
-
12
-
13template <typename T>
-
-
14inline void set_vector_bytes(
-
15 CommandEncoder& enc,
-
16 const std::vector<T>& vec,
-
17 size_t nelems,
-
18 int idx) {
-
19 enc->setBytes(vec.data(), nelems * sizeof(T), idx);
-
20}
+
11std::string type_to_name(const Dtype& t);
+
12std::string type_to_name(const array& a);
+
13
+
14// Compute the thread block dimensions which fit the given
+
15// input dimensions.
+
16// - The thread block dimensions will be powers of two
+
17// - The thread block size will be less than 2^pow2
+
18MTL::Size get_block_dims(int dim0, int dim1, int dim2, int pow2 = 10);
+
19
+
20// Computes a 2D grid where each element is < UINT_MAX
+
21// Assumes:
+
22// - overall size (product of non-broadcasted dimensions) is < UINT_MAX^2
+
23// - shape and strides correspond to a contiguous (no holes) but
+
24// possibly broadcasted array
+ +
26 const std::vector<int>& shape,
+
27 const std::vector<size_t>& strides);
+
28
+
29// Same as above but we do an implicit division with divisor.
+
30// Basically, equivalent to factorizing
+
31// Prod(s \forall s in shape if strides[s] > 0) / divisor.
+ +
33 const std::vector<int>& shape,
+
34 const std::vector<size_t>& strides,
+
35 size_t divisor);
+
36
+
+
37inline NS::String* make_string(std::ostringstream& os) {
+
38 std::string string = os.str();
+
39 return NS::String::string(string.c_str(), NS::UTF8StringEncoding);
+
40}
-
21
-
22template <typename T>
-
23inline void
-
-
24set_vector_bytes(CommandEncoder& enc, const std::vector<T>& vec, int idx) {
-
25 return set_vector_bytes(enc, vec, vec.size(), idx);
-
26}
+
41
+
+
42inline void debug_set_stream_queue_label(MTL::CommandQueue* queue, int index) {
+
43#ifdef MLX_METAL_DEBUG
+
44 std::ostringstream label;
+
45 label << "Stream " << index;
+
46 queue->setLabel(make_string(label));
+
47#endif
+
48}
-
27
-
28std::string type_to_name(const array& a);
-
29
-
30// Compute the thread block dimensions which fit the given
-
31// input dimensions.
-
32// - The thread block dimensions will be powers of two
-
33// - The thread block size will be less than 2^pow2
-
34MTL::Size get_block_dims(int dim0, int dim1, int dim2, int pow2 = 10);
-
35
-
36// Computes a 2D grid where each element is < UINT_MAX
-
37// Assumes:
-
38// - overall size (product of non-broadcasted dimensions) is < UINT_MAX^2
-
39// - shape and strides correspond to a contiguous (no holes) but
-
40// possibly broadcasted array
- -
42 const std::vector<int>& shape,
-
43 const std::vector<size_t>& strides);
-
44
-
45// Same as above but we do an implicit division with divisor.
-
46// Basically, equivalent to factorizing
-
47// Prod(s \forall s in shape if strides[s] > 0) / divisor.
- -
49 const std::vector<int>& shape,
-
50 const std::vector<size_t>& strides,
-
51 size_t divisor);
-
52
-
-
53inline NS::String* make_string(std::ostringstream& os) {
-
54 std::string string = os.str();
-
55 return NS::String::string(string.c_str(), NS::UTF8StringEncoding);
-
56}
+
49
+
+ +
51 MTL::CommandBuffer* command_buffer,
+
52 Primitive& primitive) {
+
53#ifdef MLX_METAL_DEBUG
+
54 std::ostringstream label;
+
55 if (auto cbuf_label = command_buffer->label(); cbuf_label) {
+
56 label << cbuf_label->utf8String();
+
57 }
+
58 primitive.print(label);
+
59 command_buffer->setLabel(make_string(label));
+
60#endif
+
61}
-
57
-
-
58inline void debug_set_stream_queue_label(MTL::CommandQueue* queue, int index) {
-
59#ifdef MLX_METAL_DEBUG
-
60 std::ostringstream label;
-
61 label << "Stream " << index;
-
62 queue->setLabel(make_string(label));
-
63#endif
-
64}
-
-
65
+
62
+
63std::string get_primitive_string(Primitive* primitive);
+
64
+
65template <typename T>
- -
67 MTL::CommandBuffer* command_buffer,
-
68 Primitive& primitive) {
-
69#ifdef MLX_METAL_DEBUG
-
70 std::ostringstream label;
-
71 if (auto cbuf_label = command_buffer->label(); cbuf_label) {
-
72 label << cbuf_label->utf8String();
-
73 }
-
74 primitive.print(label);
-
75 command_buffer->setLabel(make_string(label));
-
76#endif
-
77}
+
66void concatenate(std::string& acc, T first) {
+
67 acc += first;
+
68}
-
78
-
79std::string get_primitive_string(Primitive* primitive);
-
80
-
81} // namespace mlx::core
+
69
+
70template <typename T, typename... Args>
+
+
71void concatenate(std::string& acc, T first, Args... args) {
+
72 acc += first;
+
73 concatenate(acc, args...);
+
74}
+
+
75
+
76} // namespace mlx::core
Definition primitives.h:48
@@ -189,15 +184,15 @@ $(function(){ initResizable(false); });
Definition array.h:20
Definition allocator.h:7
MTL::Size get_block_dims(int dim0, int dim1, int dim2, int pow2=10)
-
void debug_set_primitive_buffer_label(MTL::CommandBuffer *command_buffer, Primitive &primitive)
Definition utils.h:66
-
void set_vector_bytes(CommandEncoder &enc, const std::vector< T > &vec, size_t nelems, int idx)
Definition utils.h:14
-
void debug_set_stream_queue_label(MTL::CommandQueue *queue, int index)
Definition utils.h:58
+
void debug_set_primitive_buffer_label(MTL::CommandBuffer *command_buffer, Primitive &primitive)
Definition utils.h:50
+
void concatenate(std::string &acc, T first)
Definition utils.h:66
+
void debug_set_stream_queue_label(MTL::CommandQueue *queue, int index)
Definition utils.h:42
MTL::Size get_2d_grid_dims(const std::vector< int > &shape, const std::vector< size_t > &strides)
std::string get_primitive_string(Primitive *primitive)
-
NS::String * make_string(std::ostringstream &os)
Definition utils.h:53
-
std::string type_to_name(const array &a)
+
NS::String * make_string(std::ostringstream &os)
Definition utils.h:37
+
std::string type_to_name(const Dtype &t)
-
Definition device.h:41
+
Definition dtype.h:13
- +

Go to the source code of this file.

- - - -

@@ -116,379 +115,357 @@ Macros

 
#define instantiate_metal_simd_reduction_funcs(itype, otype, ctype)
 
#define bfloat16_to_uint16(x)
 
#define uint16_to_bfloat16(x)
 
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

Functions

METAL_FUNC bfloat16_t metal::abs (bfloat16_t x)
METAL_FUNC bfloat16_t metal::abs (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::acos (bfloat16_t x)
METAL_FUNC bfloat16_t metal::acos (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::acosh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::acosh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::asin (bfloat16_t x)
METAL_FUNC bfloat16_t metal::asin (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::asinh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::asinh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::atan (bfloat16_t y_over_x)
METAL_FUNC bfloat16_t metal::atan (bfloat16_t y_over_x)
 
METAL_FUNC bfloat16_t metal::atan2 (bfloat16_t y, bfloat16_t x)
METAL_FUNC bfloat16_t metal::atan2 (bfloat16_t y, bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::atanh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::atanh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::ceil (bfloat16_t x)
METAL_FUNC bfloat16_t metal::ceil (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::cos (bfloat16_t x)
METAL_FUNC bfloat16_t metal::cos (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::cosh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::cosh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::cospi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::cospi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::divide (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::divide (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::exp (bfloat16_t x)
METAL_FUNC bfloat16_t metal::exp (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::exp10 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::exp10 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::exp2 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::exp2 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fabs (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fabs (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fdim (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fdim (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::floor (bfloat16_t x)
METAL_FUNC bfloat16_t metal::floor (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fma (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fma (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fmax (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fmax (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fmax3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fmax3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fmedian3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fmedian3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fmin (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fmin (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fmin3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fmin3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fmod (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fmod (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fract (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fract (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::frexp (bfloat16_t x, thread int &exp)
METAL_FUNC bfloat16_t metal::frexp (bfloat16_t x, thread int &exp)
 
METAL_FUNC bfloat16_t metal::ldexp (bfloat16_t x, int k)
METAL_FUNC bfloat16_t metal::ldexp (bfloat16_t x, int k)
 
METAL_FUNC bfloat16_t metal::log (bfloat16_t x)
METAL_FUNC bfloat16_t metal::log (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::log10 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::log10 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::log2 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::log2 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::max (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::max (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::max3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::max3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::median3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::median3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::min (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::min (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::min3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::min3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::nextafter (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::nextafter (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::pow (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::pow (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::powr (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::powr (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::rint (bfloat16_t x)
METAL_FUNC bfloat16_t metal::rint (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::round (bfloat16_t x)
METAL_FUNC bfloat16_t metal::round (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::rsqrt (bfloat16_t x)
METAL_FUNC bfloat16_t metal::rsqrt (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::sin (bfloat16_t x)
METAL_FUNC bfloat16_t metal::sin (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::sinh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::sinh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::sinpi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::sinpi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::sqrt (bfloat16_t x)
METAL_FUNC bfloat16_t metal::sqrt (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::tan (bfloat16_t x)
METAL_FUNC bfloat16_t metal::tan (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::tanh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::tanh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::tanpi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::tanpi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::trunc (bfloat16_t x)
METAL_FUNC bfloat16_t metal::trunc (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::abs (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::abs (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::acos (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::acos (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::acosh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::acosh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::asin (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::asin (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::asinh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::asinh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::atan (bfloat16_t y_over_x)
METAL_FUNC bfloat16_t metal::fast::atan (bfloat16_t y_over_x)
 
METAL_FUNC bfloat16_t metal::fast::atan2 (bfloat16_t y, bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::atan2 (bfloat16_t y, bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::atanh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::atanh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::ceil (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::ceil (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::cos (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::cos (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::cosh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::cosh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::cospi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::cospi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::divide (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::divide (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::exp (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::exp (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::exp10 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::exp10 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::exp2 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::exp2 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::fabs (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::fabs (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::fdim (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::fdim (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::floor (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::floor (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::fma (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fast::fma (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fast::fmax (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::fmax (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::fmax3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fast::fmax3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fast::fmedian3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fast::fmedian3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fast::fmin (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::fmin (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::fmin3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fast::fmin3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fast::fmod (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::fmod (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::fract (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::fract (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::frexp (bfloat16_t x, thread int &exp)
METAL_FUNC bfloat16_t metal::fast::frexp (bfloat16_t x, thread int &exp)
 
METAL_FUNC bfloat16_t metal::fast::ldexp (bfloat16_t x, int k)
METAL_FUNC bfloat16_t metal::fast::ldexp (bfloat16_t x, int k)
 
METAL_FUNC bfloat16_t metal::fast::log (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::log (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::log10 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::log10 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::log2 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::log2 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::max (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::max (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::max3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fast::max3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fast::median3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fast::median3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fast::min (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::min (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::min3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::fast::min3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::fast::nextafter (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::nextafter (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::pow (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::pow (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::powr (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::fast::powr (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::fast::rint (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::rint (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::round (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::round (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::rsqrt (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::rsqrt (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::sin (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::sin (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::sinh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::sinh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::sinpi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::sinpi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::sqrt (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::sqrt (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::tan (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::tan (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::tanh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::tanh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::tanpi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::tanpi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::fast::trunc (bfloat16_t x)
METAL_FUNC bfloat16_t metal::fast::trunc (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::abs (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::abs (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::acos (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::acos (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::acosh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::acosh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::asin (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::asin (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::asinh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::asinh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::atan (bfloat16_t y_over_x)
METAL_FUNC bfloat16_t metal::precise::atan (bfloat16_t y_over_x)
 
METAL_FUNC bfloat16_t metal::precise::atan2 (bfloat16_t y, bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::atan2 (bfloat16_t y, bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::atanh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::atanh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::ceil (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::ceil (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::cos (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::cos (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::cosh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::cosh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::cospi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::cospi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::divide (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::divide (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::exp (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::exp (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::exp10 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::exp10 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::exp2 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::exp2 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::fabs (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::fabs (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::fdim (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::fdim (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::floor (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::floor (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::fma (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::precise::fma (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::precise::fmax (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::fmax (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::fmax3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::precise::fmax3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::precise::fmedian3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::precise::fmedian3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::precise::fmin (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::fmin (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::fmin3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::precise::fmin3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::precise::fmod (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::fmod (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::fract (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::fract (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::frexp (bfloat16_t x, thread int &exp)
METAL_FUNC bfloat16_t metal::precise::frexp (bfloat16_t x, thread int &exp)
 
METAL_FUNC bfloat16_t metal::precise::ldexp (bfloat16_t x, int k)
METAL_FUNC bfloat16_t metal::precise::ldexp (bfloat16_t x, int k)
 
METAL_FUNC bfloat16_t metal::precise::log (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::log (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::log10 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::log10 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::log2 (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::log2 (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::max (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::max (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::max3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::precise::max3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::precise::median3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::precise::median3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::precise::min (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::min (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::min3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
METAL_FUNC bfloat16_t metal::precise::min3 (bfloat16_t x, bfloat16_t y, bfloat16_t z)
 
METAL_FUNC bfloat16_t metal::precise::nextafter (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::nextafter (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::pow (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::pow (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::powr (bfloat16_t x, bfloat16_t y)
METAL_FUNC bfloat16_t metal::precise::powr (bfloat16_t x, bfloat16_t y)
 
METAL_FUNC bfloat16_t metal::precise::rint (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::rint (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::round (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::round (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::rsqrt (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::rsqrt (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::sin (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::sin (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::sinh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::sinh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::sinpi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::sinpi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::sqrt (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::sqrt (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::tan (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::tan (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::tanh (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::tanh (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::tanpi (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::tanpi (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::precise::trunc (bfloat16_t x)
METAL_FUNC bfloat16_t metal::precise::trunc (bfloat16_t x)
 
METAL_FUNC bfloat16_t metal::simd_broadcast (bfloat16_t data, ushort broadcast_lane_id)
METAL_FUNC bfloat16_t metal::simd_broadcast (bfloat16_t data, ushort broadcast_lane_id)
 
METAL_FUNC bfloat16_t metal::simd_shuffle (bfloat16_t data, ushort simd_lane_id)
METAL_FUNC bfloat16_t metal::simd_shuffle (bfloat16_t data, ushort simd_lane_id)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_and_fill_down (bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)
METAL_FUNC bfloat16_t metal::simd_shuffle_and_fill_down (bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_and_fill_down (bfloat16_t data, bfloat16_t filling_data, ushort delta)
METAL_FUNC bfloat16_t metal::simd_shuffle_and_fill_down (bfloat16_t data, bfloat16_t filling_data, ushort delta)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_and_fill_up (bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)
METAL_FUNC bfloat16_t metal::simd_shuffle_and_fill_up (bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_and_fill_up (bfloat16_t data, bfloat16_t filling_data, ushort delta)
METAL_FUNC bfloat16_t metal::simd_shuffle_and_fill_up (bfloat16_t data, bfloat16_t filling_data, ushort delta)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_down (bfloat16_t data, ushort delta)
METAL_FUNC bfloat16_t metal::simd_shuffle_down (bfloat16_t data, ushort delta)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_rotate_down (bfloat16_t data, ushort delta)
METAL_FUNC bfloat16_t metal::simd_shuffle_rotate_down (bfloat16_t data, ushort delta)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_rotate_up (bfloat16_t data, ushort delta)
METAL_FUNC bfloat16_t metal::simd_shuffle_rotate_up (bfloat16_t data, ushort delta)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_up (bfloat16_t data, ushort delta)
METAL_FUNC bfloat16_t metal::simd_shuffle_up (bfloat16_t data, ushort delta)
 
METAL_FUNC bfloat16_t metal::simd_shuffle_xor (bfloat16_t data, ushort mask)
METAL_FUNC bfloat16_t metal::simd_shuffle_xor (bfloat16_t data, ushort mask)
 
METAL_FUNC bfloat16_t metal::simd_max (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_max (bfloat16_t data)
 
METAL_FUNC bfloat16_t metal::simd_min (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_min (bfloat16_t data)
 
METAL_FUNC bfloat16_t metal::simd_prefix_exclusive_product (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_prefix_exclusive_product (bfloat16_t data)
 
METAL_FUNC bfloat16_t metal::simd_prefix_exclusive_sum (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_prefix_exclusive_sum (bfloat16_t data)
 
METAL_FUNC bfloat16_t metal::simd_prefix_inclusive_product (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_prefix_inclusive_product (bfloat16_t data)
 
METAL_FUNC bfloat16_t metal::simd_prefix_inclusive_sum (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_prefix_inclusive_sum (bfloat16_t data)
 
METAL_FUNC bfloat16_t metal::simd_product (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_product (bfloat16_t data)
 
METAL_FUNC bfloat16_t metal::simd_sum (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_sum (bfloat16_t data)
 
METAL_FUNC bfloat16_t metal::simd_xor (bfloat16_t data)
METAL_FUNC bfloat16_t metal::simd_xor (bfloat16_t data)
 

Macro Definition Documentation

- -

◆ bfloat16_to_uint16

- -
-
- - - - - - - -
#define bfloat16_to_uint16( x)
-
-Value:
x.bits_
-
-
-

◆ instantiate_metal_math_funcs

@@ -580,26 +557,6 @@ Functions
-
-
- -

◆ uint16_to_bfloat16

- -
-
- - - - - - - -
#define uint16_to_bfloat16( x)
-
-Value:
-
Definition bf16.h:54
-
static constexpr METAL_FUNC bits_to_bfloat_struct bits_to_bfloat()
Definition bf16.h:64
-
diff --git a/docs/build/html/bf16__math_8h_source.html b/docs/build/html/bf16__math_8h_source.html index c7b8985d..e060315d 100644 --- a/docs/build/html/bf16__math_8h_source.html +++ b/docs/build/html/bf16__math_8h_source.html @@ -95,408 +95,395 @@ $(function(){ initResizable(false); });
2
3#pragma once
4
- -
6
-
8// Metal math for bfloat16
-
10
-
11/*
+
6// Metal math for bfloat16
+
8
+
9/*
+
10
+
11Following the Metal Shading Language Specification (Metal 3.1)
12
-
13Following the Metal Shading Language Specification (Metal 3.1)
-
14
-
15"bfloat is an extended itypeing point type that only allows implicit conversion
-
16 to a type of greater itypeing point rank. While bfloat can be implicitly
-
17 converted to itype, it cannot be implicitly converted to half, and neither
-
18 itype nor half can be implicitly converted to bfloat."
-
19
-
20Further, as far as I can tell, the stdlib math/simd functions are not defined
-
21for bfloat and calling with an argument of type bfloat will result in that
-
22argument getting implicitly converted to itype which then returns an output
-
23that is (likely) a itype which cannot be implicitly converted into a bfloat
-
24
-
25This leads to situations where
-
26bfloat a = 5.0bf;
-
27bfloat b = metal::abs(a); // this will throw an error since abs return itype
-
28bfloat c = static_cast<bfloat>(metal::abs(a)); // this is fine
-
29
-
30For the moment, I will be adding overloaded instantiations of the math
-
31functions to accordingly automatically handle the casting
-
32
-
33*/
-
34
-
-
35#define instantiate_metal_math_funcs(itype, otype, ctype, mfast) \
-
36 \
-
37 METAL_FUNC otype abs(itype x) { \
-
38 return static_cast<otype>(__metal_fabs(static_cast<ctype>(x), mfast)); \
-
39 } \
-
40 METAL_FUNC otype acos(itype x) { \
-
41 return static_cast<otype>(__metal_acos(static_cast<ctype>(x), mfast)); \
-
42 } \
-
43 METAL_FUNC otype acosh(itype x) { \
-
44 return static_cast<otype>(__metal_acosh(static_cast<ctype>(x), mfast)); \
-
45 } \
-
46 METAL_FUNC otype asin(itype x) { \
-
47 return static_cast<otype>(__metal_asin(static_cast<ctype>(x), mfast)); \
-
48 } \
-
49 METAL_FUNC otype asinh(itype x) { \
-
50 return static_cast<otype>(__metal_asinh(static_cast<ctype>(x), mfast)); \
-
51 } \
-
52 METAL_FUNC otype atan(itype y_over_x) { \
-
53 return static_cast<otype>( \
-
54 __metal_atan(static_cast<ctype>(y_over_x), mfast)); \
-
55 } \
-
56 METAL_FUNC otype atan2(itype y, itype x) { \
-
57 return static_cast<otype>( \
-
58 __metal_atan2(static_cast<ctype>(y), static_cast<ctype>(x), mfast)); \
-
59 } \
-
60 METAL_FUNC otype atanh(itype x) { \
-
61 return static_cast<otype>(__metal_atanh(static_cast<ctype>(x), mfast)); \
-
62 } \
-
63 METAL_FUNC otype ceil(itype x) { \
-
64 return static_cast<otype>(__metal_ceil(static_cast<ctype>(x), mfast)); \
-
65 } \
-
66 METAL_FUNC otype cos(itype x) { \
-
67 return static_cast<otype>(__metal_cos(static_cast<ctype>(x), mfast)); \
-
68 } \
-
69 METAL_FUNC otype cosh(itype x) { \
-
70 return static_cast<otype>(__metal_cosh(static_cast<ctype>(x), mfast)); \
-
71 } \
-
72 METAL_FUNC otype cospi(itype x) { \
-
73 return static_cast<otype>(__metal_cospi(static_cast<ctype>(x), mfast)); \
-
74 } \
-
75 METAL_FUNC otype divide(itype x, itype y) { \
-
76 return static_cast<otype>( \
-
77 __metal_divide(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
-
78 } \
-
79 METAL_FUNC otype exp(itype x) { \
-
80 return static_cast<otype>(__metal_exp(static_cast<ctype>(x), mfast)); \
-
81 } \
-
82 METAL_FUNC otype exp10(itype x) { \
-
83 return static_cast<otype>(__metal_exp10(static_cast<ctype>(x), mfast)); \
-
84 } \
-
85 METAL_FUNC otype exp2(itype x) { \
-
86 return static_cast<otype>(__metal_exp2(static_cast<ctype>(x), mfast)); \
-
87 } \
-
88 METAL_FUNC otype fabs(itype x) { \
-
89 return static_cast<otype>(__metal_fabs(static_cast<ctype>(x), mfast)); \
-
90 } \
-
91 METAL_FUNC otype fdim(itype x, itype y) { \
-
92 ctype t = static_cast<ctype>(x - y); \
-
93 return static_cast<otype>(select(t, ctype(0), t < ctype(0) || x == y)); \
-
94 } \
-
95 METAL_FUNC otype floor(itype x) { \
-
96 return static_cast<otype>(__metal_floor(static_cast<ctype>(x), mfast)); \
-
97 } \
-
98 METAL_FUNC otype fma(itype x, itype y, itype z) { \
-
99 return static_cast<otype>(__metal_fma( \
-
100 static_cast<ctype>(x), static_cast<ctype>(y), static_cast<ctype>(z))); \
-
101 } \
-
102 METAL_FUNC otype fmax(itype x, itype y) { \
-
103 return static_cast<otype>( \
-
104 __metal_fmax(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
-
105 } \
-
106 METAL_FUNC otype fmax3(itype x, itype y, itype z) { \
-
107 return static_cast<otype>(__metal_fmax3( \
-
108 static_cast<ctype>(x), \
-
109 static_cast<ctype>(y), \
-
110 static_cast<ctype>(z), \
-
111 mfast)); \
-
112 } \
-
113 METAL_FUNC otype fmedian3(itype x, itype y, itype z) { \
-
114 return static_cast<otype>(__metal_fmedian3( \
-
115 static_cast<ctype>(x), \
-
116 static_cast<ctype>(y), \
-
117 static_cast<ctype>(z), \
-
118 mfast)); \
-
119 } \
-
120 METAL_FUNC otype fmin(itype x, itype y) { \
-
121 return static_cast<otype>( \
-
122 __metal_fmin(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
-
123 } \
-
124 METAL_FUNC otype fmin3(itype x, itype y, itype z) { \
-
125 return static_cast<otype>(__metal_fmin3( \
-
126 static_cast<ctype>(x), \
-
127 static_cast<ctype>(y), \
-
128 static_cast<ctype>(z), \
-
129 mfast)); \
-
130 } \
-
131 METAL_FUNC otype fmod(itype x, itype y) { \
-
132 return static_cast<otype>( \
-
133 __metal_fmod(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
-
134 } \
-
135 METAL_FUNC otype fract(itype x) { \
-
136 return static_cast<otype>(__metal_fract(static_cast<ctype>(x), mfast)); \
-
137 } \
-
138 METAL_FUNC otype frexp(itype x, thread int& exp) { \
-
139 return static_cast<otype>(__metal_frexp(static_cast<ctype>(x), &exp)); \
-
140 } \
-
141 METAL_FUNC otype ldexp(itype x, int k) { \
-
142 return static_cast<otype>(__metal_ldexp(static_cast<ctype>(x), k, mfast)); \
-
143 } \
-
144 METAL_FUNC otype log(itype x) { \
-
145 return static_cast<otype>(__metal_log(static_cast<ctype>(x), mfast)); \
-
146 } \
-
147 METAL_FUNC otype log10(itype x) { \
-
148 return static_cast<otype>(__metal_log10(static_cast<ctype>(x), mfast)); \
-
149 } \
-
150 METAL_FUNC otype log2(itype x) { \
-
151 return static_cast<otype>(__metal_log2(static_cast<ctype>(x), mfast)); \
-
152 } \
-
153 METAL_FUNC otype max(itype x, itype y) { \
-
154 return static_cast<otype>( \
-
155 __metal_fmax(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
-
156 } \
-
157 METAL_FUNC otype max3(itype x, itype y, itype z) { \
-
158 return static_cast<otype>(__metal_fmax3( \
-
159 static_cast<ctype>(x), \
-
160 static_cast<ctype>(y), \
-
161 static_cast<ctype>(z), \
-
162 mfast)); \
-
163 } \
-
164 METAL_FUNC otype median3(itype x, itype y, itype z) { \
-
165 return static_cast<otype>(__metal_fmedian3( \
-
166 static_cast<ctype>(x), \
-
167 static_cast<ctype>(y), \
-
168 static_cast<ctype>(z), \
-
169 mfast)); \
-
170 } \
-
171 METAL_FUNC otype min(itype x, itype y) { \
-
172 return static_cast<otype>( \
-
173 __metal_fmin(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
-
174 } \
-
175 METAL_FUNC otype min3(itype x, itype y, itype z) { \
-
176 return static_cast<otype>(__metal_fmin3( \
-
177 static_cast<ctype>(x), \
-
178 static_cast<ctype>(y), \
-
179 static_cast<ctype>(z), \
-
180 mfast)); \
-
181 } \
-
182 METAL_FUNC otype nextafter(itype x, itype y) { \
-
183 return static_cast<otype>( \
-
184 __metal_nextafter(static_cast<ctype>(x), static_cast<ctype>(y))); \
-
185 } \
-
186 METAL_FUNC otype pow(itype x, itype y) { \
-
187 return static_cast<otype>( \
-
188 __metal_pow(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
-
189 } \
-
190 METAL_FUNC otype powr(itype x, itype y) { \
-
191 return static_cast<otype>( \
-
192 __metal_powr(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
-
193 } \
-
194 METAL_FUNC otype rint(itype x) { \
-
195 return static_cast<otype>(__metal_rint(static_cast<ctype>(x), mfast)); \
-
196 } \
-
197 METAL_FUNC otype round(itype x) { \
-
198 return static_cast<otype>(__metal_round(static_cast<ctype>(x), mfast)); \
-
199 } \
-
200 METAL_FUNC otype rsqrt(itype x) { \
-
201 return static_cast<otype>(__metal_rsqrt(static_cast<ctype>(x), mfast)); \
-
202 } \
-
203 METAL_FUNC otype sin(itype x) { \
-
204 return static_cast<otype>(__metal_sin(static_cast<ctype>(x), mfast)); \
-
205 } \
-
206 METAL_FUNC otype sinh(itype x) { \
-
207 return static_cast<otype>(__metal_sinh(static_cast<ctype>(x), mfast)); \
-
208 } \
-
209 METAL_FUNC otype sinpi(itype x) { \
-
210 return static_cast<otype>(__metal_sinpi(static_cast<ctype>(x), mfast)); \
-
211 } \
-
212 METAL_FUNC otype sqrt(itype x) { \
-
213 return static_cast<otype>(__metal_sqrt(static_cast<ctype>(x), mfast)); \
-
214 } \
-
215 METAL_FUNC otype tan(itype x) { \
-
216 return static_cast<otype>(__metal_tan(static_cast<ctype>(x), mfast)); \
-
217 } \
-
218 METAL_FUNC otype tanh(itype x) { \
-
219 return static_cast<otype>(__metal_tanh(static_cast<ctype>(x), mfast)); \
-
220 } \
-
221 METAL_FUNC otype tanpi(itype x) { \
-
222 return static_cast<otype>(__metal_tanpi(static_cast<ctype>(x), mfast)); \
-
223 } \
-
224 METAL_FUNC otype trunc(itype x) { \
-
225 return static_cast<otype>(__metal_trunc(static_cast<ctype>(x), mfast)); \
-
226 }
+
13"bfloat is an extended itypeing point type that only allows implicit conversion
+
14 to a type of greater itypeing point rank. While bfloat can be implicitly
+
15 converted to itype, it cannot be implicitly converted to half, and neither
+
16 itype nor half can be implicitly converted to bfloat."
+
17
+
18Further, as far as I can tell, the stdlib math/simd functions are not defined
+
19for bfloat and calling with an argument of type bfloat will result in that
+
20argument getting implicitly converted to itype which then returns an output
+
21that is (likely) a itype which cannot be implicitly converted into a bfloat
+
22
+
23This leads to situations where
+
24bfloat a = 5.0bf;
+
25bfloat b = metal::abs(a); // this will throw an error since abs return itype
+
26bfloat c = static_cast<bfloat>(metal::abs(a)); // this is fine
+
27
+
28For the moment, I will be adding overloaded instantiations of the math
+
29functions to accordingly automatically handle the casting
+
30
+
31*/
+
32
+
+
33#define instantiate_metal_math_funcs(itype, otype, ctype, mfast) \
+
34 \
+
35 METAL_FUNC otype abs(itype x) { \
+
36 return static_cast<otype>(__metal_fabs(static_cast<ctype>(x), mfast)); \
+
37 } \
+
38 METAL_FUNC otype acos(itype x) { \
+
39 return static_cast<otype>(__metal_acos(static_cast<ctype>(x), mfast)); \
+
40 } \
+
41 METAL_FUNC otype acosh(itype x) { \
+
42 return static_cast<otype>(__metal_acosh(static_cast<ctype>(x), mfast)); \
+
43 } \
+
44 METAL_FUNC otype asin(itype x) { \
+
45 return static_cast<otype>(__metal_asin(static_cast<ctype>(x), mfast)); \
+
46 } \
+
47 METAL_FUNC otype asinh(itype x) { \
+
48 return static_cast<otype>(__metal_asinh(static_cast<ctype>(x), mfast)); \
+
49 } \
+
50 METAL_FUNC otype atan(itype y_over_x) { \
+
51 return static_cast<otype>( \
+
52 __metal_atan(static_cast<ctype>(y_over_x), mfast)); \
+
53 } \
+
54 METAL_FUNC otype atan2(itype y, itype x) { \
+
55 return static_cast<otype>( \
+
56 __metal_atan2(static_cast<ctype>(y), static_cast<ctype>(x), mfast)); \
+
57 } \
+
58 METAL_FUNC otype atanh(itype x) { \
+
59 return static_cast<otype>(__metal_atanh(static_cast<ctype>(x), mfast)); \
+
60 } \
+
61 METAL_FUNC otype ceil(itype x) { \
+
62 return static_cast<otype>(__metal_ceil(static_cast<ctype>(x), mfast)); \
+
63 } \
+
64 METAL_FUNC otype cos(itype x) { \
+
65 return static_cast<otype>(__metal_cos(static_cast<ctype>(x), mfast)); \
+
66 } \
+
67 METAL_FUNC otype cosh(itype x) { \
+
68 return static_cast<otype>(__metal_cosh(static_cast<ctype>(x), mfast)); \
+
69 } \
+
70 METAL_FUNC otype cospi(itype x) { \
+
71 return static_cast<otype>(__metal_cospi(static_cast<ctype>(x), mfast)); \
+
72 } \
+
73 METAL_FUNC otype divide(itype x, itype y) { \
+
74 return static_cast<otype>( \
+
75 __metal_divide(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
+
76 } \
+
77 METAL_FUNC otype exp(itype x) { \
+
78 return static_cast<otype>(__metal_exp(static_cast<ctype>(x), mfast)); \
+
79 } \
+
80 METAL_FUNC otype exp10(itype x) { \
+
81 return static_cast<otype>(__metal_exp10(static_cast<ctype>(x), mfast)); \
+
82 } \
+
83 METAL_FUNC otype exp2(itype x) { \
+
84 return static_cast<otype>(__metal_exp2(static_cast<ctype>(x), mfast)); \
+
85 } \
+
86 METAL_FUNC otype fabs(itype x) { \
+
87 return static_cast<otype>(__metal_fabs(static_cast<ctype>(x), mfast)); \
+
88 } \
+
89 METAL_FUNC otype fdim(itype x, itype y) { \
+
90 ctype t = static_cast<ctype>(x - y); \
+
91 return static_cast<otype>(select(t, ctype(0), t < ctype(0) || x == y)); \
+
92 } \
+
93 METAL_FUNC otype floor(itype x) { \
+
94 return static_cast<otype>(__metal_floor(static_cast<ctype>(x), mfast)); \
+
95 } \
+
96 METAL_FUNC otype fma(itype x, itype y, itype z) { \
+
97 return static_cast<otype>(__metal_fma( \
+
98 static_cast<ctype>(x), static_cast<ctype>(y), static_cast<ctype>(z))); \
+
99 } \
+
100 METAL_FUNC otype fmax(itype x, itype y) { \
+
101 return static_cast<otype>( \
+
102 __metal_fmax(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
+
103 } \
+
104 METAL_FUNC otype fmax3(itype x, itype y, itype z) { \
+
105 return static_cast<otype>(__metal_fmax3( \
+
106 static_cast<ctype>(x), \
+
107 static_cast<ctype>(y), \
+
108 static_cast<ctype>(z), \
+
109 mfast)); \
+
110 } \
+
111 METAL_FUNC otype fmedian3(itype x, itype y, itype z) { \
+
112 return static_cast<otype>(__metal_fmedian3( \
+
113 static_cast<ctype>(x), \
+
114 static_cast<ctype>(y), \
+
115 static_cast<ctype>(z), \
+
116 mfast)); \
+
117 } \
+
118 METAL_FUNC otype fmin(itype x, itype y) { \
+
119 return static_cast<otype>( \
+
120 __metal_fmin(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
+
121 } \
+
122 METAL_FUNC otype fmin3(itype x, itype y, itype z) { \
+
123 return static_cast<otype>(__metal_fmin3( \
+
124 static_cast<ctype>(x), \
+
125 static_cast<ctype>(y), \
+
126 static_cast<ctype>(z), \
+
127 mfast)); \
+
128 } \
+
129 METAL_FUNC otype fmod(itype x, itype y) { \
+
130 return static_cast<otype>( \
+
131 __metal_fmod(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
+
132 } \
+
133 METAL_FUNC otype fract(itype x) { \
+
134 return static_cast<otype>(__metal_fract(static_cast<ctype>(x), mfast)); \
+
135 } \
+
136 METAL_FUNC otype frexp(itype x, thread int& exp) { \
+
137 return static_cast<otype>(__metal_frexp(static_cast<ctype>(x), &exp)); \
+
138 } \
+
139 METAL_FUNC otype ldexp(itype x, int k) { \
+
140 return static_cast<otype>(__metal_ldexp(static_cast<ctype>(x), k, mfast)); \
+
141 } \
+
142 METAL_FUNC otype log(itype x) { \
+
143 return static_cast<otype>(__metal_log(static_cast<ctype>(x), mfast)); \
+
144 } \
+
145 METAL_FUNC otype log10(itype x) { \
+
146 return static_cast<otype>(__metal_log10(static_cast<ctype>(x), mfast)); \
+
147 } \
+
148 METAL_FUNC otype log2(itype x) { \
+
149 return static_cast<otype>(__metal_log2(static_cast<ctype>(x), mfast)); \
+
150 } \
+
151 METAL_FUNC otype max(itype x, itype y) { \
+
152 return static_cast<otype>( \
+
153 __metal_fmax(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
+
154 } \
+
155 METAL_FUNC otype max3(itype x, itype y, itype z) { \
+
156 return static_cast<otype>(__metal_fmax3( \
+
157 static_cast<ctype>(x), \
+
158 static_cast<ctype>(y), \
+
159 static_cast<ctype>(z), \
+
160 mfast)); \
+
161 } \
+
162 METAL_FUNC otype median3(itype x, itype y, itype z) { \
+
163 return static_cast<otype>(__metal_fmedian3( \
+
164 static_cast<ctype>(x), \
+
165 static_cast<ctype>(y), \
+
166 static_cast<ctype>(z), \
+
167 mfast)); \
+
168 } \
+
169 METAL_FUNC otype min(itype x, itype y) { \
+
170 return static_cast<otype>( \
+
171 __metal_fmin(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
+
172 } \
+
173 METAL_FUNC otype min3(itype x, itype y, itype z) { \
+
174 return static_cast<otype>(__metal_fmin3( \
+
175 static_cast<ctype>(x), \
+
176 static_cast<ctype>(y), \
+
177 static_cast<ctype>(z), \
+
178 mfast)); \
+
179 } \
+
180 METAL_FUNC otype nextafter(itype x, itype y) { \
+
181 return static_cast<otype>( \
+
182 __metal_nextafter(static_cast<ctype>(x), static_cast<ctype>(y))); \
+
183 } \
+
184 METAL_FUNC otype pow(itype x, itype y) { \
+
185 return static_cast<otype>( \
+
186 __metal_pow(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
+
187 } \
+
188 METAL_FUNC otype powr(itype x, itype y) { \
+
189 return static_cast<otype>( \
+
190 __metal_powr(static_cast<ctype>(x), static_cast<ctype>(y), mfast)); \
+
191 } \
+
192 METAL_FUNC otype rint(itype x) { \
+
193 return static_cast<otype>(__metal_rint(static_cast<ctype>(x), mfast)); \
+
194 } \
+
195 METAL_FUNC otype round(itype x) { \
+
196 return static_cast<otype>(__metal_round(static_cast<ctype>(x), mfast)); \
+
197 } \
+
198 METAL_FUNC otype rsqrt(itype x) { \
+
199 return static_cast<otype>(__metal_rsqrt(static_cast<ctype>(x), mfast)); \
+
200 } \
+
201 METAL_FUNC otype sin(itype x) { \
+
202 return static_cast<otype>(__metal_sin(static_cast<ctype>(x), mfast)); \
+
203 } \
+
204 METAL_FUNC otype sinh(itype x) { \
+
205 return static_cast<otype>(__metal_sinh(static_cast<ctype>(x), mfast)); \
+
206 } \
+
207 METAL_FUNC otype sinpi(itype x) { \
+
208 return static_cast<otype>(__metal_sinpi(static_cast<ctype>(x), mfast)); \
+
209 } \
+
210 METAL_FUNC otype sqrt(itype x) { \
+
211 return static_cast<otype>(__metal_sqrt(static_cast<ctype>(x), mfast)); \
+
212 } \
+
213 METAL_FUNC otype tan(itype x) { \
+
214 return static_cast<otype>(__metal_tan(static_cast<ctype>(x), mfast)); \
+
215 } \
+
216 METAL_FUNC otype tanh(itype x) { \
+
217 return static_cast<otype>(__metal_tanh(static_cast<ctype>(x), mfast)); \
+
218 } \
+
219 METAL_FUNC otype tanpi(itype x) { \
+
220 return static_cast<otype>(__metal_tanpi(static_cast<ctype>(x), mfast)); \
+
221 } \
+
222 METAL_FUNC otype trunc(itype x) { \
+
223 return static_cast<otype>(__metal_trunc(static_cast<ctype>(x), mfast)); \
+
224 }
+
225
+
+
226namespace metal {
227
-
228namespace metal {
-
229
- - - -
233 float,
-
234 __METAL_MAYBE_FAST_MATH__);
+ + + +
231 float,
+
232 __METAL_MAYBE_FAST_MATH__);
+
233
+
+
234namespace fast {
235
-
-
236namespace fast {
-
237
- - - -
241 float,
-
242 __METAL_FAST_MATH__);
-
243
-
244} // namespace fast
+ + + +
239 float,
+
240 __METAL_FAST_MATH__);
+
241
+
242} // namespace fast
+
243
+
+
244namespace precise {
245
-
-
246namespace precise {
-
247
- - - -
251 float,
-
252 __METAL_PRECISE_MATH__);
+ + + +
249 float,
+
250 __METAL_PRECISE_MATH__);
+
251
+
252} // namespace precise
+
253
-
254} // namespace precise
+
254} // namespace metal
255
-
256} // namespace metal
-
257
-
259// Metal simd for bfloat16
-
261
-
262#define instantiate_metal_simd_comm_funcs( \
-
263 itype, otype, ctype, itype_to_ctype, ctype_to_otype) \
-
264 \
-
265 METAL_FUNC otype simd_broadcast(itype data, ushort broadcast_lane_id) { \
-
266 return ctype_to_otype( \
-
267 __metal_simd_broadcast(itype_to_ctype(data), broadcast_lane_id)); \
-
268 } \
-
269 \
-
270 METAL_FUNC otype simd_shuffle(itype data, ushort simd_lane_id) { \
-
271 return ctype_to_otype( \
-
272 __metal_simd_shuffle(itype_to_ctype(data), simd_lane_id)); \
-
273 } \
-
274 \
-
275 METAL_FUNC otype simd_shuffle_and_fill_down( \
-
276 itype data, itype filling_data, ushort delta, ushort modulo) { \
-
277 return ctype_to_otype(__metal_simd_shuffle_and_fill_down( \
-
278 itype_to_ctype(data), itype_to_ctype(filling_data), delta, modulo)); \
-
279 } \
-
280 \
-
281 METAL_FUNC otype simd_shuffle_and_fill_down( \
-
282 itype data, itype filling_data, ushort delta) { \
-
283 return ctype_to_otype(__metal_simd_shuffle_and_fill_down( \
-
284 itype_to_ctype(data), \
-
285 itype_to_ctype(filling_data), \
-
286 delta, \
-
287 __metal_get_simdgroup_size(ushort()))); \
-
288 } \
-
289 \
-
290 METAL_FUNC otype simd_shuffle_and_fill_up( \
-
291 itype data, itype filling_data, ushort delta, ushort modulo) { \
-
292 return ctype_to_otype(__metal_simd_shuffle_and_fill_up( \
-
293 itype_to_ctype(data), itype_to_ctype(filling_data), delta, modulo)); \
-
294 } \
-
295 \
-
296 METAL_FUNC otype simd_shuffle_and_fill_up( \
-
297 itype data, itype filling_data, ushort delta) { \
-
298 return ctype_to_otype(__metal_simd_shuffle_and_fill_up( \
-
299 itype_to_ctype(data), \
-
300 itype_to_ctype(filling_data), \
-
301 delta, \
-
302 __metal_get_simdgroup_size(ushort()))); \
-
303 } \
-
304 \
-
305 METAL_FUNC otype simd_shuffle_down(itype data, ushort delta) { \
-
306 return ctype_to_otype( \
-
307 __metal_simd_shuffle_down(itype_to_ctype(data), delta)); \
-
308 } \
-
309 \
-
310 METAL_FUNC otype simd_shuffle_rotate_down(itype data, ushort delta) { \
-
311 return ctype_to_otype( \
-
312 __metal_simd_shuffle_rotate_down(itype_to_ctype(data), delta)); \
-
313 } \
-
314 \
-
315 METAL_FUNC otype simd_shuffle_rotate_up(itype data, ushort delta) { \
-
316 return ctype_to_otype( \
-
317 __metal_simd_shuffle_rotate_up(itype_to_ctype(data), delta)); \
-
318 } \
-
319 \
-
320 METAL_FUNC otype simd_shuffle_up(itype data, ushort delta) { \
-
321 return ctype_to_otype( \
-
322 __metal_simd_shuffle_up(itype_to_ctype(data), delta)); \
-
323 } \
-
324 \
-
325 METAL_FUNC otype simd_shuffle_xor(itype data, ushort mask) { \
-
326 return ctype_to_otype( \
-
327 __metal_simd_shuffle_xor(itype_to_ctype(data), mask)); \
-
328 }
-
329
-
-
330#define instantiate_metal_simd_reduction_funcs(itype, otype, ctype) \
-
331 \
-
332 METAL_FUNC otype simd_max(itype data) { \
-
333 return static_cast<otype>(__metal_simd_max(static_cast<ctype>(data))); \
-
334 } \
-
335 \
-
336 METAL_FUNC otype simd_min(itype data) { \
-
337 return static_cast<otype>(__metal_simd_min(static_cast<ctype>(data))); \
-
338 } \
-
339 \
-
340 METAL_FUNC otype simd_prefix_exclusive_product(itype data) { \
-
341 return static_cast<otype>( \
-
342 __metal_simd_prefix_exclusive_product(static_cast<ctype>(data))); \
-
343 } \
-
344 \
-
345 METAL_FUNC otype simd_prefix_exclusive_sum(itype data) { \
-
346 return static_cast<otype>( \
-
347 __metal_simd_prefix_exclusive_sum(static_cast<ctype>(data))); \
-
348 } \
-
349 \
-
350 METAL_FUNC otype simd_prefix_inclusive_product(itype data) { \
-
351 return static_cast<otype>( \
-
352 __metal_simd_prefix_inclusive_product(static_cast<ctype>(data))); \
-
353 } \
-
354 \
-
355 METAL_FUNC otype simd_prefix_inclusive_sum(itype data) { \
-
356 return static_cast<otype>( \
-
357 __metal_simd_prefix_inclusive_sum(static_cast<ctype>(data))); \
-
358 } \
-
359 \
-
360 METAL_FUNC otype simd_product(itype data) { \
-
361 return static_cast<otype>(__metal_simd_product(static_cast<ctype>(data))); \
-
362 } \
-
363 \
-
364 METAL_FUNC otype simd_sum(itype data) { \
-
365 return static_cast<otype>(__metal_simd_sum(static_cast<ctype>(data))); \
-
366 } \
-
367 \
-
368 METAL_FUNC otype simd_xor(itype data) { \
-
369 return static_cast<otype>(__metal_simd_xor(static_cast<ctype>(data))); \
-
370 }
+
257// Metal simd for bfloat16
+
259
+
260#define instantiate_metal_simd_comm_funcs( \
+
261 itype, otype, ctype, itype_to_ctype, ctype_to_otype) \
+
262 \
+
263 METAL_FUNC otype simd_broadcast(itype data, ushort broadcast_lane_id) { \
+
264 return ctype_to_otype( \
+
265 __metal_simd_broadcast(itype_to_ctype(data), broadcast_lane_id)); \
+
266 } \
+
267 \
+
268 METAL_FUNC otype simd_shuffle(itype data, ushort simd_lane_id) { \
+
269 return ctype_to_otype( \
+
270 __metal_simd_shuffle(itype_to_ctype(data), simd_lane_id)); \
+
271 } \
+
272 \
+
273 METAL_FUNC otype simd_shuffle_and_fill_down( \
+
274 itype data, itype filling_data, ushort delta, ushort modulo) { \
+
275 return ctype_to_otype(__metal_simd_shuffle_and_fill_down( \
+
276 itype_to_ctype(data), itype_to_ctype(filling_data), delta, modulo)); \
+
277 } \
+
278 \
+
279 METAL_FUNC otype simd_shuffle_and_fill_down( \
+
280 itype data, itype filling_data, ushort delta) { \
+
281 return ctype_to_otype(__metal_simd_shuffle_and_fill_down( \
+
282 itype_to_ctype(data), \
+
283 itype_to_ctype(filling_data), \
+
284 delta, \
+
285 __metal_get_simdgroup_size(ushort()))); \
+
286 } \
+
287 \
+
288 METAL_FUNC otype simd_shuffle_and_fill_up( \
+
289 itype data, itype filling_data, ushort delta, ushort modulo) { \
+
290 return ctype_to_otype(__metal_simd_shuffle_and_fill_up( \
+
291 itype_to_ctype(data), itype_to_ctype(filling_data), delta, modulo)); \
+
292 } \
+
293 \
+
294 METAL_FUNC otype simd_shuffle_and_fill_up( \
+
295 itype data, itype filling_data, ushort delta) { \
+
296 return ctype_to_otype(__metal_simd_shuffle_and_fill_up( \
+
297 itype_to_ctype(data), \
+
298 itype_to_ctype(filling_data), \
+
299 delta, \
+
300 __metal_get_simdgroup_size(ushort()))); \
+
301 } \
+
302 \
+
303 METAL_FUNC otype simd_shuffle_down(itype data, ushort delta) { \
+
304 return ctype_to_otype( \
+
305 __metal_simd_shuffle_down(itype_to_ctype(data), delta)); \
+
306 } \
+
307 \
+
308 METAL_FUNC otype simd_shuffle_rotate_down(itype data, ushort delta) { \
+
309 return ctype_to_otype( \
+
310 __metal_simd_shuffle_rotate_down(itype_to_ctype(data), delta)); \
+
311 } \
+
312 \
+
313 METAL_FUNC otype simd_shuffle_rotate_up(itype data, ushort delta) { \
+
314 return ctype_to_otype( \
+
315 __metal_simd_shuffle_rotate_up(itype_to_ctype(data), delta)); \
+
316 } \
+
317 \
+
318 METAL_FUNC otype simd_shuffle_up(itype data, ushort delta) { \
+
319 return ctype_to_otype( \
+
320 __metal_simd_shuffle_up(itype_to_ctype(data), delta)); \
+
321 } \
+
322 \
+
323 METAL_FUNC otype simd_shuffle_xor(itype data, ushort mask) { \
+
324 return ctype_to_otype( \
+
325 __metal_simd_shuffle_xor(itype_to_ctype(data), mask)); \
+
326 }
+
327
+
+
328#define instantiate_metal_simd_reduction_funcs(itype, otype, ctype) \
+
329 \
+
330 METAL_FUNC otype simd_max(itype data) { \
+
331 return static_cast<otype>(__metal_simd_max(static_cast<ctype>(data))); \
+
332 } \
+
333 \
+
334 METAL_FUNC otype simd_min(itype data) { \
+
335 return static_cast<otype>(__metal_simd_min(static_cast<ctype>(data))); \
+
336 } \
+
337 \
+
338 METAL_FUNC otype simd_prefix_exclusive_product(itype data) { \
+
339 return static_cast<otype>( \
+
340 __metal_simd_prefix_exclusive_product(static_cast<ctype>(data))); \
+
341 } \
+
342 \
+
343 METAL_FUNC otype simd_prefix_exclusive_sum(itype data) { \
+
344 return static_cast<otype>( \
+
345 __metal_simd_prefix_exclusive_sum(static_cast<ctype>(data))); \
+
346 } \
+
347 \
+
348 METAL_FUNC otype simd_prefix_inclusive_product(itype data) { \
+
349 return static_cast<otype>( \
+
350 __metal_simd_prefix_inclusive_product(static_cast<ctype>(data))); \
+
351 } \
+
352 \
+
353 METAL_FUNC otype simd_prefix_inclusive_sum(itype data) { \
+
354 return static_cast<otype>( \
+
355 __metal_simd_prefix_inclusive_sum(static_cast<ctype>(data))); \
+
356 } \
+
357 \
+
358 METAL_FUNC otype simd_product(itype data) { \
+
359 return static_cast<otype>(__metal_simd_product(static_cast<ctype>(data))); \
+
360 } \
+
361 \
+
362 METAL_FUNC otype simd_sum(itype data) { \
+
363 return static_cast<otype>(__metal_simd_sum(static_cast<ctype>(data))); \
+
364 } \
+
365 \
+
366 METAL_FUNC otype simd_xor(itype data) { \
+
367 return static_cast<otype>(__metal_simd_xor(static_cast<ctype>(data))); \
+
368 }
+
369
+
370namespace metal {
371
-
372#if (MLX_METAL_VERSION >= 310) || (__METAL_VERSION__ >= 310)
-
373
-
374#define bfloat16_to_uint16(x) as_type<uint16_t>(x)
-
375#define uint16_to_bfloat16(x) as_type<bfloat16_t>(x)
-
376
-
377#else
-
378
-
379#define bfloat16_to_uint16(x) x.bits_
-
380#define uint16_to_bfloat16(x) _MLX_BFloat16(x, _MLX_BFloat16::bits_to_bfloat())
-
381
-
382#endif
-
383
-
384namespace metal {
-
385
- - - -
389 uint16_t,
- - - -
393
-
394} // namespace metal
- -
#define uint16_to_bfloat16(x)
Definition bf16_math.h:380
-
#define instantiate_metal_simd_reduction_funcs(itype, otype, ctype)
Definition bf16_math.h:330
-
#define bfloat16_to_uint16(x)
Definition bf16_math.h:379
-
#define instantiate_metal_math_funcs(itype, otype, ctype, mfast)
Definition bf16_math.h:35
-
#define instantiate_metal_simd_comm_funcs( itype, otype, ctype, itype_to_ctype, ctype_to_otype)
Definition bf16_math.h:262
-
Definition bf16.h:265
-
Definition bf16.h:54
+ + + +
375 uint16_t,
+ + + +
379
+
380} // namespace metal
+
uint16_t bfloat16_to_uint16(const bfloat16_t x)
Definition bf16.h:308
+
bfloat16_t uint16_to_bfloat16(const uint16_t x)
Definition bf16.h:312
+
#define instantiate_metal_simd_reduction_funcs(itype, otype, ctype)
Definition bf16_math.h:328
+
#define instantiate_metal_math_funcs(itype, otype, ctype, mfast)
Definition bf16_math.h:33
+
#define instantiate_metal_simd_comm_funcs( itype, otype, ctype, itype_to_ctype, ctype_to_otype)
Definition bf16_math.h:260
+
Definition bf16_math.h:226
+
Definition bf16.h:48
296};
-
float log1p(float x)
Definition utils.h:277
-
METAL_FUNC bfloat16_t atan2(bfloat16_t y, bfloat16_t x)
Definition bf16_math.h:252
-
METAL_FUNC bfloat16_t atan2(bfloat16_t y, bfloat16_t x)
Definition bf16_math.h:234
-
METAL_FUNC bfloat16_t cos(bfloat16_t x)
Definition bf16_math.h:234
-
METAL_FUNC bfloat16_t log(bfloat16_t x)
Definition bf16_math.h:234
-
METAL_FUNC bfloat16_t sin(bfloat16_t x)
Definition bf16_math.h:234
-
METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:234
-
METAL_FUNC bool isnan(_MLX_BFloat16 x)
Definition bf16.h:307
-
METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:234
-
METAL_FUNC bfloat16_t exp(bfloat16_t x)
Definition bf16_math.h:234
-
METAL_FUNC bfloat16_t pow(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:234
-
Definition bf16.h:54
+
float log1p(float x)
Definition utils.h:318
+
METAL_FUNC bfloat16_t atan2(bfloat16_t y, bfloat16_t x)
Definition bf16_math.h:250
+
METAL_FUNC bfloat16_t atan2(bfloat16_t y, bfloat16_t x)
Definition bf16_math.h:232
+
METAL_FUNC bfloat16_t cos(bfloat16_t x)
Definition bf16_math.h:232
+
METAL_FUNC bfloat16_t log(bfloat16_t x)
Definition bf16_math.h:232
+
METAL_FUNC bfloat16_t sin(bfloat16_t x)
Definition bf16_math.h:232
+
METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:232
+
METAL_FUNC bool isnan(_MLX_BFloat16 x)
Definition bf16.h:301
+
METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:232
+
METAL_FUNC bfloat16_t exp(bfloat16_t x)
Definition bf16_math.h:232
+
METAL_FUNC bfloat16_t pow(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:232
+
Definition bf16.h:48
Definition binary_ops.h:8
T operator()(T x, T y)
Definition binary_ops.h:10
Definition binary_ops.h:284
diff --git a/docs/build/html/classes.html b/docs/build/html/classes.html index 31672a75..77d6a0d1 100644 --- a/docs/build/html/classes.html +++ b/docs/build/html/classes.html @@ -91,19 +91,19 @@ $(function(){ initResizable(false); });
A
-
Abs
Abs (mlx::core)
Abs (mlx::core::detail)
AccumHelper (mlx::steel)
Add
Add (mlx::core)
Add (mlx::core::detail)
add_vec (pocketfft::detail)
add_vec< cmplx< T > > (pocketfft::detail)
AddMM (mlx::core)
AffineQuantize (mlx::core::fast)
aligned_allocator (pocketfft::detail::threading)
AllGather (mlx::core::distributed)
Allocator (mlx::core::allocator)
AllReduce (mlx::core::distributed)
And
Arange (mlx::core)
ArcCos
ArcCos (mlx::core)
ArcCos (mlx::core::detail)
ArcCosh
ArcCosh (mlx::core)
ArcCosh (mlx::core::detail)
ArcSin
ArcSin (mlx::core)
ArcSin (mlx::core::detail)
ArcSinh
ArcSinh (mlx::core)
ArcSinh (mlx::core::detail)
ArcTan
ArcTan (mlx::core)
ArcTan (mlx::core::detail)
ArcTan2
ArcTan2 (mlx::core)
ArcTan2 (mlx::core::detail)
ArcTanh
ArcTanh (mlx::core)
ArcTanh (mlx::core::detail)
ArgPartition (mlx::core)
ArgReduce (mlx::core)
ArgSort (mlx::core)
arr (pocketfft::detail)
arr_info (pocketfft::detail)
array (mlx::core)
array::ArrayIterator (mlx::core)
AsStrided (mlx::core)
AsType (mlx::core)
+
Abs
Abs (mlx::core)
Abs (mlx::core::detail)
AccumHelper (mlx::steel)
Add
Add (mlx::core)
Add (mlx::core::detail)
add_vec (pocketfft::detail)
add_vec< cmplx< T > > (pocketfft::detail)
AddMM (mlx::core)
AffineQuantize (mlx::core::fast)
aligned_allocator (pocketfft::detail::threading)
AllGather (mlx::core::distributed)
Allocator (mlx::core::allocator)
AllReduce (mlx::core::distributed)
And
Arange (mlx::core)
ArcCos
ArcCos (mlx::core)
ArcCos (mlx::core::detail)
ArcCosh
ArcCosh (mlx::core)
ArcCosh (mlx::core::detail)
ArcSin
ArcSin (mlx::core)
ArcSin (mlx::core::detail)
ArcSinh
ArcSinh (mlx::core)
ArcSinh (mlx::core::detail)
ArcTan
ArcTan (mlx::core)
ArcTan (mlx::core::detail)
ArcTan2
ArcTan2 (mlx::core)
ArcTan2 (mlx::core::detail)
ArcTanh
ArcTanh (mlx::core)
ArcTanh (mlx::core::detail)
ArgPartition (mlx::core)
ArgReduce (mlx::core)
ArgSort (mlx::core)
arr (pocketfft::detail)
arr_info (pocketfft::detail)
array (mlx::core)
array::ArrayIterator (mlx::core)
AsStrided (mlx::core)
AsType (mlx::core)
AttnParams (mlx::steel)
B
-
BaseMMAFrag (mlx::steel)
BaseMMAFrag< T, 8, 8 > (mlx::steel)
_MLX_BFloat16::bits_to_bfloat_struct
BitwiseAnd
BitwiseAnd (mlx::core::detail)
BitwiseBinary (mlx::core)
BitwiseOr
BitwiseOr (mlx::core::detail)
BitwiseXor
BitwiseXor (mlx::core::detail)
BlockLoader (mlx::steel)
BlockMaskedMM (mlx::core)
BlockMergeSort
BlockMMA (mlx::steel)
BlockSwizzle (mlx::steel)
bool4_or_uint
Broadcast (mlx::core)
Buffer (mlx::core::allocator)
+
BaseMMAFrag (mlx::steel)
BaseMMAFrag< T, 8, 8 > (mlx::steel)
_MLX_BFloat16::bits_to_bfloat_struct
BitwiseAnd
BitwiseAnd (mlx::core::detail)
BitwiseBinary (mlx::core)
BitwiseOr
BitwiseOr (mlx::core::detail)
BitwiseXor
BitwiseXor (mlx::core::detail)
BlockLoader (mlx::steel)
BlockLoaderT (mlx::steel)
BlockMaskedMM (mlx::core)
BlockMergeSort
BlockMMA (mlx::steel)
BlockSwizzle (mlx::steel)
bool4_or_uint
Broadcast (mlx::core)
Buffer (mlx::core::allocator)
C
-
Ceil
Ceil (mlx::core)
Ceil (mlx::core::detail)
cfftp (pocketfft::detail)
ChannelHelper (mlx::steel)
ChannelHelper< 1 > (mlx::steel)
ChannelHelper< 2 > (mlx::steel)
ChannelHelper< 3 > (mlx::steel)
ChannelHelper< 4 > (mlx::steel)
Cholesky (mlx::core)
cmplx (pocketfft::detail)
cndarr (pocketfft::detail)
CommandEncoder (mlx::core::metal)
CommonAllocator (mlx::core::allocator)
Compiled (mlx::core)
complex128_t (mlx::core)
complex64_t
complex64_t (mlx::core)
Concatenate (mlx::core)
concurrent_queue (pocketfft::detail::threading)
CommandEncoder::ConcurrentContext (mlx::core::metal)
Conjugate
Conjugate (mlx::core)
Conjugate (mlx::core::detail)
ContiguousIterator (mlx::core)
Conv2DGeneralBaseInfo (mlx::steel)
Conv2DGeneralJumpParams (mlx::steel)
Conv2DInputBlockLoaderGeneral (mlx::steel)
Conv2DInputBlockLoaderLargeFilter (mlx::steel)
Conv2DInputBlockLoaderSmallChannels (mlx::steel)
Conv2DInputBlockLoaderSmallFilter (mlx::steel)
Conv2DWeightBlockLoader (mlx::steel)
Conv2DWeightBlockLoaderGeneral (mlx::steel)
Conv2DWeightBlockLoaderSmallChannels (mlx::steel)
Convolution (mlx::core)
Copy (mlx::core)
Cos
Cos (mlx::core)
Cos (mlx::core::detail)
Cosh
Cosh (mlx::core)
Cosh (mlx::core::detail)
CumMax
CumMin
CumProd
CumProd< bool >
CumSum
Custom (mlx::core::fast)
CustomKernel (mlx::core::fast)
CustomKernelShapeInfo (mlx::core::fast)
CustomTransforms (mlx::core)
+
Ceil
Ceil (mlx::core)
Ceil (mlx::core::detail)
cfftp (pocketfft::detail)
ChannelHelper (mlx::steel)
ChannelHelper< 1 > (mlx::steel)
ChannelHelper< 2 > (mlx::steel)
ChannelHelper< 3 > (mlx::steel)
ChannelHelper< 4 > (mlx::steel)
Cholesky (mlx::core)
cmplx (pocketfft::detail)
cndarr (pocketfft::detail)
CommandEncoder (mlx::core::metal)
CommonAllocator (mlx::core::allocator)
Compiled (mlx::core)
complex128_t (mlx::core)
complex64_t
complex64_t (mlx::core)
Concatenate (mlx::core)
concurrent_queue (pocketfft::detail::threading)
CommandEncoder::ConcurrentContext (mlx::core::metal)
Conjugate
Conjugate (mlx::core)
Conjugate (mlx::core::detail)
Contiguous (mlx::core)
ContiguousIterator (mlx::core)
Conv2DGeneralBaseInfo (mlx::steel)
Conv2DGeneralJumpParams (mlx::steel)
Conv2DInputBlockLoaderGeneral (mlx::steel)
Conv2DInputBlockLoaderLargeFilter (mlx::steel)
Conv2DInputBlockLoaderSmallChannels (mlx::steel)
Conv2DInputBlockLoaderSmallFilter (mlx::steel)
Conv2DWeightBlockLoader (mlx::steel)
Conv2DWeightBlockLoaderGeneral (mlx::steel)
Conv2DWeightBlockLoaderSmallChannels (mlx::steel)
Convolution (mlx::core)
Copy (mlx::core)
Cos
Cos (mlx::core)
Cos (mlx::core::detail)
Cosh
Cosh (mlx::core)
Cosh (mlx::core::detail)
CShape (mlx::steel)
CumMax
CumMin
CumProd
CumProd< bool >
CumSum
Custom (mlx::core::fast)
CustomKernel (mlx::core::fast)
CustomKernelShapeInfo (mlx::core::fast)
CustomTransforms (mlx::core)
D
-
array::Data (mlx::core)
DefaultContiguousReduce (mlx::core)
DefaultStridedReduce (mlx::core)
Depends (mlx::core)
Device (mlx::core)
Device (mlx::core::metal)
DeviceStream (mlx::core::metal)
DistPrimitive (mlx::core::distributed)
Divide
Divide (mlx::core::detail)
Divide (mlx::core)
DivMod
DivMod (mlx::core)
Dtype (mlx::core)
+
array::Data (mlx::core)
DefaultContiguousReduce (mlx::core)
DefaultStridedReduce (mlx::core)
Depends (mlx::core)
Device (mlx::core)
Device (mlx::core::metal)
DeviceStream (mlx::core::metal)
DistPrimitive (mlx::core::distributed)
Divide
Divide (mlx::core::detail)
Divide (mlx::core)
DivMod
DivMod (mlx::core)
DivOp
Dtype (mlx::core)
E
-
Eigh (mlx::core)
Equal
Equal (mlx::core::detail)
Equal (mlx::core)
Erf
Erf (mlx::core::detail)
Erf (mlx::core)
ErfInv
ErfInv (mlx::core::detail)
ErfInv (mlx::core)
Event (mlx::core)
ExecC2C (pocketfft::detail)
ExecDcst (pocketfft::detail)
ExecHartley (pocketfft::detail)
ExecR2R (pocketfft::detail)
Exp
Exp (mlx::core::detail)
Exp (mlx::core)
Expm1
Expm1 (mlx::core::detail)
Expm1 (mlx::core)
+
Eigh (mlx::core)
Equal
Equal (mlx::core::detail)
Equal (mlx::core)
Erf
Erf (mlx::core::detail)
Erf (mlx::core)
ErfInv
ErfInv (mlx::core::detail)
ErfInv (mlx::core)
Event (mlx::core)
ExecC2C (pocketfft::detail)
ExecDcst (pocketfft::detail)
ExecHartley (pocketfft::detail)
ExecR2R (pocketfft::detail)
Exp
Exp (mlx::core::detail)
Exp (mlx::core)
Expm1
Expm1 (mlx::core::detail)
Expm1 (mlx::core)
ExpSubOp
F
Fence (mlx::core::metal)
FFT (mlx::core)
fftblue (pocketfft::detail)
FileWriter (mlx::core::io)
array::Flags (mlx::core)
Floor
Floor (mlx::core::detail)
Floor (mlx::core)
FloorDivide
Full (mlx::core)
@@ -121,10 +121,10 @@ $(function(){ initResizable(false); });
KernelMergeSort
KernelMultiBlockMergeSort
KeySequence (mlx::core::random)
L
-
latch (pocketfft::detail::threading)
LayerNorm (mlx::core::fast)
LayerNormVJP (mlx::core::fast)
LeftShift
LeftShift (mlx::core::detail)
Less
Less (mlx::core::detail)
Less (mlx::core)
LessEqual
LessEqual (mlx::core::detail)
LessEqual (mlx::core)
LessThan
Limits
Limits< bfloat16_t >
Limits< bool >
Limits< complex64_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 >
Load (mlx::core)
Log
Log (mlx::core::detail)
Log (mlx::core)
Log10
Log10 (mlx::core::detail)
Log1p
Log1p (mlx::core::detail)
Log1p (mlx::core)
Log2
Log2 (mlx::core::detail)
LogAddExp
LogAddExp (mlx::core::detail)
LogAddExp (mlx::core)
LogicalAnd
LogicalAnd (mlx::core::detail)
LogicalAnd (mlx::core)
LogicalNot
LogicalNot (mlx::core::detail)
LogicalNot (mlx::core)
LogicalOr
LogicalOr (mlx::core::detail)
LogicalOr (mlx::core)
LoopAlignment (mlx::steel)
looped_elem_to_loc
looped_elem_to_loc< 0, offset_t >
looped_elem_to_loc< 1, offset_t >
+
latch (pocketfft::detail::threading)
LayerNorm (mlx::core::fast)
LayerNormVJP (mlx::core::fast)
Layout2D (mlx::steel)
LeftShift
LeftShift (mlx::core::detail)
Less
Less (mlx::core::detail)
Less (mlx::core)
LessEqual
LessEqual (mlx::core::detail)
LessEqual (mlx::core)
LessThan
Limits
Limits< bfloat16_t >
Limits< bool >
Limits< complex64_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 >
Load (mlx::core)
Log
Log (mlx::core::detail)
Log (mlx::core)
Log10
Log10 (mlx::core::detail)
Log1p
Log1p (mlx::core::detail)
Log1p (mlx::core)
Log2
Log2 (mlx::core::detail)
LogAddExp
LogAddExp (mlx::core::detail)
LogAddExp (mlx::core)
LogicalAnd
LogicalAnd (mlx::core::detail)
LogicalAnd (mlx::core)
LogicalNot
LogicalNot (mlx::core::detail)
LogicalNot (mlx::core)
LogicalOr
LogicalOr (mlx::core::detail)
LogicalOr (mlx::core)
LoopAlignment (mlx::steel)
LoopedElemToLoc
LoopedElemToLoc< 1, OffsetT, false >
LoopedElemToLoc< 1, OffsetT, true >
M
-
make_void (metal)
Matmul (mlx::core)
Max
Maximum
Maximum (mlx::core::detail)
Maximum (mlx::core)
MetalAllocator (mlx::core::metal)
Min
Minimum
Minimum (mlx::core::detail)
Minimum (mlx::core)
mlx_atomic
mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >
MLXConvParams
MLXFastAttentionParams
MLXScaledDotProductAttentionParams
MMATile (mlx::steel)
multi_iter (pocketfft::detail)
Multiply (mlx::core::detail)
Multiply (mlx::core)
Multiply
+
make_void (metal)
Matmul (mlx::core)
Max
Maximum
Maximum (mlx::core::detail)
Maximum (mlx::core)
MaxOp
MetalAllocator (mlx::core::metal)
Min
Minimum
Minimum (mlx::core::detail)
Minimum (mlx::core)
mlx_atomic
mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >
MLXConvParams
MMATile (mlx::steel)
MulOp
multi_iter (pocketfft::detail)
Multiply (mlx::core::detail)
Multiply (mlx::core)
Multiply
N
NaNEqual (mlx::core::detail)
NaNEqual
ndarr (pocketfft::detail)
Negative (mlx::core::detail)
Negative (mlx::core)
Negative
NodeNamer (mlx::core)
None
NotEqual (mlx::core::detail)
NotEqual (mlx::core)
NotEqual
NumberOfElements (mlx::core)
@@ -142,10 +142,10 @@ $(function(){ initResizable(false); });
RandomBits (mlx::core)
Reader (mlx::core::io)
BlockLoader::ReadVector (mlx::steel)
ReadWriter
Real (mlx::core::detail)
Real (mlx::core)
Real
Recv (mlx::core::distributed)
Reduce (mlx::core)
ReductionPlan (mlx::core)
Remainder (mlx::core::detail)
Remainder (mlx::core)
Remainder
Reshape (mlx::core)
ResidencySet (mlx::core::metal)
RetainGraph (mlx::core::detail)
rev_iter (pocketfft::detail)
rfftp (pocketfft::detail)
RightShift (mlx::core::detail)
RightShift
RMSNorm (mlx::core::fast)
RMSNormVJP (mlx::core::fast)
RoPE (mlx::core::fast)
Round (mlx::core::detail)
Round (mlx::core)
Round
Rsqrt (mlx::core::detail)
Rsqrt
S
-
ScaledDotProductAttention (mlx::core::fast)
ScaleOp
Scan (mlx::core)
Scatter (mlx::core)
Scheduler (mlx::core::scheduler)
Select (mlx::core::detail)
Select (mlx::core)
Select
Send (mlx::core::distributed)
Sigmoid (mlx::core::detail)
Sigmoid (mlx::core)
Sigmoid
Sign (mlx::core::detail)
Sign (mlx::core)
Sign
simple_iter (pocketfft::detail)
Sin (mlx::core::detail)
Sin (mlx::core)
Sin
sincos_2pibyn (pocketfft::detail)
Sinh (mlx::core::detail)
Sinh (mlx::core)
Sinh
Slice (mlx::core)
SliceUpdate (mlx::core)
Softmax (mlx::core)
Sort (mlx::core)
Split (mlx::core)
Sqrt (mlx::core::detail)
Sqrt (mlx::core)
Sqrt
Square (mlx::core::detail)
Square (mlx::core)
Square
StopGradient (mlx::core)
Stream (mlx::core)
StreamContext (mlx::core)
StreamThread (mlx::core::scheduler)
Subtract (mlx::core::detail)
Subtract (mlx::core)
Subtract
Sum
SVD (mlx::core)
+
ScaledDotProductAttention (mlx::core::fast)
ScaleOp
Scan (mlx::core)
Scatter (mlx::core)
Scheduler (mlx::core::scheduler)
Select (mlx::core::detail)
Select (mlx::core)
Select
Send (mlx::core::distributed)
Shape2D (mlx::steel)
Sigmoid (mlx::core::detail)
Sigmoid (mlx::core)
Sigmoid
Sign (mlx::core::detail)
Sign (mlx::core)
Sign
simple_iter (pocketfft::detail)
Sin (mlx::core::detail)
Sin (mlx::core)
Sin
sincos_2pibyn (pocketfft::detail)
Sinh (mlx::core::detail)
Sinh (mlx::core)
Sinh
Slice (mlx::core)
SliceUpdate (mlx::core)
Softmax (mlx::core)
Sort (mlx::core)
Split (mlx::core)
Sqrt (mlx::core::detail)
Sqrt (mlx::core)
Sqrt
Square (mlx::core::detail)
Square (mlx::core)
Square
StopGradient (mlx::core)
Stream (mlx::core)
StreamContext (mlx::core)
StreamThread (mlx::core::scheduler)
SubOp
Subtract (mlx::core::detail)
Subtract (mlx::core)
Subtract
Sum
SumOp
SVD (mlx::core)
T
-
T_dcst23 (pocketfft::detail)
T_dcst4 (pocketfft::detail)
T_dct1 (pocketfft::detail)
T_dst1 (pocketfft::detail)
Tan (mlx::core::detail)
Tan (mlx::core)
Tan
Tanh (mlx::core::detail)
Tanh (mlx::core)
Tanh
thread_pool (pocketfft::detail::threading)
ThreadPool
ThreadSort
TransformAdd (mlx::steel)
TransformAxpby (mlx::steel)
TransformNone (mlx::steel)
Transpose (mlx::core)
TypeToDtype (mlx::core)
+
T_dcst23 (pocketfft::detail)
T_dcst4 (pocketfft::detail)
T_dct1 (pocketfft::detail)
T_dst1 (pocketfft::detail)
Tan (mlx::core::detail)
Tan (mlx::core)
Tan
Tanh (mlx::core::detail)
Tanh (mlx::core)
Tanh
thread_pool (pocketfft::detail::threading)
ThreadPool
ThreadSort
TransformAdd (mlx::steel)
TransformAxpby (mlx::steel)
TransformNone (mlx::steel)
TransformScale
Transpose (mlx::core)
TypeToDtype (mlx::core)
U
UnaryPrimitive (mlx::core)
Uniform (mlx::core)
util (pocketfft::detail)
diff --git a/docs/build/html/classmlx_1_1core_1_1_contiguous-members.html b/docs/build/html/classmlx_1_1core_1_1_contiguous-members.html new file mode 100644 index 00000000..49a90d86 --- /dev/null +++ b/docs/build/html/classmlx_1_1core_1_1_contiguous-members.html @@ -0,0 +1,129 @@ + + + + + + + +MLX: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
mlx::core::Contiguous Member List
+
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Contiguous(Stream stream, bool allow_col_major)mlx::core::Contiguousinlineexplicit
device()mlx::core::Primitiveinline
eval_cpu(const std::vector< array > &inputs, array &out) overridemlx::core::Contiguousvirtual
mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) overridemlx::core::UnaryPrimitiveinlinevirtual
eval_gpu(const std::vector< array > &inputs, array &out) overridemlx::core::Contiguousvirtual
mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) overridemlx::core::UnaryPrimitiveinlinevirtual
is_equivalent(const Primitive &other) const overridemlx::core::Contiguousvirtual
jvp(const std::vector< array > &primals, const std::vector< array > &tangents, const std::vector< int > &argnums) overridemlx::core::Contiguousvirtual
operator=(const UnaryPrimitive &other)=deletemlx::core::UnaryPrimitive
operator=(UnaryPrimitive &&other)=deletemlx::core::UnaryPrimitive
mlx::core::Primitive::operator=(const Primitive &other)=deletemlx::core::Primitive
mlx::core::Primitive::operator=(Primitive &&other)=deletemlx::core::Primitive
output_shapes(const std::vector< array > &inputs) overridemlx::core::Contiguousinlinevirtual
Primitive(Stream stream)mlx::core::Primitiveinlineexplicit
Primitive(const Primitive &other)=deletemlx::core::Primitive
Primitive(Primitive &&other)=deletemlx::core::Primitive
print(std::ostream &os) overridemlx::core::Contiguousinlinevirtual
stream()mlx::core::Primitiveinline
UnaryPrimitive(Stream stream)mlx::core::UnaryPrimitiveinlineexplicit
UnaryPrimitive(const UnaryPrimitive &other)=deletemlx::core::UnaryPrimitive
UnaryPrimitive(UnaryPrimitive &&other)=deletemlx::core::UnaryPrimitive
vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) overridemlx::core::Contiguousvirtual
vmap(const std::vector< array > &inputs, const std::vector< int > &axes) overridemlx::core::Contiguousvirtual
~Primitive()=defaultmlx::core::Primitivevirtual
~UnaryPrimitive()=defaultmlx::core::UnaryPrimitivevirtual
+ + +
+ + diff --git a/docs/build/html/classmlx_1_1core_1_1_contiguous.html b/docs/build/html/classmlx_1_1core_1_1_contiguous.html new file mode 100644 index 00000000..98a3d0d2 --- /dev/null +++ b/docs/build/html/classmlx_1_1core_1_1_contiguous.html @@ -0,0 +1,481 @@ + + + + + + + +MLX: mlx::core::Contiguous Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
MLX +
+
+
+ + + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
mlx::core::Contiguous Class Reference
+
+
+ +

#include <primitives.h>

+
+Inheritance diagram for mlx::core::Contiguous:
+
+
+ + +mlx::core::UnaryPrimitive +mlx::core::Primitive + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Contiguous (Stream stream, bool allow_col_major)
 
void eval_cpu (const std::vector< array > &inputs, array &out) override
 
void eval_gpu (const std::vector< array > &inputs, array &out) override
 
virtual std::pair< std::vector< array >, std::vector< int > > vmap (const std::vector< array > &inputs, const std::vector< int > &axes) override
 The primitive must know how to vectorize itself across the given axes.
 
std::vector< arrayjvp (const std::vector< array > &primals, const std::vector< array > &tangents, const std::vector< int > &argnums) override
 The Jacobian-vector product.
 
std::vector< arrayvjp (const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) override
 The vector-Jacobian product.
 
void print (std::ostream &os) override
 Print the primitive.
 
std::vector< std::vector< int > > output_shapes (const std::vector< array > &inputs) override
 Get the output shapes of the primitive.
 
bool is_equivalent (const Primitive &other) const override
 Equivalence check defaults to false unless overridden by the primitive.
 
- Public Member Functions inherited from mlx::core::UnaryPrimitive
 UnaryPrimitive (Stream stream)
 An abstract base class for a primitive with a single output.
 
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 output arrays.
 
void eval_gpu (const std::vector< array > &inputs, std::vector< array > &outputs) override
 
virtual ~UnaryPrimitive ()=default
 
 UnaryPrimitive (const UnaryPrimitive &other)=delete
 
 UnaryPrimitive (UnaryPrimitive &&other)=delete
 
UnaryPrimitiveoperator= (const UnaryPrimitive &other)=delete
 
UnaryPrimitiveoperator= (UnaryPrimitive &&other)=delete
 
- Public Member Functions inherited from mlx::core::Primitive
 Primitive (Stream stream)
 
const Devicedevice ()
 The device the primitive will run on.
 
const Streamstream ()
 The stream the primitive will run on.
 
virtual ~Primitive ()=default
 
 Primitive (const Primitive &other)=delete
 
 Primitive (Primitive &&other)=delete
 
Primitiveoperator= (const Primitive &other)=delete
 
Primitiveoperator= (Primitive &&other)=delete
 
+

Constructor & Destructor Documentation

+ +

◆ Contiguous()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
mlx::core::Contiguous::Contiguous (Stream stream,
bool allow_col_major )
+
+inlineexplicit
+
+ +
+
+

Member Function Documentation

+ +

◆ eval_cpu()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void mlx::core::Contiguous::eval_cpu (const std::vector< array > & inputs,
array & out )
+
+overridevirtual
+
+ +

Implements mlx::core::UnaryPrimitive.

+ +
+
+ +

◆ eval_gpu()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void mlx::core::Contiguous::eval_gpu (const std::vector< array > & inputs,
array & out )
+
+overridevirtual
+
+ +

Implements mlx::core::UnaryPrimitive.

+ +
+
+ +

◆ is_equivalent()

+ +
+
+ + + + + +
+ + + + + + + +
bool mlx::core::Contiguous::is_equivalent (const Primitive & other) const
+
+overridevirtual
+
+ +

Equivalence check defaults to false unless overridden by the primitive.

+ +

Reimplemented from mlx::core::Primitive.

+ +
+
+ +

◆ jvp()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
std::vector< array > mlx::core::Contiguous::jvp (const std::vector< array > & primals,
const std::vector< array > & tangents,
const std::vector< int > & argnums )
+
+overridevirtual
+
+ +

The Jacobian-vector product.

+ +

Reimplemented from mlx::core::Primitive.

+ +
+
+ +

◆ output_shapes()

+ +
+
+ + + + + +
+ + + + + + + +
std::vector< std::vector< int > > mlx::core::Contiguous::output_shapes (const std::vector< array > & inputs)
+
+inlineoverridevirtual
+
+ +

Get the output shapes of the primitive.

+

This is not required to be implemented by derived classes, in which case it will throw.

+ +

Reimplemented from mlx::core::Primitive.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + +
void mlx::core::Contiguous::print (std::ostream & os)
+
+inlineoverridevirtual
+
+ +

Print the primitive.

+ +

Implements mlx::core::Primitive.

+ +
+
+ +

◆ vjp()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
std::vector< array > mlx::core::Contiguous::vjp (const std::vector< array > & primals,
const std::vector< array > & cotangents,
const std::vector< int > & argnums,
const std::vector< array > & outputs )
+
+overridevirtual
+
+ +

The vector-Jacobian product.

+ +

Reimplemented from mlx::core::Primitive.

+ +
+
+ +

◆ vmap()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
virtual std::pair< std::vector< array >, std::vector< int > > mlx::core::Contiguous::vmap (const std::vector< array > & inputs,
const std::vector< int > & axes )
+
+overridevirtual
+
+ +

The primitive must know how to vectorize itself across the given axes.

+

The output is a pair containing the output arrays representing the vectorized computation and the axes which corresponds to the vectorized dimensions of each output.

+ +

Reimplemented from mlx::core::Primitive.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + +
+ + diff --git a/docs/build/html/classmlx_1_1core_1_1_contiguous.png b/docs/build/html/classmlx_1_1core_1_1_contiguous.png new file mode 100644 index 0000000000000000000000000000000000000000..13ba3febe5b2964e1387ebe0c32bd51531f92ff2 GIT binary patch literal 924 zcmeAS@N?(olHy`uVBq!ia0vp^(}1{xgBeH~F+Z{fQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=GWbo-U3d6^w7^zAk#Lz{57Z ze`e3U|DFAhe=)IHd-=_}w9@L$5pl)!ttwPf!D$ngD2HFw+AOn5QFZH;y`@wB?g`s|+JEb`Z7b3|wc7nx z-*HsGnsxiv!f7gVA6!}$_3uXXStYw`TH9Myw%RP-s++M_c>80&$jKqSuSDZ-bx!({ z+%iq2k`wC6)R?t%iskqk$_tq#`VF_{ZCBiT?8>Y)ZeOHAw9Awl=3ij?AQZ(A=fr)$ zJA<);Q)wk#=om0z;$~2wN-^F=)^*a0F8~?sVe<*n@@qKEp|MnQ|`6jIS>Z$i)v(L?5 zQg+4owD(cx>C%69yo&nn`Si}NsMIqHrGkP^FN{jx7@aR0|NL&0FaLG!KrPw(3Z8Ex z#B0vqzN+>8xaU@@y`i^rdw;ZqZGXBwaBI!;!tm}Nv%+@j%4OzqN4?+hwqk#M#KXO} z+HLP%T-9~qCNNaW=KYcXv9SOA>9G5&zV5pE{%45yrG8;xJW?-&yfl}7RG2xl*DYh_ zOke~U8|#Zl`TxFGK4E6$(UPaF;`NKK$=vs;$~BByyJg>lnt&&8`hIlWdKRSHH+O`*TvH^{X>amlmzOw)*56Dc`=VT{A@&hp)Y~c%_@sX64eY zRs6P}EwlIjzpOR;Ppa;7rCCd>V!~FxUAuhiyx1eFp7yW5v108-^{DLiSGUK#T$^;d zv@B`o;%l3Kz54W^R{fp5_kw!CvuF0TrptX%T)Ry8>>0fuAzQ2Ns~T?>uDied)|ofU lIY2&moV9eyrGh`qNy}zkynb}5F)$x7c)I$ztaD0e0svz$%6b3* literal 0 HcmV?d00001 diff --git a/docs/build/html/classmlx_1_1core_1_1_primitive.html b/docs/build/html/classmlx_1_1core_1_1_primitive.html index b59585a8..0a127787 100644 --- a/docs/build/html/classmlx_1_1core_1_1_primitive.html +++ b/docs/build/html/classmlx_1_1core_1_1_primitive.html @@ -380,7 +380,7 @@ Public Member Functions

Equivalence check defaults to false unless overridden by the primitive.

-

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::fast::ScaledDotProductAttention, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

+

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::fast::ScaledDotProductAttention, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

@@ -418,7 +418,7 @@ Public Member Functions

The Jacobian-vector product.

-

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::Real, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, and mlx::core::Transpose.

+

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Contiguous, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::Real, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, and mlx::core::Transpose.

@@ -498,7 +498,7 @@ Public Member Functions

Get the output shapes of the primitive.

This is not required to be implemented by derived classes, in which case it will throw.

-

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Conjugate, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::Floor, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Partition, mlx::core::Power, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Round, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Softmax, mlx::core::Sort, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, and mlx::core::Tanh.

+

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::Floor, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Partition, mlx::core::Power, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Round, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Softmax, mlx::core::Sort, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, and mlx::core::Tanh.

@@ -527,7 +527,7 @@ Public Member Functions

Print the primitive.

-

Implemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::Depends, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Load, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QRF, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::SVD, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

+

Implemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::Depends, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Load, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QRF, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::SVD, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

@@ -597,7 +597,7 @@ Public Member Functions

The vector-Jacobian product.

-

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::Depends, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::fast::LayerNorm, mlx::core::fast::RMSNorm, mlx::core::fast::RoPE, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, and mlx::core::Transpose.

+

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Contiguous, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::Depends, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::fast::LayerNorm, mlx::core::fast::RMSNorm, mlx::core::fast::RoPE, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, and mlx::core::Transpose.

@@ -631,7 +631,7 @@ Public Member Functions

The primitive must know how to vectorize itself across the given axes.

The output is a pair containing the output arrays representing the vectorized computation and the axes which corresponds to the vectorized dimensions of each output.

-

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::distributed::Send, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::SVD, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

+

Reimplemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::distributed::Send, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::SVD, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

diff --git a/docs/build/html/classmlx_1_1core_1_1_unary_primitive.html b/docs/build/html/classmlx_1_1core_1_1_unary_primitive.html index 8335de9d..610953b5 100644 --- a/docs/build/html/classmlx_1_1core_1_1_unary_primitive.html +++ b/docs/build/html/classmlx_1_1core_1_1_unary_primitive.html @@ -126,73 +126,74 @@ Inheritance diagram for mlx::core::UnaryPrimitive:
mlx::core::Cholesky mlx::core::Concatenate mlx::core::Conjugate -mlx::core::Convolution -mlx::core::Copy -mlx::core::Cos -mlx::core::Cosh -mlx::core::Divide -mlx::core::Equal -mlx::core::Erf -mlx::core::ErfInv -mlx::core::Exp -mlx::core::Expm1 -mlx::core::FFT -mlx::core::Floor -mlx::core::Full -mlx::core::Gather -mlx::core::GatherMM -mlx::core::GatherQMM -mlx::core::Greater -mlx::core::GreaterEqual -mlx::core::Hadamard -mlx::core::Imag -mlx::core::Inverse -mlx::core::Less -mlx::core::LessEqual -mlx::core::Load -mlx::core::Log -mlx::core::Log1p -mlx::core::LogAddExp -mlx::core::LogicalAnd -mlx::core::LogicalNot -mlx::core::LogicalOr -mlx::core::Matmul -mlx::core::Maximum -mlx::core::Minimum -mlx::core::Multiply -mlx::core::Negative -mlx::core::NotEqual -mlx::core::NumberOfElements -mlx::core::Pad -mlx::core::Partition -mlx::core::Power -mlx::core::QuantizedMatmul -mlx::core::RandomBits -mlx::core::Real -mlx::core::Reduce -mlx::core::Remainder -mlx::core::Reshape -mlx::core::Round -mlx::core::Scan -mlx::core::Scatter -mlx::core::Select -mlx::core::Sigmoid -mlx::core::Sign -mlx::core::Sin -mlx::core::Sinh -mlx::core::Slice -mlx::core::SliceUpdate -mlx::core::Softmax -mlx::core::Sort -mlx::core::Sqrt -mlx::core::Square -mlx::core::StopGradient -mlx::core::Subtract -mlx::core::Tan -mlx::core::Tanh -mlx::core::Transpose -mlx::core::Uniform -mlx::core::View +mlx::core::Contiguous +mlx::core::Convolution +mlx::core::Copy +mlx::core::Cos +mlx::core::Cosh +mlx::core::Divide +mlx::core::Equal +mlx::core::Erf +mlx::core::ErfInv +mlx::core::Exp +mlx::core::Expm1 +mlx::core::FFT +mlx::core::Floor +mlx::core::Full +mlx::core::Gather +mlx::core::GatherMM +mlx::core::GatherQMM +mlx::core::Greater +mlx::core::GreaterEqual +mlx::core::Hadamard +mlx::core::Imag +mlx::core::Inverse +mlx::core::Less +mlx::core::LessEqual +mlx::core::Load +mlx::core::Log +mlx::core::Log1p +mlx::core::LogAddExp +mlx::core::LogicalAnd +mlx::core::LogicalNot +mlx::core::LogicalOr +mlx::core::Matmul +mlx::core::Maximum +mlx::core::Minimum +mlx::core::Multiply +mlx::core::Negative +mlx::core::NotEqual +mlx::core::NumberOfElements +mlx::core::Pad +mlx::core::Partition +mlx::core::Power +mlx::core::QuantizedMatmul +mlx::core::RandomBits +mlx::core::Real +mlx::core::Reduce +mlx::core::Remainder +mlx::core::Reshape +mlx::core::Round +mlx::core::Scan +mlx::core::Scatter +mlx::core::Select +mlx::core::Sigmoid +mlx::core::Sign +mlx::core::Sin +mlx::core::Sinh +mlx::core::Slice +mlx::core::SliceUpdate +mlx::core::Softmax +mlx::core::Sort +mlx::core::Sqrt +mlx::core::Square +mlx::core::StopGradient +mlx::core::Subtract +mlx::core::Tan +mlx::core::Tanh +mlx::core::Transpose +mlx::core::Uniform +mlx::core::View
@@ -389,7 +390,7 @@ Public Member Functions
-

Implemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Load, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

+

Implemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Load, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

@@ -454,7 +455,7 @@ Public Member Functions
-

Implemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Load, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

+

Implemented in mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Load, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, and mlx::core::View.

diff --git a/docs/build/html/classmlx_1_1core_1_1_unary_primitive.png b/docs/build/html/classmlx_1_1core_1_1_unary_primitive.png index fa6e8dc0fe79dab0ef375b0976a7f8f36976f0d5..d36a3f474cf1815dac0ef468483023bee33aa7d1 100644 GIT binary patch delta 13437 zcmaKTdtB1@{{N~qw>k5)R-P_KTRXYU)NPrjB-XmPt(4T%d4t)OPEF9fkSKiG+VY&a zayzWB6v@mBpi+_d3oGZWgGvQNhDd5ke(;jvM+61F?+>VT&g1v^{Z$ViqVMS7{qga&m@oeUv8jh>rTv^rwZt+z%Oap z_NKiwLXIf{ZtG8e==r&9cJYD)=_^gsy_JOKHJ(2t7K@&4S0Q-{#sQ-plKzPo&3A&- z!EAuS1FGZHLfPn(k$1hu&dyMPGzyn~+O}FWcmP2r)E4mg7HY zUZxQjZ#*02cWvbB)083sQ|W%p<4l~Nq=&zxT*)(G_WG=~YgEQI-I>gQ=Y|q+#xWx^AymssLt9km4UPGQt!zr&pr}{4)rl!kw-4z`@DNyWobg*as`%#-Yk0;}))42s}}t zcDuD5QPrN@up+0emD4J{#2f3c?5md5IY;k0EF_<9KH*X=hu^i+9Zi!b$l@La5giy3 zopwAUdw0uLCpimFq^+re%~k)lTg^BLU4)i#Y-C~UT5<4^Ed9Hsp~m9)IYU_xk1k1m z;`OG#&9+KyVasS)j39m|w(+fJl2iUR@W`%6Kdty%%?gx(VcX8O$6dr&FHe{L+&83`qP7PnJWF$cAIk% zNTBmDWV(c=iMtd zJsd4_?BR&6URi3`i`m9g6DSUS>GrV*Y!gJg97L{gBZDw!PF@HU`*Cq3zxl(f*I_NE zr^sQK8dyu~Lo;5Uh$xpop$A}dnO`3G}`_X-bLy9 z)q&rRM6`tOdXR`5-yTN0ZeO+-?wxbj3!{qNJXx44hQpXWRR(g_nb7EC;Goxoc>6!9 zf!8xqR+K^=LH1m+=Rvl@Q|91Y1B+cwn^!#*mux&6;Kv>Lx-4V9QZvbeWp7j)5-@(W zE61O8dno*!{~VL*Md@QtD?^Q(()r|$XxYItq?MYAsFUv%V&>B4Pwr+t`9zhBCFA;f z?y-hCcFBh|t6=9O4nOzK$ZRGBi?g4Is4{F}6rWnn_2;=8dfm3}5a)P*Xu(N z4lXWKoa8CUI3#zG!{I!(A9CT#mQq6V>vGN19Q%(%+ZVlL@vI*}pKSl5+SnG}a>9i) z^}zP_GFX1aH-E8>XrE2U;UJ#r+=~N$X+7{^^FC029Edmfy|iuR*i#S3&ez4M)7J}5 zca=@*pHe3=UC-=Gihc(ZNuYc`6Ps>2URy-}5poy%CV_KKbU#WL)flEad?SOtG&+KI zw_}^xnPZ>R7Na^$Ot>qXP7Wm#a&w3FBj<1#p>Bj+O$}9Wa_c9=+-P11rtU?}J%6w8 zJVWCnsPRJ@aJdnPN{25zP-Qq?8hQq_J7EK3a&;;6%X}X9O_X+kDs0+l56w7NxX!)> z_y02^?ZS%KALFV-q;($4c4DI40+`kIn##~N zNDZOva={8gm6Xe~Ch{<}9kI^RVC$sm0)3)4EtJ=nx`$zME`_#$L6hA!)i924a$pB0$S_TB z36;~=wdH}3|82(ow2zlz#rM$T7u1&0S%#TB)lID87-hpY5Ot7D<&lp_k6%kyCRG)U zfyi7918uogNDswWoAP~2Qyz~nvODKn+nQg&ufD%{!Z!w6*O=c0ZJ7UZ8&uQ-7<2zzA5^9rsFV)vOpEd!}3BP5;`mTCL>)pm6{xMQhEE6 zDPwb!BghfmX)aE#1}%#ST2>v@IYFOX0$M{$>GN2>n-jD@S#u^@`iR(H;l@%}3tDODzXEHY42PvCjl-X1l9s(82< zqCsSe-EugDI3jqpBE(F7Q7!v@Dp~>Z3GX#MUj^Vps$@pt4-WS*dH2N?u>`eOR*!#M ztmH&S+Rm)GK@C(831-ut3a3k!`hK@BpsW1Z=;%PVpb5^S{im`>L5dx_RNWL^|BKM9 zslbJCAUlfQ zL3N1T?MM;qkxdxdrESaOz4J3!>d~W~b_HHtX9IriSXmJHWlJH2@$XZbq*`oDG=Baf zTDgY51AEw5P4roOe+SpW3A1-tPmu7S545s~c}k;6*-zV;5p<4iT&)Y6`rCY2>8xcX z!(StW4(H8i00qn)cS+HMWGEz5a^Qdb!Oz<^)iB8<3jp@Yo)o=MRRbb|+LnSYo9 zsL%?w1@*@9Rjwtj4snC6=Jf}v`f8Uyu9M0G)$F1A0!MD&2qnng;mXL@!|4~!Fu(9x z>++p?Sss*aB-2Eh()+q^IM$b}cf2qvr zYw#b|oT?jhg7rzc&zfJ4B4%%cwO7NLNvRdoa>x0!pRhLPFyD4+_yykqs_4v&+ojhY z)|8{kH`A4HwQ#y%bv8{jmN&FPWlDpSX5V>%%(asm9)jqHFbgZw4P z`u03zO;?EWz~wWI`N&X9n1zOgcGv)T*NYj&t=3!U4im0Z9L4LaL>+^tje2-|C|%TJh$%a zdw6Nvq|o&G$Bvy_PxpgXS#X+lHcTr2UO<+YSC5;I!F=r~t3+3lqM8+rBcG1svGsdmb)C=(o9HWs=+f3oySgR0%fJ1E=Ck z$=K(#9UE56mKi=fRb87SFf`42190J~jj-V4k4u(c0U4Q>#3AS28mY;gT^`T@zHj7~ z-iKrOjJ>zYfC0~;)I?NW9BF=7fs17P_E7~C2%4t0Wk(bO0CNkGLoC~P_B+42k+1jf zcne(;+(*;0i%s5?#>w6zPeutcw&8X7jbnGm0Nl)|3s#TayWO)EeDRlXpPcZ{MXmR~1s-QwN>N-S!2tT={^f=vGTO zZT6c`0QL7pqFsXUX6!}g>LdFy2^SqU$Hjq~S_NwAhsB!8yMpFYdp}nPy2Id?#!r#t zz1T)DL2t$E0E=;1O!?q)B>mwSUKTg|0qpjttq#qgg1?ag*msqun9FAsDh?FRUK9+Uv>;z!Q7| z5CvVgIB8RjQ)6@L%&JynaKjlFgdx?+l|u%7FKc=Hw_nf(!;G~HeH-)Am4=ocFBxBY zxh*Nul1O>Bw{>89VTBo6#h1bMqTb#=ZCfb+Suk*PsNTg%zupZO^K?cX$AJ-@&C?fwy6D z>H7OM5lGHUnBjA=iqsZx7aVXsfL%3^Lk^DwpdcQcy!7=%euVzhQsLMIs`{0$XdYJ!AWziPcIJ!`>Rg*Orh7_laoNY z<3keCYiZlE>!b4nc{mlI#*Up`6L+OR8o!Z{q3&rYZe7vTOK(gz(H|-A;+N6$`-SJJ z1~-i5O5J19e@|o&cu!qV=%fhV!1ItT#{H9zje(<3zT?mpzIC4#8I|!h0v~RT#+!>EPn{Nmh z10|LnKH&;uW;F|<`=U=s$sq?61!Sj2AOWSJYDH>Wd0<=Yv$!DqiVpMCw%Z{w3v=N_ zak^s$t$VK33z3sN4kL6Sllu1GE%(1a|D;V66*8^Z+`R|TZMks^Y!FM6ON`M!P0uZ_ zsCGtfZ0UV%ZZB;eHdZ+1Hb3W#)w{zKZQ;f){Iy~N`(gEmT*~Z^78DwJ4CA^~AzK zEg#Iaq%~`{T0I;VoBKQ5NIY0&P))U^g#eO@hx<;?(T(ew=B0TW{KviCUscH5=Y;I-Zm?x zM6=PM4DI4*pQ~B3)3|~%9%(n1LNY&Jpu8z+!~TrPr|m(P4M~7B0NBMhko}iwpCy&Q zB6IWBSvWG#@^tdt?gXTEo^dh`E`6?y@X0#H0jOzy*|heU@m@;ilcP#~GFrFncSA5? zfc^EUdz*)=mU8o&DpzvNml@CgUI7UzK+8r~^$hhAysrSfvU}lQYzo?f`k$t}4_F89 zwl5}8#v~?AD$x&O1UdfasN1nln{DKZTS+MikE(^@(Yeu>(ohG*{S3i|x8O#F@U+Nx zxuXXv4otrZ#%lcpRgrn$d}e__vz8`PR~5Y-tj)s2ni)bmpw2Rugy*eI19OE%j)WE5 zWNK0${d>vekv>9>tEyU1R|59SSHX%eT)x5dw8mK!E!hoo)y zX3$0d&m6`8y7ArY=9Fs%F?D_c(Lx>$t_y~CM{RwLMYg@x&dF7M212^AVW!$pLG%SH zpCCL-QPpHjte*?cR|2Xq^;s@?s0$ zgK}0!XXK^~b*}gjP*y_f?8+zAELb>R7i`bW^m_R+73E0=x_9GFvOXF~5f)K{)}=MM z++9=d`eWE_-poK|?gTe))`)_f@C?8oj}hC>P?0Ox^23-gxTmwIYLlR*->$;S9YEg! z4#Pb;)NLYbeF8u)Df3KL)5%JA$KGS5^n+j|pjcKhxm1@0BZ^S)D_MX(=AiU3<5}9P zklwY8Tt{i9AN-Y1R-amL zWDKx(`P_V~Q91mT?R|mzdCtWoO-_YL>emT-iDFC9jSaF>9dcVU9%Nnx55}da93Np- zA&aZp!lov|&(bfqHotNhdMcP_Kk966-#T$u;o;zhEL+?>nWATz%7*vYMQO&6qI0HK zL2cA~k%1G)@R{e0a7Q{JV|eZ&M0=fmAsjewyqgGd5B#A5m~} zL~j+Yi2b~6t@a2N@ZzmX3jFD_>9Ls(8O3f%HO!uK38a`6oTUStC9~ zlTNT@sZ4!k%lHFj13BfIl&c^Vio)`pr-q*Ed${(7F)0^2^;T8mL(sYxSk+p< zs$PNUtI(lb-cKPl&KCA-QgQib^HlUXTZd)13)FRHu*i>=mYZ&=_8Yg0T$dhb*6u_T zRn5utNok@?79wZVO=WMiT*28j_GQh|^@?g}kbDWqd=}1lL};YKpJ6d4Xx#%Q%^6XL zi?G}5yA_ktqz^-3SoQ;`udI&+8CUdq*f=PDpiWk554LuWcj#OnXzfc{TYIaWFv%<% zRdJE=tJJA>U6;9J9;??%weeG3m4vx>>^TmD8@F!KuxB&GBMN@ht~LC2@`LY(@F^Gm zeX6fk7C~FzO#PE#dz)O=>cVmATKnMW7hfH0=!#6w8oaUQ)84;J<&fL${=wCg zuZ%vr5P>){QZ`*>us>c7_0I&xDRS{2)WEC!+nBoFBaqqCC3ja^xH6|Pv~zY1Y94Fq z!EAi`dD_b)geXOW>_u{LC{rFL2(_t8dI0y}FB`H;O=qd5Em8UApB7|??N-5L;t$zp zC5CJa)|$RRFY&+(qM-9T6m(iU4AsC^an-XS>~X<=lazbW_Lw|Zp&irArU%nFpv@$% zYi(3dA?zK{t3Z1G3CMu(&Ug!nvXN+`dTm2qnR0Y)vI!Q`UO|5RqLb|75cgr1 z#&vhYtEj>YUGwzn=Nz-oA`7G$foMEJAHUqm<-uxzmyJ>`w2$%bn|!D|5EXVd_;Ss= z!BDM@pMkzLz6++4=5wG%Om#CXYQ*ql`m?m>QztokJ1&0eLn(2~%d64#xpSd@Zk;oE z7XVKntCZbL%B`V}3D;H__LTM=603e>p0Yzmoet5;7WO=LqE(#eyX+nYOU!H3A?y+D z3u5?q;VDuOtt@X*pg7@UBro&utiavNnU~f05Z!T}heJrju<__ZR%>+Yw&WCekW)UX z>YM8NX)`i%e>BeU4p7D=Wv6;RC-2?42xv^@72GRE64sbdFy9tWAZvIbQj$K zQ0c!z&sqOh?32vL>3=?Nji(r692~06Zge-~)^uNG`rUo1PWX%lHbENFH2L$Ku25KV z{OTpb)55UaF};YUb(RaslX;u)7E)x|4w(~97KFFZok*^L z>kU^6Z>;F6EuEYm@_b62-2f|m$F)M!dcbc)pUxwSMcqTEMW1D7-eFDD?@Z7RvPj{b z&o!5bepQC0%&>VCy#S(G6;i)+2}{7dN%WbN{~p0gl00kD^_H}<%wK~D$iR?m&%AH( z2JCEI(b_2&JsY|s61W9Z8=rOg<`D5d?*d(Y_z>eRB0c(UKC3zUtHNenWX@0-Rj9%O z(7_Amolz6Va|<(I8t(TI;x!s#ZMU@95ze(sj*p-KXPe6PZc%%4|v%uH4{{?lf*Zi}?Hb z!qx8O+JmJX@89N$Hi3fEo5g|OdFRKlUNnJr&;;lb=G_!Yj9`IfRiuEVE-M{NcmO}H zZIAH5h9}4-vVKDApS^QzQKELR&ar|Ts#moD{Pft{fcc?T^=)|Xs! zu6X(jDc9VwNcrF|1ImZIgD&lv9#|#q0Z6au|J$t;ryh9nOj4&q(8}oF(J|bl2lDh# z{m`%aF0L=K5(P#VYrN}|z+`HVR#qBx?LgF!WoH~AhtZ9+8N<~>Ktbi&Ab?Zn1 z2yYwh!Ms8pyF^c_>g!ICVP-#n0WtXPih9x8H(J7xa@@%Xgj`{X@~iVvM(CmgZabT# z+}yH$abGaZxW#Py?TB|ir|?CXC3iI6RIBpJyPaYOU7<6ulD-Xj|5Ho%s!?#9HDgak zKVhz{yT-HO(B=H1ms)}bGIu=MxeM%_IJYHrOLz=zTyLvenQ`o^@<3ztLT?a~t-av^ zjO-s@fNwTOZMUCbDH8&^G_q_VXFK zt*XFN`1!Y)Z7sGRg5PyuCZH7Eu-Ja`Ch}(2O@Cyz3B-G!A_1!mIB8>HLsauvcMcan z4J*XptgzM%@`_N4c=Nf72Un#XNEz1fnlZ}?4Lo4i8Ee5 zc+hu(@5wPej5`EnM!jI^hB}7^;74;?z(Nk#{Goy_Acc6&o?GKo3+xIZ@M`U_|BlFu zV&{%{to@wx{NBTkM+;#mD&dP#L^(hNuS*&hSfqgMxC2LRJRhwQNP`@KYz_VH$KJmATJ_}#%v z2^L`21QU=z_GiYQPP{-=%x%nE$~fTUqHo-=7~#MLT8jZg+c>@&9x8a2tsQwX@YL<{ zypmyMcv>=D`u=h`;|A7fhXor7h&!b!)OgKh5uMa&L<|u&^uQUoj`liOpqmyJXa>Oj z4#28pPsS26pEm$8K;b@jA?r&TW9Iq}e{pGF{CxsNa#b?qPoN+=zR=95PlI7ju}Q-4G}r#(O- z2n7GMIvk;ca=oT~uf&k&%qVuPfc_2Gn&N(q)}9oM?$8)dJ2SHzv)^Y!OMoPmL%DcE zj>;R&Ge^rJ#r7AXfd-#m0P5A=YITAz3`dHMb(nT-L68;QJ&H;fy z?|(u)Ec|UA8vbO3hQl=v!-272+Y^iB%8lQ^lnP3t5IwHorPS%c0&3+qf`@Aj%rlmZ z0Q!`Pb^Dad4`uujT@KN<&Swv%Hxy=emGzr%>6dYGO62iWS0sQj-G~Zf4#Lhf-Doq+ zplv{2-ENr&odC^V(EdxiRu*PxemU=bb71FlhAdcH@T|KFT0hU0%>=921)HPTYIB@uS;GW@{OG3z34+?yQaTQt zQ8RDg^ZAkULwliyX`cL3kKx(6ROejIK_HS!X^v?gH zaLZV_ryWow{&b~?{Z#bRq8>%Q0>jnKR!JEhmf&`hKyc4Ht!a|rQ(IbFq5*R{R@wKw z3w2)<7{AmOkT(zKih^pT_#hBuRd4qCNjn4?nBEN&jwu$Bm~K(!41I|yUc4}VXI2xt z?-wCtnVM@GhWmmjRrCulLrA2h_cNo2^Wq7FEaCIX5w%yJgq*Swy-6uEbM z(HZ2GTF}i@j>ZeFaeb!%Y6J5q*D{ZiD%6cUCoY}Hap>fE_Op6?A?XNn#&&_yB4HQu zNOg#^Brw{eExh^92OyDVKZIM?V1iYlCnY~*YrXkzyMr05LRCk87D!RTV7e(&2% z0LvJvZw+lB{8Xi^AjAC03S_6SbJdkib0X*5J0S|cT_-K%AVQ8OwiLZs}R6TZqe%7+ob(dC6<6^;29H)< zME2g6hT81$@_BPGzhUAK|NQi7B%#U`iKj%8`GDXZGa$4~9F!Rh>@0Oz0e1`1=SKOB zBc33$JZZowM+Ake3W0-`3C27@JmOHC%m}n8hPpStA{OBOY}Zur~2QON*6?Y(-62p4;K|t+Jo5 z0`#fe!|KxIh<*n2o)5c6Q~G#(uBCDVv~oTz@pg^-(LW35N}R+Y$A_L)5`uwJuNw>X zZP#}LdW;etNb9vhZQG(RlNl|Q-QZ6Ho)cK40^!@`#S*ux5ljnZ%QHDHRz3!GkSdc6 z6{cJONK?%Z^n(>Sn|lI*V!Wit;vtJXI4GGM>6H&b@0nwyjQf_B{64vyqhD`gACi*8e@J1iOS3p)}>`J=<>C5`-vd;Ro z<>nnCgNsenUZxwDz}d5}!2O@QcilPHmwfSxrIyKVr-ZJB6Sy&Q8y^qwDE?AWr3F$x z0jAJ<{_e0%-8Ja6i?L>k&!Bp7DK&&3KEo{2^#j#HroVwxh8DHrtvP z-4_K&&EQY^H)LwV`-{dH)LIqsu^0l3DqV7a`mZ!J>IKfZs>kiyOD*;b+5OZ;B(0xZ zGQWDXTG=PUklND`Ux??r;^cJcE3?z$IIHz^BAI=5;;kTBZQctTy!RP0)cqPb7QYgt gFJ_Gav#C;g?wy}jLg0^#Uio5Qz~1W5zW(9=07;WR{r~^~ delta 13103 zcmaKTdtB0I`~RwyPiyM4r%j(UbFFQzSyEYfO6ag1Q$Fn9KGwOXyWr}*eplT6ev?)SxYGcZq^4&!b6NMUQo=cJ55z-txsn6+C zUO=UrZk9%gyD99R`;wJnF4+qU2Z(-+gz;?Z+T$F`PG}eWTP~*n64gjqwzRt@t4EAI zzN?!q9FyFBTe~9;#gG3h$w7Rfl8ajszz;WIejsge$l!MosDq=@=?>Xx{VKb`FouR2 z3-=P-6Rk3pC$T6BHJII}eGi(>e~}H@%e79`wt1~zszMnl4`dUmSiBs959sWJmOOv_ zIi^gOFCW;O+C^R^h+-eCC5bk|nVY@H7;Q>>Q4=L1z%5Rk-;w{P^Jles+^y(8!WdOj z7H2E&R4Ahk`A7D778*xAyt|5WMS2EuwZ=KiC_&X>lq3fesuq(^@;vF(R(WPsUsiVv zL2|ukYnfB@GM4aBUJzw%OrsSY&sDye<&$YVxeZ4TCbI%*vUEjPjgvI9Bf@vaKNQE3 zs)EG0?-L)^HWE4lX)^V)kS)Gg}zEvS~ z`rWNF*P%RL8b^?M{!uzv;CP}zSk z{oPA8v0tdYvU~hnVMvH zRNI$|+l$A(0527PkQ{v|KqclY#*dHT3aOg9#Cix9McwJep~Qoz>a5$vFNL~?`L>_d zL*>{`)9fxJN8&GdgB*dj#G}$DJ)dXnSmLY9ZZ_QV@r^|X!)c7&hU4k|Ychmgg!awc z5H(71L!wRNAB4}LW3ghvm|KfxO(!I?y{7-HqVF)S55!nE;9g!<5K8X7Fn4(IHjMf7 z+B(@0P+v1GNT%1xA^wVcaOY3~h_>prXn)Y$c=9YJ@J0Beg1{?S10_5`whzSoJ?cL{ zDWa@_FY8aYz6w%KJT3=ezwFm~u(mng^UmsIkR6hR>^SeE^4@m-lX|GKTzWS9!Sr^8 zQ+sCsT~vBMaFUY}Os=!NG@l{)_4*0h0fJw3n1^7uFXf%?Soq|kXswZ1g{SmY@ z)Bc~bUD``)Q8D?NdJ^}W8aXtSP^bUe`Orexv!;%FHSNZwcw_d#)#%(vST*5L+x!RC4>!=v=wJ?7Qo~ zG76TVFX;CTJ)tKz(6B!!s&z%0#}6ZF^&to6GQ6IYhJ{BC7<}P@&pk0ynz@tXlFTPp z9bx;h!zd}aE#{DSEe=kQ{VV)&FwUMTnbeIDPOs^!kA(fHY42aBTmYyj{8Ha56p$#@ zVT^>$vr`pPR>7sp!E*_BF8NEr2T~jew7c9i$(xLT)wZTZv+aii(dMk)V$SLvPe{kp z*iZ<$yQWN$5<7ai?ns@Ci^UW`?!S=^3QoOKCm)%{d@HvbTfmZqW13u!C43V-lgA~E zNA^CewZCX3}-?QDy$YtFSAGcYx-L3>^sgwuH@%6F)eoTL^yU)gwT$UWusFLu3vcbq0c=x zy2!I*6APepvRyqS(lR`YBH^I}wGP!%7A2jEPO6~%doFDSs)Gft^$^i_jqyeJ;pmA~ z($;rIpKWpK{D(NQNVzp>*(r2$OsQM6^P`B`W+?wz*DQrUa<9KlLvU8PmbsSZDwqnnr4{0)^MxCwAS6VSB8&_p;ve z*=cYB)@$(W@#I!%l(qy1P$59@Cc7DQ5OEkNx(X~gkD9W+f^rBnm+9P*bR~m;LYGTf z7{aO?{^)UaV7c+qMVE?^qss_o<;d~3Cm%F;!{g4PGsK3TG0#{Kb&x=Tyj#lOt)XT` zq^|-*=1b0DG43?QP=mGrafKO(mGyc|$sD3>cpv=giiHy{Zzpdw?g7w?TYz4%$00@$ zJ|r51!!J4)d}(#=xCpUywsZn=CWbAxqQa5i~`R^VBsDm2|0czKb zV6v-O!au1=@7Gg)vTz%2qhZJe5CnDQIFAO-aJ~P#txlaS-RToIX}MjM z554+MzvH>~^4u%3EbUak-t$q%e`epI%b?RV1S*NxGapSV-)mX%1LTps5INzY-a%f+ z?;ZTiG$tsUW%ZCrK)smEp{%U3l7%}6(fJDPj{cJg1UOH`l(IUII|#3!={{qzc`Oy2 zU!Aw&&x}nvZ*fmYio^EwOHTCn3)XGt{YvuEe*BS@T#-b)(_A)p5j97SOCwb2qeY~J zS9goLt1@NQ-K@wdAsIi|fwGdz2Y&+B3H}r_<2uH9wsx+Pv=)lSW*igLbUKgA5w4>{ z0IG%Wu%Rz^68l1%5|=p26GM-LITl9x;XEU4 zC~^j9f~Vb8i2xwda@Tb}jP)+wOrHnq>4&3#-r^h5$Si0O{jGk*;2qy*r)i@XzKUgb zc4W{%vO8SB7CYeDfX4)?1Qcevbay-J14>GIn|)(1SUMF_o*`eHP1Qr zU@VL&9MeYF%PEsYkc+^x0fOf^rV)J?L3{*0uiy6?zn+*HWqCRJ3gYZ1tBq2t!)&89 zHElD8BDyrE6`GSX^`0;8U#Y-Gdz=?hB$py#8u}c`(S8ELz&6?z)VhiOP!T& z{(OZqGoR~MCi3@Rg8osj!5IJdUcz+MwA{-O##XcIX6Rhf1uh~P#t8l1o8yYGQZ67S z_&Cbu&`b$4M660-o`EaaBk&*3)e*s}sWAEIKCRteoJ-0kPqm z=#(Kj{--lWm)AK~Vp?s}ybtCdAV)Z+EU{a0@0dR3;}^3ts+~cW%jz%B)Al0QF4E7d zq?rH?)*=-No|d-s>3F2UI#UiUg-3D5EPvsDV&vaVC#HF4=d6qoZM3_nd7=BKOsnq# zjXB8NO#A?k7f%kP%Cdipgwqf>@Vx4z1YELzQ>lH-FSjMhbxF%>`SQ$1Ht_`_$H zMJL2Oz1=PHTh!1ty88oLzPlL*`hmUF8@ny?a)ZXsyDx=f| zl+IF6I@c-tk(9}A4by`9Z~sky9P0mpkU_JF{k}C7h+6;Ffc6!T=DLEx5>Et4aX;9P zA&KI#whs{XsJf9&icrQFcR`QRHB7weXwZ6?3=PJS4X4LYQ9A)!19B91!oqZC)(`td z?+n#??6J_bj|pjyAv>j-lK-)!0zHEwiqnEXiN+F(MY@vs$^&^UDu`ZH4!#wGD1ahfXbNC&wuE}Rb z{JmfFcRBjxc~C~bcBPJ`PxmU9ewL?bFsF>O{Y5QM9^M>1nejPbq1}mhM(sU0@5Qxs z{3q>*clU~WNkJt72d2RpbPofN_h&!?h*;`|x2{oK%vnGB!k!V5Aj>nq z%!%};B{s3af4|H_*>zn=C~yR-M5&hBSqRcQfZIkmfg-D)mtwKjsYlEFJs%VCr zA$nf*SpZlxy&el#G?hF&$D#+9I$s0A)b=$taIs9J%%xvGSgZGVokmg2Gzw)Ct^_}2 zfX6y$?RTqOk+Esr>RgK!@s2r+%QLK;wJkSpX->8ER>krMi+g}Z>Zq51&sc4oV|h)& z#%ubh3gZR+RF?f*Z!fa2WYz4ubQue?buMXM&lx8(%M;!!6Gi8Os*MFF7|X21c4fr) zh2pBHiR-Hx0nyz<%(LB79j5hI{qVw0$?czBbP|w^`K72_bG>I2*N*y` z@)rDb%QFIP^kY7v(L9M78{Wo=#oPQG(oOu%uAZOzc!De^WV@ECe1`&+3ic`#h>8 zJ6fK1bJO>bod`{ajQ&}}E&dh8ve`|ol#TE!9NK&(x}y3c)$|{k&yLHAwXrKt=j_dt zXzAcy*{-!`+?vzLhqW1D7>+ETu?J46K%X;Ec9J(o2aAo%4U{=&Nfd7`Wr{9j!y%6j zal)dJni!#-bIse6)%b%i24<3u3tNB!!>zANygj0t9kp+Cvnhg!=%meTu?ocuJi`$) zYC~9>9FX%A$yXx#y8zbtIZ+glS`6gbC@cW|eikvlkNSBMonpvAo^Z@YRl0*dHGB)A z17PH-a|6qByPk-zm94&D8i~8ezO&E{c5A$!>r1D}=@3VmR0SDwQ1FMF%=fRDds2c{ zs2Sz?mFBVfwD#h8d&fs^FS_&cp~fySC^{U9_iwbGI;Y=Ch|N*pcFy&-=reT zacqwOeIq&~R6DWUOg4Fcp`&&RkFd3eiM8kul~KvC|Bn4Ub8T^Bx5}+`te5D^%W2K| z7`gKvjLZdGo@Z!$gAJ-OOr&i|sxm654-={=ftQiz9(&PspR=D-d3I5R@Yi5E>U^VeVj`Jx)@iQ$2>wPK~cr#2DsG&&#cqj zne7$K3`@Cm$io1=26F@9jg!xUHJcPUSJ63T73lMHRDg+i;=f5XC_G1K=$z<`!%=w| z!y^5RX^WK(&AQbGLqMErFRzGU;30^ zPn!5E7*M4-DQN*2Ws~;hy^dyGKT^1uJuEcvMs2fGKEjfts>7U#5$i%tpHovEswi<*RYTX(tMq|DHEzRUntcxgb0VNvD&L4dbG}$y2+@QN=a-4U4Ewzc# z9^r2zVA(nHgmD1`Ot8_#H`lm716{^j)ga}C^}l-DVpz-^Y-cX6%X)CTCQYD7XYg!JHVTaBO3mktxFps>(0;Rd&bnL+nLoK|Fm=jz_~mq8y;>;)M@4>K5+bopCpHnL#y%b z*$v-qu=`OmEh<5X*dD;d(#&N>%2JUZb|=V^*=>`b-i%@MR@_VIoUL#Cf_Koc5l#;C z6l}+fe$S%+Wn9LzSLKoncf!b06ccMWV)n{%5wEP{1;;SjZO^#U%?oCyI0g)gePk3R zp1H!0x&*6oC)`un7+yFQovyb=GrP@QAE6VW6uFY zG13bFcjXN(9h;PDc(veH`T!$1*lYyvM~vX;Tvf`9w|BDX*|!zI9!hnf^eL-MBTF#f zkQ)C91|OIEubl#&YxuecBvH1n#i_cjJoGMYm~TnntpY=X8+O;?#6z~*6pw6!4Alk2 zvh>2P1Bfy+IS8-BZ0M~px=7o_145r$L?QccNrou0Kwx4QO&UHUXDzBSK8Qm!Cg@{$ z`-^ACFY}V!Vj!ypafvGG*EOeqj`khVvv;@}mV=r|OYaM2k3ITnGJYhOE$r=@%%YC3 zt)_g1kT)M|(^w@(heC6tETUuOxNTJ!PQweaEn4O2)Oj)2eYouvaJNtMwbJ8HMit`) zny-o`t8*kArg3*uBgm@4NL`4eVfE%k_`4g*uIQ^&7`EC?7m=;3<)^C#j#Y>81iQ(z zog5tYx1NkLVfQy4$j1@68HWsWFk8*VZjWip+$FUBV#E8~rO_}GeFAH?i}l@$Z${8P zq&!UXH_uWP-EIKdYP{TO7t|8U<`??Wmz9DGqy)nh3@#Zau6vh71YAQbxcLdY4{)u( zS5H5^qW4ECpZegfHz{JGLk@pLbD|i{Qj}$pz|rW3ili)6C{%uXRlIj`NvX@Tnc1x>zph7gY?F{FjyiT6EiYsXfR=kJSndj!nMT zq~4tkj4Cx=z*Z|G1W`MUra4vz?iq|sBEUu6rO`Xbg68jcGHxlZPS(-EvYpw1$m&OC z6ll^UKY2y+Buxe;={1VsW26%Yv}$`ZCcRqa z>eHK?oJEEyd$(n$x4>JC`ytI=2LlafMd$U2h0$*oo>FHaN!lHvBMlI=16~?OG0}e| zX+PN^LohjEc*%=4-Bs-bLprksETPQ6(z68g3w>#uLGD;oa3qIrqI`iKAm}(Cffds= z6oJ3M$E0^^Nw#roSPBnBs7p?lC=0aFHEQR*WO7qrd&G-+ff6EHynN`xP zKg~|b4xx?E+H;LRzh`=oC}YgL0WJUP!RU5{|508@(Y9kgN7GG`j{7d1P*YdJBj`y( zSEMh0N*P$8ZwwaGM9b}mDPC}Ys^@bWRAAlwcuhCd<$fe%+huMfoa0WjAdB6_U{m&j z%_EnX^jJX)E-)~%#uYH+nd&gpkJJaY?@@o>bBPjIj?85|b3#pLKqpO>yfEF<@2Scw zm;apPT|7c}8ATdu*P!Of$kUNUAv(uU#)X*pL=qoOw-10Hd>;d$3?q~L!MU3Yx+aZ zf6w+vdeyR|l*8n!w*NC7E2J2_=S?@Iu&$Ty=|kq9j(aj7Z4U_?6bVLXEBqiyMUVK^ zdNAOw^ta-g?jaNIfCG*UO;-^cw?w=ykgxb{@a%hVM*miV@iM~y-)>eGUeJYj{M2<% z_q*nYA+lsl-|FTTWx~zIKxan<5t_^S!V;OITxOuimCscdZD_Sp=Frhyf(Kq4JB6-j zW;nc#q8f1CRc3ZVMjfGP%Ag0AWWe^iy-%#-VY(l~l2~}4z7b3)dUf!ZUh$v?4-SrY z;2*#fUQ!;VS4}Z^{53Mw{I;{Gtcc!WU37Np%A3~{X}h(AKAxr8{D1+y4;VtYv%EO)@i5HC7h!E4r);x zuJTnzKaFA|DkJSi=HpjBzM`q_*uBXoi+|lSi`-z-;ScACh=6c}bFo&uSTr~SzI zFl{86q1SU}Z=!p@maiB)-aFE#dz{Lj9*ZOgz%)e7;IQWQ{qy|QuG%|;Ngm@;E`AIE zfQPkTS^0yEO|9O413*3i07E6}%3x({?7W@YFbERc|DZxvBfFiPUr!?31Z`vTEu{9* zS&t3#(`J;VnRz6_C!^xPw|89x<_{bxh;Z83jD4+~ia2f4jk zT%Xk0D(+~TOBEL|JRT(v9 zx2`Q?Q;65!;bl_g?NK7<$PFaF=QHvYNxI;6Fz;beqE2nT#c!bf%(xVkYaag3>AN~=%b?(k-eomau}lb#hi||Gohjp`w+Gf zOm{b5r)~;eN&(N3KiU>or323b3PO_&(jmI_p?V(}4c+Rdnny#!X(1D*11`ep!FYkw?le{I6Y|v*ukL@CpT&a!vN; zT^+%NufgzNyCdGbtFuPsJh|<8n9=rXS;jJD3Rj67(ks2`l!9&>#&{0)bPDm?kv*N~ z;gO}qhApf>ESO=^Jo=Mt7o*NnUh;h=To=JMK=M*A`MmnbuyC(}%+c8*Yd% z8(%j5?ZI`FbhOFpr~QH22L6192Mt+=nsD71kOWo>SW?&FE?R2CRz~;*31Q7t_?);w zOXixPUD05n?TC8~$cD~1v$>x*<^}VBZx}-UWML(Mr^#O=>40DT65V?ZjEHvC>P?mo zfY@>%#Nso2To#bdqGUjr!5p!`@xmv5MI%S|W|ZAB>;8i9!OB?ThRPPG9DP>5V*GEi zYYH7?_?dqKVN5g&V;3OlQDCEJO&>w{@@YC)q2k3) zxljJ8|9Jd(+NH9C0?9SOSml?@!Lv^?G}CLM6dVJb1yIr>L6SmP3} zhm!~?Q&`v0<{r*1eb^(>pMz~tg5-*rO$^od#1um64MW&Grw76;0C0McCfyKa3*z(x zupf>IW)!{5epO*CTTqk=xW^~G-ex1%Tr!WytbCWVNFtCj(iN^ZApT6QGmBgn?hc`o*J~zL#CdE(y(WU^3@D8PgTa0Ccn$-CdM*bM$WoH7(68J@ z9LcLFi2m_tCNj@L<&=z!^<>FhW;~(g31)yV2K3Zjy;AMY;=IawJ-KsiWZ|E}lTx)u zKb>aUK4*B@Tc*e~`7zK;L*|?5uv`5~=-_KEc(fMeiOu}vMEKwZ9ML-gEdfFOO!A@) zR3G_4>WAL`;)=fbKV!_Jsl|lmnH{3IqAG2B-CY`38d!#^LMws7 z-l$4K*2{W08QSn5a&xeXi54x__Rf0DZ@ZWc1!UU=EDA9akVTZA?guc+U zjh>PAG|cC!!7^GC$OlehIWZ-Z1dITzR+!tM`^hdr#aN_a%WDbTf!94ON-W~YH#0*D zMd@Gu^10%^Bfi`Oga*Iwyy>(^32$N$gi)lxKi#fwp3AZYz%ui!;LmLk+@URB<@| zjt`e&tdgL{?dN@{UIeN=kh~FH8C!g{IVqQW>Rc^IoXHR=c_X?~So;QZ>GW`B%t|}g zKSrMpz~1ySB};$Z_A=JsX!g*kmUk)d=7l>4fhj00mxGX5p0(fQ@`o9l1{cUIEp4*0 z32H^>>rXs=0v6#cS=1C&Y7NAuE$#0t+HX}uC^$RMhtM0f5W3kAo&1`^3R|B|U)VWN}<6z)tI1Mm0W z1F6?wVw)L<%Ywv@(q#7fjMu7B?4sR(0me`SFpL`H%ygh*cUh(yB0hEey$VYHTx|6W zU?AWD$%uR8yvuj>|BwvvT{@nwkG%!j-x+=W(Ch85+oeuQ+zWP}@;d*9kgX=G@h&G8 z1`EB{JM7>1MYh`>p%YLP^Q3j5fA6=mmzqxOrI_7G(d{F~chx>({4S^7O3lc#$F>6U3mOuFhy%*IhyNER6lNyZxbVt^^D zfHgBOPa9uW?hwS`CrdATXr_8_nG*aptO2hlYROr($(iK6nPFs2&KRUC z|3p>-e0IeIMt65s71wJmxN*m5K^SAOueaymQ0%lN@u zYBC%$_9DCLV5N`@4gKd~grE}4*tLq`U~7%tysB@sy#{umihg_Yadre9)p37F z;H}(F`6yry6L+-U&1|(|4L;_={}m)>bN{O#gFP?-)y7&~dyuW)&GN??o0jY_uXHsO z-(?O;nm8S%&y1~AE){0<-QO3W%=xvWsbfDF)!zc+CP5m#U|FV;w5Y`J0SgrhX{(A* zcQlJ%{?8s~3`fS!+zZwzEGAaHp8D_`hsCN$v!Ff)1hvGPS>UaT$=(Z?=}5OVsPnr1 zXXzh;WxYttvYwq}D&w^GWM)=F2)QBfYS}3>BmWFA@|hqvb+;NN2ZQo*pj0P@Gtdsw zOpWZ=%-m2Mh5KH<^eMh#Zj39mtgpndi|zvDpxU->PC0n2*av=j;@_%apx%@2qXhea zqQ-^AIHqHOv&;nMGj)$|PZLA_A0g{G%W2hZ%t!Ik*;Z94V9$km-@FJ?mBNh0{AczK z@YoH-J*}Z4O*j}#wptII-dd%>a!JNgjrO{}+D;uR0_F`nf9cV^@&zx~(`kRc;X5@})@0`jwZBZG5|A_J4 zWuA;sH*%e!YSF|fLu{F&sQS@Ps#VwYNzVQY5S!_sGL~8cK*dFXgm<=sF}wRYM8>XL U{{(*)^Tz(q13s(Uee}Ek14i~or~m)} diff --git a/docs/build/html/classmlx_1_1core_1_1fast_1_1_affine_quantize-members.html b/docs/build/html/classmlx_1_1core_1_1fast_1_1_affine_quantize-members.html index 11e1dd75..adeb73e4 100644 --- a/docs/build/html/classmlx_1_1core_1_1fast_1_1_affine_quantize-members.html +++ b/docs/build/html/classmlx_1_1core_1_1fast_1_1_affine_quantize-members.html @@ -98,7 +98,7 @@ $(function(){ initResizable(false); }); Custom(Stream stream, std::function< std::vector< array >(std::vector< array >)> fallback)mlx::core::fast::Custominlineexplicit DEFINE_PRINT(AffineQuantize)mlx::core::fast::AffineQuantize device()mlx::core::Primitiveinline - eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) overridemlx::core::fast::AffineQuantizeinlinevirtual + eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) overridemlx::core::fast::AffineQuantizevirtual eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) overridemlx::core::fast::AffineQuantizevirtual is_equivalent(const Primitive &other) constmlx::core::Primitiveinlinevirtual jvp(const std::vector< array > &primals, const std::vector< array > &tangents, const std::vector< int > &argnums) overridemlx::core::fast::Customvirtual diff --git a/docs/build/html/classmlx_1_1core_1_1fast_1_1_affine_quantize.html b/docs/build/html/classmlx_1_1core_1_1fast_1_1_affine_quantize.html index 940fe29c..ca6128e8 100644 --- a/docs/build/html/classmlx_1_1core_1_1fast_1_1_affine_quantize.html +++ b/docs/build/html/classmlx_1_1core_1_1fast_1_1_affine_quantize.html @@ -244,7 +244,7 @@ Public Member Functions -inlineoverridevirtual +overridevirtual
diff --git a/docs/build/html/compiled_8h.html b/docs/build/html/compiled_8h.html index 0f20b792..5727d969 100644 --- a/docs/build/html/compiled_8h.html +++ b/docs/build/html/compiled_8h.html @@ -132,7 +132,7 @@ Functions   bool mlx::core::compiled_check_contiguity (const std::vector< array > &inputs, const std::vector< int > &shape)   -void mlx::core::compiled_allocate_outputs (const std::vector< array > &inputs, std::vector< array > &outputs, const std::vector< array > &inputs_, const std::unordered_set< uintptr_t > &constant_ids_, bool contiguous, bool move_buffers=false) +void mlx::core::compiled_allocate_outputs (const std::vector< array > &inputs, std::vector< array > &outputs, const std::vector< array > &inputs_, const std::unordered_set< uintptr_t > &constant_ids_, bool contiguous, bool move_buffers=false)  
diff --git a/docs/build/html/compiled_8h_source.html b/docs/build/html/compiled_8h_source.html index 020b90fd..ba238def 100644 --- a/docs/build/html/compiled_8h_source.html +++ b/docs/build/html/compiled_8h_source.html @@ -167,20 +167,21 @@ $(function(){ initResizable(false); });
64 std::vector<array>& outputs,
65 const std::vector<array>& inputs_,
66 const std::unordered_set<uintptr_t>& constant_ids_,
-
67 bool contiguous,
+
67 bool contiguous,
68 bool move_buffers = false);
69
70} // namespace mlx::core
Definition primitives.h:418
Definition primitives.h:528
-
Definition primitives.h:683
+
Definition primitives.h:702
Definition primitives.h:48
-
Definition primitives.h:2015
+
Definition primitives.h:2034
Definition array.h:20
size_t ndim() const
The number of dimensions of the array.
Definition array.h:94
T item()
Get the value from a scalar array.
Definition array.h:535
Dtype dtype() const
Get the arrays data type.
Definition array.h:127
+
array contiguous(const array &a, bool allow_col_major=false, StreamOrDevice s={})
Definition allocator.h:7
void print_complex_constant(std::ostream &os, const array &x)
Definition compiled.h:40
bool compiled_check_contiguity(const std::vector< array > &inputs, const std::vector< int > &shape)
diff --git a/docs/build/html/conv_8h.html b/docs/build/html/conv_8h.html index f673ac74..f35a8c3e 100644 --- a/docs/build/html/conv_8h.html +++ b/docs/build/html/conv_8h.html @@ -95,7 +95,7 @@ $(function(){ initResizable(false); }); #include "mlx/backend/metal/kernels/steel/utils.h"
#include "mlx/backend/metal/kernels/steel/conv/loader.h"
#include "mlx/backend/metal/kernels/steel/conv/params.h"
-#include "mlx/backend/metal/kernels/steel/gemm/mma.h"
+#include "mlx/backend/metal/kernels/steel/gemm/mma.h"

Go to the source code of this file.

diff --git a/docs/build/html/conv_8h_source.html b/docs/build/html/conv_8h_source.html index df66e331..17bfc4bc 100644 --- a/docs/build/html/conv_8h_source.html +++ b/docs/build/html/conv_8h_source.html @@ -100,16 +100,16 @@ $(function(){ initResizable(false); });
7
- +
11
12using namespace metal;
13using namespace mlx::steel;
- -
Definition bf16.h:265
-
Definition loader_channel_l.h:14
+ +
Definition bf16_math.h:226
+
Definition attn.h:19
diff --git a/docs/build/html/cpp/ops.html b/docs/build/html/cpp/ops.html index f8e1ac23..71ad8482 100644 --- a/docs/build/html/cpp/ops.html +++ b/docs/build/html/cpp/ops.html @@ -8,7 +8,7 @@ - Operations — MLX 0.20.0 documentation + Operations — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -1157,6 +1158,7 @@
  • roll()
  • real()
  • imag()
  • +
  • contiguous()
  • @@ -2966,6 +2968,11 @@ array imag(const array &a, StreamOrDevice s = {})#
    +
    +
    +array contiguous(const array &a, bool allow_col_major = false, StreamOrDevice s = {})#
    +
    + @@ -3322,6 +3329,7 @@
  • roll()
  • real()
  • imag()
  • +
  • contiguous()
  • diff --git a/docs/build/html/dev/custom_metal_kernels.html b/docs/build/html/dev/custom_metal_kernels.html index 41ee05ff..c342bdf5 100644 --- a/docs/build/html/dev/custom_metal_kernels.html +++ b/docs/build/html/dev/custom_metal_kernels.html @@ -8,7 +8,7 @@ - Custom Metal Kernels — MLX 0.20.0 documentation + Custom Metal Kernels — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -129,8 +129,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -443,7 +443,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -520,6 +519,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -549,6 +549,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/dev/extensions.html b/docs/build/html/dev/extensions.html index 61d2c14e..0268bea8 100644 --- a/docs/build/html/dev/extensions.html +++ b/docs/build/html/dev/extensions.html @@ -8,7 +8,7 @@ - Custom Extensions in MLX — MLX 0.20.0 documentation + Custom Extensions in MLX — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -1342,7 +1343,7 @@ below.

    // Prepare to encode kernel auto& compute_encoder = d.get_command_encoder(s.index); - compute_encoder->setComputePipelineState(kernel); + compute_encoder.set_compute_pipeline_state(kernel); // Kernel parameters are registered with buffer indices corresponding to // those in the kernel declaration at axpby.metal @@ -1357,14 +1358,14 @@ below.

    compute_encoder.set_output_array(out, 2); // Encode alpha and beta - compute_encoder->setBytes(&alpha_, sizeof(float), 3); - compute_encoder->setBytes(&beta_, sizeof(float), 4); + compute_encoder.set_bytes(alpha_, 3); + compute_encoder.set_bytes(beta_, 4); // Encode shape, strides and ndim - compute_encoder->setBytes(x.shape().data(), ndim * sizeof(int), 5); - compute_encoder->setBytes(x.strides().data(), ndim * sizeof(size_t), 6); - compute_encoder->setBytes(y.strides().data(), ndim * sizeof(size_t), 7); - compute_encoder->setBytes(&ndim, sizeof(int), 8); + compute_encoder.set_vector_bytes(x.shape(), 5); + compute_encoder.set_vector_bytes(x.strides(), 6); + compute_encoder.set_bytes(y.strides(), 7); + compute_encoder.set_bytes(ndim, 8); // We launch 1 thread for each input and make sure that the number of // threads in any given threadgroup is not higher than the max allowed @@ -1378,7 +1379,7 @@ below.

    // Launch the grid with the given number of threads divided among // the given threadgroups - compute_encoder.dispatchThreads(grid_dims, group_dims); + compute_encoder.dispatch_threads(grid_dims, group_dims); } diff --git a/docs/build/html/dev/metal_debugger.html b/docs/build/html/dev/metal_debugger.html index 31fe3dfb..d7ef311b 100644 --- a/docs/build/html/dev/metal_debugger.html +++ b/docs/build/html/dev/metal_debugger.html @@ -8,7 +8,7 @@ - Metal Debugger — MLX 0.20.0 documentation + Metal Debugger — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/scaled__dot__product__attention__params_8h.html b/docs/build/html/dir_5aea41cce495e77a0857a0aecf063e33.html similarity index 81% rename from docs/build/html/scaled__dot__product__attention__params_8h.html rename to docs/build/html/dir_5aea41cce495e77a0857a0aecf063e33.html index c2695c4c..2001241f 100644 --- a/docs/build/html/scaled__dot__product__attention__params_8h.html +++ b/docs/build/html/dir_5aea41cce495e77a0857a0aecf063e33.html @@ -5,7 +5,7 @@ -MLX: mlx/backend/metal/kernels/scaled_dot_product_attention_params.h File Reference +MLX: mlx/backend/metal/kernels/steel/attn/kernels Directory Reference @@ -83,24 +83,18 @@ $(function(){ initResizable(false); });
    - -
    scaled_dot_product_attention_params.h File Reference
    +
    kernels Directory Reference
    diff --git a/docs/build/html/dir_6768c99e6145fb9510ccdb40db8ede25.html b/docs/build/html/dir_6768c99e6145fb9510ccdb40db8ede25.html index 2c23d663..4bc85b3b 100644 --- a/docs/build/html/dir_6768c99e6145fb9510ccdb40db8ede25.html +++ b/docs/build/html/dir_6768c99e6145fb9510ccdb40db8ede25.html @@ -103,7 +103,7 @@ Files    loader.h   - mma.h + mma.h    params.h   diff --git a/docs/build/html/dir_70a37effa88bcbd6b791977fa1e64356.html b/docs/build/html/dir_70a37effa88bcbd6b791977fa1e64356.html index 85eb93c5..e88fa763 100644 --- a/docs/build/html/dir_70a37effa88bcbd6b791977fa1e64356.html +++ b/docs/build/html/dir_70a37effa88bcbd6b791977fa1e64356.html @@ -96,6 +96,12 @@ $(function(){ initResizable(false); }); Directories  fft   + jit +  + metal_3_0 +  + metal_3_1 reduction    steel @@ -107,8 +113,6 @@ Files    atomic.h   - bf16.h bf16_math.h    binary.h @@ -143,8 +147,6 @@ Files    reduce_utils.h   - scaled_dot_product_attention_params.h scan.h    scatter.h diff --git a/docs/build/html/dir_76215a6c54e2b67053e723fc2395583c.html b/docs/build/html/dir_76215a6c54e2b67053e723fc2395583c.html index a10d315e..374387cf 100644 --- a/docs/build/html/dir_76215a6c54e2b67053e723fc2395583c.html +++ b/docs/build/html/dir_76215a6c54e2b67053e723fc2395583c.html @@ -94,6 +94,8 @@ $(function(){ initResizable(false); }); + + diff --git a/docs/build/html/dir_83367edb60e23ad59b1a493d8c883287.html b/docs/build/html/dir_83367edb60e23ad59b1a493d8c883287.html new file mode 100644 index 00000000..7383c68c --- /dev/null +++ b/docs/build/html/dir_83367edb60e23ad59b1a493d8c883287.html @@ -0,0 +1,107 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/metal_3_1 Directory Reference + + + + + + + + + + + + + +
    +
    +

    Directories

     attn
     
     conv
     
     gemm
    + + + + + +
    +
    MLX +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + + +
    +
    +
    metal_3_1 Directory Reference
    +
    +
    + + + + +

    +Files

     bf16.h
     
    +
    + + +
    + + diff --git a/docs/build/html/dir_d36f9e79442ec4bd53287b83bdefe7e5.html b/docs/build/html/dir_d36f9e79442ec4bd53287b83bdefe7e5.html new file mode 100644 index 00000000..bd8458ea --- /dev/null +++ b/docs/build/html/dir_d36f9e79442ec4bd53287b83bdefe7e5.html @@ -0,0 +1,107 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/metal_3_0 Directory Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MLX +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    metal_3_0 Directory Reference
    +
    +
    + + + + +

    +Files

     bf16.h
     
    +
    + + +
    + + diff --git a/docs/build/html/dir_e1756c7634b0c14aead026895ad71c6d.html b/docs/build/html/dir_e1756c7634b0c14aead026895ad71c6d.html new file mode 100644 index 00000000..904ba2fa --- /dev/null +++ b/docs/build/html/dir_e1756c7634b0c14aead026895ad71c6d.html @@ -0,0 +1,120 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn Directory Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MLX +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    attn Directory Reference
    +
    +
    + + + + +

    +Directories

     kernels
     
    + + + + + + + + + + + +

    +Files

     attn.h
     
     loader.h
     
     mma.h
     
     params.h
     
     transforms.h
     
    +
    + + +
    + + diff --git a/docs/build/html/dir_fb5e52e7ad5a84a63db2993d12f7610c.html b/docs/build/html/dir_fb5e52e7ad5a84a63db2993d12f7610c.html new file mode 100644 index 00000000..000f91aa --- /dev/null +++ b/docs/build/html/dir_fb5e52e7ad5a84a63db2993d12f7610c.html @@ -0,0 +1,107 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/jit Directory Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MLX +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    jit Directory Reference
    +
    +
    + + + + +

    +Files

     bf16.h
     
    +
    + + +
    + + diff --git a/docs/build/html/doxygen_crawl.html b/docs/build/html/doxygen_crawl.html index 0236914c..a4d1775a 100644 --- a/docs/build/html/doxygen_crawl.html +++ b/docs/build/html/doxygen_crawl.html @@ -53,22 +53,25 @@ - + + + + @@ -77,7 +80,9 @@ - + + + @@ -127,7 +132,9 @@ - + + + @@ -184,22 +191,25 @@ - + + + + @@ -208,7 +218,9 @@ - + + + @@ -258,7 +270,9 @@ - + + + @@ -327,6 +341,8 @@ + + @@ -337,6 +353,8 @@ + + @@ -409,16 +427,18 @@ - - - - - - + + + + + + + + @@ -428,10 +448,8 @@ - - - - + + @@ -476,9 +494,13 @@ + + + + @@ -487,6 +509,8 @@ + + @@ -571,6 +595,8 @@ + + @@ -893,6 +919,7 @@ + @@ -951,6 +978,8 @@ + + @@ -958,6 +987,8 @@ + + @@ -990,6 +1021,8 @@ + + @@ -1006,9 +1039,13 @@ + + + + @@ -1081,6 +1118,7 @@ + @@ -1089,11 +1127,15 @@ + + + + @@ -1265,6 +1307,7 @@ + @@ -1298,6 +1341,7 @@ + @@ -1389,6 +1433,11 @@ + + + + + @@ -1404,8 +1453,10 @@ + + @@ -1419,357 +1470,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1818,62 +1518,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - + + - + + + - - + - + - + + - + - @@ -1928,7 +1990,6 @@ - @@ -2282,6 +2343,16 @@ + + + + + + + + + + @@ -3494,10 +3565,12 @@ + + @@ -3505,9 +3578,12 @@ + + + @@ -3569,7 +3645,6 @@ - @@ -3857,8 +3932,10 @@ - + + + @@ -3894,6 +3971,7 @@ + @@ -4095,6 +4173,7 @@ + @@ -4318,7 +4397,7 @@ - + @@ -4328,14 +4407,13 @@ + - - @@ -4344,6 +4422,7 @@ + @@ -4391,57 +4470,57 @@ - - + - + + - - - + + + - - - - + + + - + + - + - + - - + + - + @@ -4475,8 +4554,6 @@ - - @@ -4784,6 +4861,7 @@ + @@ -4854,7 +4932,6 @@ - @@ -4935,7 +5012,6 @@ - @@ -4981,6 +5057,7 @@ + @@ -4991,7 +5068,6 @@ - @@ -5010,6 +5086,7 @@ + @@ -5094,6 +5171,8 @@ + + @@ -5215,13 +5294,13 @@ + - @@ -5247,6 +5326,7 @@ + @@ -5324,13 +5404,16 @@ + + + + - @@ -5729,6 +5812,7 @@ + @@ -5943,7 +6027,6 @@ - @@ -6015,26 +6098,25 @@ - + - - - - + + + + - - - + + + - @@ -6045,7 +6127,7 @@ - + @@ -6054,7 +6136,9 @@ + + @@ -6068,6 +6152,10 @@ + + + + @@ -6198,6 +6286,8 @@ + + @@ -6209,6 +6299,8 @@ + + @@ -6367,6 +6459,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -6383,35 +6498,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -6421,6 +6511,8 @@ + + @@ -6446,6 +6538,7 @@ + @@ -6455,10 +6548,10 @@ + - + - @@ -6537,9 +6630,13 @@ + + + + @@ -6548,6 +6645,10 @@ + + + + @@ -6562,22 +6663,6 @@ - - - - - - - - - - - - - - - - @@ -6921,19 +7006,25 @@ - + + - + + + - + + + + @@ -6964,26 +7055,45 @@ - + + + + + + + + + + + + + + + + + + - + + + + + - - @@ -6994,23 +7104,41 @@ + - + - + + + + + + + + + + + + + + + + - + + + - + @@ -7022,13 +7150,14 @@ - - + + + @@ -7229,15 +7358,15 @@ + - - + - + @@ -7277,35 +7406,46 @@ + + + - + + + - + + + - + + - - + + + + + @@ -7633,6 +7773,7 @@ + @@ -7649,9 +7790,11 @@ + + diff --git a/docs/build/html/erf_8h_source.html b/docs/build/html/erf_8h_source.html index 720eda10..d1fa7b45 100644 --- a/docs/build/html/erf_8h_source.html +++ b/docs/build/html/erf_8h_source.html @@ -166,10 +166,10 @@ $(function(){ initResizable(false); });
    float erfinv(float a)
    Definition erf.h:42
    float erf(float a)
    Definition erf.h:11
    -
    METAL_FUNC bfloat16_t log(bfloat16_t x)
    Definition bf16_math.h:234
    -
    METAL_FUNC bfloat16_t fma(bfloat16_t x, bfloat16_t y, bfloat16_t z)
    Definition bf16_math.h:234
    -
    METAL_FUNC bfloat16_t abs(bfloat16_t x)
    Definition bf16_math.h:234
    -
    METAL_FUNC bfloat16_t exp(bfloat16_t x)
    Definition bf16_math.h:234
    +
    METAL_FUNC bfloat16_t log(bfloat16_t x)
    Definition bf16_math.h:232
    +
    METAL_FUNC bfloat16_t fma(bfloat16_t x, bfloat16_t y, bfloat16_t z)
    Definition bf16_math.h:232
    +
    METAL_FUNC bfloat16_t abs(bfloat16_t x)
    Definition bf16_math.h:232
    +
    METAL_FUNC bfloat16_t exp(bfloat16_t x)
    Definition bf16_math.h:232
    uint32_t u
    Definition bf16.h:17
    diff --git a/docs/build/html/examples/linear_regression.html b/docs/build/html/examples/linear_regression.html index f5f704fa..0cb7ddf6 100644 --- a/docs/build/html/examples/linear_regression.html +++ b/docs/build/html/examples/linear_regression.html @@ -8,7 +8,7 @@ - Linear Regression — MLX 0.20.0 documentation + Linear Regression — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/examples/llama-inference.html b/docs/build/html/examples/llama-inference.html index fe42132f..286a271a 100644 --- a/docs/build/html/examples/llama-inference.html +++ b/docs/build/html/examples/llama-inference.html @@ -8,7 +8,7 @@ - LLM inference — MLX 0.20.0 documentation + LLM inference — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/examples/mlp.html b/docs/build/html/examples/mlp.html index e30b0d5e..254db7d8 100644 --- a/docs/build/html/examples/mlp.html +++ b/docs/build/html/examples/mlp.html @@ -8,7 +8,7 @@ - Multi-Layer Perceptron — MLX 0.20.0 documentation + Multi-Layer Perceptron — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/fast_8h.html b/docs/build/html/fast_8h.html index 990ee371..f584102d 100644 --- a/docs/build/html/fast_8h.html +++ b/docs/build/html/fast_8h.html @@ -129,8 +129,6 @@ Functions   std::tuple< array, array, arraymlx::core::fast::affine_quantize (const array &w, int group_size=64, int bits=4, StreamOrDevice s={})   -array mlx::core::fast::affine_quantize (const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={}) -  array mlx::core::fast::affine_dequantize (const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={})   MetalKernelFunction mlx::core::fast::metal_kernel (const std::string &name, const std::vector< std::string > &input_names, const std::vector< std::string > &output_names, const std::string &source, const std::string &header="", bool ensure_row_contiguous=true, bool atomic_outputs=false) diff --git a/docs/build/html/fast_8h_source.html b/docs/build/html/fast_8h_source.html index 90326ce0..3a1a368a 100644 --- a/docs/build/html/fast_8h_source.html +++ b/docs/build/html/fast_8h_source.html @@ -140,7 +140,7 @@ $(function(){ initResizable(false); });
    47 int bits = 4,
    48 StreamOrDevice s = {});
    49
    - +
    51 const array& w,
    52 const array& scales,
    53 const array& biases,
    @@ -148,47 +148,39 @@ $(function(){ initResizable(false); });
    55 int bits = 4,
    56 StreamOrDevice s = {});
    57
    - -
    59 const array& w,
    -
    60 const array& scales,
    -
    61 const array& biases,
    -
    62 int group_size = 64,
    -
    63 int bits = 4,
    -
    64 StreamOrDevice s = {});
    -
    65
    -
    66typedef std::variant<int, bool, Dtype> TemplateArg;
    -
    67
    -
    68typedef std::function<std::vector<array>(
    -
    69 const std::vector<array>&,
    -
    70 const std::vector<std::vector<int>>&,
    -
    71 const std::vector<Dtype>&,
    -
    72 std::tuple<int, int, int>,
    -
    73 std::tuple<int, int, int>,
    -
    74 std::vector<std::pair<std::string, TemplateArg>>,
    -
    75 std::optional<float>,
    -
    76 bool,
    - - -
    79
    - -
    81 const std::string& name,
    -
    82 const std::vector<std::string>& input_names,
    -
    83 const std::vector<std::string>& output_names,
    -
    84 const std::string& source,
    -
    85 const std::string& header = "",
    -
    86 bool ensure_row_contiguous = true,
    -
    87 bool atomic_outputs = false);
    -
    88
    -
    89} // namespace mlx::core::fast
    +
    58typedef std::variant<int, bool, Dtype> TemplateArg;
    +
    59
    +
    60typedef std::function<std::vector<array>(
    +
    61 const std::vector<array>&,
    +
    62 const std::vector<std::vector<int>>&,
    +
    63 const std::vector<Dtype>&,
    +
    64 std::tuple<int, int, int>,
    +
    65 std::tuple<int, int, int>,
    +
    66 std::vector<std::pair<std::string, TemplateArg>>,
    +
    67 std::optional<float>,
    +
    68 bool,
    + + +
    71
    + +
    73 const std::string& name,
    +
    74 const std::vector<std::string>& input_names,
    +
    75 const std::vector<std::string>& output_names,
    +
    76 const std::string& source,
    +
    77 const std::string& header = "",
    +
    78 bool ensure_row_contiguous = true,
    +
    79 bool atomic_outputs = false);
    +
    80
    +
    81} // namespace mlx::core::fast
    Definition array.h:20
    Definition fast.h:9
    array layer_norm(const array &x, const std::optional< array > &weight, const std::optional< array > &bias, float eps, StreamOrDevice s={})
    -
    std::function< std::vector< array >(const std::vector< array > &, const std::vector< std::vector< int > > &, const std::vector< Dtype > &, std::tuple< int, int, int >, std::tuple< int, int, int >, std::vector< std::pair< std::string, TemplateArg > >, std::optional< float >, bool, StreamOrDevice)> MetalKernelFunction
    Definition fast.h:78
    +
    std::function< std::vector< array >(const std::vector< array > &, const std::vector< std::vector< int > > &, const std::vector< Dtype > &, std::tuple< int, int, int >, std::tuple< int, int, int >, std::vector< std::pair< std::string, TemplateArg > >, std::optional< float >, bool, StreamOrDevice)> MetalKernelFunction
    Definition fast.h:70
    array affine_dequantize(const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={})
    array scaled_dot_product_attention(const array &queries, const array &keys, const array &values, const float scale, const std::optional< array > &mask=std::nullopt, const std::optional< int > memory_efficient_threshold=std::nullopt, StreamOrDevice s={})
    Computes: O = softmax(Q @ K.T) @ V.
    array rope(const array &x, int dims, bool traditional, std::optional< float > base, float scale, int offset, const std::optional< array > &freqs=std::nullopt, StreamOrDevice s={})
    -
    std::variant< int, bool, Dtype > TemplateArg
    Definition fast.h:66
    +
    std::variant< int, bool, Dtype > TemplateArg
    Definition fast.h:58
    std::tuple< array, array, array > affine_quantize(const array &w, int group_size=64, int bits=4, StreamOrDevice s={})
    MetalKernelFunction metal_kernel(const std::string &name, const std::vector< std::string > &input_names, const std::vector< std::string > &output_names, const std::string &source, const std::string &header="", bool ensure_row_contiguous=true, bool atomic_outputs=false)
    array rms_norm(const array &x, const array &weight, float eps, StreamOrDevice s={})
    diff --git a/docs/build/html/fast__primitives_8h_source.html b/docs/build/html/fast__primitives_8h_source.html index 5780e0cd..68274176 100644 --- a/docs/build/html/fast__primitives_8h_source.html +++ b/docs/build/html/fast__primitives_8h_source.html @@ -365,87 +365,83 @@ $(function(){ initResizable(false); });
    228 dequantize_(dequantize) {}
    229
    -
    -
    230 void eval_cpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    -
    231 override {
    -
    232 throw std::runtime_error("NYI");
    -
    233 }
    -
    -
    234
    -
    235 void eval_gpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    -
    236 override;
    +
    230 void eval_cpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    +
    231 override;
    +
    232
    +
    233 void eval_gpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    +
    234 override;
    +
    235
    +
    237
    - -
    239
    -
    240 private:
    -
    241 std::function<std::vector<array>(std::vector<array>)> fallback_;
    -
    242 int group_size_;
    -
    243 int bits_;
    -
    244 bool dequantize_;
    -
    245};
    +
    238 private:
    +
    239 std::function<std::vector<array>(std::vector<array>)> fallback_;
    +
    240 int group_size_;
    +
    241 int bits_;
    +
    242 bool dequantize_;
    +
    243};
    -
    246
    -
    - -
    248 bool shape = false;
    -
    249 bool strides = false;
    -
    250 bool ndim = false;
    -
    251};
    +
    244
    +
    + +
    246 bool shape = false;
    +
    247 bool strides = false;
    +
    248 bool ndim = false;
    +
    249};
    -
    252
    -
    -
    253class CustomKernel : public Primitive {
    -
    254 public:
    -
    - - -
    257 std::string name,
    -
    258 std::string source,
    -
    259 std::tuple<int, int, int> grid,
    -
    260 std::tuple<int, int, int> threadgroup,
    -
    261 std::vector<CustomKernelShapeInfo> shape_infos,
    -
    262 bool ensure_row_contiguous,
    -
    263 std::optional<float> init_value)
    -
    264 : Primitive(stream),
    -
    265 source_(std::move(source)),
    -
    266 name_(std::move(name)),
    -
    267 grid_(grid),
    -
    268 threadgroup_(threadgroup),
    -
    269 shape_infos_(std::move(shape_infos)),
    -
    270 ensure_row_contiguous_(ensure_row_contiguous),
    -
    271 init_value_(init_value) {}
    +
    250
    +
    +
    251class CustomKernel : public Primitive {
    +
    252 public:
    +
    + + +
    255 std::string name,
    +
    256 std::string source,
    +
    257 std::tuple<int, int, int> grid,
    +
    258 std::tuple<int, int, int> threadgroup,
    +
    259 std::vector<CustomKernelShapeInfo> shape_infos,
    +
    260 bool ensure_row_contiguous,
    +
    261 std::optional<float> init_value)
    +
    262 : Primitive(stream),
    +
    263 source_(std::move(source)),
    +
    264 name_(std::move(name)),
    +
    265 grid_(grid),
    +
    266 threadgroup_(threadgroup),
    +
    267 shape_infos_(std::move(shape_infos)),
    +
    268 ensure_row_contiguous_(ensure_row_contiguous),
    +
    269 init_value_(init_value) {}
    -
    272
    -
    -
    273 void eval_cpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    -
    274 override {
    -
    275 throw std::runtime_error("Custom Metal kernels only run on GPU.");
    -
    276 }
    +
    270
    +
    +
    271 void eval_cpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    +
    272 override {
    +
    273 throw std::runtime_error("Custom Metal kernels only run on GPU.");
    +
    274 }
    -
    277
    -
    278 void eval_gpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    -
    279 override;
    +
    275
    +
    276 void eval_gpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    +
    277 override;
    +
    278
    +
    280
    - -
    282
    -
    283 private:
    -
    284 std::string source_;
    -
    285 std::string name_;
    -
    286 std::tuple<int, int, int> grid_;
    -
    287 std::tuple<int, int, int> threadgroup_;
    -
    288 std::vector<CustomKernelShapeInfo> shape_infos_;
    -
    289 bool ensure_row_contiguous_;
    -
    290 std::optional<float> init_value_;
    -
    291};
    +
    281 private:
    +
    282 std::string source_;
    +
    283 std::string name_;
    +
    284 std::tuple<int, int, int> grid_;
    +
    285 std::tuple<int, int, int> threadgroup_;
    +
    286 std::vector<CustomKernelShapeInfo> shape_infos_;
    +
    287 bool ensure_row_contiguous_;
    +
    288 std::optional<float> init_value_;
    +
    289};
    -
    292
    -
    293} // namespace mlx::core::fast
    +
    290
    +
    291} // namespace mlx::core::fast
    Definition primitives.h:48
    const Stream & stream()
    The stream the primitive will run on.
    Definition primitives.h:58
    virtual bool is_equivalent(const Primitive &other) const
    Equivalence check defaults to false unless overridden by the primitive.
    Definition primitives.h:107
    Definition array.h:20
    Definition fast_primitives.h:217
    -
    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...
    Definition fast_primitives.h:230
    +
    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...
    void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override
    AffineQuantize(Stream stream, std::function< std::vector< array >(std::vector< array >)> fallback, int group_size, int bits, bool dequantize)
    Definition fast_primitives.h:219
    @@ -454,11 +450,11 @@ $(function(){ initResizable(false); });
    virtual std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) override
    The vector-Jacobian product.
    virtual std::pair< std::vector< array >, std::vector< int > > vmap(const std::vector< array > &inputs, const std::vector< int > &axes) override
    The primitive must know how to vectorize itself across the given axes.
    virtual std::vector< array > jvp(const std::vector< array > &primals, const std::vector< array > &tangents, const std::vector< int > &argnums) override
    The Jacobian-vector product.
    -
    Definition fast_primitives.h:253
    +
    Definition fast_primitives.h:251
    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...
    Definition fast_primitives.h:273
    -
    CustomKernel(Stream stream, std::string name, std::string source, std::tuple< int, int, int > grid, std::tuple< int, int, int > threadgroup, std::vector< CustomKernelShapeInfo > shape_infos, bool ensure_row_contiguous, std::optional< float > init_value)
    Definition fast_primitives.h:255
    +
    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...
    Definition fast_primitives.h:271
    +
    CustomKernel(Stream stream, std::string name, std::string source, std::tuple< int, int, int > grid, std::tuple< int, int, int > threadgroup, std::vector< CustomKernelShapeInfo > shape_infos, bool ensure_row_contiguous, std::optional< float > init_value)
    Definition fast_primitives.h:253
    Definition fast_primitives.h:90
    DEFINE_PRINT(LayerNorm) bool is_equivalent(const Primitive &other) const override
    LayerNorm(Stream stream, std::function< std::vector< array >(std::vector< array >)> fallback, float eps)
    Definition fast_primitives.h:92
    @@ -499,10 +495,10 @@ $(function(){ initResizable(false); });
    Definition fast.h:9
    Definition stream.h:9
    -
    Definition fast_primitives.h:247
    -
    bool strides
    Definition fast_primitives.h:249
    -
    bool shape
    Definition fast_primitives.h:248
    -
    bool ndim
    Definition fast_primitives.h:250
    +
    Definition fast_primitives.h:245
    +
    bool strides
    Definition fast_primitives.h:247
    +
    bool shape
    Definition fast_primitives.h:246
    +
    bool ndim
    Definition fast_primitives.h:248
    diff --git a/docs/build/html/functions_c.html b/docs/build/html/functions_c.html index 72eac8b7..1396ec6b 100644 --- a/docs/build/html/functions_c.html +++ b/docs/build/html/functions_c.html @@ -88,6 +88,7 @@ $(function(){ initResizable(false); });

    - c -

    diff --git a/docs/build/html/functions_func_l.html b/docs/build/html/functions_func_l.html index b787da34..be7c06ba 100644 --- a/docs/build/html/functions_func_l.html +++ b/docs/build/html/functions_func_l.html @@ -101,16 +101,17 @@ $(function(){ initResizable(false); });
  • Load() : mlx::core::Load
  • load() : mlx::steel::BaseMMAFrag< T, 8, 8 >, mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >, ReadWriter< in_T, out_T, step, four_step_real >
  • load_padded() : ReadWriter< in_T, out_T, step, four_step_real >
  • -
  • load_safe() : GEMVKernel< T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN >, mlx::steel::BaseMMAFrag< T, 8, 8 >, mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >, mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >, QuantizedBlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits >
  • +
  • load_safe() : GEMVKernel< T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN >, mlx::steel::BaseMMAFrag< T, 8, 8 >, mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >, mlx::steel::BlockLoaderT< T, BROWS, BCOLS, kDstStrRow, kDstStrCol, reduction_dim, tgp_size, n_reads, TCOLS, TROWS >, mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >, QuantizedBlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits >
  • load_strided() : ReadWriter< in_T, out_T, step, four_step_real >
  • -
  • load_unsafe() : GEMVKernel< T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN >, mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >, mlx::steel::Conv2DInputBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderLargeFilter< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderSmallFilter< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoader< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >, QuantizedBlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits >
  • -
  • location() : looped_elem_to_loc< dim, offset_t >, looped_elem_to_loc< 0, offset_t >, looped_elem_to_loc< 1, offset_t >
  • +
  • load_unsafe() : GEMVKernel< T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN >, mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >, mlx::steel::BlockLoaderT< T, BROWS, BCOLS, kDstStrRow, kDstStrCol, reduction_dim, tgp_size, n_reads, TCOLS, TROWS >, mlx::steel::Conv2DInputBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderLargeFilter< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderSmallFilter< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoader< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >, QuantizedBlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits >
  • +
  • location() : LoopedElemToLoc< DIM, OffsetT, General >, LoopedElemToLoc< 1, OffsetT, false >, LoopedElemToLoc< 1, OffsetT, true >
  • Log() : mlx::core::Log
  • Log1p() : mlx::core::Log1p
  • LogAddExp() : mlx::core::LogAddExp
  • LogicalAnd() : mlx::core::LogicalAnd
  • LogicalNot() : mlx::core::LogicalNot
  • LogicalOr() : mlx::core::LogicalOr
  • +
  • LoopedElemToLoc() : LoopedElemToLoc< DIM, OffsetT, General >, LoopedElemToLoc< 1, OffsetT, false >, LoopedElemToLoc< 1, OffsetT, true >
  • lowest() : metal::_numeric_limits_impl< bfloat16_t >
  • diff --git a/docs/build/html/functions_func_n.html b/docs/build/html/functions_func_n.html index df574bf2..70032b09 100644 --- a/docs/build/html/functions_func_n.html +++ b/docs/build/html/functions_func_n.html @@ -94,7 +94,7 @@ $(function(){ initResizable(false); });
  • Negative() : mlx::core::Negative
  • new_queue() : mlx::core::metal::Device
  • new_stream() : mlx::core::scheduler::Scheduler
  • -
  • next() : looped_elem_to_loc< dim, offset_t >, looped_elem_to_loc< 0, offset_t >, looped_elem_to_loc< 1, offset_t >, mlx::core::random::KeySequence, mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >, mlx::steel::Conv2DInputBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderLargeFilter< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderSmallFilter< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoader< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >, QuantizedBlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits >
  • +
  • next() : LoopedElemToLoc< DIM, OffsetT, General >, LoopedElemToLoc< 1, OffsetT, false >, LoopedElemToLoc< 1, OffsetT, true >, mlx::core::random::KeySequence, mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >, mlx::steel::BlockLoaderT< T, BROWS, BCOLS, kDstStrRow, kDstStrCol, reduction_dim, tgp_size, n_reads, TCOLS, TROWS >, mlx::steel::Conv2DInputBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderLargeFilter< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >, mlx::steel::Conv2DInputBlockLoaderSmallFilter< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoader< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >, mlx::steel::Conv2DWeightBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >, QuantizedBlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits >
  • NotEqual() : mlx::core::NotEqual
  • notify_new_task() : mlx::core::scheduler::Scheduler
  • notify_task_completion() : mlx::core::scheduler::Scheduler
  • diff --git a/docs/build/html/functions_func_o.html b/docs/build/html/functions_func_o.html index e605ad36..0df9ec53 100644 --- a/docs/build/html/functions_func_o.html +++ b/docs/build/html/functions_func_o.html @@ -103,11 +103,10 @@ $(function(){ initResizable(false); });
  • operator+=() : pocketfft::detail::cmplx< T >
  • operator-() : pocketfft::detail::cmplx< T >
  • operator-=() : pocketfft::detail::cmplx< T >
  • -
  • operator->() : mlx::core::metal::CommandEncoder
  • operator=() : mlx::core::_MLX_BFloat16, mlx::core::_MLX_Float16, mlx::core::allocator::Allocator, mlx::core::array::Data, mlx::core::array, mlx::core::metal::CommandEncoder, mlx::core::metal::Device, mlx::core::metal::ResidencySet, mlx::core::Primitive, mlx::core::scheduler::Scheduler, mlx::core::UnaryPrimitive
  • operator[]() : pocketfft::detail::arr< T >, pocketfft::detail::cndarr< T >, pocketfft::detail::ndarr< T >, pocketfft::detail::sincos_2pibyn< T >
  • out_of_bounds() : ReadWriter< in_T, out_T, step, four_step_real >
  • -
  • output_shapes() : mlx::core::Abs, mlx::core::Add, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Conjugate, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::Floor, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Partition, mlx::core::Power, mlx::core::Primitive, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Round, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Softmax, mlx::core::Sort, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh
  • +
  • output_shapes() : mlx::core::Abs, mlx::core::Add, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::Floor, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Partition, mlx::core::Power, mlx::core::Primitive, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Round, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Softmax, mlx::core::Sort, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh
  • outputs() : mlx::core::array, mlx::core::metal::CommandEncoder
  • overwrite_descriptor() : mlx::core::array
  • diff --git a/docs/build/html/functions_func_p.html b/docs/build/html/functions_func_p.html index fda8c19d..e3626ae4 100644 --- a/docs/build/html/functions_func_p.html +++ b/docs/build/html/functions_func_p.html @@ -99,7 +99,7 @@ $(function(){ initResizable(false); });
  • primitive() : mlx::core::array
  • primitive_id() : mlx::core::array
  • primitive_ptr() : mlx::core::array
  • -
  • print() : mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::Depends, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Load, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::Primitive, mlx::core::PrintFormatter, mlx::core::QRF, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::SVD, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, mlx::core::View
  • +
  • print() : mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::Arange, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::Depends, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Load, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::Primitive, mlx::core::PrintFormatter, mlx::core::QRF, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::SVD, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, mlx::core::View
  • prod() : pocketfft::detail::util
  • ptr() : mlx::core::allocator::Buffer
  • push() : pocketfft::detail::threading::concurrent_queue< T >
  • diff --git a/docs/build/html/functions_func_q.html b/docs/build/html/functions_func_q.html index f09c3145..a5868be0 100644 --- a/docs/build/html/functions_func_q.html +++ b/docs/build/html/functions_func_q.html @@ -88,7 +88,7 @@ $(function(){ initResizable(false); });

    - q -

    diff --git a/docs/build/html/functions_func_r.html b/docs/build/html/functions_func_r.html index 56f88041..d0276be4 100644 --- a/docs/build/html/functions_func_r.html +++ b/docs/build/html/functions_func_r.html @@ -117,6 +117,8 @@ $(function(){ initResizable(false); });
  • RoPE() : mlx::core::fast::RoPE
  • Round() : mlx::core::Round
  • round_error() : metal::_numeric_limits_impl< bfloat16_t >
  • +
  • row_bin_op() : mlx::steel::BaseMMAFrag< T, 8, 8 >, mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >
  • +
  • row_reduce() : mlx::steel::BaseMMAFrag< T, 8, 8 >, mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >
  • run() : GEMVKernel< T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN >, GEMVTKernel< T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN >, mlx::steel::GEMMKernel< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue >
  • diff --git a/docs/build/html/functions_func_s.html b/docs/build/html/functions_func_s.html index e99403c1..fffb9cd7 100644 --- a/docs/build/html/functions_func_s.html +++ b/docs/build/html/functions_func_s.html @@ -97,7 +97,9 @@ $(function(){ initResizable(false); });
  • Select() : mlx::core::Select
  • Send() : mlx::core::distributed::Send
  • Set() : pocketfft::detail::cmplx< T >
  • +
  • set_bytes() : mlx::core::metal::CommandEncoder
  • set_cache_limit() : mlx::core::metal::MetalAllocator
  • +
  • set_compute_pipeline_state() : mlx::core::metal::CommandEncoder
  • set_data() : mlx::core::array
  • set_default_stream() : mlx::core::scheduler::Scheduler
  • set_input_array() : mlx::core::metal::CommandEncoder
  • @@ -108,8 +110,10 @@ $(function(){ initResizable(false); });
  • set_status() : mlx::core::array
  • set_tracer() : mlx::core::array
  • set_value() : mlx::core::Event
  • +
  • set_vector_bytes() : mlx::core::metal::CommandEncoder
  • set_wired_limit() : mlx::core::metal::MetalAllocator
  • shape() : mlx::core::array, pocketfft::detail::arr_info
  • +
  • Shape2D() : mlx::steel::Shape2D< RInt, CInt >
  • shutdown() : pocketfft::detail::threading::thread_pool
  • siblings() : mlx::core::array
  • Sigmoid() : mlx::core::Sigmoid
  • diff --git a/docs/build/html/functions_func_t.html b/docs/build/html/functions_func_t.html index 6e8b1ebb..7eece817 100644 --- a/docs/build/html/functions_func_t.html +++ b/docs/build/html/functions_func_t.html @@ -100,6 +100,7 @@ $(function(){ initResizable(false); });
  • ThreadPool() : ThreadPool
  • TransformAdd() : mlx::steel::TransformAdd< OutT, InT >
  • TransformAxpby() : mlx::steel::TransformAxpby< OutT, InT >
  • +
  • TransformScale() : TransformScale< T >
  • Transpose() : mlx::core::Transpose
  • try_pop() : pocketfft::detail::threading::concurrent_queue< T >
  • diff --git a/docs/build/html/functions_func_u.html b/docs/build/html/functions_func_u.html index 09d0138c..d8106c7e 100644 --- a/docs/build/html/functions_func_u.html +++ b/docs/build/html/functions_func_u.html @@ -89,6 +89,7 @@ $(function(){ initResizable(false); });

    - u -

    diff --git a/docs/build/html/functions_func_v.html b/docs/build/html/functions_func_v.html index 33d877a0..c51ad5fb 100644 --- a/docs/build/html/functions_func_v.html +++ b/docs/build/html/functions_func_v.html @@ -91,8 +91,8 @@ $(function(){ initResizable(false); });
  • valid() : mlx::core::Event
  • value() : mlx::core::Event
  • View() : mlx::core::View
  • -
  • vjp() : mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::Depends, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::fast::LayerNorm, mlx::core::fast::RMSNorm, mlx::core::fast::RoPE, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::Primitive, mlx::core::QuantizedMatmul, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose
  • -
  • vmap() : mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::distributed::Send, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::Primitive, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::SVD, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, mlx::core::View
  • +
  • vjp() : mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::AsStrided, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::BlockMaskedMM, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Contiguous, mlx::core::Convolution, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::Depends, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::Divide, mlx::core::DivMod, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::fast::LayerNorm, mlx::core::fast::RMSNorm, mlx::core::fast::RoPE, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherMM, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::Primitive, mlx::core::QuantizedMatmul, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::Subtract, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose
  • +
  • vmap() : mlx::core::Abs, mlx::core::Add, mlx::core::AddMM, mlx::core::ArcCos, mlx::core::ArcCosh, mlx::core::ArcSin, mlx::core::ArcSinh, mlx::core::ArcTan2, mlx::core::ArcTan, mlx::core::ArcTanh, mlx::core::ArgPartition, mlx::core::ArgReduce, mlx::core::ArgSort, mlx::core::AsType, mlx::core::BitwiseBinary, mlx::core::Broadcast, mlx::core::Ceil, mlx::core::Cholesky, mlx::core::Compiled, mlx::core::Concatenate, mlx::core::Conjugate, mlx::core::Contiguous, mlx::core::Copy, mlx::core::Cos, mlx::core::Cosh, mlx::core::CustomTransforms, mlx::core::distributed::AllGather, mlx::core::distributed::AllReduce, mlx::core::distributed::Send, mlx::core::Divide, mlx::core::DivMod, mlx::core::Eigh, mlx::core::Equal, mlx::core::Erf, mlx::core::ErfInv, mlx::core::Exp, mlx::core::Expm1, mlx::core::fast::Custom, mlx::core::FFT, mlx::core::Floor, mlx::core::Full, mlx::core::Gather, mlx::core::GatherQMM, mlx::core::Greater, mlx::core::GreaterEqual, mlx::core::Hadamard, mlx::core::Imag, mlx::core::Inverse, mlx::core::Less, mlx::core::LessEqual, mlx::core::Log1p, mlx::core::Log, mlx::core::LogAddExp, mlx::core::LogicalAnd, mlx::core::LogicalNot, mlx::core::LogicalOr, mlx::core::Matmul, mlx::core::Maximum, mlx::core::Minimum, mlx::core::Multiply, mlx::core::Negative, mlx::core::NotEqual, mlx::core::NumberOfElements, mlx::core::Pad, mlx::core::Partition, mlx::core::Power, mlx::core::Primitive, mlx::core::QuantizedMatmul, mlx::core::RandomBits, mlx::core::Real, mlx::core::Reduce, mlx::core::Remainder, mlx::core::Reshape, mlx::core::Round, mlx::core::Scan, mlx::core::Scatter, mlx::core::Select, mlx::core::Sigmoid, mlx::core::Sign, mlx::core::Sin, mlx::core::Sinh, mlx::core::Slice, mlx::core::SliceUpdate, mlx::core::Softmax, mlx::core::Sort, mlx::core::Split, mlx::core::Sqrt, mlx::core::Square, mlx::core::StopGradient, mlx::core::Subtract, mlx::core::SVD, mlx::core::Tan, mlx::core::Tanh, mlx::core::Transpose, mlx::core::Uniform, mlx::core::View
  • diff --git a/docs/build/html/functions_func_w.html b/docs/build/html/functions_func_w.html index f7fb19db..f5ad13fd 100644 --- a/docs/build/html/functions_func_w.html +++ b/docs/build/html/functions_func_w.html @@ -88,6 +88,7 @@ $(function(){ initResizable(false); });

    - w -

    diff --git a/docs/build/html/functions_v.html b/docs/build/html/functions_v.html index 44ca8b80..724da0a5 100644 --- a/docs/build/html/functions_v.html +++ b/docs/build/html/functions_v.html @@ -87,18 +87,19 @@ $(function(){ initResizable(false); });
    Here is a list of all class members with links to the classes they belong to:

    - v -

    diff --git a/docs/build/html/functions_vars.html b/docs/build/html/functions_vars.html index 9be45cb9..e0e70e22 100644 --- a/docs/build/html/functions_vars.html +++ b/docs/build/html/functions_vars.html @@ -94,9 +94,9 @@ $(function(){ initResizable(false); });
  • adj_out_h : mlx::steel::Conv2DGeneralJumpParams
  • adj_out_hw : mlx::steel::Conv2DGeneralJumpParams
  • adj_out_w : mlx::steel::Conv2DGeneralJumpParams
  • -
  • alpha : mlx::steel::GEMMAddMMParams, mlx::steel::TransformAxpby< OutT, InT >, MLXFastAttentionParams
  • +
  • alpha : mlx::steel::GEMMAddMMParams, mlx::steel::TransformAxpby< OutT, InT >
  • As_offset : mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >
  • -
  • Atile : mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >
  • +
  • Atile : mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >
  • diff --git a/docs/build/html/functions_vars_b.html b/docs/build/html/functions_vars_b.html index 6880a2f5..cdb0253b 100644 --- a/docs/build/html/functions_vars_b.html +++ b/docs/build/html/functions_vars_b.html @@ -87,37 +87,35 @@ $(function(){ initResizable(false); });
    Here is a list of all variables with links to the classes they belong to:

    - b -

    diff --git a/docs/build/html/functions_vars_c.html b/docs/build/html/functions_vars_c.html index 05419120..b39005e3 100644 --- a/docs/build/html/functions_vars_c.html +++ b/docs/build/html/functions_vars_c.html @@ -88,13 +88,14 @@ $(function(){ initResizable(false); });

    - c -

    diff --git a/docs/build/html/functions_vars_d.html b/docs/build/html/functions_vars_d.html index bb3dad61..2dae6285 100644 --- a/docs/build/html/functions_vars_d.html +++ b/docs/build/html/functions_vars_d.html @@ -87,12 +87,14 @@ $(function(){ initResizable(false); });
    Here is a list of all variables with links to the classes they belong to:

    - d -

    diff --git a/docs/build/html/functions_vars_g.html b/docs/build/html/functions_vars_g.html index fc9d6c8b..d5050957 100644 --- a/docs/build/html/functions_vars_g.html +++ b/docs/build/html/functions_vars_g.html @@ -88,11 +88,10 @@ $(function(){ initResizable(false); });

    - g -

    @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.arange.html b/docs/build/html/python/_autosummary/mlx.core.arange.html index 7734e041..3766992e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.arange.html +++ b/docs/build/html/python/_autosummary/mlx.core.arange.html @@ -8,7 +8,7 @@ - mlx.core.arange — MLX 0.20.0 documentation + mlx.core.arange — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.arccos.html b/docs/build/html/python/_autosummary/mlx.core.arccos.html index 4a0c9f62..59ae6cdb 100644 --- a/docs/build/html/python/_autosummary/mlx.core.arccos.html +++ b/docs/build/html/python/_autosummary/mlx.core.arccos.html @@ -8,7 +8,7 @@ - mlx.core.arccos — MLX 0.20.0 documentation + mlx.core.arccos — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.arccosh.html b/docs/build/html/python/_autosummary/mlx.core.arccosh.html index 01ee928e..aa0ab59d 100644 --- a/docs/build/html/python/_autosummary/mlx.core.arccosh.html +++ b/docs/build/html/python/_autosummary/mlx.core.arccosh.html @@ -8,7 +8,7 @@ - mlx.core.arccosh — MLX 0.20.0 documentation + mlx.core.arccosh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.arcsin.html b/docs/build/html/python/_autosummary/mlx.core.arcsin.html index 51d90ad5..4b5d7b57 100644 --- a/docs/build/html/python/_autosummary/mlx.core.arcsin.html +++ b/docs/build/html/python/_autosummary/mlx.core.arcsin.html @@ -8,7 +8,7 @@ - mlx.core.arcsin — MLX 0.20.0 documentation + mlx.core.arcsin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.arcsinh.html b/docs/build/html/python/_autosummary/mlx.core.arcsinh.html index 55429324..0d0ef608 100644 --- a/docs/build/html/python/_autosummary/mlx.core.arcsinh.html +++ b/docs/build/html/python/_autosummary/mlx.core.arcsinh.html @@ -8,7 +8,7 @@ - mlx.core.arcsinh — MLX 0.20.0 documentation + mlx.core.arcsinh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.arctan.html b/docs/build/html/python/_autosummary/mlx.core.arctan.html index 672285f5..eac1b8fd 100644 --- a/docs/build/html/python/_autosummary/mlx.core.arctan.html +++ b/docs/build/html/python/_autosummary/mlx.core.arctan.html @@ -8,7 +8,7 @@ - mlx.core.arctan — MLX 0.20.0 documentation + mlx.core.arctan — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.arctan2.html b/docs/build/html/python/_autosummary/mlx.core.arctan2.html index b41fdcaa..c93c3289 100644 --- a/docs/build/html/python/_autosummary/mlx.core.arctan2.html +++ b/docs/build/html/python/_autosummary/mlx.core.arctan2.html @@ -8,7 +8,7 @@ - mlx.core.arctan2 — MLX 0.20.0 documentation + mlx.core.arctan2 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.arctanh.html b/docs/build/html/python/_autosummary/mlx.core.arctanh.html index 3c23cfcd..22b8db91 100644 --- a/docs/build/html/python/_autosummary/mlx.core.arctanh.html +++ b/docs/build/html/python/_autosummary/mlx.core.arctanh.html @@ -8,7 +8,7 @@ - mlx.core.arctanh — MLX 0.20.0 documentation + mlx.core.arctanh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.argmax.html b/docs/build/html/python/_autosummary/mlx.core.argmax.html index 1f181bac..290bb416 100644 --- a/docs/build/html/python/_autosummary/mlx.core.argmax.html +++ b/docs/build/html/python/_autosummary/mlx.core.argmax.html @@ -8,7 +8,7 @@ - mlx.core.argmax — MLX 0.20.0 documentation + mlx.core.argmax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.argmin.html b/docs/build/html/python/_autosummary/mlx.core.argmin.html index 6937d209..1df0424e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.argmin.html +++ b/docs/build/html/python/_autosummary/mlx.core.argmin.html @@ -8,7 +8,7 @@ - mlx.core.argmin — MLX 0.20.0 documentation + mlx.core.argmin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.argpartition.html b/docs/build/html/python/_autosummary/mlx.core.argpartition.html index 8760ff11..d10427fa 100644 --- a/docs/build/html/python/_autosummary/mlx.core.argpartition.html +++ b/docs/build/html/python/_autosummary/mlx.core.argpartition.html @@ -8,7 +8,7 @@ - mlx.core.argpartition — MLX 0.20.0 documentation + mlx.core.argpartition — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.argsort.html b/docs/build/html/python/_autosummary/mlx.core.argsort.html index a094833b..b9839848 100644 --- a/docs/build/html/python/_autosummary/mlx.core.argsort.html +++ b/docs/build/html/python/_autosummary/mlx.core.argsort.html @@ -8,7 +8,7 @@ - mlx.core.argsort — MLX 0.20.0 documentation + mlx.core.argsort — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.T.html b/docs/build/html/python/_autosummary/mlx.core.array.T.html index d6fb39f7..9fd367af 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.T.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.T.html @@ -8,7 +8,7 @@ - mlx.core.array.T — MLX 0.20.0 documentation + mlx.core.array.T — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.abs.html b/docs/build/html/python/_autosummary/mlx.core.array.abs.html index b0724fa9..6075ece2 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.abs.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.abs.html @@ -8,7 +8,7 @@ - mlx.core.array.abs — MLX 0.20.0 documentation + mlx.core.array.abs — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.all.html b/docs/build/html/python/_autosummary/mlx.core.array.all.html index 215e72d1..1dbde8ff 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.all.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.all.html @@ -8,7 +8,7 @@ - mlx.core.array.all — MLX 0.20.0 documentation + mlx.core.array.all — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.any.html b/docs/build/html/python/_autosummary/mlx.core.array.any.html index ab538dc5..f2f8bb88 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.any.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.any.html @@ -8,7 +8,7 @@ - mlx.core.array.any — MLX 0.20.0 documentation + mlx.core.array.any — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.argmax.html b/docs/build/html/python/_autosummary/mlx.core.array.argmax.html index 641c46e0..8bfc2aa7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.argmax.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.argmax.html @@ -8,7 +8,7 @@ - mlx.core.array.argmax — MLX 0.20.0 documentation + mlx.core.array.argmax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.argmin.html b/docs/build/html/python/_autosummary/mlx.core.array.argmin.html index 7198a13e..e95fd586 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.argmin.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.argmin.html @@ -8,7 +8,7 @@ - mlx.core.array.argmin — MLX 0.20.0 documentation + mlx.core.array.argmin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.astype.html b/docs/build/html/python/_autosummary/mlx.core.array.astype.html index ecfdcf81..da06c777 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.astype.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.astype.html @@ -8,7 +8,7 @@ - mlx.core.array.astype — MLX 0.20.0 documentation + mlx.core.array.astype — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.at.html b/docs/build/html/python/_autosummary/mlx.core.array.at.html index 1d7069ea..fbd2a504 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.at.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.at.html @@ -8,7 +8,7 @@ - mlx.core.array.at — MLX 0.20.0 documentation + mlx.core.array.at — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.conj.html b/docs/build/html/python/_autosummary/mlx.core.array.conj.html index 43ee33bb..27d0ced2 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.conj.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.conj.html @@ -8,7 +8,7 @@ - mlx.core.array.conj — MLX 0.20.0 documentation + mlx.core.array.conj — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.cos.html b/docs/build/html/python/_autosummary/mlx.core.array.cos.html index cf916121..452c646a 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.cos.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.cos.html @@ -8,7 +8,7 @@ - mlx.core.array.cos — MLX 0.20.0 documentation + mlx.core.array.cos — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.cummax.html b/docs/build/html/python/_autosummary/mlx.core.array.cummax.html index 53e45ee4..e08ca16f 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.cummax.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.cummax.html @@ -8,7 +8,7 @@ - mlx.core.array.cummax — MLX 0.20.0 documentation + mlx.core.array.cummax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.cummin.html b/docs/build/html/python/_autosummary/mlx.core.array.cummin.html index 2073d1b1..38cf2a26 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.cummin.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.cummin.html @@ -8,7 +8,7 @@ - mlx.core.array.cummin — MLX 0.20.0 documentation + mlx.core.array.cummin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.cumprod.html b/docs/build/html/python/_autosummary/mlx.core.array.cumprod.html index 2f5348a4..4cdb3485 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.cumprod.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.cumprod.html @@ -8,7 +8,7 @@ - mlx.core.array.cumprod — MLX 0.20.0 documentation + mlx.core.array.cumprod — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.cumsum.html b/docs/build/html/python/_autosummary/mlx.core.array.cumsum.html index f146ab4f..31a318bc 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.cumsum.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.cumsum.html @@ -8,7 +8,7 @@ - mlx.core.array.cumsum — MLX 0.20.0 documentation + mlx.core.array.cumsum — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.diag.html b/docs/build/html/python/_autosummary/mlx.core.array.diag.html index b19d8463..b0af6c34 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.diag.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.diag.html @@ -8,7 +8,7 @@ - mlx.core.array.diag — MLX 0.20.0 documentation + mlx.core.array.diag — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.diagonal.html b/docs/build/html/python/_autosummary/mlx.core.array.diagonal.html index 77721168..23fb14a7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.diagonal.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.diagonal.html @@ -8,7 +8,7 @@ - mlx.core.array.diagonal — MLX 0.20.0 documentation + mlx.core.array.diagonal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.dtype.html b/docs/build/html/python/_autosummary/mlx.core.array.dtype.html index e3231b4e..ecab8d72 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.dtype.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.dtype.html @@ -8,7 +8,7 @@ - mlx.core.array.dtype — MLX 0.20.0 documentation + mlx.core.array.dtype — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.exp.html b/docs/build/html/python/_autosummary/mlx.core.array.exp.html index 586bb60e..2a29a331 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.exp.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.exp.html @@ -8,7 +8,7 @@ - mlx.core.array.exp — MLX 0.20.0 documentation + mlx.core.array.exp — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.flatten.html b/docs/build/html/python/_autosummary/mlx.core.array.flatten.html index ba45ef7a..7320fa85 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.flatten.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.flatten.html @@ -8,7 +8,7 @@ - mlx.core.array.flatten — MLX 0.20.0 documentation + mlx.core.array.flatten — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.html b/docs/build/html/python/_autosummary/mlx.core.array.html index c548e2fc..887b4f5b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.html @@ -8,7 +8,7 @@ - mlx.core.array — MLX 0.20.0 documentation + mlx.core.array — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.item.html b/docs/build/html/python/_autosummary/mlx.core.array.item.html index d617b8cd..74d3f557 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.item.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.item.html @@ -8,7 +8,7 @@ - mlx.core.array.item — MLX 0.20.0 documentation + mlx.core.array.item — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.itemsize.html b/docs/build/html/python/_autosummary/mlx.core.array.itemsize.html index a1040c73..109aae10 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.itemsize.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.itemsize.html @@ -8,7 +8,7 @@ - mlx.core.array.itemsize — MLX 0.20.0 documentation + mlx.core.array.itemsize — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.log.html b/docs/build/html/python/_autosummary/mlx.core.array.log.html index 2a9e88cd..8db6bcec 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.log.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.log.html @@ -8,7 +8,7 @@ - mlx.core.array.log — MLX 0.20.0 documentation + mlx.core.array.log — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.log10.html b/docs/build/html/python/_autosummary/mlx.core.array.log10.html index addc1747..f4998d26 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.log10.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.log10.html @@ -8,7 +8,7 @@ - mlx.core.array.log10 — MLX 0.20.0 documentation + mlx.core.array.log10 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.log1p.html b/docs/build/html/python/_autosummary/mlx.core.array.log1p.html index 10bf9661..5e3febb6 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.log1p.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.log1p.html @@ -8,7 +8,7 @@ - mlx.core.array.log1p — MLX 0.20.0 documentation + mlx.core.array.log1p — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.log2.html b/docs/build/html/python/_autosummary/mlx.core.array.log2.html index de817a37..4827e3d4 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.log2.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.log2.html @@ -8,7 +8,7 @@ - mlx.core.array.log2 — MLX 0.20.0 documentation + mlx.core.array.log2 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.logsumexp.html b/docs/build/html/python/_autosummary/mlx.core.array.logsumexp.html index e67f1483..70d0cab5 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.logsumexp.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.logsumexp.html @@ -8,7 +8,7 @@ - mlx.core.array.logsumexp — MLX 0.20.0 documentation + mlx.core.array.logsumexp — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.max.html b/docs/build/html/python/_autosummary/mlx.core.array.max.html index 3adb74a5..dd533e84 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.max.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.max.html @@ -8,7 +8,7 @@ - mlx.core.array.max — MLX 0.20.0 documentation + mlx.core.array.max — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.mean.html b/docs/build/html/python/_autosummary/mlx.core.array.mean.html index 9a165273..43748a89 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.mean.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.mean.html @@ -8,7 +8,7 @@ - mlx.core.array.mean — MLX 0.20.0 documentation + mlx.core.array.mean — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.min.html b/docs/build/html/python/_autosummary/mlx.core.array.min.html index c3196d28..981e63d7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.min.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.min.html @@ -8,7 +8,7 @@ - mlx.core.array.min — MLX 0.20.0 documentation + mlx.core.array.min — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.moveaxis.html b/docs/build/html/python/_autosummary/mlx.core.array.moveaxis.html index 90094c78..60b4d88b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.moveaxis.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.moveaxis.html @@ -8,7 +8,7 @@ - mlx.core.array.moveaxis — MLX 0.20.0 documentation + mlx.core.array.moveaxis — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.nbytes.html b/docs/build/html/python/_autosummary/mlx.core.array.nbytes.html index 2129d095..890e8ab9 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.nbytes.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.nbytes.html @@ -8,7 +8,7 @@ - mlx.core.array.nbytes — MLX 0.20.0 documentation + mlx.core.array.nbytes — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.ndim.html b/docs/build/html/python/_autosummary/mlx.core.array.ndim.html index a4d93838..88495c6f 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.ndim.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.ndim.html @@ -8,7 +8,7 @@ - mlx.core.array.ndim — MLX 0.20.0 documentation + mlx.core.array.ndim — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.prod.html b/docs/build/html/python/_autosummary/mlx.core.array.prod.html index a30eb23c..aa213843 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.prod.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.prod.html @@ -8,7 +8,7 @@ - mlx.core.array.prod — MLX 0.20.0 documentation + mlx.core.array.prod — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.reciprocal.html b/docs/build/html/python/_autosummary/mlx.core.array.reciprocal.html index 350e0548..8a60615b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.reciprocal.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.reciprocal.html @@ -8,7 +8,7 @@ - mlx.core.array.reciprocal — MLX 0.20.0 documentation + mlx.core.array.reciprocal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.reshape.html b/docs/build/html/python/_autosummary/mlx.core.array.reshape.html index d605a18f..268c43c6 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.reshape.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.reshape.html @@ -8,7 +8,7 @@ - mlx.core.array.reshape — MLX 0.20.0 documentation + mlx.core.array.reshape — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.round.html b/docs/build/html/python/_autosummary/mlx.core.array.round.html index 1e649bb5..b525be19 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.round.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.round.html @@ -8,7 +8,7 @@ - mlx.core.array.round — MLX 0.20.0 documentation + mlx.core.array.round — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.rsqrt.html b/docs/build/html/python/_autosummary/mlx.core.array.rsqrt.html index 02b1710a..56b0ddc0 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.rsqrt.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.rsqrt.html @@ -8,7 +8,7 @@ - mlx.core.array.rsqrt — MLX 0.20.0 documentation + mlx.core.array.rsqrt — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.shape.html b/docs/build/html/python/_autosummary/mlx.core.array.shape.html index 1383dcdf..b19b0029 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.shape.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.shape.html @@ -8,7 +8,7 @@ - mlx.core.array.shape — MLX 0.20.0 documentation + mlx.core.array.shape — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.sin.html b/docs/build/html/python/_autosummary/mlx.core.array.sin.html index 6ce5e835..0a233221 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.sin.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.sin.html @@ -8,7 +8,7 @@ - mlx.core.array.sin — MLX 0.20.0 documentation + mlx.core.array.sin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.size.html b/docs/build/html/python/_autosummary/mlx.core.array.size.html index 4645ee22..ba142770 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.size.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.size.html @@ -8,7 +8,7 @@ - mlx.core.array.size — MLX 0.20.0 documentation + mlx.core.array.size — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.split.html b/docs/build/html/python/_autosummary/mlx.core.array.split.html index 9a6db9d7..52bc08cb 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.split.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.split.html @@ -8,7 +8,7 @@ - mlx.core.array.split — MLX 0.20.0 documentation + mlx.core.array.split — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.sqrt.html b/docs/build/html/python/_autosummary/mlx.core.array.sqrt.html index b257add2..081facb9 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.sqrt.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.sqrt.html @@ -8,7 +8,7 @@ - mlx.core.array.sqrt — MLX 0.20.0 documentation + mlx.core.array.sqrt — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.square.html b/docs/build/html/python/_autosummary/mlx.core.array.square.html index 89d8ec51..10c1f54f 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.square.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.square.html @@ -8,7 +8,7 @@ - mlx.core.array.square — MLX 0.20.0 documentation + mlx.core.array.square — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.squeeze.html b/docs/build/html/python/_autosummary/mlx.core.array.squeeze.html index ee859738..6d1e91b7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.squeeze.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.squeeze.html @@ -8,7 +8,7 @@ - mlx.core.array.squeeze — MLX 0.20.0 documentation + mlx.core.array.squeeze — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.std.html b/docs/build/html/python/_autosummary/mlx.core.array.std.html index 49dedf68..424da05f 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.std.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.std.html @@ -8,7 +8,7 @@ - mlx.core.array.std — MLX 0.20.0 documentation + mlx.core.array.std — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.sum.html b/docs/build/html/python/_autosummary/mlx.core.array.sum.html index 8bf408c1..e1b12a6c 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.sum.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.sum.html @@ -8,7 +8,7 @@ - mlx.core.array.sum — MLX 0.20.0 documentation + mlx.core.array.sum — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.swapaxes.html b/docs/build/html/python/_autosummary/mlx.core.array.swapaxes.html index 88937413..bac030d8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.swapaxes.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.swapaxes.html @@ -8,7 +8,7 @@ - mlx.core.array.swapaxes — MLX 0.20.0 documentation + mlx.core.array.swapaxes — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.tolist.html b/docs/build/html/python/_autosummary/mlx.core.array.tolist.html index 02f2c841..0dfcf51a 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.tolist.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.tolist.html @@ -8,7 +8,7 @@ - mlx.core.array.tolist — MLX 0.20.0 documentation + mlx.core.array.tolist — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.transpose.html b/docs/build/html/python/_autosummary/mlx.core.array.transpose.html index e7650856..49804931 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.transpose.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.transpose.html @@ -8,7 +8,7 @@ - mlx.core.array.transpose — MLX 0.20.0 documentation + mlx.core.array.transpose — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.var.html b/docs/build/html/python/_autosummary/mlx.core.array.var.html index 7cd25caa..dc7854cb 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.var.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.var.html @@ -8,7 +8,7 @@ - mlx.core.array.var — MLX 0.20.0 documentation + mlx.core.array.var — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array.view.html b/docs/build/html/python/_autosummary/mlx.core.array.view.html index 93582c4c..da0efcf1 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array.view.html +++ b/docs/build/html/python/_autosummary/mlx.core.array.view.html @@ -8,7 +8,7 @@ - mlx.core.array.view — MLX 0.20.0 documentation + mlx.core.array.view — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.array_equal.html b/docs/build/html/python/_autosummary/mlx.core.array_equal.html index bb346b08..a7d1e227 100644 --- a/docs/build/html/python/_autosummary/mlx.core.array_equal.html +++ b/docs/build/html/python/_autosummary/mlx.core.array_equal.html @@ -8,7 +8,7 @@ - mlx.core.array_equal — MLX 0.20.0 documentation + mlx.core.array_equal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.as_strided.html b/docs/build/html/python/_autosummary/mlx.core.as_strided.html index 1f1ab296..b230f595 100644 --- a/docs/build/html/python/_autosummary/mlx.core.as_strided.html +++ b/docs/build/html/python/_autosummary/mlx.core.as_strided.html @@ -8,7 +8,7 @@ - mlx.core.as_strided — MLX 0.20.0 documentation + mlx.core.as_strided — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.atleast_1d.html b/docs/build/html/python/_autosummary/mlx.core.atleast_1d.html index 7b11d52e..54dbaaa5 100644 --- a/docs/build/html/python/_autosummary/mlx.core.atleast_1d.html +++ b/docs/build/html/python/_autosummary/mlx.core.atleast_1d.html @@ -8,7 +8,7 @@ - mlx.core.atleast_1d — MLX 0.20.0 documentation + mlx.core.atleast_1d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.atleast_2d.html b/docs/build/html/python/_autosummary/mlx.core.atleast_2d.html index a80fc090..d4c71f15 100644 --- a/docs/build/html/python/_autosummary/mlx.core.atleast_2d.html +++ b/docs/build/html/python/_autosummary/mlx.core.atleast_2d.html @@ -8,7 +8,7 @@ - mlx.core.atleast_2d — MLX 0.20.0 documentation + mlx.core.atleast_2d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.atleast_3d.html b/docs/build/html/python/_autosummary/mlx.core.atleast_3d.html index 76dcb868..866f2fe8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.atleast_3d.html +++ b/docs/build/html/python/_autosummary/mlx.core.atleast_3d.html @@ -8,7 +8,7 @@ - mlx.core.atleast_3d — MLX 0.20.0 documentation + mlx.core.atleast_3d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.bitwise_and.html b/docs/build/html/python/_autosummary/mlx.core.bitwise_and.html index 0248d1ef..774d4f60 100644 --- a/docs/build/html/python/_autosummary/mlx.core.bitwise_and.html +++ b/docs/build/html/python/_autosummary/mlx.core.bitwise_and.html @@ -8,7 +8,7 @@ - mlx.core.bitwise_and — MLX 0.20.0 documentation + mlx.core.bitwise_and — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.bitwise_or.html b/docs/build/html/python/_autosummary/mlx.core.bitwise_or.html index 937a3601..a3270893 100644 --- a/docs/build/html/python/_autosummary/mlx.core.bitwise_or.html +++ b/docs/build/html/python/_autosummary/mlx.core.bitwise_or.html @@ -8,7 +8,7 @@ - mlx.core.bitwise_or — MLX 0.20.0 documentation + mlx.core.bitwise_or — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.bitwise_xor.html b/docs/build/html/python/_autosummary/mlx.core.bitwise_xor.html index 4aebefda..06450233 100644 --- a/docs/build/html/python/_autosummary/mlx.core.bitwise_xor.html +++ b/docs/build/html/python/_autosummary/mlx.core.bitwise_xor.html @@ -8,7 +8,7 @@ - mlx.core.bitwise_xor — MLX 0.20.0 documentation + mlx.core.bitwise_xor — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.block_masked_mm.html b/docs/build/html/python/_autosummary/mlx.core.block_masked_mm.html index 76840287..edf5ad7c 100644 --- a/docs/build/html/python/_autosummary/mlx.core.block_masked_mm.html +++ b/docs/build/html/python/_autosummary/mlx.core.block_masked_mm.html @@ -8,7 +8,7 @@ - mlx.core.block_masked_mm — MLX 0.20.0 documentation + mlx.core.block_masked_mm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.broadcast_to.html b/docs/build/html/python/_autosummary/mlx.core.broadcast_to.html index aa0dfbd1..e4705692 100644 --- a/docs/build/html/python/_autosummary/mlx.core.broadcast_to.html +++ b/docs/build/html/python/_autosummary/mlx.core.broadcast_to.html @@ -8,7 +8,7 @@ - mlx.core.broadcast_to — MLX 0.20.0 documentation + mlx.core.broadcast_to — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.ceil.html b/docs/build/html/python/_autosummary/mlx.core.ceil.html index f70ed738..5f679d62 100644 --- a/docs/build/html/python/_autosummary/mlx.core.ceil.html +++ b/docs/build/html/python/_autosummary/mlx.core.ceil.html @@ -8,7 +8,7 @@ - mlx.core.ceil — MLX 0.20.0 documentation + mlx.core.ceil — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.clip.html b/docs/build/html/python/_autosummary/mlx.core.clip.html index 2ed7ba24..8bca4c6a 100644 --- a/docs/build/html/python/_autosummary/mlx.core.clip.html +++ b/docs/build/html/python/_autosummary/mlx.core.clip.html @@ -8,7 +8,7 @@ - mlx.core.clip — MLX 0.20.0 documentation + mlx.core.clip — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.compile.html b/docs/build/html/python/_autosummary/mlx.core.compile.html index 44f7641b..a081abcd 100644 --- a/docs/build/html/python/_autosummary/mlx.core.compile.html +++ b/docs/build/html/python/_autosummary/mlx.core.compile.html @@ -8,7 +8,7 @@ - mlx.core.compile — MLX 0.20.0 documentation + mlx.core.compile — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.concatenate.html b/docs/build/html/python/_autosummary/mlx.core.concatenate.html index cc094e30..68619f03 100644 --- a/docs/build/html/python/_autosummary/mlx.core.concatenate.html +++ b/docs/build/html/python/_autosummary/mlx.core.concatenate.html @@ -8,7 +8,7 @@ - mlx.core.concatenate — MLX 0.20.0 documentation + mlx.core.concatenate — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conj.html b/docs/build/html/python/_autosummary/mlx.core.conj.html index 33b59fa0..2f3c5c3e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conj.html +++ b/docs/build/html/python/_autosummary/mlx.core.conj.html @@ -8,7 +8,7 @@ - mlx.core.conj — MLX 0.20.0 documentation + mlx.core.conj — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conjugate.html b/docs/build/html/python/_autosummary/mlx.core.conjugate.html index c45c175b..96a641c4 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conjugate.html +++ b/docs/build/html/python/_autosummary/mlx.core.conjugate.html @@ -8,7 +8,7 @@ - mlx.core.conjugate — MLX 0.20.0 documentation + mlx.core.conjugate — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conv1d.html b/docs/build/html/python/_autosummary/mlx.core.conv1d.html index 00fdf34f..7756c085 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conv1d.html +++ b/docs/build/html/python/_autosummary/mlx.core.conv1d.html @@ -8,7 +8,7 @@ - mlx.core.conv1d — MLX 0.20.0 documentation + mlx.core.conv1d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conv2d.html b/docs/build/html/python/_autosummary/mlx.core.conv2d.html index 3a62ce7e..9309ab73 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conv2d.html +++ b/docs/build/html/python/_autosummary/mlx.core.conv2d.html @@ -8,7 +8,7 @@ - mlx.core.conv2d — MLX 0.20.0 documentation + mlx.core.conv2d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conv3d.html b/docs/build/html/python/_autosummary/mlx.core.conv3d.html index b9f54b97..20d14270 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conv3d.html +++ b/docs/build/html/python/_autosummary/mlx.core.conv3d.html @@ -8,7 +8,7 @@ - mlx.core.conv3d — MLX 0.20.0 documentation + mlx.core.conv3d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conv_general.html b/docs/build/html/python/_autosummary/mlx.core.conv_general.html index a8a6ad98..5013c6f7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conv_general.html +++ b/docs/build/html/python/_autosummary/mlx.core.conv_general.html @@ -8,7 +8,7 @@ - mlx.core.conv_general — MLX 0.20.0 documentation + mlx.core.conv_general — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conv_transpose1d.html b/docs/build/html/python/_autosummary/mlx.core.conv_transpose1d.html index cc2e2e95..5fd2b8e0 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conv_transpose1d.html +++ b/docs/build/html/python/_autosummary/mlx.core.conv_transpose1d.html @@ -8,7 +8,7 @@ - mlx.core.conv_transpose1d — MLX 0.20.0 documentation + mlx.core.conv_transpose1d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conv_transpose2d.html b/docs/build/html/python/_autosummary/mlx.core.conv_transpose2d.html index 7964c633..58e7d920 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conv_transpose2d.html +++ b/docs/build/html/python/_autosummary/mlx.core.conv_transpose2d.html @@ -8,7 +8,7 @@ - mlx.core.conv_transpose2d — MLX 0.20.0 documentation + mlx.core.conv_transpose2d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.conv_transpose3d.html b/docs/build/html/python/_autosummary/mlx.core.conv_transpose3d.html index 6072d889..1a429936 100644 --- a/docs/build/html/python/_autosummary/mlx.core.conv_transpose3d.html +++ b/docs/build/html/python/_autosummary/mlx.core.conv_transpose3d.html @@ -8,7 +8,7 @@ - mlx.core.conv_transpose3d — MLX 0.20.0 documentation + mlx.core.conv_transpose3d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.convolve.html b/docs/build/html/python/_autosummary/mlx.core.convolve.html index d0c71720..24d4ae24 100644 --- a/docs/build/html/python/_autosummary/mlx.core.convolve.html +++ b/docs/build/html/python/_autosummary/mlx.core.convolve.html @@ -8,7 +8,7 @@ - mlx.core.convolve — MLX 0.20.0 documentation + mlx.core.convolve — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.cos.html b/docs/build/html/python/_autosummary/mlx.core.cos.html index f038e1d4..b1c04186 100644 --- a/docs/build/html/python/_autosummary/mlx.core.cos.html +++ b/docs/build/html/python/_autosummary/mlx.core.cos.html @@ -8,7 +8,7 @@ - mlx.core.cos — MLX 0.20.0 documentation + mlx.core.cos — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.cosh.html b/docs/build/html/python/_autosummary/mlx.core.cosh.html index 17f09114..7c3f2c7b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.cosh.html +++ b/docs/build/html/python/_autosummary/mlx.core.cosh.html @@ -8,7 +8,7 @@ - mlx.core.cosh — MLX 0.20.0 documentation + mlx.core.cosh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.cummax.html b/docs/build/html/python/_autosummary/mlx.core.cummax.html index bcbf313e..bf8765ca 100644 --- a/docs/build/html/python/_autosummary/mlx.core.cummax.html +++ b/docs/build/html/python/_autosummary/mlx.core.cummax.html @@ -8,7 +8,7 @@ - mlx.core.cummax — MLX 0.20.0 documentation + mlx.core.cummax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.cummin.html b/docs/build/html/python/_autosummary/mlx.core.cummin.html index d96b5b68..23025f94 100644 --- a/docs/build/html/python/_autosummary/mlx.core.cummin.html +++ b/docs/build/html/python/_autosummary/mlx.core.cummin.html @@ -8,7 +8,7 @@ - mlx.core.cummin — MLX 0.20.0 documentation + mlx.core.cummin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.cumprod.html b/docs/build/html/python/_autosummary/mlx.core.cumprod.html index 56370f9b..87d53ef6 100644 --- a/docs/build/html/python/_autosummary/mlx.core.cumprod.html +++ b/docs/build/html/python/_autosummary/mlx.core.cumprod.html @@ -8,7 +8,7 @@ - mlx.core.cumprod — MLX 0.20.0 documentation + mlx.core.cumprod — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.cumsum.html b/docs/build/html/python/_autosummary/mlx.core.cumsum.html index 24d7cd5f..d7d9f0f5 100644 --- a/docs/build/html/python/_autosummary/mlx.core.cumsum.html +++ b/docs/build/html/python/_autosummary/mlx.core.cumsum.html @@ -8,7 +8,7 @@ - mlx.core.cumsum — MLX 0.20.0 documentation + mlx.core.cumsum — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.custom_function.html b/docs/build/html/python/_autosummary/mlx.core.custom_function.html index 4c79155c..ff20c514 100644 --- a/docs/build/html/python/_autosummary/mlx.core.custom_function.html +++ b/docs/build/html/python/_autosummary/mlx.core.custom_function.html @@ -8,7 +8,7 @@ - mlx.core.custom_function — MLX 0.20.0 documentation + mlx.core.custom_function — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.default_device.html b/docs/build/html/python/_autosummary/mlx.core.default_device.html index d1afe6dc..04e99c39 100644 --- a/docs/build/html/python/_autosummary/mlx.core.default_device.html +++ b/docs/build/html/python/_autosummary/mlx.core.default_device.html @@ -8,7 +8,7 @@ - mlx.core.default_device — MLX 0.20.0 documentation + mlx.core.default_device — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.default_stream.html b/docs/build/html/python/_autosummary/mlx.core.default_stream.html index 13838d8e..768562fa 100644 --- a/docs/build/html/python/_autosummary/mlx.core.default_stream.html +++ b/docs/build/html/python/_autosummary/mlx.core.default_stream.html @@ -8,7 +8,7 @@ - mlx.core.default_stream — MLX 0.20.0 documentation + mlx.core.default_stream — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.degrees.html b/docs/build/html/python/_autosummary/mlx.core.degrees.html index a31cecb7..e948c82d 100644 --- a/docs/build/html/python/_autosummary/mlx.core.degrees.html +++ b/docs/build/html/python/_autosummary/mlx.core.degrees.html @@ -8,7 +8,7 @@ - mlx.core.degrees — MLX 0.20.0 documentation + mlx.core.degrees — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.dequantize.html b/docs/build/html/python/_autosummary/mlx.core.dequantize.html index e8595f66..55b83459 100644 --- a/docs/build/html/python/_autosummary/mlx.core.dequantize.html +++ b/docs/build/html/python/_autosummary/mlx.core.dequantize.html @@ -8,7 +8,7 @@ - mlx.core.dequantize — MLX 0.20.0 documentation + mlx.core.dequantize — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.diag.html b/docs/build/html/python/_autosummary/mlx.core.diag.html index d032011e..33d1a804 100644 --- a/docs/build/html/python/_autosummary/mlx.core.diag.html +++ b/docs/build/html/python/_autosummary/mlx.core.diag.html @@ -8,7 +8,7 @@ - mlx.core.diag — MLX 0.20.0 documentation + mlx.core.diag — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.diagonal.html b/docs/build/html/python/_autosummary/mlx.core.diagonal.html index 9745beba..c7473c79 100644 --- a/docs/build/html/python/_autosummary/mlx.core.diagonal.html +++ b/docs/build/html/python/_autosummary/mlx.core.diagonal.html @@ -8,7 +8,7 @@ - mlx.core.diagonal — MLX 0.20.0 documentation + mlx.core.diagonal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.disable_compile.html b/docs/build/html/python/_autosummary/mlx.core.disable_compile.html index 1fdf82fa..b6de85f3 100644 --- a/docs/build/html/python/_autosummary/mlx.core.disable_compile.html +++ b/docs/build/html/python/_autosummary/mlx.core.disable_compile.html @@ -8,7 +8,7 @@ - mlx.core.disable_compile — MLX 0.20.0 documentation + mlx.core.disable_compile — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.distributed.Group.html b/docs/build/html/python/_autosummary/mlx.core.distributed.Group.html index e2da256e..94d2fb68 100644 --- a/docs/build/html/python/_autosummary/mlx.core.distributed.Group.html +++ b/docs/build/html/python/_autosummary/mlx.core.distributed.Group.html @@ -8,7 +8,7 @@ - mlx.core.distributed.Group — MLX 0.20.0 documentation + mlx.core.distributed.Group — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.distributed.all_gather.html b/docs/build/html/python/_autosummary/mlx.core.distributed.all_gather.html index aedf3d96..7ab351c4 100644 --- a/docs/build/html/python/_autosummary/mlx.core.distributed.all_gather.html +++ b/docs/build/html/python/_autosummary/mlx.core.distributed.all_gather.html @@ -8,7 +8,7 @@ - mlx.core.distributed.all_gather — MLX 0.20.0 documentation + mlx.core.distributed.all_gather — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.distributed.all_sum.html b/docs/build/html/python/_autosummary/mlx.core.distributed.all_sum.html index e3ba93c5..cd3bc698 100644 --- a/docs/build/html/python/_autosummary/mlx.core.distributed.all_sum.html +++ b/docs/build/html/python/_autosummary/mlx.core.distributed.all_sum.html @@ -8,7 +8,7 @@ - mlx.core.distributed.all_sum — MLX 0.20.0 documentation + mlx.core.distributed.all_sum — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.distributed.init.html b/docs/build/html/python/_autosummary/mlx.core.distributed.init.html index 1eb50bf1..b4a83ce5 100644 --- a/docs/build/html/python/_autosummary/mlx.core.distributed.init.html +++ b/docs/build/html/python/_autosummary/mlx.core.distributed.init.html @@ -8,7 +8,7 @@ - mlx.core.distributed.init — MLX 0.20.0 documentation + mlx.core.distributed.init — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.distributed.is_available.html b/docs/build/html/python/_autosummary/mlx.core.distributed.is_available.html index 9056493d..ef1eac2b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.distributed.is_available.html +++ b/docs/build/html/python/_autosummary/mlx.core.distributed.is_available.html @@ -8,7 +8,7 @@ - mlx.core.distributed.is_available — MLX 0.20.0 documentation + mlx.core.distributed.is_available — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.distributed.recv.html b/docs/build/html/python/_autosummary/mlx.core.distributed.recv.html index c77dfef3..604cdddf 100644 --- a/docs/build/html/python/_autosummary/mlx.core.distributed.recv.html +++ b/docs/build/html/python/_autosummary/mlx.core.distributed.recv.html @@ -8,7 +8,7 @@ - mlx.core.distributed.recv — MLX 0.20.0 documentation + mlx.core.distributed.recv — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.distributed.recv_like.html b/docs/build/html/python/_autosummary/mlx.core.distributed.recv_like.html index c6e8045a..e21db629 100644 --- a/docs/build/html/python/_autosummary/mlx.core.distributed.recv_like.html +++ b/docs/build/html/python/_autosummary/mlx.core.distributed.recv_like.html @@ -8,7 +8,7 @@ - mlx.core.distributed.recv_like — MLX 0.20.0 documentation + mlx.core.distributed.recv_like — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.distributed.send.html b/docs/build/html/python/_autosummary/mlx.core.distributed.send.html index 2f62ec5a..b5a1d923 100644 --- a/docs/build/html/python/_autosummary/mlx.core.distributed.send.html +++ b/docs/build/html/python/_autosummary/mlx.core.distributed.send.html @@ -8,7 +8,7 @@ - mlx.core.distributed.send — MLX 0.20.0 documentation + mlx.core.distributed.send — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.divide.html b/docs/build/html/python/_autosummary/mlx.core.divide.html index 5ed322a6..d84684d3 100644 --- a/docs/build/html/python/_autosummary/mlx.core.divide.html +++ b/docs/build/html/python/_autosummary/mlx.core.divide.html @@ -8,7 +8,7 @@ - mlx.core.divide — MLX 0.20.0 documentation + mlx.core.divide — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.divmod.html b/docs/build/html/python/_autosummary/mlx.core.divmod.html index 46201a50..22218200 100644 --- a/docs/build/html/python/_autosummary/mlx.core.divmod.html +++ b/docs/build/html/python/_autosummary/mlx.core.divmod.html @@ -8,7 +8,7 @@ - mlx.core.divmod — MLX 0.20.0 documentation + mlx.core.divmod — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.einsum.html b/docs/build/html/python/_autosummary/mlx.core.einsum.html index 56baf469..de9ac682 100644 --- a/docs/build/html/python/_autosummary/mlx.core.einsum.html +++ b/docs/build/html/python/_autosummary/mlx.core.einsum.html @@ -8,7 +8,7 @@ - mlx.core.einsum — MLX 0.20.0 documentation + mlx.core.einsum — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.einsum_path.html b/docs/build/html/python/_autosummary/mlx.core.einsum_path.html index 38661609..b8b89f8f 100644 --- a/docs/build/html/python/_autosummary/mlx.core.einsum_path.html +++ b/docs/build/html/python/_autosummary/mlx.core.einsum_path.html @@ -8,7 +8,7 @@ - mlx.core.einsum_path — MLX 0.20.0 documentation + mlx.core.einsum_path — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.enable_compile.html b/docs/build/html/python/_autosummary/mlx.core.enable_compile.html index 581356a5..0e13be2d 100644 --- a/docs/build/html/python/_autosummary/mlx.core.enable_compile.html +++ b/docs/build/html/python/_autosummary/mlx.core.enable_compile.html @@ -8,7 +8,7 @@ - mlx.core.enable_compile — MLX 0.20.0 documentation + mlx.core.enable_compile — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.equal.html b/docs/build/html/python/_autosummary/mlx.core.equal.html index 05ac1a8e..0e746d96 100644 --- a/docs/build/html/python/_autosummary/mlx.core.equal.html +++ b/docs/build/html/python/_autosummary/mlx.core.equal.html @@ -8,7 +8,7 @@ - mlx.core.equal — MLX 0.20.0 documentation + mlx.core.equal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.erf.html b/docs/build/html/python/_autosummary/mlx.core.erf.html index cbeab2c4..46f818d5 100644 --- a/docs/build/html/python/_autosummary/mlx.core.erf.html +++ b/docs/build/html/python/_autosummary/mlx.core.erf.html @@ -8,7 +8,7 @@ - mlx.core.erf — MLX 0.20.0 documentation + mlx.core.erf — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.erfinv.html b/docs/build/html/python/_autosummary/mlx.core.erfinv.html index b90a6e18..b7e8aa97 100644 --- a/docs/build/html/python/_autosummary/mlx.core.erfinv.html +++ b/docs/build/html/python/_autosummary/mlx.core.erfinv.html @@ -8,7 +8,7 @@ - mlx.core.erfinv — MLX 0.20.0 documentation + mlx.core.erfinv — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.eval.html b/docs/build/html/python/_autosummary/mlx.core.eval.html index bf5b124d..457160b9 100644 --- a/docs/build/html/python/_autosummary/mlx.core.eval.html +++ b/docs/build/html/python/_autosummary/mlx.core.eval.html @@ -8,7 +8,7 @@ - mlx.core.eval — MLX 0.20.0 documentation + mlx.core.eval — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.exp.html b/docs/build/html/python/_autosummary/mlx.core.exp.html index 7202e7e8..354d179d 100644 --- a/docs/build/html/python/_autosummary/mlx.core.exp.html +++ b/docs/build/html/python/_autosummary/mlx.core.exp.html @@ -8,7 +8,7 @@ - mlx.core.exp — MLX 0.20.0 documentation + mlx.core.exp — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.expand_dims.html b/docs/build/html/python/_autosummary/mlx.core.expand_dims.html index fe8fbd46..8575dd09 100644 --- a/docs/build/html/python/_autosummary/mlx.core.expand_dims.html +++ b/docs/build/html/python/_autosummary/mlx.core.expand_dims.html @@ -8,7 +8,7 @@ - mlx.core.expand_dims — MLX 0.20.0 documentation + mlx.core.expand_dims — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.expm1.html b/docs/build/html/python/_autosummary/mlx.core.expm1.html index 4e0a97c5..b5975ef0 100644 --- a/docs/build/html/python/_autosummary/mlx.core.expm1.html +++ b/docs/build/html/python/_autosummary/mlx.core.expm1.html @@ -8,7 +8,7 @@ - mlx.core.expm1 — MLX 0.20.0 documentation + mlx.core.expm1 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.eye.html b/docs/build/html/python/_autosummary/mlx.core.eye.html index 73f41fe9..2ab1d703 100644 --- a/docs/build/html/python/_autosummary/mlx.core.eye.html +++ b/docs/build/html/python/_autosummary/mlx.core.eye.html @@ -8,7 +8,7 @@ - mlx.core.eye — MLX 0.20.0 documentation + mlx.core.eye — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fast.affine_quantize.html b/docs/build/html/python/_autosummary/mlx.core.fast.affine_quantize.html deleted file mode 100644 index 57b56fb6..00000000 --- a/docs/build/html/python/_autosummary/mlx.core.fast.affine_quantize.html +++ /dev/null @@ -1,1001 +0,0 @@ - - - - - - - - - - - mlx.core.fast.affine_quantize — MLX 0.20.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - -
    - -
    - - - - - -
    -
    - - - - -
    - - - - - - - - - - - - - -
    - -
    - - - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    - - -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    - - - -
    -

    mlx.core.fast.affine_quantize

    - -
    -
    - -
    -

    Contents

    -
    - -
    -
    -
    - - - - -
    - -
    -

    mlx.core.fast.affine_quantize#

    -
    -
    -affine_quantize(w: array, /, scales: array, biases: array, group_size: int = 64, bits: int = 4, *, stream: None | Stream | Device = None) array#
    -

    Quantize the matrix w using the provided scales and -biases and the group_size and bits configuration.

    -

    Formally, given the notation in quantize(), we compute -\(w_i\) from \(\hat{w_i}\) and corresponding \(s\) and -\(\beta\) as follows

    -
    -\[w_i = s (\hat{w_i} + \beta)\]
    -
    -
    Parameters:
    -
      -
    • w (array) – Matrix to be quantize

    • -
    • scales (array) – The scales to use per group_size elements of w

    • -
    • biases (array) – The biases to use per group_size elements of w

    • -
    • group_size (int, optional) – The size of the group in w that shares a -scale and bias. (default: 64)

    • -
    • bits (int, optional) – The number of bits occupied by each element in -w. (default: 4)

    • -
    -
    -
    Returns:
    -

    The quantized version of w

    -
    -
    Return type:
    -

    array

    -
    -
    -
    - -
    - - -
    - - - - - - - - -
    - - - - -
    - - -
    -
    - - -
    - - -
    -
    -
    - - - - - -
    -
    - - \ No newline at end of file diff --git a/docs/build/html/python/_autosummary/mlx.core.fast.layer_norm.html b/docs/build/html/python/_autosummary/mlx.core.fast.layer_norm.html index 97287596..3f04d8c8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fast.layer_norm.html +++ b/docs/build/html/python/_autosummary/mlx.core.fast.layer_norm.html @@ -8,7 +8,7 @@ - mlx.core.fast.layer_norm — MLX 0.20.0 documentation + mlx.core.fast.layer_norm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fast.metal_kernel.html b/docs/build/html/python/_autosummary/mlx.core.fast.metal_kernel.html index 0a1c7d6c..727c2f48 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fast.metal_kernel.html +++ b/docs/build/html/python/_autosummary/mlx.core.fast.metal_kernel.html @@ -8,7 +8,7 @@ - mlx.core.fast.metal_kernel — MLX 0.20.0 documentation + mlx.core.fast.metal_kernel — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -48,10 +48,10 @@ - + - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -937,12 +938,12 @@ e.g. device @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fast.rope.html b/docs/build/html/python/_autosummary/mlx.core.fast.rope.html index 2c6c22d8..67698d35 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fast.rope.html +++ b/docs/build/html/python/_autosummary/mlx.core.fast.rope.html @@ -8,7 +8,7 @@ - mlx.core.fast.rope — MLX 0.20.0 documentation + mlx.core.fast.rope — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fast.scaled_dot_product_attention.html b/docs/build/html/python/_autosummary/mlx.core.fast.scaled_dot_product_attention.html index 1a8ec936..17c65c44 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fast.scaled_dot_product_attention.html +++ b/docs/build/html/python/_autosummary/mlx.core.fast.scaled_dot_product_attention.html @@ -8,7 +8,7 @@ - mlx.core.fast.scaled_dot_product_attention — MLX 0.20.0 documentation + mlx.core.fast.scaled_dot_product_attention — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -47,11 +47,11 @@ - + - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -877,14 +878,25 @@ the input precision.

    Note: For Grouped Query Attention and Multi-Query Attention, the k and v inputs should not be pre-tiled to match q.

    +

    In the following the dimensions are given by:

    +
      +
    • B: The batch size.

    • +
    • N_q: The number of query heads.

    • +
    • N_kv: The number of key and value heads.

    • +
    • T_q: The number of queries per example.

    • +
    • T_kv: The number of keys and values per example.

    • +
    • D: The per-head dimension.

    • +
    Parameters:
      -
    • q (array) – Input query array.

    • -
    • k (array) – Input keys array.

    • -
    • v (array) – Input values array.

    • +
    • q (array) – Queries with shape [B, N_q, T_q, D].

    • +
    • k (array) – Keys with shape [B, N_kv, T_kv, D].

    • +
    • v (array) – Values with shape [B, N_kv, T_kv, D].

    • scale (float) – Scale for queries (typically 1.0 / sqrt(q.shape(-1))

    • -
    • mask (array, optional) – An additive mask to apply to the query-key scores.

    • +
    • mask (array, optional) – An additive mask to apply to the query-key +scores. The mask can have at most 4 dimensions and must be +broadcast-compatible with the shape [B, N, T_q, T_kv].

    Returns:
    @@ -919,11 +931,11 @@ and v

    next

    -

    mlx.core.fast.affine_quantize

    +

    mlx.core.fast.metal_kernel

    diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.fft.html b/docs/build/html/python/_autosummary/mlx.core.fft.fft.html index 6fa04349..b040467e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.fft.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.fft.html @@ -8,7 +8,7 @@ - mlx.core.fft.fft — MLX 0.20.0 documentation + mlx.core.fft.fft — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.fft2.html b/docs/build/html/python/_autosummary/mlx.core.fft.fft2.html index ab9b7a00..3f91a21e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.fft2.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.fft2.html @@ -8,7 +8,7 @@ - mlx.core.fft.fft2 — MLX 0.20.0 documentation + mlx.core.fft.fft2 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.fftn.html b/docs/build/html/python/_autosummary/mlx.core.fft.fftn.html index 41210f04..d165e232 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.fftn.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.fftn.html @@ -8,7 +8,7 @@ - mlx.core.fft.fftn — MLX 0.20.0 documentation + mlx.core.fft.fftn — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.ifft.html b/docs/build/html/python/_autosummary/mlx.core.fft.ifft.html index 64718c95..7e633dcc 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.ifft.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.ifft.html @@ -8,7 +8,7 @@ - mlx.core.fft.ifft — MLX 0.20.0 documentation + mlx.core.fft.ifft — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.ifft2.html b/docs/build/html/python/_autosummary/mlx.core.fft.ifft2.html index 77277593..750a8a98 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.ifft2.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.ifft2.html @@ -8,7 +8,7 @@ - mlx.core.fft.ifft2 — MLX 0.20.0 documentation + mlx.core.fft.ifft2 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.ifftn.html b/docs/build/html/python/_autosummary/mlx.core.fft.ifftn.html index 40868024..f5e5b2f2 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.ifftn.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.ifftn.html @@ -8,7 +8,7 @@ - mlx.core.fft.ifftn — MLX 0.20.0 documentation + mlx.core.fft.ifftn — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.irfft.html b/docs/build/html/python/_autosummary/mlx.core.fft.irfft.html index d60e5561..dec9d88a 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.irfft.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.irfft.html @@ -8,7 +8,7 @@ - mlx.core.fft.irfft — MLX 0.20.0 documentation + mlx.core.fft.irfft — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.irfft2.html b/docs/build/html/python/_autosummary/mlx.core.fft.irfft2.html index acba21bc..5e61afe7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.irfft2.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.irfft2.html @@ -8,7 +8,7 @@ - mlx.core.fft.irfft2 — MLX 0.20.0 documentation + mlx.core.fft.irfft2 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.irfftn.html b/docs/build/html/python/_autosummary/mlx.core.fft.irfftn.html index d1b14d38..c67bc7bc 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.irfftn.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.irfftn.html @@ -8,7 +8,7 @@ - mlx.core.fft.irfftn — MLX 0.20.0 documentation + mlx.core.fft.irfftn — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.rfft.html b/docs/build/html/python/_autosummary/mlx.core.fft.rfft.html index 9bd83216..bbe18751 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.rfft.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.rfft.html @@ -8,7 +8,7 @@ - mlx.core.fft.rfft — MLX 0.20.0 documentation + mlx.core.fft.rfft — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.rfft2.html b/docs/build/html/python/_autosummary/mlx.core.fft.rfft2.html index 31781b96..83bb49c0 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.rfft2.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.rfft2.html @@ -8,7 +8,7 @@ - mlx.core.fft.rfft2 — MLX 0.20.0 documentation + mlx.core.fft.rfft2 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.fft.rfftn.html b/docs/build/html/python/_autosummary/mlx.core.fft.rfftn.html index ea80c133..fc752df0 100644 --- a/docs/build/html/python/_autosummary/mlx.core.fft.rfftn.html +++ b/docs/build/html/python/_autosummary/mlx.core.fft.rfftn.html @@ -8,7 +8,7 @@ - mlx.core.fft.rfftn — MLX 0.20.0 documentation + mlx.core.fft.rfftn — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.flatten.html b/docs/build/html/python/_autosummary/mlx.core.flatten.html index ba05386b..6a02a304 100644 --- a/docs/build/html/python/_autosummary/mlx.core.flatten.html +++ b/docs/build/html/python/_autosummary/mlx.core.flatten.html @@ -8,7 +8,7 @@ - mlx.core.flatten — MLX 0.20.0 documentation + mlx.core.flatten — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.floor.html b/docs/build/html/python/_autosummary/mlx.core.floor.html index f302dd5d..3133de92 100644 --- a/docs/build/html/python/_autosummary/mlx.core.floor.html +++ b/docs/build/html/python/_autosummary/mlx.core.floor.html @@ -8,7 +8,7 @@ - mlx.core.floor — MLX 0.20.0 documentation + mlx.core.floor — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.floor_divide.html b/docs/build/html/python/_autosummary/mlx.core.floor_divide.html index 4b9f0d16..46f020f6 100644 --- a/docs/build/html/python/_autosummary/mlx.core.floor_divide.html +++ b/docs/build/html/python/_autosummary/mlx.core.floor_divide.html @@ -8,7 +8,7 @@ - mlx.core.floor_divide — MLX 0.20.0 documentation + mlx.core.floor_divide — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.full.html b/docs/build/html/python/_autosummary/mlx.core.full.html index a78f8bb7..8c8b67d2 100644 --- a/docs/build/html/python/_autosummary/mlx.core.full.html +++ b/docs/build/html/python/_autosummary/mlx.core.full.html @@ -8,7 +8,7 @@ - mlx.core.full — MLX 0.20.0 documentation + mlx.core.full — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.gather_mm.html b/docs/build/html/python/_autosummary/mlx.core.gather_mm.html index 4ff9702c..dbf6052b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.gather_mm.html +++ b/docs/build/html/python/_autosummary/mlx.core.gather_mm.html @@ -8,7 +8,7 @@ - mlx.core.gather_mm — MLX 0.20.0 documentation + mlx.core.gather_mm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.gather_qmm.html b/docs/build/html/python/_autosummary/mlx.core.gather_qmm.html index 5f3e3cb3..fe599fe2 100644 --- a/docs/build/html/python/_autosummary/mlx.core.gather_qmm.html +++ b/docs/build/html/python/_autosummary/mlx.core.gather_qmm.html @@ -8,7 +8,7 @@ - mlx.core.gather_qmm — MLX 0.20.0 documentation + mlx.core.gather_qmm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.grad.html b/docs/build/html/python/_autosummary/mlx.core.grad.html index bff71576..05b0eb69 100644 --- a/docs/build/html/python/_autosummary/mlx.core.grad.html +++ b/docs/build/html/python/_autosummary/mlx.core.grad.html @@ -8,7 +8,7 @@ - mlx.core.grad — MLX 0.20.0 documentation + mlx.core.grad — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.greater.html b/docs/build/html/python/_autosummary/mlx.core.greater.html index c132fd28..0c9db7f9 100644 --- a/docs/build/html/python/_autosummary/mlx.core.greater.html +++ b/docs/build/html/python/_autosummary/mlx.core.greater.html @@ -8,7 +8,7 @@ - mlx.core.greater — MLX 0.20.0 documentation + mlx.core.greater — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.greater_equal.html b/docs/build/html/python/_autosummary/mlx.core.greater_equal.html index 27afd96b..c50e31df 100644 --- a/docs/build/html/python/_autosummary/mlx.core.greater_equal.html +++ b/docs/build/html/python/_autosummary/mlx.core.greater_equal.html @@ -8,7 +8,7 @@ - mlx.core.greater_equal — MLX 0.20.0 documentation + mlx.core.greater_equal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.hadamard_transform.html b/docs/build/html/python/_autosummary/mlx.core.hadamard_transform.html index 8f9ef1fb..a1190f54 100644 --- a/docs/build/html/python/_autosummary/mlx.core.hadamard_transform.html +++ b/docs/build/html/python/_autosummary/mlx.core.hadamard_transform.html @@ -8,7 +8,7 @@ - mlx.core.hadamard_transform — MLX 0.20.0 documentation + mlx.core.hadamard_transform — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.identity.html b/docs/build/html/python/_autosummary/mlx.core.identity.html index c65c927d..127234cf 100644 --- a/docs/build/html/python/_autosummary/mlx.core.identity.html +++ b/docs/build/html/python/_autosummary/mlx.core.identity.html @@ -8,7 +8,7 @@ - mlx.core.identity — MLX 0.20.0 documentation + mlx.core.identity — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.imag.html b/docs/build/html/python/_autosummary/mlx.core.imag.html index b6556c07..56c8e67b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.imag.html +++ b/docs/build/html/python/_autosummary/mlx.core.imag.html @@ -8,7 +8,7 @@ - mlx.core.imag — MLX 0.20.0 documentation + mlx.core.imag — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.inner.html b/docs/build/html/python/_autosummary/mlx.core.inner.html index 6bda4af5..2371e221 100644 --- a/docs/build/html/python/_autosummary/mlx.core.inner.html +++ b/docs/build/html/python/_autosummary/mlx.core.inner.html @@ -8,7 +8,7 @@ - mlx.core.inner — MLX 0.20.0 documentation + mlx.core.inner — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.isclose.html b/docs/build/html/python/_autosummary/mlx.core.isclose.html index 32a33bba..50c41fb6 100644 --- a/docs/build/html/python/_autosummary/mlx.core.isclose.html +++ b/docs/build/html/python/_autosummary/mlx.core.isclose.html @@ -8,7 +8,7 @@ - mlx.core.isclose — MLX 0.20.0 documentation + mlx.core.isclose — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.isfinite.html b/docs/build/html/python/_autosummary/mlx.core.isfinite.html index c2351b15..23ef27ef 100644 --- a/docs/build/html/python/_autosummary/mlx.core.isfinite.html +++ b/docs/build/html/python/_autosummary/mlx.core.isfinite.html @@ -8,7 +8,7 @@ - mlx.core.isfinite — MLX 0.20.0 documentation + mlx.core.isfinite — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.isinf.html b/docs/build/html/python/_autosummary/mlx.core.isinf.html index 36d1bb9c..db2d1cb8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.isinf.html +++ b/docs/build/html/python/_autosummary/mlx.core.isinf.html @@ -8,7 +8,7 @@ - mlx.core.isinf — MLX 0.20.0 documentation + mlx.core.isinf — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.isnan.html b/docs/build/html/python/_autosummary/mlx.core.isnan.html index d0e4e03a..78d6fec3 100644 --- a/docs/build/html/python/_autosummary/mlx.core.isnan.html +++ b/docs/build/html/python/_autosummary/mlx.core.isnan.html @@ -8,7 +8,7 @@ - mlx.core.isnan — MLX 0.20.0 documentation + mlx.core.isnan — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.isneginf.html b/docs/build/html/python/_autosummary/mlx.core.isneginf.html index 56448281..85528dca 100644 --- a/docs/build/html/python/_autosummary/mlx.core.isneginf.html +++ b/docs/build/html/python/_autosummary/mlx.core.isneginf.html @@ -8,7 +8,7 @@ - mlx.core.isneginf — MLX 0.20.0 documentation + mlx.core.isneginf — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.isposinf.html b/docs/build/html/python/_autosummary/mlx.core.isposinf.html index 34ab2729..6d366a24 100644 --- a/docs/build/html/python/_autosummary/mlx.core.isposinf.html +++ b/docs/build/html/python/_autosummary/mlx.core.isposinf.html @@ -8,7 +8,7 @@ - mlx.core.isposinf — MLX 0.20.0 documentation + mlx.core.isposinf — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.issubdtype.html b/docs/build/html/python/_autosummary/mlx.core.issubdtype.html index b922fcb8..29746498 100644 --- a/docs/build/html/python/_autosummary/mlx.core.issubdtype.html +++ b/docs/build/html/python/_autosummary/mlx.core.issubdtype.html @@ -8,7 +8,7 @@ - mlx.core.issubdtype — MLX 0.20.0 documentation + mlx.core.issubdtype — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.jvp.html b/docs/build/html/python/_autosummary/mlx.core.jvp.html index a8e672a4..ac833fa0 100644 --- a/docs/build/html/python/_autosummary/mlx.core.jvp.html +++ b/docs/build/html/python/_autosummary/mlx.core.jvp.html @@ -8,7 +8,7 @@ - mlx.core.jvp — MLX 0.20.0 documentation + mlx.core.jvp — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.left_shift.html b/docs/build/html/python/_autosummary/mlx.core.left_shift.html index f08d839a..4d44d35b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.left_shift.html +++ b/docs/build/html/python/_autosummary/mlx.core.left_shift.html @@ -8,7 +8,7 @@ - mlx.core.left_shift — MLX 0.20.0 documentation + mlx.core.left_shift — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.less.html b/docs/build/html/python/_autosummary/mlx.core.less.html index f9aac6dd..9b0ab901 100644 --- a/docs/build/html/python/_autosummary/mlx.core.less.html +++ b/docs/build/html/python/_autosummary/mlx.core.less.html @@ -8,7 +8,7 @@ - mlx.core.less — MLX 0.20.0 documentation + mlx.core.less — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.less_equal.html b/docs/build/html/python/_autosummary/mlx.core.less_equal.html index 8431edbe..ea7e8723 100644 --- a/docs/build/html/python/_autosummary/mlx.core.less_equal.html +++ b/docs/build/html/python/_autosummary/mlx.core.less_equal.html @@ -8,7 +8,7 @@ - mlx.core.less_equal — MLX 0.20.0 documentation + mlx.core.less_equal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.cholesky.html b/docs/build/html/python/_autosummary/mlx.core.linalg.cholesky.html index 37e6c97e..39d7bcba 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.cholesky.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.cholesky.html @@ -8,7 +8,7 @@ - mlx.core.linalg.cholesky — MLX 0.20.0 documentation + mlx.core.linalg.cholesky — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.cholesky_inv.html b/docs/build/html/python/_autosummary/mlx.core.linalg.cholesky_inv.html index 537472e2..6db52db0 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.cholesky_inv.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.cholesky_inv.html @@ -8,7 +8,7 @@ - mlx.core.linalg.cholesky_inv — MLX 0.20.0 documentation + mlx.core.linalg.cholesky_inv — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.cross.html b/docs/build/html/python/_autosummary/mlx.core.linalg.cross.html index e60f70ff..fbf8dd71 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.cross.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.cross.html @@ -8,7 +8,7 @@ - mlx.core.linalg.cross — MLX 0.20.0 documentation + mlx.core.linalg.cross — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.eigh.html b/docs/build/html/python/_autosummary/mlx.core.linalg.eigh.html index 2f3d2c1d..f3c93513 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.eigh.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.eigh.html @@ -8,7 +8,7 @@ - mlx.core.linalg.eigh — MLX 0.20.0 documentation + mlx.core.linalg.eigh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.eigvalsh.html b/docs/build/html/python/_autosummary/mlx.core.linalg.eigvalsh.html index df988dc5..ff88174c 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.eigvalsh.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.eigvalsh.html @@ -8,7 +8,7 @@ - mlx.core.linalg.eigvalsh — MLX 0.20.0 documentation + mlx.core.linalg.eigvalsh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.inv.html b/docs/build/html/python/_autosummary/mlx.core.linalg.inv.html index bad9dc47..21107cab 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.inv.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.inv.html @@ -8,7 +8,7 @@ - mlx.core.linalg.inv — MLX 0.20.0 documentation + mlx.core.linalg.inv — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.norm.html b/docs/build/html/python/_autosummary/mlx.core.linalg.norm.html index d8b9beb4..bcf97ca9 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.norm.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.norm.html @@ -8,7 +8,7 @@ - mlx.core.linalg.norm — MLX 0.20.0 documentation + mlx.core.linalg.norm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.qr.html b/docs/build/html/python/_autosummary/mlx.core.linalg.qr.html index 7c28021f..bc9715c4 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.qr.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.qr.html @@ -8,7 +8,7 @@ - mlx.core.linalg.qr — MLX 0.20.0 documentation + mlx.core.linalg.qr — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.svd.html b/docs/build/html/python/_autosummary/mlx.core.linalg.svd.html index 05d6ca0b..d0b08c36 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.svd.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.svd.html @@ -8,7 +8,7 @@ - mlx.core.linalg.svd — MLX 0.20.0 documentation + mlx.core.linalg.svd — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linalg.tri_inv.html b/docs/build/html/python/_autosummary/mlx.core.linalg.tri_inv.html index e0953762..d570221b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linalg.tri_inv.html +++ b/docs/build/html/python/_autosummary/mlx.core.linalg.tri_inv.html @@ -8,7 +8,7 @@ - mlx.core.linalg.tri_inv — MLX 0.20.0 documentation + mlx.core.linalg.tri_inv — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.linspace.html b/docs/build/html/python/_autosummary/mlx.core.linspace.html index bcbc81f6..e777279c 100644 --- a/docs/build/html/python/_autosummary/mlx.core.linspace.html +++ b/docs/build/html/python/_autosummary/mlx.core.linspace.html @@ -8,7 +8,7 @@ - mlx.core.linspace — MLX 0.20.0 documentation + mlx.core.linspace — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.load.html b/docs/build/html/python/_autosummary/mlx.core.load.html index 67dc7aed..b8e6fe8a 100644 --- a/docs/build/html/python/_autosummary/mlx.core.load.html +++ b/docs/build/html/python/_autosummary/mlx.core.load.html @@ -8,7 +8,7 @@ - mlx.core.load — MLX 0.20.0 documentation + mlx.core.load — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.log.html b/docs/build/html/python/_autosummary/mlx.core.log.html index 218e2854..7da9fd9e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.log.html +++ b/docs/build/html/python/_autosummary/mlx.core.log.html @@ -8,7 +8,7 @@ - mlx.core.log — MLX 0.20.0 documentation + mlx.core.log — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.log10.html b/docs/build/html/python/_autosummary/mlx.core.log10.html index cccd93b4..6b89cbd2 100644 --- a/docs/build/html/python/_autosummary/mlx.core.log10.html +++ b/docs/build/html/python/_autosummary/mlx.core.log10.html @@ -8,7 +8,7 @@ - mlx.core.log10 — MLX 0.20.0 documentation + mlx.core.log10 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.log1p.html b/docs/build/html/python/_autosummary/mlx.core.log1p.html index 64124d75..7c4eaab8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.log1p.html +++ b/docs/build/html/python/_autosummary/mlx.core.log1p.html @@ -8,7 +8,7 @@ - mlx.core.log1p — MLX 0.20.0 documentation + mlx.core.log1p — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.log2.html b/docs/build/html/python/_autosummary/mlx.core.log2.html index a0327394..402aee17 100644 --- a/docs/build/html/python/_autosummary/mlx.core.log2.html +++ b/docs/build/html/python/_autosummary/mlx.core.log2.html @@ -8,7 +8,7 @@ - mlx.core.log2 — MLX 0.20.0 documentation + mlx.core.log2 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.logaddexp.html b/docs/build/html/python/_autosummary/mlx.core.logaddexp.html index a12075db..fa8d3693 100644 --- a/docs/build/html/python/_autosummary/mlx.core.logaddexp.html +++ b/docs/build/html/python/_autosummary/mlx.core.logaddexp.html @@ -8,7 +8,7 @@ - mlx.core.logaddexp — MLX 0.20.0 documentation + mlx.core.logaddexp — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.logical_and.html b/docs/build/html/python/_autosummary/mlx.core.logical_and.html index a45bf29a..b42d4c20 100644 --- a/docs/build/html/python/_autosummary/mlx.core.logical_and.html +++ b/docs/build/html/python/_autosummary/mlx.core.logical_and.html @@ -8,7 +8,7 @@ - mlx.core.logical_and — MLX 0.20.0 documentation + mlx.core.logical_and — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.logical_not.html b/docs/build/html/python/_autosummary/mlx.core.logical_not.html index e28a858d..d7b68e15 100644 --- a/docs/build/html/python/_autosummary/mlx.core.logical_not.html +++ b/docs/build/html/python/_autosummary/mlx.core.logical_not.html @@ -8,7 +8,7 @@ - mlx.core.logical_not — MLX 0.20.0 documentation + mlx.core.logical_not — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.logical_or.html b/docs/build/html/python/_autosummary/mlx.core.logical_or.html index 6dd3ead1..7e3d1207 100644 --- a/docs/build/html/python/_autosummary/mlx.core.logical_or.html +++ b/docs/build/html/python/_autosummary/mlx.core.logical_or.html @@ -8,7 +8,7 @@ - mlx.core.logical_or — MLX 0.20.0 documentation + mlx.core.logical_or — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.logsumexp.html b/docs/build/html/python/_autosummary/mlx.core.logsumexp.html index 340ec999..e366a140 100644 --- a/docs/build/html/python/_autosummary/mlx.core.logsumexp.html +++ b/docs/build/html/python/_autosummary/mlx.core.logsumexp.html @@ -8,7 +8,7 @@ - mlx.core.logsumexp — MLX 0.20.0 documentation + mlx.core.logsumexp — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.matmul.html b/docs/build/html/python/_autosummary/mlx.core.matmul.html index 30a2e8db..a4d6cdcf 100644 --- a/docs/build/html/python/_autosummary/mlx.core.matmul.html +++ b/docs/build/html/python/_autosummary/mlx.core.matmul.html @@ -8,7 +8,7 @@ - mlx.core.matmul — MLX 0.20.0 documentation + mlx.core.matmul — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.max.html b/docs/build/html/python/_autosummary/mlx.core.max.html index e8e9ed95..2d753fd7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.max.html +++ b/docs/build/html/python/_autosummary/mlx.core.max.html @@ -8,7 +8,7 @@ - mlx.core.max — MLX 0.20.0 documentation + mlx.core.max — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.maximum.html b/docs/build/html/python/_autosummary/mlx.core.maximum.html index 94540aec..905a5679 100644 --- a/docs/build/html/python/_autosummary/mlx.core.maximum.html +++ b/docs/build/html/python/_autosummary/mlx.core.maximum.html @@ -8,7 +8,7 @@ - mlx.core.maximum — MLX 0.20.0 documentation + mlx.core.maximum — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.mean.html b/docs/build/html/python/_autosummary/mlx.core.mean.html index d913aa88..407e1355 100644 --- a/docs/build/html/python/_autosummary/mlx.core.mean.html +++ b/docs/build/html/python/_autosummary/mlx.core.mean.html @@ -8,7 +8,7 @@ - mlx.core.mean — MLX 0.20.0 documentation + mlx.core.mean — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.meshgrid.html b/docs/build/html/python/_autosummary/mlx.core.meshgrid.html index 8076eef3..4f1b4bd5 100644 --- a/docs/build/html/python/_autosummary/mlx.core.meshgrid.html +++ b/docs/build/html/python/_autosummary/mlx.core.meshgrid.html @@ -8,7 +8,7 @@ - mlx.core.meshgrid — MLX 0.20.0 documentation + mlx.core.meshgrid — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.clear_cache.html b/docs/build/html/python/_autosummary/mlx.core.metal.clear_cache.html index 2bfe05a3..61af6500 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.clear_cache.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.clear_cache.html @@ -8,7 +8,7 @@ - mlx.core.metal.clear_cache — MLX 0.20.0 documentation + mlx.core.metal.clear_cache — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.device_info.html b/docs/build/html/python/_autosummary/mlx.core.metal.device_info.html index 1cf6d14b..f902a2f7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.device_info.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.device_info.html @@ -8,7 +8,7 @@ - mlx.core.metal.device_info — MLX 0.20.0 documentation + mlx.core.metal.device_info — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.get_active_memory.html b/docs/build/html/python/_autosummary/mlx.core.metal.get_active_memory.html index 6c073814..d7df4072 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.get_active_memory.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.get_active_memory.html @@ -8,7 +8,7 @@ - mlx.core.metal.get_active_memory — MLX 0.20.0 documentation + mlx.core.metal.get_active_memory — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.get_cache_memory.html b/docs/build/html/python/_autosummary/mlx.core.metal.get_cache_memory.html index dba50670..e862a436 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.get_cache_memory.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.get_cache_memory.html @@ -8,7 +8,7 @@ - mlx.core.metal.get_cache_memory — MLX 0.20.0 documentation + mlx.core.metal.get_cache_memory — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.get_peak_memory.html b/docs/build/html/python/_autosummary/mlx.core.metal.get_peak_memory.html index c82a0751..405fc9ee 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.get_peak_memory.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.get_peak_memory.html @@ -8,7 +8,7 @@ - mlx.core.metal.get_peak_memory — MLX 0.20.0 documentation + mlx.core.metal.get_peak_memory — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.is_available.html b/docs/build/html/python/_autosummary/mlx.core.metal.is_available.html index c3dd502b..9f569225 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.is_available.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.is_available.html @@ -8,7 +8,7 @@ - mlx.core.metal.is_available — MLX 0.20.0 documentation + mlx.core.metal.is_available — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.reset_peak_memory.html b/docs/build/html/python/_autosummary/mlx.core.metal.reset_peak_memory.html index c77c2410..08b8899e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.reset_peak_memory.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.reset_peak_memory.html @@ -8,7 +8,7 @@ - mlx.core.metal.reset_peak_memory — MLX 0.20.0 documentation + mlx.core.metal.reset_peak_memory — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.set_cache_limit.html b/docs/build/html/python/_autosummary/mlx.core.metal.set_cache_limit.html index d74293c4..eceee3b8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.set_cache_limit.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.set_cache_limit.html @@ -8,7 +8,7 @@ - mlx.core.metal.set_cache_limit — MLX 0.20.0 documentation + mlx.core.metal.set_cache_limit — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.set_memory_limit.html b/docs/build/html/python/_autosummary/mlx.core.metal.set_memory_limit.html index 0782b404..b9274bd5 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.set_memory_limit.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.set_memory_limit.html @@ -8,7 +8,7 @@ - mlx.core.metal.set_memory_limit — MLX 0.20.0 documentation + mlx.core.metal.set_memory_limit — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.set_wired_limit.html b/docs/build/html/python/_autosummary/mlx.core.metal.set_wired_limit.html index 3caa647a..a128c02c 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.set_wired_limit.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.set_wired_limit.html @@ -8,7 +8,7 @@ - mlx.core.metal.set_wired_limit — MLX 0.20.0 documentation + mlx.core.metal.set_wired_limit — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.start_capture.html b/docs/build/html/python/_autosummary/mlx.core.metal.start_capture.html index bd9b77b8..92164abe 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.start_capture.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.start_capture.html @@ -8,7 +8,7 @@ - mlx.core.metal.start_capture — MLX 0.20.0 documentation + mlx.core.metal.start_capture — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.metal.stop_capture.html b/docs/build/html/python/_autosummary/mlx.core.metal.stop_capture.html index b1d547ef..c6235717 100644 --- a/docs/build/html/python/_autosummary/mlx.core.metal.stop_capture.html +++ b/docs/build/html/python/_autosummary/mlx.core.metal.stop_capture.html @@ -8,7 +8,7 @@ - mlx.core.metal.stop_capture — MLX 0.20.0 documentation + mlx.core.metal.stop_capture — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.min.html b/docs/build/html/python/_autosummary/mlx.core.min.html index 299e2e57..79ab3f5e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.min.html +++ b/docs/build/html/python/_autosummary/mlx.core.min.html @@ -8,7 +8,7 @@ - mlx.core.min — MLX 0.20.0 documentation + mlx.core.min — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.minimum.html b/docs/build/html/python/_autosummary/mlx.core.minimum.html index fac9d296..d5c62cd7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.minimum.html +++ b/docs/build/html/python/_autosummary/mlx.core.minimum.html @@ -8,7 +8,7 @@ - mlx.core.minimum — MLX 0.20.0 documentation + mlx.core.minimum — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.moveaxis.html b/docs/build/html/python/_autosummary/mlx.core.moveaxis.html index 27a98b8e..752e4758 100644 --- a/docs/build/html/python/_autosummary/mlx.core.moveaxis.html +++ b/docs/build/html/python/_autosummary/mlx.core.moveaxis.html @@ -8,7 +8,7 @@ - mlx.core.moveaxis — MLX 0.20.0 documentation + mlx.core.moveaxis — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.multiply.html b/docs/build/html/python/_autosummary/mlx.core.multiply.html index fd9d7c78..e5e04701 100644 --- a/docs/build/html/python/_autosummary/mlx.core.multiply.html +++ b/docs/build/html/python/_autosummary/mlx.core.multiply.html @@ -8,7 +8,7 @@ - mlx.core.multiply — MLX 0.20.0 documentation + mlx.core.multiply — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.nan_to_num.html b/docs/build/html/python/_autosummary/mlx.core.nan_to_num.html index 71fc64d2..6aa383ae 100644 --- a/docs/build/html/python/_autosummary/mlx.core.nan_to_num.html +++ b/docs/build/html/python/_autosummary/mlx.core.nan_to_num.html @@ -8,7 +8,7 @@ - mlx.core.nan_to_num — MLX 0.20.0 documentation + mlx.core.nan_to_num — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.negative.html b/docs/build/html/python/_autosummary/mlx.core.negative.html index bc47c1e9..604582f8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.negative.html +++ b/docs/build/html/python/_autosummary/mlx.core.negative.html @@ -8,7 +8,7 @@ - mlx.core.negative — MLX 0.20.0 documentation + mlx.core.negative — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.new_stream.html b/docs/build/html/python/_autosummary/mlx.core.new_stream.html index 93c7b6dd..6966b065 100644 --- a/docs/build/html/python/_autosummary/mlx.core.new_stream.html +++ b/docs/build/html/python/_autosummary/mlx.core.new_stream.html @@ -8,7 +8,7 @@ - mlx.core.new_stream — MLX 0.20.0 documentation + mlx.core.new_stream — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.not_equal.html b/docs/build/html/python/_autosummary/mlx.core.not_equal.html index 5dc9f954..34088ed9 100644 --- a/docs/build/html/python/_autosummary/mlx.core.not_equal.html +++ b/docs/build/html/python/_autosummary/mlx.core.not_equal.html @@ -8,7 +8,7 @@ - mlx.core.not_equal — MLX 0.20.0 documentation + mlx.core.not_equal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.ones.html b/docs/build/html/python/_autosummary/mlx.core.ones.html index 130ac326..6a636b60 100644 --- a/docs/build/html/python/_autosummary/mlx.core.ones.html +++ b/docs/build/html/python/_autosummary/mlx.core.ones.html @@ -8,7 +8,7 @@ - mlx.core.ones — MLX 0.20.0 documentation + mlx.core.ones — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.ones_like.html b/docs/build/html/python/_autosummary/mlx.core.ones_like.html index e8fcda56..2d70f7ea 100644 --- a/docs/build/html/python/_autosummary/mlx.core.ones_like.html +++ b/docs/build/html/python/_autosummary/mlx.core.ones_like.html @@ -8,7 +8,7 @@ - mlx.core.ones_like — MLX 0.20.0 documentation + mlx.core.ones_like — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.outer.html b/docs/build/html/python/_autosummary/mlx.core.outer.html index f64988f9..3b42da8a 100644 --- a/docs/build/html/python/_autosummary/mlx.core.outer.html +++ b/docs/build/html/python/_autosummary/mlx.core.outer.html @@ -8,7 +8,7 @@ - mlx.core.outer — MLX 0.20.0 documentation + mlx.core.outer — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.pad.html b/docs/build/html/python/_autosummary/mlx.core.pad.html index 6e6379f0..257261da 100644 --- a/docs/build/html/python/_autosummary/mlx.core.pad.html +++ b/docs/build/html/python/_autosummary/mlx.core.pad.html @@ -8,7 +8,7 @@ - mlx.core.pad — MLX 0.20.0 documentation + mlx.core.pad — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.partition.html b/docs/build/html/python/_autosummary/mlx.core.partition.html index 0eb470c3..f0d0bf52 100644 --- a/docs/build/html/python/_autosummary/mlx.core.partition.html +++ b/docs/build/html/python/_autosummary/mlx.core.partition.html @@ -8,7 +8,7 @@ - mlx.core.partition — MLX 0.20.0 documentation + mlx.core.partition — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.power.html b/docs/build/html/python/_autosummary/mlx.core.power.html index 1ab38085..f1156b4f 100644 --- a/docs/build/html/python/_autosummary/mlx.core.power.html +++ b/docs/build/html/python/_autosummary/mlx.core.power.html @@ -8,7 +8,7 @@ - mlx.core.power — MLX 0.20.0 documentation + mlx.core.power — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.prod.html b/docs/build/html/python/_autosummary/mlx.core.prod.html index fde44364..c58ee368 100644 --- a/docs/build/html/python/_autosummary/mlx.core.prod.html +++ b/docs/build/html/python/_autosummary/mlx.core.prod.html @@ -8,7 +8,7 @@ - mlx.core.prod — MLX 0.20.0 documentation + mlx.core.prod — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.put_along_axis.html b/docs/build/html/python/_autosummary/mlx.core.put_along_axis.html index 8d9b5da9..1ea8c032 100644 --- a/docs/build/html/python/_autosummary/mlx.core.put_along_axis.html +++ b/docs/build/html/python/_autosummary/mlx.core.put_along_axis.html @@ -8,7 +8,7 @@ - mlx.core.put_along_axis — MLX 0.20.0 documentation + mlx.core.put_along_axis — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.quantize.html b/docs/build/html/python/_autosummary/mlx.core.quantize.html index 355df631..062ad827 100644 --- a/docs/build/html/python/_autosummary/mlx.core.quantize.html +++ b/docs/build/html/python/_autosummary/mlx.core.quantize.html @@ -8,7 +8,7 @@ - mlx.core.quantize — MLX 0.20.0 documentation + mlx.core.quantize — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.quantized_matmul.html b/docs/build/html/python/_autosummary/mlx.core.quantized_matmul.html index 084a4786..199dab1b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.quantized_matmul.html +++ b/docs/build/html/python/_autosummary/mlx.core.quantized_matmul.html @@ -8,7 +8,7 @@ - mlx.core.quantized_matmul — MLX 0.20.0 documentation + mlx.core.quantized_matmul — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.radians.html b/docs/build/html/python/_autosummary/mlx.core.radians.html index 66f81ca8..e40c69c8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.radians.html +++ b/docs/build/html/python/_autosummary/mlx.core.radians.html @@ -8,7 +8,7 @@ - mlx.core.radians — MLX 0.20.0 documentation + mlx.core.radians — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.bernoulli.html b/docs/build/html/python/_autosummary/mlx.core.random.bernoulli.html index bae4cd13..a778d2b4 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.bernoulli.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.bernoulli.html @@ -8,7 +8,7 @@ - mlx.core.random.bernoulli — MLX 0.20.0 documentation + mlx.core.random.bernoulli — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.categorical.html b/docs/build/html/python/_autosummary/mlx.core.random.categorical.html index 270b1d5a..090a397b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.categorical.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.categorical.html @@ -8,7 +8,7 @@ - mlx.core.random.categorical — MLX 0.20.0 documentation + mlx.core.random.categorical — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.gumbel.html b/docs/build/html/python/_autosummary/mlx.core.random.gumbel.html index 780f5fc6..3b564189 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.gumbel.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.gumbel.html @@ -8,7 +8,7 @@ - mlx.core.random.gumbel — MLX 0.20.0 documentation + mlx.core.random.gumbel — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.key.html b/docs/build/html/python/_autosummary/mlx.core.random.key.html index c7fe74d4..d8ed1563 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.key.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.key.html @@ -8,7 +8,7 @@ - mlx.core.random.key — MLX 0.20.0 documentation + mlx.core.random.key — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.laplace.html b/docs/build/html/python/_autosummary/mlx.core.random.laplace.html index 49c74b43..debc0b90 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.laplace.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.laplace.html @@ -8,7 +8,7 @@ - mlx.core.random.laplace — MLX 0.20.0 documentation + mlx.core.random.laplace — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.multivariate_normal.html b/docs/build/html/python/_autosummary/mlx.core.random.multivariate_normal.html index 392d7ef2..aa1e1130 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.multivariate_normal.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.multivariate_normal.html @@ -8,7 +8,7 @@ - mlx.core.random.multivariate_normal — MLX 0.20.0 documentation + mlx.core.random.multivariate_normal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.normal.html b/docs/build/html/python/_autosummary/mlx.core.random.normal.html index 8b53a37f..18f71685 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.normal.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.normal.html @@ -8,7 +8,7 @@ - mlx.core.random.normal — MLX 0.20.0 documentation + mlx.core.random.normal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.permutation.html b/docs/build/html/python/_autosummary/mlx.core.random.permutation.html index ed8fe163..06e5a06e 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.permutation.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.permutation.html @@ -8,7 +8,7 @@ - mlx.core.random.permutation — MLX 0.20.0 documentation + mlx.core.random.permutation — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.randint.html b/docs/build/html/python/_autosummary/mlx.core.random.randint.html index 58561033..6cf23006 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.randint.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.randint.html @@ -8,7 +8,7 @@ - mlx.core.random.randint — MLX 0.20.0 documentation + mlx.core.random.randint — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.seed.html b/docs/build/html/python/_autosummary/mlx.core.random.seed.html index 1685e59e..3439b8a0 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.seed.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.seed.html @@ -8,7 +8,7 @@ - mlx.core.random.seed — MLX 0.20.0 documentation + mlx.core.random.seed — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.split.html b/docs/build/html/python/_autosummary/mlx.core.random.split.html index 12432f38..98639b5d 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.split.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.split.html @@ -8,7 +8,7 @@ - mlx.core.random.split — MLX 0.20.0 documentation + mlx.core.random.split — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.truncated_normal.html b/docs/build/html/python/_autosummary/mlx.core.random.truncated_normal.html index 6a3e43be..71ddd9e1 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.truncated_normal.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.truncated_normal.html @@ -8,7 +8,7 @@ - mlx.core.random.truncated_normal — MLX 0.20.0 documentation + mlx.core.random.truncated_normal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.random.uniform.html b/docs/build/html/python/_autosummary/mlx.core.random.uniform.html index 2a28834e..f24e4703 100644 --- a/docs/build/html/python/_autosummary/mlx.core.random.uniform.html +++ b/docs/build/html/python/_autosummary/mlx.core.random.uniform.html @@ -8,7 +8,7 @@ - mlx.core.random.uniform — MLX 0.20.0 documentation + mlx.core.random.uniform — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.real.html b/docs/build/html/python/_autosummary/mlx.core.real.html index 35c90fd0..97f14bbe 100644 --- a/docs/build/html/python/_autosummary/mlx.core.real.html +++ b/docs/build/html/python/_autosummary/mlx.core.real.html @@ -8,7 +8,7 @@ - mlx.core.real — MLX 0.20.0 documentation + mlx.core.real — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.reciprocal.html b/docs/build/html/python/_autosummary/mlx.core.reciprocal.html index 98684163..91694280 100644 --- a/docs/build/html/python/_autosummary/mlx.core.reciprocal.html +++ b/docs/build/html/python/_autosummary/mlx.core.reciprocal.html @@ -8,7 +8,7 @@ - mlx.core.reciprocal — MLX 0.20.0 documentation + mlx.core.reciprocal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.remainder.html b/docs/build/html/python/_autosummary/mlx.core.remainder.html index d808f2b7..623e2c84 100644 --- a/docs/build/html/python/_autosummary/mlx.core.remainder.html +++ b/docs/build/html/python/_autosummary/mlx.core.remainder.html @@ -8,7 +8,7 @@ - mlx.core.remainder — MLX 0.20.0 documentation + mlx.core.remainder — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.repeat.html b/docs/build/html/python/_autosummary/mlx.core.repeat.html index fa40bdc1..2e35cc60 100644 --- a/docs/build/html/python/_autosummary/mlx.core.repeat.html +++ b/docs/build/html/python/_autosummary/mlx.core.repeat.html @@ -8,7 +8,7 @@ - mlx.core.repeat — MLX 0.20.0 documentation + mlx.core.repeat — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.reshape.html b/docs/build/html/python/_autosummary/mlx.core.reshape.html index b0805d3c..1529bd88 100644 --- a/docs/build/html/python/_autosummary/mlx.core.reshape.html +++ b/docs/build/html/python/_autosummary/mlx.core.reshape.html @@ -8,7 +8,7 @@ - mlx.core.reshape — MLX 0.20.0 documentation + mlx.core.reshape — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.right_shift.html b/docs/build/html/python/_autosummary/mlx.core.right_shift.html index f1a4da0f..d4602616 100644 --- a/docs/build/html/python/_autosummary/mlx.core.right_shift.html +++ b/docs/build/html/python/_autosummary/mlx.core.right_shift.html @@ -8,7 +8,7 @@ - mlx.core.right_shift — MLX 0.20.0 documentation + mlx.core.right_shift — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.roll.html b/docs/build/html/python/_autosummary/mlx.core.roll.html index d7fc4582..0f022bcb 100644 --- a/docs/build/html/python/_autosummary/mlx.core.roll.html +++ b/docs/build/html/python/_autosummary/mlx.core.roll.html @@ -8,7 +8,7 @@ - mlx.core.roll — MLX 0.20.0 documentation + mlx.core.roll — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.round.html b/docs/build/html/python/_autosummary/mlx.core.round.html index 7b2238de..4eddc4a4 100644 --- a/docs/build/html/python/_autosummary/mlx.core.round.html +++ b/docs/build/html/python/_autosummary/mlx.core.round.html @@ -8,7 +8,7 @@ - mlx.core.round — MLX 0.20.0 documentation + mlx.core.round — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.rsqrt.html b/docs/build/html/python/_autosummary/mlx.core.rsqrt.html index f7bbc9fa..faf229db 100644 --- a/docs/build/html/python/_autosummary/mlx.core.rsqrt.html +++ b/docs/build/html/python/_autosummary/mlx.core.rsqrt.html @@ -8,7 +8,7 @@ - mlx.core.rsqrt — MLX 0.20.0 documentation + mlx.core.rsqrt — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.save.html b/docs/build/html/python/_autosummary/mlx.core.save.html index 9aa30abb..a64cbd5d 100644 --- a/docs/build/html/python/_autosummary/mlx.core.save.html +++ b/docs/build/html/python/_autosummary/mlx.core.save.html @@ -8,7 +8,7 @@ - mlx.core.save — MLX 0.20.0 documentation + mlx.core.save — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.save_gguf.html b/docs/build/html/python/_autosummary/mlx.core.save_gguf.html index 563d0f6b..eb47b604 100644 --- a/docs/build/html/python/_autosummary/mlx.core.save_gguf.html +++ b/docs/build/html/python/_autosummary/mlx.core.save_gguf.html @@ -8,7 +8,7 @@ - mlx.core.save_gguf — MLX 0.20.0 documentation + mlx.core.save_gguf — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.save_safetensors.html b/docs/build/html/python/_autosummary/mlx.core.save_safetensors.html index ee029ec2..1c1abf5b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.save_safetensors.html +++ b/docs/build/html/python/_autosummary/mlx.core.save_safetensors.html @@ -8,7 +8,7 @@ - mlx.core.save_safetensors — MLX 0.20.0 documentation + mlx.core.save_safetensors — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.savez.html b/docs/build/html/python/_autosummary/mlx.core.savez.html index 7640aabc..9180168b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.savez.html +++ b/docs/build/html/python/_autosummary/mlx.core.savez.html @@ -8,7 +8,7 @@ - mlx.core.savez — MLX 0.20.0 documentation + mlx.core.savez — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.savez_compressed.html b/docs/build/html/python/_autosummary/mlx.core.savez_compressed.html index bd849359..5d3b133c 100644 --- a/docs/build/html/python/_autosummary/mlx.core.savez_compressed.html +++ b/docs/build/html/python/_autosummary/mlx.core.savez_compressed.html @@ -8,7 +8,7 @@ - mlx.core.savez_compressed — MLX 0.20.0 documentation + mlx.core.savez_compressed — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.set_default_device.html b/docs/build/html/python/_autosummary/mlx.core.set_default_device.html index c97ec5a0..3d9e5dda 100644 --- a/docs/build/html/python/_autosummary/mlx.core.set_default_device.html +++ b/docs/build/html/python/_autosummary/mlx.core.set_default_device.html @@ -8,7 +8,7 @@ - mlx.core.set_default_device — MLX 0.20.0 documentation + mlx.core.set_default_device — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.set_default_stream.html b/docs/build/html/python/_autosummary/mlx.core.set_default_stream.html index dfedfe67..3837bce6 100644 --- a/docs/build/html/python/_autosummary/mlx.core.set_default_stream.html +++ b/docs/build/html/python/_autosummary/mlx.core.set_default_stream.html @@ -8,7 +8,7 @@ - mlx.core.set_default_stream — MLX 0.20.0 documentation + mlx.core.set_default_stream — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.sigmoid.html b/docs/build/html/python/_autosummary/mlx.core.sigmoid.html index 33ef7190..e440fb68 100644 --- a/docs/build/html/python/_autosummary/mlx.core.sigmoid.html +++ b/docs/build/html/python/_autosummary/mlx.core.sigmoid.html @@ -8,7 +8,7 @@ - mlx.core.sigmoid — MLX 0.20.0 documentation + mlx.core.sigmoid — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.sign.html b/docs/build/html/python/_autosummary/mlx.core.sign.html index c7c7fcee..326d2b7a 100644 --- a/docs/build/html/python/_autosummary/mlx.core.sign.html +++ b/docs/build/html/python/_autosummary/mlx.core.sign.html @@ -8,7 +8,7 @@ - mlx.core.sign — MLX 0.20.0 documentation + mlx.core.sign — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.sin.html b/docs/build/html/python/_autosummary/mlx.core.sin.html index 04802634..ea1bf29b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.sin.html +++ b/docs/build/html/python/_autosummary/mlx.core.sin.html @@ -8,7 +8,7 @@ - mlx.core.sin — MLX 0.20.0 documentation + mlx.core.sin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.sinh.html b/docs/build/html/python/_autosummary/mlx.core.sinh.html index ba288236..72ea18f3 100644 --- a/docs/build/html/python/_autosummary/mlx.core.sinh.html +++ b/docs/build/html/python/_autosummary/mlx.core.sinh.html @@ -8,7 +8,7 @@ - mlx.core.sinh — MLX 0.20.0 documentation + mlx.core.sinh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.softmax.html b/docs/build/html/python/_autosummary/mlx.core.softmax.html index ecddacb3..8143ce0c 100644 --- a/docs/build/html/python/_autosummary/mlx.core.softmax.html +++ b/docs/build/html/python/_autosummary/mlx.core.softmax.html @@ -8,7 +8,7 @@ - mlx.core.softmax — MLX 0.20.0 documentation + mlx.core.softmax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.sort.html b/docs/build/html/python/_autosummary/mlx.core.sort.html index 2fee164e..2178bc20 100644 --- a/docs/build/html/python/_autosummary/mlx.core.sort.html +++ b/docs/build/html/python/_autosummary/mlx.core.sort.html @@ -8,7 +8,7 @@ - mlx.core.sort — MLX 0.20.0 documentation + mlx.core.sort — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.split.html b/docs/build/html/python/_autosummary/mlx.core.split.html index 089ca9ab..d4d5a2ad 100644 --- a/docs/build/html/python/_autosummary/mlx.core.split.html +++ b/docs/build/html/python/_autosummary/mlx.core.split.html @@ -8,7 +8,7 @@ - mlx.core.split — MLX 0.20.0 documentation + mlx.core.split — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.sqrt.html b/docs/build/html/python/_autosummary/mlx.core.sqrt.html index 17b71396..049f15b9 100644 --- a/docs/build/html/python/_autosummary/mlx.core.sqrt.html +++ b/docs/build/html/python/_autosummary/mlx.core.sqrt.html @@ -8,7 +8,7 @@ - mlx.core.sqrt — MLX 0.20.0 documentation + mlx.core.sqrt — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.square.html b/docs/build/html/python/_autosummary/mlx.core.square.html index 2c1744cc..afd87c2b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.square.html +++ b/docs/build/html/python/_autosummary/mlx.core.square.html @@ -8,7 +8,7 @@ - mlx.core.square — MLX 0.20.0 documentation + mlx.core.square — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.squeeze.html b/docs/build/html/python/_autosummary/mlx.core.squeeze.html index bc7872dd..b931d91c 100644 --- a/docs/build/html/python/_autosummary/mlx.core.squeeze.html +++ b/docs/build/html/python/_autosummary/mlx.core.squeeze.html @@ -8,7 +8,7 @@ - mlx.core.squeeze — MLX 0.20.0 documentation + mlx.core.squeeze — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.stack.html b/docs/build/html/python/_autosummary/mlx.core.stack.html index 5c0abc8d..de1b8e82 100644 --- a/docs/build/html/python/_autosummary/mlx.core.stack.html +++ b/docs/build/html/python/_autosummary/mlx.core.stack.html @@ -8,7 +8,7 @@ - mlx.core.stack — MLX 0.20.0 documentation + mlx.core.stack — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.std.html b/docs/build/html/python/_autosummary/mlx.core.std.html index de426f72..e8c2cdd7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.std.html +++ b/docs/build/html/python/_autosummary/mlx.core.std.html @@ -8,7 +8,7 @@ - mlx.core.std — MLX 0.20.0 documentation + mlx.core.std — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.stop_gradient.html b/docs/build/html/python/_autosummary/mlx.core.stop_gradient.html index 17902432..aed67e20 100644 --- a/docs/build/html/python/_autosummary/mlx.core.stop_gradient.html +++ b/docs/build/html/python/_autosummary/mlx.core.stop_gradient.html @@ -8,7 +8,7 @@ - mlx.core.stop_gradient — MLX 0.20.0 documentation + mlx.core.stop_gradient — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.stream.html b/docs/build/html/python/_autosummary/mlx.core.stream.html index 4873de9f..5240a01f 100644 --- a/docs/build/html/python/_autosummary/mlx.core.stream.html +++ b/docs/build/html/python/_autosummary/mlx.core.stream.html @@ -8,7 +8,7 @@ - mlx.core.stream — MLX 0.20.0 documentation + mlx.core.stream — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.subtract.html b/docs/build/html/python/_autosummary/mlx.core.subtract.html index 045ec832..e61c94a5 100644 --- a/docs/build/html/python/_autosummary/mlx.core.subtract.html +++ b/docs/build/html/python/_autosummary/mlx.core.subtract.html @@ -8,7 +8,7 @@ - mlx.core.subtract — MLX 0.20.0 documentation + mlx.core.subtract — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.sum.html b/docs/build/html/python/_autosummary/mlx.core.sum.html index 634b87a0..c4ad7a65 100644 --- a/docs/build/html/python/_autosummary/mlx.core.sum.html +++ b/docs/build/html/python/_autosummary/mlx.core.sum.html @@ -8,7 +8,7 @@ - mlx.core.sum — MLX 0.20.0 documentation + mlx.core.sum — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.swapaxes.html b/docs/build/html/python/_autosummary/mlx.core.swapaxes.html index c8d04d95..2e0de6a7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.swapaxes.html +++ b/docs/build/html/python/_autosummary/mlx.core.swapaxes.html @@ -8,7 +8,7 @@ - mlx.core.swapaxes — MLX 0.20.0 documentation + mlx.core.swapaxes — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.synchronize.html b/docs/build/html/python/_autosummary/mlx.core.synchronize.html index d9fadf6f..cfa0d2b8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.synchronize.html +++ b/docs/build/html/python/_autosummary/mlx.core.synchronize.html @@ -8,7 +8,7 @@ - mlx.core.synchronize — MLX 0.20.0 documentation + mlx.core.synchronize — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.take.html b/docs/build/html/python/_autosummary/mlx.core.take.html index f1ca8953..89a73d77 100644 --- a/docs/build/html/python/_autosummary/mlx.core.take.html +++ b/docs/build/html/python/_autosummary/mlx.core.take.html @@ -8,7 +8,7 @@ - mlx.core.take — MLX 0.20.0 documentation + mlx.core.take — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.take_along_axis.html b/docs/build/html/python/_autosummary/mlx.core.take_along_axis.html index d2de8ada..3eeea1ce 100644 --- a/docs/build/html/python/_autosummary/mlx.core.take_along_axis.html +++ b/docs/build/html/python/_autosummary/mlx.core.take_along_axis.html @@ -8,7 +8,7 @@ - mlx.core.take_along_axis — MLX 0.20.0 documentation + mlx.core.take_along_axis — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.tan.html b/docs/build/html/python/_autosummary/mlx.core.tan.html index a076304c..4ca13583 100644 --- a/docs/build/html/python/_autosummary/mlx.core.tan.html +++ b/docs/build/html/python/_autosummary/mlx.core.tan.html @@ -8,7 +8,7 @@ - mlx.core.tan — MLX 0.20.0 documentation + mlx.core.tan — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.tanh.html b/docs/build/html/python/_autosummary/mlx.core.tanh.html index 2af7b83a..8dc14295 100644 --- a/docs/build/html/python/_autosummary/mlx.core.tanh.html +++ b/docs/build/html/python/_autosummary/mlx.core.tanh.html @@ -8,7 +8,7 @@ - mlx.core.tanh — MLX 0.20.0 documentation + mlx.core.tanh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.tensordot.html b/docs/build/html/python/_autosummary/mlx.core.tensordot.html index 3b3d25e5..b64ef056 100644 --- a/docs/build/html/python/_autosummary/mlx.core.tensordot.html +++ b/docs/build/html/python/_autosummary/mlx.core.tensordot.html @@ -8,7 +8,7 @@ - mlx.core.tensordot — MLX 0.20.0 documentation + mlx.core.tensordot — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.tile.html b/docs/build/html/python/_autosummary/mlx.core.tile.html index fad037fe..87ac74c1 100644 --- a/docs/build/html/python/_autosummary/mlx.core.tile.html +++ b/docs/build/html/python/_autosummary/mlx.core.tile.html @@ -8,7 +8,7 @@ - mlx.core.tile — MLX 0.20.0 documentation + mlx.core.tile — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.topk.html b/docs/build/html/python/_autosummary/mlx.core.topk.html index e73e7a92..b2410d02 100644 --- a/docs/build/html/python/_autosummary/mlx.core.topk.html +++ b/docs/build/html/python/_autosummary/mlx.core.topk.html @@ -8,7 +8,7 @@ - mlx.core.topk — MLX 0.20.0 documentation + mlx.core.topk — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.trace.html b/docs/build/html/python/_autosummary/mlx.core.trace.html index 5a74d985..ff19ad57 100644 --- a/docs/build/html/python/_autosummary/mlx.core.trace.html +++ b/docs/build/html/python/_autosummary/mlx.core.trace.html @@ -8,7 +8,7 @@ - mlx.core.trace — MLX 0.20.0 documentation + mlx.core.trace — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.transpose.html b/docs/build/html/python/_autosummary/mlx.core.transpose.html index 8d8b566e..6b6f8f76 100644 --- a/docs/build/html/python/_autosummary/mlx.core.transpose.html +++ b/docs/build/html/python/_autosummary/mlx.core.transpose.html @@ -8,7 +8,7 @@ - mlx.core.transpose — MLX 0.20.0 documentation + mlx.core.transpose — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.tri.html b/docs/build/html/python/_autosummary/mlx.core.tri.html index 2478717c..f795c230 100644 --- a/docs/build/html/python/_autosummary/mlx.core.tri.html +++ b/docs/build/html/python/_autosummary/mlx.core.tri.html @@ -8,7 +8,7 @@ - mlx.core.tri — MLX 0.20.0 documentation + mlx.core.tri — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.tril.html b/docs/build/html/python/_autosummary/mlx.core.tril.html index 0edbb8b4..4de21ff7 100644 --- a/docs/build/html/python/_autosummary/mlx.core.tril.html +++ b/docs/build/html/python/_autosummary/mlx.core.tril.html @@ -8,7 +8,7 @@ - mlx.core.tril — MLX 0.20.0 documentation + mlx.core.tril — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.triu.html b/docs/build/html/python/_autosummary/mlx.core.triu.html index 68b97a59..ea3797fe 100644 --- a/docs/build/html/python/_autosummary/mlx.core.triu.html +++ b/docs/build/html/python/_autosummary/mlx.core.triu.html @@ -8,7 +8,7 @@ - mlx.core.triu — MLX 0.20.0 documentation + mlx.core.triu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.value_and_grad.html b/docs/build/html/python/_autosummary/mlx.core.value_and_grad.html index 0fe2616a..97a5c09f 100644 --- a/docs/build/html/python/_autosummary/mlx.core.value_and_grad.html +++ b/docs/build/html/python/_autosummary/mlx.core.value_and_grad.html @@ -8,7 +8,7 @@ - mlx.core.value_and_grad — MLX 0.20.0 documentation + mlx.core.value_and_grad — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.var.html b/docs/build/html/python/_autosummary/mlx.core.var.html index ad97c98f..1032ee0b 100644 --- a/docs/build/html/python/_autosummary/mlx.core.var.html +++ b/docs/build/html/python/_autosummary/mlx.core.var.html @@ -8,7 +8,7 @@ - mlx.core.var — MLX 0.20.0 documentation + mlx.core.var — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.view.html b/docs/build/html/python/_autosummary/mlx.core.view.html index b89041a2..1689f53a 100644 --- a/docs/build/html/python/_autosummary/mlx.core.view.html +++ b/docs/build/html/python/_autosummary/mlx.core.view.html @@ -8,7 +8,7 @@ - mlx.core.view — MLX 0.20.0 documentation + mlx.core.view — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.vjp.html b/docs/build/html/python/_autosummary/mlx.core.vjp.html index b13115fa..11b92db8 100644 --- a/docs/build/html/python/_autosummary/mlx.core.vjp.html +++ b/docs/build/html/python/_autosummary/mlx.core.vjp.html @@ -8,7 +8,7 @@ - mlx.core.vjp — MLX 0.20.0 documentation + mlx.core.vjp — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.vmap.html b/docs/build/html/python/_autosummary/mlx.core.vmap.html index 8052b6cb..93c10e50 100644 --- a/docs/build/html/python/_autosummary/mlx.core.vmap.html +++ b/docs/build/html/python/_autosummary/mlx.core.vmap.html @@ -8,7 +8,7 @@ - mlx.core.vmap — MLX 0.20.0 documentation + mlx.core.vmap — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.where.html b/docs/build/html/python/_autosummary/mlx.core.where.html index 1813d2c2..a64a3b50 100644 --- a/docs/build/html/python/_autosummary/mlx.core.where.html +++ b/docs/build/html/python/_autosummary/mlx.core.where.html @@ -8,7 +8,7 @@ - mlx.core.where — MLX 0.20.0 documentation + mlx.core.where — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.zeros.html b/docs/build/html/python/_autosummary/mlx.core.zeros.html index c1520db5..de6306b3 100644 --- a/docs/build/html/python/_autosummary/mlx.core.zeros.html +++ b/docs/build/html/python/_autosummary/mlx.core.zeros.html @@ -8,7 +8,7 @@ - mlx.core.zeros — MLX 0.20.0 documentation + mlx.core.zeros — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.core.zeros_like.html b/docs/build/html/python/_autosummary/mlx.core.zeros_like.html index e054c8a4..00b237fc 100644 --- a/docs/build/html/python/_autosummary/mlx.core.zeros_like.html +++ b/docs/build/html/python/_autosummary/mlx.core.zeros_like.html @@ -8,7 +8,7 @@ - mlx.core.zeros_like — MLX 0.20.0 documentation + mlx.core.zeros_like — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.nn.quantize.html b/docs/build/html/python/_autosummary/mlx.nn.quantize.html index 9a10f872..1590da63 100644 --- a/docs/build/html/python/_autosummary/mlx.nn.quantize.html +++ b/docs/build/html/python/_autosummary/mlx.nn.quantize.html @@ -8,7 +8,7 @@ - mlx.nn.quantize — MLX 0.20.0 documentation + mlx.nn.quantize — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.nn.value_and_grad.html b/docs/build/html/python/_autosummary/mlx.nn.value_and_grad.html index 028185ba..1db6357b 100644 --- a/docs/build/html/python/_autosummary/mlx.nn.value_and_grad.html +++ b/docs/build/html/python/_autosummary/mlx.nn.value_and_grad.html @@ -8,7 +8,7 @@ - mlx.nn.value_and_grad — MLX 0.20.0 documentation + mlx.nn.value_and_grad — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.optimizers.clip_grad_norm.html b/docs/build/html/python/_autosummary/mlx.optimizers.clip_grad_norm.html index 34927597..beb942b1 100644 --- a/docs/build/html/python/_autosummary/mlx.optimizers.clip_grad_norm.html +++ b/docs/build/html/python/_autosummary/mlx.optimizers.clip_grad_norm.html @@ -8,7 +8,7 @@ - mlx.optimizers.clip_grad_norm — MLX 0.20.0 documentation + mlx.optimizers.clip_grad_norm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.utils.tree_flatten.html b/docs/build/html/python/_autosummary/mlx.utils.tree_flatten.html index 92a1e43d..bce5080d 100644 --- a/docs/build/html/python/_autosummary/mlx.utils.tree_flatten.html +++ b/docs/build/html/python/_autosummary/mlx.utils.tree_flatten.html @@ -8,7 +8,7 @@ - mlx.utils.tree_flatten — MLX 0.20.0 documentation + mlx.utils.tree_flatten — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.utils.tree_map.html b/docs/build/html/python/_autosummary/mlx.utils.tree_map.html index caa881e5..78daab29 100644 --- a/docs/build/html/python/_autosummary/mlx.utils.tree_map.html +++ b/docs/build/html/python/_autosummary/mlx.utils.tree_map.html @@ -8,7 +8,7 @@ - mlx.utils.tree_map — MLX 0.20.0 documentation + mlx.utils.tree_map — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.utils.tree_map_with_path.html b/docs/build/html/python/_autosummary/mlx.utils.tree_map_with_path.html index 8a2ca794..6a9a3c21 100644 --- a/docs/build/html/python/_autosummary/mlx.utils.tree_map_with_path.html +++ b/docs/build/html/python/_autosummary/mlx.utils.tree_map_with_path.html @@ -8,7 +8,7 @@ - mlx.utils.tree_map_with_path — MLX 0.20.0 documentation + mlx.utils.tree_map_with_path — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.utils.tree_reduce.html b/docs/build/html/python/_autosummary/mlx.utils.tree_reduce.html index a0ba468d..3570b426 100644 --- a/docs/build/html/python/_autosummary/mlx.utils.tree_reduce.html +++ b/docs/build/html/python/_autosummary/mlx.utils.tree_reduce.html @@ -8,7 +8,7 @@ - mlx.utils.tree_reduce — MLX 0.20.0 documentation + mlx.utils.tree_reduce — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/mlx.utils.tree_unflatten.html b/docs/build/html/python/_autosummary/mlx.utils.tree_unflatten.html index b9d1b59c..61309f4f 100644 --- a/docs/build/html/python/_autosummary/mlx.utils.tree_unflatten.html +++ b/docs/build/html/python/_autosummary/mlx.utils.tree_unflatten.html @@ -8,7 +8,7 @@ - mlx.utils.tree_unflatten — MLX 0.20.0 documentation + mlx.utils.tree_unflatten — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/_autosummary/stream_class.html b/docs/build/html/python/_autosummary/stream_class.html index c277ce61..6600af16 100644 --- a/docs/build/html/python/_autosummary/stream_class.html +++ b/docs/build/html/python/_autosummary/stream_class.html @@ -8,7 +8,7 @@ - mlx.core.Stream — MLX 0.20.0 documentation + mlx.core.Stream — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/array.html b/docs/build/html/python/array.html index 0609bafd..64bd5bb4 100644 --- a/docs/build/html/python/array.html +++ b/docs/build/html/python/array.html @@ -8,7 +8,7 @@ - Array — MLX 0.20.0 documentation + Array — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/data_types.html b/docs/build/html/python/data_types.html index 11d36e95..f3d76807 100644 --- a/docs/build/html/python/data_types.html +++ b/docs/build/html/python/data_types.html @@ -8,7 +8,7 @@ - Data Types — MLX 0.20.0 documentation + Data Types — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/devices_and_streams.html b/docs/build/html/python/devices_and_streams.html index 2c708cfc..e7a82819 100644 --- a/docs/build/html/python/devices_and_streams.html +++ b/docs/build/html/python/devices_and_streams.html @@ -8,7 +8,7 @@ - Devices and Streams — MLX 0.20.0 documentation + Devices and Streams — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/distributed.html b/docs/build/html/python/distributed.html index e7990efd..55787a80 100644 --- a/docs/build/html/python/distributed.html +++ b/docs/build/html/python/distributed.html @@ -8,7 +8,7 @@ - Distributed Communication — MLX 0.20.0 documentation + Distributed Communication — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/fast.html b/docs/build/html/python/fast.html index f296cc90..c27b9023 100644 --- a/docs/build/html/python/fast.html +++ b/docs/build/html/python/fast.html @@ -8,7 +8,7 @@ - Fast — MLX 0.20.0 documentation + Fast — MLX 0.21.0 documentation @@ -39,11 +39,10 @@ - + - @@ -52,7 +51,7 @@ - + @@ -131,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -868,10 +868,7 @@

    scaled_dot_product_attention(q, k, v, *, scale)

    A fast implementation of multi-head attention: O = softmax(Q @ K.T, dim=-1) @ V.

    -

    affine_quantize(w, /, scales, biases[, ...])

    -

    Quantize the matrix w using the provided scales and biases and the group_size and bits configuration.

    - -

    metal_kernel(name, input_names, ...[, ...])

    +

    metal_kernel(name, input_names, ...[, ...])

    A jit-compiled custom Metal kernel defined from a source string.

    diff --git a/docs/build/html/python/fft.html b/docs/build/html/python/fft.html index 3ada9a8e..256538c7 100644 --- a/docs/build/html/python/fft.html +++ b/docs/build/html/python/fft.html @@ -8,7 +8,7 @@ - FFT — MLX 0.20.0 documentation + FFT — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/linalg.html b/docs/build/html/python/linalg.html index ba425dbf..8c27548b 100644 --- a/docs/build/html/python/linalg.html +++ b/docs/build/html/python/linalg.html @@ -8,7 +8,7 @@ - Linear Algebra — MLX 0.20.0 documentation + Linear Algebra — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/metal.html b/docs/build/html/python/metal.html index a9ef8111..eae7ebda 100644 --- a/docs/build/html/python/metal.html +++ b/docs/build/html/python/metal.html @@ -8,7 +8,7 @@ - Metal — MLX 0.20.0 documentation + Metal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn.html b/docs/build/html/python/nn.html index 3c1b19ff..afa53bd0 100644 --- a/docs/build/html/python/nn.html +++ b/docs/build/html/python/nn.html @@ -8,7 +8,7 @@ - Neural Networks — MLX 0.20.0 documentation + Neural Networks — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -1121,6 +1122,10 @@ parameters as the first argument to the function returned by
  • AvgPool2d
  • +
  • mlx.nn.AvgPool3d +
  • mlx.nn.BatchNorm @@ -1237,6 +1242,10 @@ parameters as the first argument to the function returned by
  • MaxPool2d
  • +
  • mlx.nn.MaxPool3d +
  • mlx.nn.Mish diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.ALiBi.html b/docs/build/html/python/nn/_autosummary/mlx.nn.ALiBi.html index aaf20607..48e8650d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.ALiBi.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.ALiBi.html @@ -8,7 +8,7 @@ - mlx.nn.ALiBi — MLX 0.20.0 documentation + mlx.nn.ALiBi — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool1d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool1d.html index 1a1be97b..762afeb6 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool1d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool1d.html @@ -8,7 +8,7 @@ - mlx.nn.AvgPool1d — MLX 0.20.0 documentation + mlx.nn.AvgPool1d — MLX 0.21.0 documentation @@ -39,11 +39,10 @@ - + - @@ -52,7 +51,7 @@ - + @@ -131,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -868,16 +868,8 @@
    class AvgPool1d(kernel_size: int | Tuple[int], stride: int | Tuple[int] | None = None, padding: int | Tuple[int] = 0)#

    Applies 1-dimensional average pooling.

    -

    Assuming an input of shape \((N, L, C)\) and kernel_size is -\(k\), the output is a tensor of shape \((N, L_{out}, C)\), given -by:

    -
    -
    -\[\text{out}(N_i, t, C_j) = \frac{1}{k} \sum_{m=0, \ldots, k - 1} - \text{input}(N_i, \text{stride} \times t + m, C_j),\]
    -
    -

    where \(L_{out} = \left\lfloor \frac{L + 2 \times \text{padding} - -\text{kernel\_size}}{\text{stride}}\right\rfloor + 1\).

    +

    Spatially downsamples the input by taking the average of a sliding window +of size kernel_size and sliding stride stride.

    Parameters:
      diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool2d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool2d.html index 0f3ac611..4ecff76d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool2d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.AvgPool2d.html @@ -8,7 +8,7 @@ - mlx.nn.AvgPool2d — MLX 0.20.0 documentation + mlx.nn.AvgPool2d — MLX 0.21.0 documentation @@ -39,20 +39,19 @@ - + - - + - + @@ -131,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +444,6 @@
    • mlx.core.fast.layer_norm
    • mlx.core.fast.rope
    • mlx.core.fast.scaled_dot_product_attention
    • -
    • mlx.core.fast.affine_quantize
    • mlx.core.fast.metal_kernel
    @@ -522,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -868,26 +868,15 @@
    class AvgPool2d(kernel_size: int | Tuple[int, int], stride: int | Tuple[int, int] | None = None, padding: int | Tuple[int, int] | None = 0)#

    Applies 2-dimensional average pooling.

    -

    Assuming an input of shape \((N, H, W, C)\) and kernel_size is -\((k_H, k_W)\), the output is a tensor of shape \((N, H_{out}, -W_{out}, C)\), given by:

    -
    -\[\begin{split}\begin{aligned} - \text{out}(N_i, h, w, C_j) = & \frac{1}{k_H k_W} \sum_{m=0, \ldots, k_H-1} \sum_{n=0, \ldots, k_W-1} \\ - & \text{input}(N_i, \text{stride[0]} \times h + m, - \text{stride[1]} \times w + n, C_j), -\end{aligned}\end{split}\]
    -

    where \(H_{out} = \left\lfloor\frac{H + 2 * \text{padding[0]} - \text{kernel\_size[0]}}{\text{stride[0]}}\right\rfloor + 1\), -\(W_{out} = \left\lfloor\frac{W + 2 * \text{padding[1]} - \text{kernel\_size[1]}}{\text{stride[1]}}\right\rfloor + 1\).

    -

    The parameters kernel_size, stride, padding, can either be:

    -
    -
      +

      Spatially downsamples the input by taking the average of a sliding window +of size kernel_size and sliding stride stride.

      +

      The parameters kernel_size, stride, and padding can either be:

      +
      • a single int – in which case the same value is used for both the -height and width axis;

      • +height and width axis.

      • a tuple of two int s – in which case, the first int is used for the height axis, the second int for the width axis.

      -
    Parameters:
    @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -929,12 +930,12 @@ running mean and variance. Default: < @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Conv1d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Conv1d.html index 818eea49..a8129fe8 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Conv1d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Conv1d.html @@ -8,7 +8,7 @@ - mlx.nn.Conv1d — MLX 0.20.0 documentation + mlx.nn.Conv1d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Conv2d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Conv2d.html index f348dd7a..99c2f5b2 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Conv2d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Conv2d.html @@ -8,7 +8,7 @@ - mlx.nn.Conv2d — MLX 0.20.0 documentation + mlx.nn.Conv2d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -865,7 +866,7 @@

    mlx.nn.Conv2d#

    -class Conv2d(in_channels: int, out_channels: int, kernel_size: int | tuple, stride: int | tuple = 1, padding: int | tuple = 0, dilation: int | tuple = 1, bias: bool = True)#
    +class Conv2d(in_channels: int, out_channels: int, kernel_size: int | tuple, stride: int | tuple = 1, padding: int | tuple = 0, dilation: int | tuple = 1, groups: int = 1, bias: bool = True)#

    Applies a 2-dimensional convolution over the multi-channel input image.

    The channels are expected to be last i.e. the input shape should be NHWC where:

      @@ -885,6 +886,8 @@ applying the filter. Default:

      padding (int or tuple, optional) – How many positions to 0-pad the input with. Default: 0.

    • dilation (int or tuple, optional) – The dilation of the convolution.

    • +
    • groups (int, optional) – The number of groups for the convolution. +Default: 1.

    • bias (bool, optional) – If True add a learnable bias to the output. Default: True

    diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Conv3d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Conv3d.html index a8c5a859..4cd2ff2b 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Conv3d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Conv3d.html @@ -8,7 +8,7 @@ - mlx.nn.Conv3d — MLX 0.20.0 documentation + mlx.nn.Conv3d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose1d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose1d.html index 4b96b967..dd149a60 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose1d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose1d.html @@ -8,7 +8,7 @@ - mlx.nn.ConvTranspose1d — MLX 0.20.0 documentation + mlx.nn.ConvTranspose1d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose2d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose2d.html index 71cb5249..70e38947 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose2d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose2d.html @@ -8,7 +8,7 @@ - mlx.nn.ConvTranspose2d — MLX 0.20.0 documentation + mlx.nn.ConvTranspose2d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose3d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose3d.html index c870efc0..798ce3d7 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose3d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.ConvTranspose3d.html @@ -8,7 +8,7 @@ - mlx.nn.ConvTranspose3d — MLX 0.20.0 documentation + mlx.nn.ConvTranspose3d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout.html index 66cf6cf0..85bcffd5 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout.html @@ -8,7 +8,7 @@ - mlx.nn.Dropout — MLX 0.20.0 documentation + mlx.nn.Dropout — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout2d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout2d.html index fbe6f453..2a5fa07c 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout2d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout2d.html @@ -8,7 +8,7 @@ - mlx.nn.Dropout2d — MLX 0.20.0 documentation + mlx.nn.Dropout2d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout3d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout3d.html index 6cca8ff1..76d0ab41 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout3d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Dropout3d.html @@ -8,7 +8,7 @@ - mlx.nn.Dropout3d — MLX 0.20.0 documentation + mlx.nn.Dropout3d — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.ELU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.ELU.html index 6ad6cf84..13bc9464 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.ELU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.ELU.html @@ -8,7 +8,7 @@ - mlx.nn.ELU — MLX 0.20.0 documentation + mlx.nn.ELU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Embedding.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Embedding.html index 3d3728c3..aecf5c76 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Embedding.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Embedding.html @@ -8,7 +8,7 @@ - mlx.nn.Embedding — MLX 0.20.0 documentation + mlx.nn.Embedding — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.GELU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.GELU.html index 935b65de..5f48216c 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.GELU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.GELU.html @@ -8,7 +8,7 @@ - mlx.nn.GELU — MLX 0.20.0 documentation + mlx.nn.GELU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.GLU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.GLU.html index 247d82f2..0782c664 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.GLU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.GLU.html @@ -8,7 +8,7 @@ - mlx.nn.GLU — MLX 0.20.0 documentation + mlx.nn.GLU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.GRU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.GRU.html index cbcf0a61..774445ca 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.GRU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.GRU.html @@ -8,7 +8,7 @@ - mlx.nn.GRU — MLX 0.20.0 documentation + mlx.nn.GRU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.GroupNorm.html b/docs/build/html/python/nn/_autosummary/mlx.nn.GroupNorm.html index 70216bd4..22f18d7d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.GroupNorm.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.GroupNorm.html @@ -8,7 +8,7 @@ - mlx.nn.GroupNorm — MLX 0.20.0 documentation + mlx.nn.GroupNorm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.HardShrink.html b/docs/build/html/python/nn/_autosummary/mlx.nn.HardShrink.html index 61f2a228..aa37d505 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.HardShrink.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.HardShrink.html @@ -8,7 +8,7 @@ - mlx.nn.HardShrink — MLX 0.20.0 documentation + mlx.nn.HardShrink — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.HardTanh.html b/docs/build/html/python/nn/_autosummary/mlx.nn.HardTanh.html index 144403ca..89e9fa0a 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.HardTanh.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.HardTanh.html @@ -8,7 +8,7 @@ - mlx.nn.HardTanh — MLX 0.20.0 documentation + mlx.nn.HardTanh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Hardswish.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Hardswish.html index ef845846..28aa440e 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Hardswish.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Hardswish.html @@ -8,7 +8,7 @@ - mlx.nn.Hardswish — MLX 0.20.0 documentation + mlx.nn.Hardswish — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.InstanceNorm.html b/docs/build/html/python/nn/_autosummary/mlx.nn.InstanceNorm.html index b8a42a84..c2dfe360 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.InstanceNorm.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.InstanceNorm.html @@ -8,7 +8,7 @@ - mlx.nn.InstanceNorm — MLX 0.20.0 documentation + mlx.nn.InstanceNorm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.LSTM.html b/docs/build/html/python/nn/_autosummary/mlx.nn.LSTM.html index b89a1105..ae82553f 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.LSTM.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.LSTM.html @@ -8,7 +8,7 @@ - mlx.nn.LSTM — MLX 0.20.0 documentation + mlx.nn.LSTM — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.LayerNorm.html b/docs/build/html/python/nn/_autosummary/mlx.nn.LayerNorm.html index dd7a0214..70f7b85a 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.LayerNorm.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.LayerNorm.html @@ -8,7 +8,7 @@ - mlx.nn.LayerNorm — MLX 0.20.0 documentation + mlx.nn.LayerNorm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.LeakyReLU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.LeakyReLU.html index 704d1a17..abc49b8c 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.LeakyReLU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.LeakyReLU.html @@ -8,7 +8,7 @@ - mlx.nn.LeakyReLU — MLX 0.20.0 documentation + mlx.nn.LeakyReLU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Linear.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Linear.html index 92ff8f4d..9844d84a 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Linear.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Linear.html @@ -8,7 +8,7 @@ - mlx.nn.Linear — MLX 0.20.0 documentation + mlx.nn.Linear — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.LogSigmoid.html b/docs/build/html/python/nn/_autosummary/mlx.nn.LogSigmoid.html index 7ea70fd2..36ee5b93 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.LogSigmoid.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.LogSigmoid.html @@ -8,7 +8,7 @@ - mlx.nn.LogSigmoid — MLX 0.20.0 documentation + mlx.nn.LogSigmoid — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.LogSoftmax.html b/docs/build/html/python/nn/_autosummary/mlx.nn.LogSoftmax.html index 9e76efb3..41ee622d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.LogSoftmax.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.LogSoftmax.html @@ -8,7 +8,7 @@ - mlx.nn.LogSoftmax — MLX 0.20.0 documentation + mlx.nn.LogSoftmax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool1d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool1d.html index 174653ac..e4966cb1 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool1d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool1d.html @@ -8,7 +8,7 @@ - mlx.nn.MaxPool1d — MLX 0.20.0 documentation + mlx.nn.MaxPool1d — MLX 0.21.0 documentation @@ -39,11 +39,10 @@ - + - @@ -52,7 +51,7 @@ - + @@ -131,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -868,16 +868,8 @@
    class MaxPool1d(kernel_size: int | Tuple[int], stride: int | Tuple[int] | None = None, padding: int | Tuple[int] = 0)#

    Applies 1-dimensional max pooling.

    -

    Assuming an input of shape \((N, L, C)\) and kernel_size is -\(k\), the output is a tensor of shape \((N, L_{out}, C)\), given -by:

    -
    -
    -\[\text{out}(N_i, t, C_j) = \max_{m=0, \ldots, k - 1} - \text{input}(N_i, \text{stride} \times t + m, C_j),\]
    -
    -

    where \(L_{out} = \left\lfloor \frac{L + 2 \times \text{padding} - -\text{kernel\_size}}{\text{stride}}\right\rfloor + 1\).

    +

    Spatially downsamples the input by taking the maximum of a sliding window +of size kernel_size and sliding stride stride.

    Parameters:
      diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool2d.html b/docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool2d.html index f45b3cd0..6b940f16 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool2d.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.MaxPool2d.html @@ -8,7 +8,7 @@ - mlx.nn.MaxPool2d — MLX 0.20.0 documentation + mlx.nn.MaxPool2d — MLX 0.21.0 documentation @@ -39,20 +39,19 @@ - + - - + - + @@ -131,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +444,6 @@
    • mlx.core.fast.layer_norm
    • mlx.core.fast.rope
    • mlx.core.fast.scaled_dot_product_attention
    • -
    • mlx.core.fast.affine_quantize
    • mlx.core.fast.metal_kernel
    @@ -522,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -868,26 +868,15 @@
    class MaxPool2d(kernel_size: int | Tuple[int, int], stride: int | Tuple[int, int] | None = None, padding: int | Tuple[int, int] | None = 0)#

    Applies 2-dimensional max pooling.

    -

    Assuming an input of shape \((N, H, W, C)\) and kernel_size is -\((k_H, k_W)\), the output is a tensor of shape \((N, H_{out}, -W_{out}, C)\), given by:

    -
    -\[\begin{split}\begin{aligned} - \text{out}(N_i, h, w, C_j) = & \max_{m=0, \ldots, k_H-1} \max_{n=0, \ldots, k_W-1} \\ - & \text{input}(N_i, \text{stride[0]} \times h + m, - \text{stride[1]} \times w + n, C_j), -\end{aligned}\end{split}\]
    -

    where \(H_{out} = \left\lfloor\frac{H + 2 * \text{padding[0]} - \text{kernel\_size[0]}}{\text{stride[0]}}\right\rfloor + 1\), -\(W_{out} = \left\lfloor\frac{W + 2 * \text{padding[1]} - \text{kernel\_size[1]}}{\text{stride[1]}}\right\rfloor + 1\).

    -

    The parameters kernel_size, stride, padding, can either be:

    -
    -
      +

      Spatially downsamples the input by taking the maximum of a sliding window +of size kernel_size and sliding stride stride.

      +

      The parameters kernel_size, stride, and padding can either be:

      +
      • a single int – in which case the same value is used for both the -height and width axis;

      • +height and width axis.

      • a tuple of two int s – in which case, the first int is used for the height axis, the second int for the width axis.

      -
    Parameters:
    @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -893,12 +894,12 @@ @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.apply_to_modules.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.apply_to_modules.html index afcf06dd..4b9d3b5d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.apply_to_modules.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.apply_to_modules.html @@ -8,7 +8,7 @@ - mlx.nn.Module.apply_to_modules — MLX 0.20.0 documentation + mlx.nn.Module.apply_to_modules — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.children.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.children.html index 9db4ac9b..b000446e 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.children.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.children.html @@ -8,7 +8,7 @@ - mlx.nn.Module.children — MLX 0.20.0 documentation + mlx.nn.Module.children — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.eval.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.eval.html index fc68eebb..7227830d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.eval.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.eval.html @@ -8,7 +8,7 @@ - mlx.nn.Module.eval — MLX 0.20.0 documentation + mlx.nn.Module.eval — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.filter_and_map.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.filter_and_map.html index 8f14e3eb..b5dd1e4e 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.filter_and_map.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.filter_and_map.html @@ -8,7 +8,7 @@ - mlx.nn.Module.filter_and_map — MLX 0.20.0 documentation + mlx.nn.Module.filter_and_map — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.freeze.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.freeze.html index 1033693e..83221a7c 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.freeze.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.freeze.html @@ -8,7 +8,7 @@ - mlx.nn.Module.freeze — MLX 0.20.0 documentation + mlx.nn.Module.freeze — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.leaf_modules.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.leaf_modules.html index 2ed01993..799c3718 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.leaf_modules.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.leaf_modules.html @@ -8,7 +8,7 @@ - mlx.nn.Module.leaf_modules — MLX 0.20.0 documentation + mlx.nn.Module.leaf_modules — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.load_weights.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.load_weights.html index a698e2ad..f8c3a25a 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.load_weights.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.load_weights.html @@ -8,7 +8,7 @@ - mlx.nn.Module.load_weights — MLX 0.20.0 documentation + mlx.nn.Module.load_weights — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.modules.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.modules.html index c114d99f..48d4b619 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.modules.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.modules.html @@ -8,7 +8,7 @@ - mlx.nn.Module.modules — MLX 0.20.0 documentation + mlx.nn.Module.modules — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.named_modules.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.named_modules.html index d3202cc4..a334c79d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.named_modules.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.named_modules.html @@ -8,7 +8,7 @@ - mlx.nn.Module.named_modules — MLX 0.20.0 documentation + mlx.nn.Module.named_modules — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.parameters.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.parameters.html index bef2a961..62825d8b 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.parameters.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.parameters.html @@ -8,7 +8,7 @@ - mlx.nn.Module.parameters — MLX 0.20.0 documentation + mlx.nn.Module.parameters — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.save_weights.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.save_weights.html index 338a37bd..6e011538 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.save_weights.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.save_weights.html @@ -8,7 +8,7 @@ - mlx.nn.Module.save_weights — MLX 0.20.0 documentation + mlx.nn.Module.save_weights — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.set_dtype.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.set_dtype.html index a4eb5b94..499f7de5 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.set_dtype.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.set_dtype.html @@ -8,7 +8,7 @@ - mlx.nn.Module.set_dtype — MLX 0.20.0 documentation + mlx.nn.Module.set_dtype — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.state.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.state.html index 6c5361b5..902f7b62 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.state.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.state.html @@ -8,7 +8,7 @@ - mlx.nn.Module.state — MLX 0.20.0 documentation + mlx.nn.Module.state — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.train.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.train.html index 488da0ac..24cce013 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.train.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.train.html @@ -8,7 +8,7 @@ - mlx.nn.Module.train — MLX 0.20.0 documentation + mlx.nn.Module.train — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.trainable_parameters.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.trainable_parameters.html index ccc43907..e8a61e71 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.trainable_parameters.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.trainable_parameters.html @@ -8,7 +8,7 @@ - mlx.nn.Module.trainable_parameters — MLX 0.20.0 documentation + mlx.nn.Module.trainable_parameters — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.training.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.training.html index d6904b19..0a59a1cb 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.training.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.training.html @@ -8,7 +8,7 @@ - mlx.nn.Module.training — MLX 0.20.0 documentation + mlx.nn.Module.training — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.unfreeze.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.unfreeze.html index 03e0a1c1..66d16983 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.unfreeze.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.unfreeze.html @@ -8,7 +8,7 @@ - mlx.nn.Module.unfreeze — MLX 0.20.0 documentation + mlx.nn.Module.unfreeze — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.update.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.update.html index 86ce32ea..6e3168cc 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.update.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.update.html @@ -8,7 +8,7 @@ - mlx.nn.Module.update — MLX 0.20.0 documentation + mlx.nn.Module.update — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.update_modules.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.update_modules.html index d90e7f80..e213b30a 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Module.update_modules.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Module.update_modules.html @@ -8,7 +8,7 @@ - mlx.nn.Module.update_modules — MLX 0.20.0 documentation + mlx.nn.Module.update_modules — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.MultiHeadAttention.html b/docs/build/html/python/nn/_autosummary/mlx.nn.MultiHeadAttention.html index 449c0fe6..0951d216 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.MultiHeadAttention.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.MultiHeadAttention.html @@ -8,7 +8,7 @@ - mlx.nn.MultiHeadAttention — MLX 0.20.0 documentation + mlx.nn.MultiHeadAttention — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.PReLU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.PReLU.html index 1449d66b..3836d66f 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.PReLU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.PReLU.html @@ -8,7 +8,7 @@ - mlx.nn.PReLU — MLX 0.20.0 documentation + mlx.nn.PReLU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.QuantizedEmbedding.html b/docs/build/html/python/nn/_autosummary/mlx.nn.QuantizedEmbedding.html index ba0ff618..66d4abb8 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.QuantizedEmbedding.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.QuantizedEmbedding.html @@ -8,7 +8,7 @@ - mlx.nn.QuantizedEmbedding — MLX 0.20.0 documentation + mlx.nn.QuantizedEmbedding — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.QuantizedLinear.html b/docs/build/html/python/nn/_autosummary/mlx.nn.QuantizedLinear.html index 4a6ab03a..d26ff979 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.QuantizedLinear.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.QuantizedLinear.html @@ -8,7 +8,7 @@ - mlx.nn.QuantizedLinear — MLX 0.20.0 documentation + mlx.nn.QuantizedLinear — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.RMSNorm.html b/docs/build/html/python/nn/_autosummary/mlx.nn.RMSNorm.html index 8b3a11ac..76b5531d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.RMSNorm.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.RMSNorm.html @@ -8,7 +8,7 @@ - mlx.nn.RMSNorm — MLX 0.20.0 documentation + mlx.nn.RMSNorm — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.RNN.html b/docs/build/html/python/nn/_autosummary/mlx.nn.RNN.html index a4ee9e21..29e0c2d6 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.RNN.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.RNN.html @@ -8,7 +8,7 @@ - mlx.nn.RNN — MLX 0.20.0 documentation + mlx.nn.RNN — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.ReLU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.ReLU.html index f64346d7..0ec51dd8 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.ReLU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.ReLU.html @@ -8,7 +8,7 @@ - mlx.nn.ReLU — MLX 0.20.0 documentation + mlx.nn.ReLU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.ReLU6.html b/docs/build/html/python/nn/_autosummary/mlx.nn.ReLU6.html index 43c2042b..a28ac22e 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.ReLU6.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.ReLU6.html @@ -8,7 +8,7 @@ - mlx.nn.ReLU6 — MLX 0.20.0 documentation + mlx.nn.ReLU6 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.RoPE.html b/docs/build/html/python/nn/_autosummary/mlx.nn.RoPE.html index cdfba246..479a981c 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.RoPE.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.RoPE.html @@ -8,7 +8,7 @@ - mlx.nn.RoPE — MLX 0.20.0 documentation + mlx.nn.RoPE — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.SELU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.SELU.html index 028e8fbf..6b69eb2e 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.SELU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.SELU.html @@ -8,7 +8,7 @@ - mlx.nn.SELU — MLX 0.20.0 documentation + mlx.nn.SELU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Sequential.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Sequential.html index 3889266d..d2f8c49d 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Sequential.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Sequential.html @@ -8,7 +8,7 @@ - mlx.nn.Sequential — MLX 0.20.0 documentation + mlx.nn.Sequential — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.SiLU.html b/docs/build/html/python/nn/_autosummary/mlx.nn.SiLU.html index cafb4fbe..6a004c01 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.SiLU.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.SiLU.html @@ -8,7 +8,7 @@ - mlx.nn.SiLU — MLX 0.20.0 documentation + mlx.nn.SiLU — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Sigmoid.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Sigmoid.html index 7e704740..5c132652 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Sigmoid.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Sigmoid.html @@ -8,7 +8,7 @@ - mlx.nn.Sigmoid — MLX 0.20.0 documentation + mlx.nn.Sigmoid — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.html b/docs/build/html/python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.html index 1800ffff..08872ef6 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.html @@ -8,7 +8,7 @@ - mlx.nn.SinusoidalPositionalEncoding — MLX 0.20.0 documentation + mlx.nn.SinusoidalPositionalEncoding — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Softmax.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Softmax.html index 3fef69dd..a392a2ba 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Softmax.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Softmax.html @@ -8,7 +8,7 @@ - mlx.nn.Softmax — MLX 0.20.0 documentation + mlx.nn.Softmax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Softmin.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Softmin.html index 39ecaa3b..60b68bda 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Softmin.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Softmin.html @@ -8,7 +8,7 @@ - mlx.nn.Softmin — MLX 0.20.0 documentation + mlx.nn.Softmin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Softplus.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Softplus.html index a59b2fc5..61a7b4b9 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Softplus.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Softplus.html @@ -8,7 +8,7 @@ - mlx.nn.Softplus — MLX 0.20.0 documentation + mlx.nn.Softplus — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Softshrink.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Softshrink.html index dbfb8992..dfdf9f2f 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Softshrink.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Softshrink.html @@ -8,7 +8,7 @@ - mlx.nn.Softshrink — MLX 0.20.0 documentation + mlx.nn.Softshrink — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Softsign.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Softsign.html index 34f4fbae..95ece620 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Softsign.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Softsign.html @@ -8,7 +8,7 @@ - mlx.nn.Softsign — MLX 0.20.0 documentation + mlx.nn.Softsign — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Step.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Step.html index 3fce344c..6b79d2b1 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Step.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Step.html @@ -8,7 +8,7 @@ - mlx.nn.Step — MLX 0.20.0 documentation + mlx.nn.Step — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Tanh.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Tanh.html index e5ac75e4..634538f4 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Tanh.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Tanh.html @@ -8,7 +8,7 @@ - mlx.nn.Tanh — MLX 0.20.0 documentation + mlx.nn.Tanh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Transformer.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Transformer.html index 430bf2b0..55a66765 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Transformer.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Transformer.html @@ -8,7 +8,7 @@ - mlx.nn.Transformer — MLX 0.20.0 documentation + mlx.nn.Transformer — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.Upsample.html b/docs/build/html/python/nn/_autosummary/mlx.nn.Upsample.html index f9ad04a4..2efd1b5c 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.Upsample.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.Upsample.html @@ -8,7 +8,7 @@ - mlx.nn.Upsample — MLX 0.20.0 documentation + mlx.nn.Upsample — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.init.constant.html b/docs/build/html/python/nn/_autosummary/mlx.nn.init.constant.html index 6c410229..5542f139 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.init.constant.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.init.constant.html @@ -8,7 +8,7 @@ - mlx.nn.init.constant — MLX 0.20.0 documentation + mlx.nn.init.constant — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.init.glorot_normal.html b/docs/build/html/python/nn/_autosummary/mlx.nn.init.glorot_normal.html index b8a2268d..ab915a16 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.init.glorot_normal.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.init.glorot_normal.html @@ -8,7 +8,7 @@ - mlx.nn.init.glorot_normal — MLX 0.20.0 documentation + mlx.nn.init.glorot_normal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.init.glorot_uniform.html b/docs/build/html/python/nn/_autosummary/mlx.nn.init.glorot_uniform.html index c43f839f..0a6ab3e0 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.init.glorot_uniform.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.init.glorot_uniform.html @@ -8,7 +8,7 @@ - mlx.nn.init.glorot_uniform — MLX 0.20.0 documentation + mlx.nn.init.glorot_uniform — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.init.he_normal.html b/docs/build/html/python/nn/_autosummary/mlx.nn.init.he_normal.html index 04fb56f6..5dbea104 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.init.he_normal.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.init.he_normal.html @@ -8,7 +8,7 @@ - mlx.nn.init.he_normal — MLX 0.20.0 documentation + mlx.nn.init.he_normal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.init.he_uniform.html b/docs/build/html/python/nn/_autosummary/mlx.nn.init.he_uniform.html index ac2dff52..29474534 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.init.he_uniform.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.init.he_uniform.html @@ -8,7 +8,7 @@ - mlx.nn.init.he_uniform — MLX 0.20.0 documentation + mlx.nn.init.he_uniform — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.init.identity.html b/docs/build/html/python/nn/_autosummary/mlx.nn.init.identity.html index 101d0d30..beca6ab6 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.init.identity.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.init.identity.html @@ -8,7 +8,7 @@ - mlx.nn.init.identity — MLX 0.20.0 documentation + mlx.nn.init.identity — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.init.normal.html b/docs/build/html/python/nn/_autosummary/mlx.nn.init.normal.html index 4ef3016a..71431a74 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.init.normal.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.init.normal.html @@ -8,7 +8,7 @@ - mlx.nn.init.normal — MLX 0.20.0 documentation + mlx.nn.init.normal — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary/mlx.nn.init.uniform.html b/docs/build/html/python/nn/_autosummary/mlx.nn.init.uniform.html index a9314d34..db68625a 100644 --- a/docs/build/html/python/nn/_autosummary/mlx.nn.init.uniform.html +++ b/docs/build/html/python/nn/_autosummary/mlx.nn.init.uniform.html @@ -8,7 +8,7 @@ - mlx.nn.init.uniform — MLX 0.20.0 documentation + mlx.nn.init.uniform — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.celu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.celu.html index bcfd2467..dd784037 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.celu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.celu.html @@ -8,7 +8,7 @@ - mlx.nn.celu — MLX 0.20.0 documentation + mlx.nn.celu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.elu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.elu.html index 1767b815..860592e4 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.elu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.elu.html @@ -8,7 +8,7 @@ - mlx.nn.elu — MLX 0.20.0 documentation + mlx.nn.elu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu.html index e6fdf4a4..68726795 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu.html @@ -8,7 +8,7 @@ - mlx.nn.gelu — MLX 0.20.0 documentation + mlx.nn.gelu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu_approx.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu_approx.html index 4ea327ed..ff7ad66f 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu_approx.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu_approx.html @@ -8,7 +8,7 @@ - mlx.nn.gelu_approx — MLX 0.20.0 documentation + mlx.nn.gelu_approx — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu_fast_approx.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu_fast_approx.html index 390b4457..de376385 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu_fast_approx.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.gelu_fast_approx.html @@ -8,7 +8,7 @@ - mlx.nn.gelu_fast_approx — MLX 0.20.0 documentation + mlx.nn.gelu_fast_approx — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.glu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.glu.html index 486555aa..777b762e 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.glu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.glu.html @@ -8,7 +8,7 @@ - mlx.nn.glu — MLX 0.20.0 documentation + mlx.nn.glu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hard_shrink.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hard_shrink.html index 3562c4eb..19e54485 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hard_shrink.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hard_shrink.html @@ -8,7 +8,7 @@ - mlx.nn.hard_shrink — MLX 0.20.0 documentation + mlx.nn.hard_shrink — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hard_tanh.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hard_tanh.html index 77baca5f..c204c54a 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hard_tanh.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hard_tanh.html @@ -8,7 +8,7 @@ - mlx.nn.hard_tanh — MLX 0.20.0 documentation + mlx.nn.hard_tanh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hardswish.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hardswish.html index d4844383..d2ecf482 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hardswish.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.hardswish.html @@ -8,7 +8,7 @@ - mlx.nn.hardswish — MLX 0.20.0 documentation + mlx.nn.hardswish — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.leaky_relu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.leaky_relu.html index 3a79f3b2..64d3cc57 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.leaky_relu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.leaky_relu.html @@ -8,7 +8,7 @@ - mlx.nn.leaky_relu — MLX 0.20.0 documentation + mlx.nn.leaky_relu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.log_sigmoid.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.log_sigmoid.html index abd40ae1..51b9a987 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.log_sigmoid.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.log_sigmoid.html @@ -8,7 +8,7 @@ - mlx.nn.log_sigmoid — MLX 0.20.0 documentation + mlx.nn.log_sigmoid — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.log_softmax.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.log_softmax.html index c9a4f9e6..0c8f04a9 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.log_softmax.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.log_softmax.html @@ -8,7 +8,7 @@ - mlx.nn.log_softmax — MLX 0.20.0 documentation + mlx.nn.log_softmax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.binary_cross_entropy.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.binary_cross_entropy.html index 004324f9..7a359861 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.binary_cross_entropy.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.binary_cross_entropy.html @@ -8,7 +8,7 @@ - mlx.nn.losses.binary_cross_entropy — MLX 0.20.0 documentation + mlx.nn.losses.binary_cross_entropy — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.cosine_similarity_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.cosine_similarity_loss.html index f8ec2e8f..c6e23f6b 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.cosine_similarity_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.cosine_similarity_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.cosine_similarity_loss — MLX 0.20.0 documentation + mlx.nn.losses.cosine_similarity_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.cross_entropy.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.cross_entropy.html index 491630b5..0752aa7c 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.cross_entropy.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.cross_entropy.html @@ -8,7 +8,7 @@ - mlx.nn.losses.cross_entropy — MLX 0.20.0 documentation + mlx.nn.losses.cross_entropy — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.gaussian_nll_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.gaussian_nll_loss.html index 719c7474..05ec9444 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.gaussian_nll_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.gaussian_nll_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.gaussian_nll_loss — MLX 0.20.0 documentation + mlx.nn.losses.gaussian_nll_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.html index 039f394f..683b0f9a 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.hinge_loss — MLX 0.20.0 documentation + mlx.nn.losses.hinge_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.html index cc1371e1..a6627b7c 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.huber_loss — MLX 0.20.0 documentation + mlx.nn.losses.huber_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.kl_div_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.kl_div_loss.html index 9f3d6989..971c1192 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.kl_div_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.kl_div_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.kl_div_loss — MLX 0.20.0 documentation + mlx.nn.losses.kl_div_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.l1_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.l1_loss.html index a9dd67cf..cc049787 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.l1_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.l1_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.l1_loss — MLX 0.20.0 documentation + mlx.nn.losses.l1_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.html index c156be49..7e04217e 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.log_cosh_loss — MLX 0.20.0 documentation + mlx.nn.losses.log_cosh_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.margin_ranking_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.margin_ranking_loss.html index f9c6e961..10d1c64f 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.margin_ranking_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.margin_ranking_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.margin_ranking_loss — MLX 0.20.0 documentation + mlx.nn.losses.margin_ranking_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.mse_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.mse_loss.html index 2a006bb4..c2c1128e 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.mse_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.mse_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.mse_loss — MLX 0.20.0 documentation + mlx.nn.losses.mse_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.nll_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.nll_loss.html index 494c5d00..d514134b 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.nll_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.nll_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.nll_loss — MLX 0.20.0 documentation + mlx.nn.losses.nll_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.smooth_l1_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.smooth_l1_loss.html index e7ee4d69..db573a9b 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.smooth_l1_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.smooth_l1_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.smooth_l1_loss — MLX 0.20.0 documentation + mlx.nn.losses.smooth_l1_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.triplet_loss.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.triplet_loss.html index f4f6ecd6..568ece30 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.triplet_loss.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.losses.triplet_loss.html @@ -8,7 +8,7 @@ - mlx.nn.losses.triplet_loss — MLX 0.20.0 documentation + mlx.nn.losses.triplet_loss — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.mish.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.mish.html index e9c24b3e..ffbeae9e 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.mish.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.mish.html @@ -8,7 +8,7 @@ - mlx.nn.mish — MLX 0.20.0 documentation + mlx.nn.mish — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.prelu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.prelu.html index 8f8541b5..97858829 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.prelu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.prelu.html @@ -8,7 +8,7 @@ - mlx.nn.prelu — MLX 0.20.0 documentation + mlx.nn.prelu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.relu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.relu.html index 8e0d623d..af4cd6f8 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.relu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.relu.html @@ -8,7 +8,7 @@ - mlx.nn.relu — MLX 0.20.0 documentation + mlx.nn.relu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.relu6.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.relu6.html index eb551ed0..9ac11709 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.relu6.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.relu6.html @@ -8,7 +8,7 @@ - mlx.nn.relu6 — MLX 0.20.0 documentation + mlx.nn.relu6 — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.selu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.selu.html index fb410c87..b1375a67 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.selu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.selu.html @@ -8,7 +8,7 @@ - mlx.nn.selu — MLX 0.20.0 documentation + mlx.nn.selu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.sigmoid.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.sigmoid.html index 7faaa817..140916c6 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.sigmoid.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.sigmoid.html @@ -8,7 +8,7 @@ - mlx.nn.sigmoid — MLX 0.20.0 documentation + mlx.nn.sigmoid — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.silu.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.silu.html index 86f496ee..cb1d7154 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.silu.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.silu.html @@ -8,7 +8,7 @@ - mlx.nn.silu — MLX 0.20.0 documentation + mlx.nn.silu — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softmax.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softmax.html index b733d85f..ec4f035b 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softmax.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softmax.html @@ -8,7 +8,7 @@ - mlx.nn.softmax — MLX 0.20.0 documentation + mlx.nn.softmax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softmin.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softmin.html index 004fa6c3..a33c6627 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softmin.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softmin.html @@ -8,7 +8,7 @@ - mlx.nn.softmin — MLX 0.20.0 documentation + mlx.nn.softmin — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softplus.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softplus.html index 05b431fc..c786292b 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softplus.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softplus.html @@ -8,7 +8,7 @@ - mlx.nn.softplus — MLX 0.20.0 documentation + mlx.nn.softplus — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softshrink.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softshrink.html index 727fd2fa..3fe36507 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softshrink.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.softshrink.html @@ -8,7 +8,7 @@ - mlx.nn.softshrink — MLX 0.20.0 documentation + mlx.nn.softshrink — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.step.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.step.html index 706e78f2..ea4bccaa 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.step.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.step.html @@ -8,7 +8,7 @@ - mlx.nn.step — MLX 0.20.0 documentation + mlx.nn.step — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.tanh.html b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.tanh.html index 3211a175..d7bf4d49 100644 --- a/docs/build/html/python/nn/_autosummary_functions/mlx.nn.tanh.html +++ b/docs/build/html/python/nn/_autosummary_functions/mlx.nn.tanh.html @@ -8,7 +8,7 @@ - mlx.nn.tanh — MLX 0.20.0 documentation + mlx.nn.tanh — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/functions.html b/docs/build/html/python/nn/functions.html index 063f25e9..6bcb3e2d 100644 --- a/docs/build/html/python/nn/functions.html +++ b/docs/build/html/python/nn/functions.html @@ -8,7 +8,7 @@ - Functions — MLX 0.20.0 documentation + Functions — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/init.html b/docs/build/html/python/nn/init.html index aae6a250..67d36960 100644 --- a/docs/build/html/python/nn/init.html +++ b/docs/build/html/python/nn/init.html @@ -8,7 +8,7 @@ - Initializers — MLX 0.20.0 documentation + Initializers — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/layers.html b/docs/build/html/python/nn/layers.html index 6e5de370..5724cd06 100644 --- a/docs/build/html/python/nn/layers.html +++ b/docs/build/html/python/nn/layers.html @@ -8,7 +8,7 @@ - Layers — MLX 0.20.0 documentation + Layers — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • @@ -865,93 +866,99 @@

    AvgPool2d(kernel_size[, stride, padding])

    Applies 2-dimensional average pooling.

    -

    BatchNorm(num_features[, eps, momentum, ...])

    +

    AvgPool3d(kernel_size[, stride, padding])

    +

    Applies 3-dimensional average pooling.

    + +

    BatchNorm(num_features[, eps, momentum, ...])

    Applies Batch Normalization over a 2D or 3D input.

    -

    CELU([alpha])

    +

    CELU([alpha])

    Applies the Continuously Differentiable Exponential Linear Unit.

    -

    Conv1d(in_channels, out_channels, kernel_size)

    +

    Conv1d(in_channels, out_channels, kernel_size)

    Applies a 1-dimensional convolution over the multi-channel input sequence.

    -

    Conv2d(in_channels, out_channels, kernel_size)

    +

    Conv2d(in_channels, out_channels, kernel_size)

    Applies a 2-dimensional convolution over the multi-channel input image.

    -

    Conv3d(in_channels, out_channels, kernel_size)

    +

    Conv3d(in_channels, out_channels, kernel_size)

    Applies a 3-dimensional convolution over the multi-channel input image.

    -

    ConvTranspose1d(in_channels, out_channels, ...)

    +

    ConvTranspose1d(in_channels, out_channels, ...)

    Applies a 1-dimensional transposed convolution over the multi-channel input sequence.

    -

    ConvTranspose2d(in_channels, out_channels, ...)

    +

    ConvTranspose2d(in_channels, out_channels, ...)

    Applies a 2-dimensional transposed convolution over the multi-channel input image.

    -

    ConvTranspose3d(in_channels, out_channels, ...)

    +

    ConvTranspose3d(in_channels, out_channels, ...)

    Applies a 3-dimensional transposed convolution over the multi-channel input image.

    -

    Dropout([p])

    +

    Dropout([p])

    Randomly zero a portion of the elements during training.

    -

    Dropout2d([p])

    +

    Dropout2d([p])

    Apply 2D channel-wise dropout during training.

    -

    Dropout3d([p])

    +

    Dropout3d([p])

    Apply 3D channel-wise dropout during training.

    -

    Embedding(num_embeddings, dims)

    +

    Embedding(num_embeddings, dims)

    Implements a simple lookup table that maps each input integer to a high-dimensional vector.

    -

    ELU([alpha])

    +

    ELU([alpha])

    Applies the Exponential Linear Unit.

    -

    GELU([approx])

    +

    GELU([approx])

    Applies the Gaussian Error Linear Units.

    -

    GLU([axis])

    +

    GLU([axis])

    Applies the gated linear unit function.

    -

    GroupNorm(num_groups, dims[, eps, affine, ...])

    +

    GroupNorm(num_groups, dims[, eps, affine, ...])

    Applies Group Normalization [1] to the inputs.

    -

    GRU(input_size, hidden_size[, bias])

    +

    GRU(input_size, hidden_size[, bias])

    A gated recurrent unit (GRU) RNN layer.

    -

    HardShrink()

    +

    HardShrink()

    Applies the HardShrink function.

    -

    HardTanh()

    +

    HardTanh()

    Applies the HardTanh function.

    -

    Hardswish()

    +

    Hardswish()

    Applies the hardswish function, element-wise.

    -

    InstanceNorm(dims[, eps, affine])

    +

    InstanceNorm(dims[, eps, affine])

    Applies instance normalization [1] on the inputs.

    -

    LayerNorm(dims[, eps, affine, bias])

    +

    LayerNorm(dims[, eps, affine, bias])

    Applies layer normalization [1] on the inputs.

    -

    LeakyReLU([negative_slope])

    +

    LeakyReLU([negative_slope])

    Applies the Leaky Rectified Linear Unit.

    -

    Linear(input_dims, output_dims[, bias])

    +

    Linear(input_dims, output_dims[, bias])

    Applies an affine transformation to the input.

    -

    LogSigmoid()

    +

    LogSigmoid()

    Applies the Log Sigmoid function.

    -

    LogSoftmax()

    +

    LogSoftmax()

    Applies the Log Softmax function.

    -

    LSTM(input_size, hidden_size[, bias])

    +

    LSTM(input_size, hidden_size[, bias])

    An LSTM recurrent layer.

    -

    MaxPool1d(kernel_size[, stride, padding])

    +

    MaxPool1d(kernel_size[, stride, padding])

    Applies 1-dimensional max pooling.

    -

    MaxPool2d(kernel_size[, stride, padding])

    +

    MaxPool2d(kernel_size[, stride, padding])

    Applies 2-dimensional max pooling.

    +

    MaxPool3d(kernel_size[, stride, padding])

    +

    Applies 3-dimensional max pooling.

    +

    Mish()

    Applies the Mish function, element-wise.

    diff --git a/docs/build/html/python/nn/losses.html b/docs/build/html/python/nn/losses.html index 40c6b94d..16b007d2 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.20.0 documentation + Loss Functions — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/nn/module.html b/docs/build/html/python/nn/module.html index 68ba455f..157a7758 100644 --- a/docs/build/html/python/nn/module.html +++ b/docs/build/html/python/nn/module.html @@ -8,7 +8,7 @@ - Module — MLX 0.20.0 documentation + Module — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/ops.html b/docs/build/html/python/ops.html index 3f77dd8b..539ded7d 100644 --- a/docs/build/html/python/ops.html +++ b/docs/build/html/python/ops.html @@ -8,7 +8,7 @@ - Operations — MLX 0.20.0 documentation + Operations — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers.html b/docs/build/html/python/optimizers.html index 27367403..c512a138 100644 --- a/docs/build/html/python/optimizers.html +++ b/docs/build/html/python/optimizers.html @@ -8,7 +8,7 @@ - Optimizers — MLX 0.20.0 documentation + Optimizers — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.AdaDelta.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.AdaDelta.html index 7a270fa7..167d5cdc 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.AdaDelta.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.AdaDelta.html @@ -8,7 +8,7 @@ - mlx.optimizers.AdaDelta — MLX 0.20.0 documentation + mlx.optimizers.AdaDelta — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adafactor.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adafactor.html index 59a679ad..e37f18c3 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adafactor.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adafactor.html @@ -8,7 +8,7 @@ - mlx.optimizers.Adafactor — MLX 0.20.0 documentation + mlx.optimizers.Adafactor — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adagrad.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adagrad.html index 4e2a31bf..1bdbab44 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adagrad.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adagrad.html @@ -8,7 +8,7 @@ - mlx.optimizers.Adagrad — MLX 0.20.0 documentation + mlx.optimizers.Adagrad — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adam.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adam.html index 6b24ad2e..8387ba6d 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adam.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adam.html @@ -8,7 +8,7 @@ - mlx.optimizers.Adam — MLX 0.20.0 documentation + mlx.optimizers.Adam — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.AdamW.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.AdamW.html index c918b564..d064cce2 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.AdamW.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.AdamW.html @@ -8,7 +8,7 @@ - mlx.optimizers.AdamW — MLX 0.20.0 documentation + mlx.optimizers.AdamW — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adamax.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adamax.html index 79ee469a..5a0c4585 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adamax.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Adamax.html @@ -8,7 +8,7 @@ - mlx.optimizers.Adamax — MLX 0.20.0 documentation + mlx.optimizers.Adamax — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Lion.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Lion.html index 69ca61ec..36c98ad0 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Lion.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Lion.html @@ -8,7 +8,7 @@ - mlx.optimizers.Lion — MLX 0.20.0 documentation + mlx.optimizers.Lion — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.apply_gradients.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.apply_gradients.html index bf350169..437527ff 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.apply_gradients.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.apply_gradients.html @@ -8,7 +8,7 @@ - mlx.optimizers.Optimizer.apply_gradients — MLX 0.20.0 documentation + mlx.optimizers.Optimizer.apply_gradients — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.init.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.init.html index 74817b91..2dbf4cba 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.init.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.init.html @@ -8,7 +8,7 @@ - mlx.optimizers.Optimizer.init — MLX 0.20.0 documentation + mlx.optimizers.Optimizer.init — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.state.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.state.html index a9ab1a3e..43458601 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.state.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.state.html @@ -8,7 +8,7 @@ - mlx.optimizers.Optimizer.state — MLX 0.20.0 documentation + mlx.optimizers.Optimizer.state — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.update.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.update.html index efbe0a18..bffeb270 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.update.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.Optimizer.update.html @@ -8,7 +8,7 @@ - mlx.optimizers.Optimizer.update — MLX 0.20.0 documentation + mlx.optimizers.Optimizer.update — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.RMSprop.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.RMSprop.html index e5e1aa65..ebb60819 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.RMSprop.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.RMSprop.html @@ -8,7 +8,7 @@ - mlx.optimizers.RMSprop — MLX 0.20.0 documentation + mlx.optimizers.RMSprop — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.SGD.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.SGD.html index 8e7d1b0e..74dfdbdb 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.SGD.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.SGD.html @@ -8,7 +8,7 @@ - mlx.optimizers.SGD — MLX 0.20.0 documentation + mlx.optimizers.SGD — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.cosine_decay.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.cosine_decay.html index 654c4976..c46a28db 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.cosine_decay.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.cosine_decay.html @@ -8,7 +8,7 @@ - mlx.optimizers.cosine_decay — MLX 0.20.0 documentation + mlx.optimizers.cosine_decay — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.exponential_decay.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.exponential_decay.html index d150ccb4..21f7f355 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.exponential_decay.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.exponential_decay.html @@ -8,7 +8,7 @@ - mlx.optimizers.exponential_decay — MLX 0.20.0 documentation + mlx.optimizers.exponential_decay — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.join_schedules.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.join_schedules.html index 931e6e29..3df4fbea 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.join_schedules.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.join_schedules.html @@ -8,7 +8,7 @@ - mlx.optimizers.join_schedules — MLX 0.20.0 documentation + mlx.optimizers.join_schedules — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.linear_schedule.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.linear_schedule.html index e9aec67b..807bed1f 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.linear_schedule.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.linear_schedule.html @@ -8,7 +8,7 @@ - mlx.optimizers.linear_schedule — MLX 0.20.0 documentation + mlx.optimizers.linear_schedule — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.step_decay.html b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.step_decay.html index 0f20abc6..3b9c5b4e 100644 --- a/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.step_decay.html +++ b/docs/build/html/python/optimizers/_autosummary/mlx.optimizers.step_decay.html @@ -8,7 +8,7 @@ - mlx.optimizers.step_decay — MLX 0.20.0 documentation + mlx.optimizers.step_decay — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/common_optimizers.html b/docs/build/html/python/optimizers/common_optimizers.html index 4e40764b..6dc07a35 100644 --- a/docs/build/html/python/optimizers/common_optimizers.html +++ b/docs/build/html/python/optimizers/common_optimizers.html @@ -8,7 +8,7 @@ - Common Optimizers — MLX 0.20.0 documentation + Common Optimizers — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/optimizer.html b/docs/build/html/python/optimizers/optimizer.html index 4e080517..5aa49958 100644 --- a/docs/build/html/python/optimizers/optimizer.html +++ b/docs/build/html/python/optimizers/optimizer.html @@ -8,7 +8,7 @@ - Optimizer — MLX 0.20.0 documentation + Optimizer — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/optimizers/schedulers.html b/docs/build/html/python/optimizers/schedulers.html index c38b9e94..e5c19102 100644 --- a/docs/build/html/python/optimizers/schedulers.html +++ b/docs/build/html/python/optimizers/schedulers.html @@ -8,7 +8,7 @@ - Schedulers — MLX 0.20.0 documentation + Schedulers — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -131,8 +131,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/random.html b/docs/build/html/python/random.html index 82efd6af..2d606a54 100644 --- a/docs/build/html/python/random.html +++ b/docs/build/html/python/random.html @@ -8,7 +8,7 @@ - Random — MLX 0.20.0 documentation + Random — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/transforms.html b/docs/build/html/python/transforms.html index 4ee6f244..ccedbe16 100644 --- a/docs/build/html/python/transforms.html +++ b/docs/build/html/python/transforms.html @@ -8,7 +8,7 @@ - Transforms — MLX 0.20.0 documentation + Transforms — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/python/tree_utils.html b/docs/build/html/python/tree_utils.html index 233c7296..be8a0239 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.20.0 documentation + Tree Utils — MLX 0.21.0 documentation @@ -39,7 +39,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -130,8 +130,8 @@ - MLX 0.20.0 documentation - Home - MLX 0.20.0 documentation - Home + MLX 0.21.0 documentation - Home + MLX 0.21.0 documentation - Home @@ -444,7 +444,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -521,6 +520,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -550,6 +550,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/quantized_8h.html b/docs/build/html/quantized_8h.html index c0e18903..15c39827 100644 --- a/docs/build/html/quantized_8h.html +++ b/docs/build/html/quantized_8h.html @@ -194,9 +194,6 @@ Functions 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)   -template<typename T , const int group_size, const int bits> -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) -  template<typename T , const int group_size, const int bits> void affine_dequantize (const device uint8_t *w, const device T *scales, const device T *biases, device T *out, uint2 index, uint2 grid_dim)   @@ -514,49 +511,6 @@ template<typename T , const int group_size, const int bits>
    -
    - - -

    ◆ affine_quantize_scales_biases()

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

    Functions

    template<typename T , typename U , typename Op , int N_READS = REDUCE_N_READS>
    void all_reduce (const device T *in, device U *out, const constant size_t &in_size, const constant size_t &row_size, uint3 gid, uint3 lid, uint3 lsize, uint simd_per_group, uint simd_lane_id, uint simd_group_id)
     
    template<typename T , typename U , typename Op , typename IdxT = int64_t, int N_READS = REDUCE_N_READS>
    void all_reduce (const device T *in, device U *out, const constant size_t &in_size, const constant size_t &row_size, uint3 gid, uint3 lid, uint3 lsize, uint simd_per_group, uint simd_lane_id, uint simd_group_id)
     

    Function Documentation

    - -

    ◆ all_reduce()

    + +

    ◆ all_reduce()

    -template<typename T , typename U , typename Op , int N_READS = REDUCE_N_READS>
    +template<typename T , typename U , typename Op , typename IdxT = int64_t, int N_READS = REDUCE_N_READS>
    diff --git a/docs/build/html/reduce__all_8h_source.html b/docs/build/html/reduce__all_8h_source.html index 013cf714..34ab309f 100644 --- a/docs/build/html/reduce__all_8h_source.html +++ b/docs/build/html/reduce__all_8h_source.html @@ -93,70 +93,76 @@ $(function(){ initResizable(false); });
    Go to the documentation of this file.
    1// Copyright © 2023-2024 Apple Inc.
    2
    -
    3template <typename T, typename U, typename Op, int N_READS = REDUCE_N_READS>
    -
    -
    4[[kernel]] void all_reduce(
    -
    5 const device T* in [[buffer(0)]],
    -
    6 device U* out [[buffer(1)]],
    -
    7 const constant size_t& in_size [[buffer(2)]],
    -
    8 const constant size_t& row_size [[buffer(3)]],
    -
    9 uint3 gid [[threadgroup_position_in_grid]],
    -
    10 uint3 lid [[thread_position_in_threadgroup]],
    -
    11 uint3 lsize [[threads_per_threadgroup]],
    -
    12 uint simd_per_group [[simdgroups_per_threadgroup]],
    -
    13 uint simd_lane_id [[thread_index_in_simdgroup]],
    -
    14 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    -
    15 Op op;
    -
    16 threadgroup U shared_vals[simd_size];
    -
    17
    -
    18 U total = Op::init;
    -
    19 int64_t start_idx = gid.y * row_size;
    -
    20 int64_t actual_row =
    -
    21 (start_idx + row_size <= in_size) ? row_size : in_size - start_idx;
    -
    22 int64_t blocks = actual_row / (lsize.x * N_READS);
    -
    23 int extra = actual_row - blocks * (lsize.x * N_READS);
    -
    24 extra -= lid.x * N_READS;
    -
    25 start_idx += lid.x * N_READS;
    -
    26 in += start_idx;
    -
    27
    -
    28 if (extra >= N_READS) {
    -
    29 blocks++;
    -
    30 extra = 0;
    -
    31 }
    +
    3template <
    +
    4 typename T,
    +
    5 typename U,
    +
    6 typename Op,
    +
    7 typename IdxT = int64_t,
    +
    8 int N_READS = REDUCE_N_READS>
    +
    +
    9[[kernel]] void all_reduce(
    +
    10 const device T* in [[buffer(0)]],
    +
    11 device U* out [[buffer(1)]],
    +
    12 const constant size_t& in_size [[buffer(2)]],
    +
    13 const constant size_t& row_size [[buffer(3)]],
    +
    14 uint3 gid [[threadgroup_position_in_grid]],
    +
    15 uint3 lid [[thread_position_in_threadgroup]],
    +
    16 uint3 lsize [[threads_per_threadgroup]],
    +
    17 uint simd_per_group [[simdgroups_per_threadgroup]],
    +
    18 uint simd_lane_id [[thread_index_in_simdgroup]],
    +
    19 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    +
    20 Op op;
    +
    21 threadgroup U shared_vals[simd_size];
    +
    22
    +
    23 U total = Op::init;
    +
    24 IdxT start_idx = gid.y * IdxT(row_size);
    +
    25 IdxT actual_row =
    +
    26 (start_idx + row_size <= in_size) ? row_size : in_size - start_idx;
    +
    27 IdxT blocks = actual_row / (lsize.x * N_READS);
    +
    28 int extra = actual_row - blocks * (lsize.x * N_READS);
    +
    29 extra -= lid.x * N_READS;
    +
    30 start_idx += lid.x * N_READS;
    +
    31 in += start_idx;
    32
    -
    33 for (int64_t b = 0; b < blocks; b++) {
    -
    34 for (int i = 0; i < N_READS; i++) {
    -
    35 total = op(static_cast<U>(in[i]), total);
    -
    36 }
    -
    37 in += lsize.x * N_READS;
    -
    38 }
    -
    39 if (extra > 0) {
    -
    40 for (int i = 0; i < extra; i++) {
    -
    41 total = op(static_cast<U>(in[i]), total);
    -
    42 }
    +
    33 if (extra >= N_READS) {
    +
    34 blocks++;
    +
    35 extra = 0;
    +
    36 }
    +
    37
    +
    38 for (IdxT b = 0; b < blocks; b++) {
    +
    39 for (int i = 0; i < N_READS; i++) {
    +
    40 total = op(static_cast<U>(in[i]), total);
    +
    41 }
    +
    42 in += lsize.x * N_READS;
    43 }
    -
    44
    -
    45 // Reduction within simd group
    -
    46 total = op.simd_reduce(total);
    -
    47 if (simd_per_group > 1) {
    -
    48 if (simd_lane_id == 0) {
    -
    49 shared_vals[simd_group_id] = total;
    -
    50 }
    -
    51
    -
    52 // Reduction within thread group
    -
    53 threadgroup_barrier(mem_flags::mem_threadgroup);
    -
    54 total = lid.x < simd_per_group ? shared_vals[lid.x] : op.init;
    -
    55 total = op.simd_reduce(total);
    -
    56 }
    -
    57
    -
    58 if (lid.x == 0) {
    -
    59 out[gid.y] = total;
    -
    60 }
    -
    61}
    +
    44 if (extra > 0) {
    +
    45 for (int i = 0; i < extra; i++) {
    +
    46 total = op(static_cast<U>(in[i]), total);
    +
    47 }
    +
    48 }
    +
    49
    +
    50 // Reduction within simd group
    +
    51 total = op.simd_reduce(total);
    +
    52 if (simd_per_group > 1) {
    +
    53 if (simd_lane_id == 0) {
    +
    54 shared_vals[simd_group_id] = total;
    +
    55 }
    +
    56
    +
    57 // Reduction within thread group
    +
    58 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    59 total = lid.x < simd_per_group ? shared_vals[lid.x] : op.init;
    +
    60 total = op.simd_reduce(total);
    +
    61 }
    +
    62
    +
    63 if (lid.x == 0) {
    +
    64 out[gid.y] = total;
    +
    65 }
    +
    66}
    static constant constexpr const uint8_t simd_size
    Definition ops.h:22
    Op op
    Definition binary.h:129
    -
    void all_reduce(const device T *in, device U *out, const constant size_t &in_size, const constant size_t &row_size, uint3 gid, uint3 lid, uint3 lsize, uint simd_per_group, uint simd_lane_id, uint simd_group_id)
    Definition reduce_all.h:4
    +
    static constexpr int REDUCE_N_READS
    Definition defines.h:12
    +
    void all_reduce(const device T *in, device U *out, const constant size_t &in_size, const constant size_t &row_size, uint3 gid, uint3 lid, uint3 lsize, uint simd_per_group, uint simd_lane_id, uint simd_group_id)
    Definition reduce_all.h:9
    void all_reduce
    - - - - - - - - - - - - - + + + + + + + + + + + + +

    Functions

    template<typename T , typename U , typename Op , int NDIMS>
    void col_reduce_small (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize)
     
    template<typename T , typename U , typename Op , int NDIMS>
    void col_reduce_longcolumn (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, const constant size_t &out_size, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize)
     
    template<typename T , typename U , typename Op , int NDIMS, int BM, int BN>
    void col_reduce_looped (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, uint3 gid, uint3 gsize, uint simd_lane_id, uint simd_group_id)
     Our approach is the following simple looped approach:
     
    template<typename T , typename U , typename Op , int NDIMS, int BM, int BN>
    void col_reduce_2pass (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, const constant size_t &out_size, uint3 gid, uint3 gsize, uint simd_lane_id, uint simd_group_id)
     
    template<typename T , typename U , typename Op , typename IdxT , int NDIMS>
    void col_reduce_small (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize)
     
    template<typename T , typename U , typename Op , typename IdxT , int NDIMS>
    void col_reduce_longcolumn (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, const constant size_t &out_size, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize)
     
    template<typename T , typename U , typename Op , typename IdxT , int NDIMS, int BM, int BN>
    void col_reduce_looped (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, uint3 gid, uint3 gsize, uint simd_lane_id, uint simd_group_id)
     Our approach is the following simple looped approach:
     
    template<typename T , typename U , typename Op , typename IdxT , int NDIMS, int BM, int BN>
    void col_reduce_2pass (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, const constant size_t &out_size, uint3 gid, uint3 gsize, uint simd_lane_id, uint simd_group_id)
     

    Function Documentation

    - -

    ◆ col_reduce_2pass()

    + +

    ◆ col_reduce_2pass()

    -template<typename T , typename U , typename Op , int NDIMS, int BM, int BN>
    +template<typename T , typename U , typename Op , typename IdxT , int NDIMS, int BM, int BN>
    @@ -206,13 +206,13 @@ template<typename T , typename U , typename Op , int NDIMS, int BM, int BN> - -

    ◆ col_reduce_longcolumn()

    + +

    ◆ col_reduce_longcolumn()

    -template<typename T , typename U , typename Op , int NDIMS>
    +template<typename T , typename U , typename Op , typename IdxT , int NDIMS>
    void col_reduce_2pass
    @@ -299,13 +299,13 @@ template<typename T , typename U , typename Op , int NDIMS> - -

    ◆ col_reduce_looped()

    + +

    ◆ col_reduce_looped()

    -template<typename T , typename U , typename Op , int NDIMS, int BM, int BN>
    +template<typename T , typename U , typename Op , typename IdxT , int NDIMS, int BM, int BN>
    void col_reduce_longcolumn
    @@ -396,13 +396,13 @@ template<typename T , typename U , typename Op , int NDIMS, int BM, int BN> - -

    ◆ col_reduce_small()

    + +

    ◆ col_reduce_small()

    -template<typename T , typename U , typename Op , int NDIMS>
    +template<typename T , typename U , typename Op , typename IdxT , int NDIMS>
    void col_reduce_looped
    diff --git a/docs/build/html/reduce__col_8h_source.html b/docs/build/html/reduce__col_8h_source.html index caf4a5f8..3531ccde 100644 --- a/docs/build/html/reduce__col_8h_source.html +++ b/docs/build/html/reduce__col_8h_source.html @@ -93,9 +93,9 @@ $(function(){ initResizable(false); });
    Go to the documentation of this file.
    1// Copyright © 2023-2024 Apple Inc.
    2
    -
    3template <typename T, typename U, typename Op, int NDIMS>
    +
    3template <typename T, typename U, typename Op, typename IdxT, int NDIMS>
    -
    4[[kernel]] void col_reduce_small(
    +
    4[[kernel]] void col_reduce_small(
    5 const device T* in [[buffer(0)]],
    6 device U* out [[buffer(1)]],
    7 const constant size_t& reduction_size [[buffer(2)]],
    @@ -113,7 +113,7 @@ $(function(){ initResizable(false); });
    19 uint3 lsize [[threads_per_threadgroup]]) {
    20 constexpr int n_reads = 4;
    21 Op op;
    - +
    22 LoopedElemToLoc<NDIMS, IdxT, (NDIMS > 2)> loop(reduce_ndim);
    23 const device T* row;
    24
    25 U totals[n_reads];
    @@ -121,20 +121,20 @@ $(function(){ initResizable(false); });
    27 totals[i] = Op::init;
    28 }
    29
    -
    30 size_t column = size_t(gid.x) * lsize.x * n_reads + lid.x * n_reads;
    +
    30 IdxT column = IdxT(gid.x) * lsize.x * n_reads + lid.x * n_reads;
    31 if (column >= reduction_stride) {
    32 return;
    33 }
    34 bool safe = column + n_reads <= reduction_stride;
    35
    -
    36 size_t out_idx = gid.y + gsize.y * size_t(gid.z);
    -
    37 size_t in_idx = elem_to_loc(out_idx, shape, strides, ndim);
    +
    36 IdxT out_idx = gid.y + gsize.y * IdxT(gid.z);
    +
    37 IdxT in_idx = elem_to_loc<size_t, IdxT>(out_idx, shape, strides, ndim);
    38 in += in_idx + column;
    39
    -
    40 size_t total_rows = non_col_reductions * reduction_size;
    -
    41 loop.next(lid.y, reduce_shape, reduce_strides);
    -
    42 for (size_t r = lid.y; r < total_rows; r += lsize.y) {
    -
    43 row = in + loop.location(r, reduce_shape, reduce_strides, reduce_ndim);
    +
    40 IdxT total_rows = IdxT(non_col_reductions) * IdxT(reduction_size);
    +
    41 loop.next(lid.y, reduce_shape, reduce_strides);
    +
    42 for (IdxT r = lid.y; r < total_rows; r += lsize.y) {
    +
    43 row = in + loop.location();
    44 if (safe) {
    45 for (int i = 0; i < n_reads; i++) {
    46 totals[i] = op(static_cast<U>(row[i]), totals[i]);
    @@ -149,7 +149,7 @@ $(function(){ initResizable(false); });
    55 totals[i] = op(vals[i], totals[i]);
    56 }
    57 }
    -
    58 loop.next(lsize.y, reduce_shape, reduce_strides);
    +
    58 loop.next(lsize.y, reduce_shape, reduce_strides);
    59 }
    60
    61 if (lsize.y > 1) {
    @@ -174,7 +174,7 @@ $(function(){ initResizable(false); });
    80 }
    81
    82 if (lid.y == 0) {
    -
    83 out += out_idx * reduction_stride + column;
    +
    83 out += out_idx * IdxT(reduction_stride) + column;
    84 if (safe) {
    85 for (int i = 0; i < n_reads; i++) {
    86 out[i] = totals[i];
    @@ -188,9 +188,9 @@ $(function(){ initResizable(false); });
    94}
    95
    -
    96template <typename T, typename U, typename Op, int NDIMS>
    +
    96template <typename T, typename U, typename Op, typename IdxT, int NDIMS>
    -
    97[[kernel]] void col_reduce_longcolumn(
    +
    97[[kernel]] void col_reduce_longcolumn(
    98 const device T* in [[buffer(0)]],
    99 device U* out [[buffer(1)]],
    100 const constant size_t& reduction_size [[buffer(2)]],
    @@ -208,21 +208,21 @@ $(function(){ initResizable(false); });
    112 uint3 lid [[thread_position_in_threadgroup]],
    113 uint3 lsize [[threads_per_threadgroup]]) {
    114 Op op;
    - +
    115 LoopedElemToLoc<NDIMS, IdxT, (NDIMS > 2)> loop(reduce_ndim);
    116 const device T* row;
    117
    -
    118 size_t out_idx = gid.x + gsize.x * size_t(gid.y);
    -
    119 size_t in_idx = elem_to_loc(out_idx, shape, strides, ndim);
    +
    118 IdxT out_idx = gid.x + gsize.x * IdxT(gid.y);
    +
    119 IdxT in_idx = elem_to_loc<size_t, IdxT>(out_idx, shape, strides, ndim);
    120 in += in_idx + lid.x;
    121
    122 U total = Op::init;
    -
    123 size_t total_rows = non_col_reductions * reduction_size;
    -
    124 loop.next(gid.z * lsize.y + lid.y, reduce_shape, reduce_strides);
    -
    125 for (size_t r = gid.z * lsize.y + lid.y; r < total_rows;
    +
    123 IdxT total_rows = IdxT(non_col_reductions) * IdxT(reduction_size);
    +
    124 loop.next(gid.z * lsize.y + lid.y, reduce_shape, reduce_strides);
    +
    125 for (IdxT r = gid.z * lsize.y + lid.y; r < total_rows;
    126 r += lsize.y * gsize.z) {
    -
    127 row = in + loop.location(r, reduce_shape, reduce_strides, reduce_ndim);
    +
    127 row = in + loop.location();
    128 total = op(static_cast<U>(*row), total);
    -
    129 loop.next(lsize.y * gsize.z, reduce_shape, reduce_strides);
    +
    129 loop.next(lsize.y * gsize.z, reduce_shape, reduce_strides);
    130 }
    131
    132 threadgroup U shared_vals[32 * 32];
    @@ -232,256 +232,268 @@ $(function(){ initResizable(false); });
    136 for (uint i = 1; i < lsize.y; i++) {
    137 total = op(total, shared_vals[i * lsize.x + lid.x]);
    138 }
    -
    139 out[gid.z * out_size + out_idx * reduction_stride + lid.x] = total;
    -
    140 }
    -
    141}
    +
    139 out[gid.z * IdxT(out_size) + out_idx * IdxT(reduction_stride) + lid.x] =
    +
    140 total;
    +
    141 }
    +
    142}
    -
    142
    -
    154template <typename T, typename U, typename Op, int NDIMS, int BM, int BN>
    -
    -
    155[[kernel]] void col_reduce_looped(
    -
    156 const device T* in [[buffer(0)]],
    -
    157 device U* out [[buffer(1)]],
    -
    158 const constant size_t& reduction_size [[buffer(2)]],
    -
    159 const constant size_t& reduction_stride [[buffer(3)]],
    -
    160 const constant int* shape [[buffer(4)]],
    -
    161 const constant size_t* strides [[buffer(5)]],
    -
    162 const constant int& ndim [[buffer(6)]],
    -
    163 const constant int* reduce_shape [[buffer(7)]],
    -
    164 const constant size_t* reduce_strides [[buffer(8)]],
    -
    165 const constant int& reduce_ndim [[buffer(9)]],
    -
    166 const constant size_t& non_col_reductions [[buffer(10)]],
    -
    167 uint3 gid [[threadgroup_position_in_grid]],
    -
    168 uint3 gsize [[threadgroups_per_grid]],
    -
    169 uint simd_lane_id [[thread_index_in_simdgroup]],
    -
    170 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    -
    171 Op op;
    -
    172 constexpr int n_simdgroups = 8;
    -
    173 constexpr short tgp_size = n_simdgroups * simd_size;
    -
    174 constexpr short n_reads = (BM * BN) / tgp_size;
    -
    175 constexpr short n_read_blocks = BN / n_reads;
    -
    176
    -
    177 threadgroup U shared_vals[BN * BM];
    -
    178 U totals[n_reads];
    - -
    180 const device T* row;
    -
    181
    -
    182 for (int i = 0; i < n_reads; i++) {
    -
    183 totals[i] = Op::init;
    -
    184 }
    -
    185
    -
    186 short lid = simd_group_id * simd_size + simd_lane_id;
    -
    187 short2 offset((lid % n_read_blocks) * n_reads, lid / n_read_blocks);
    -
    188 size_t column = BN * gid.x + offset.x;
    -
    189 bool safe = column + n_reads <= reduction_stride;
    -
    190
    -
    191 size_t out_idx = gid.y + gsize.y * size_t(gid.z);
    -
    192 size_t in_idx = elem_to_loc(out_idx, shape, strides, ndim);
    -
    193 in += in_idx + column;
    -
    194
    -
    195 size_t total = non_col_reductions * reduction_size;
    -
    196 loop.next(offset.y, reduce_shape, reduce_strides);
    -
    197 for (size_t r = offset.y; r < total; r += BM) {
    -
    198 row = in + loop.location(r, reduce_shape, reduce_strides, reduce_ndim);
    -
    199
    -
    200 if (safe) {
    -
    201 for (int i = 0; i < n_reads; i++) {
    -
    202 totals[i] = op(static_cast<U>(row[i]), totals[i]);
    -
    203 }
    -
    204 } else {
    -
    205 U vals[n_reads];
    -
    206 for (int i = 0; i < n_reads; i++) {
    -
    207 vals[i] =
    -
    208 (column + i < reduction_stride) ? static_cast<U>(row[i]) : op.init;
    -
    209 }
    -
    210 for (int i = 0; i < n_reads; i++) {
    -
    211 totals[i] = op(vals[i], totals[i]);
    -
    212 }
    -
    213 }
    -
    214
    -
    215 loop.next(BM, reduce_shape, reduce_strides);
    -
    216 }
    -
    217
    -
    218 // We can use a simd reduction to accumulate across BM so each thread writes
    -
    219 // the partial output to SM and then each simdgroup does BN / n_simdgroups
    -
    220 // accumulations.
    -
    221 if (BM == 32) {
    -
    222 constexpr int n_outputs = BN / n_simdgroups;
    -
    223 static_assert(
    -
    224 BM != 32 || n_outputs == n_reads,
    -
    225 "The tile should be selected such that n_outputs == n_reads");
    -
    226 for (int i = 0; i < n_reads; i++) {
    -
    227 shared_vals[offset.y * BN + offset.x + i] = totals[i];
    -
    228 }
    -
    229 threadgroup_barrier(mem_flags::mem_threadgroup);
    -
    230 short2 out_offset(simd_group_id * n_outputs, simd_lane_id);
    -
    231 for (int i = 0; i < n_outputs; i++) {
    -
    232 totals[i] =
    -
    233 op.simd_reduce(shared_vals[out_offset.y * BN + out_offset.x + i]);
    -
    234 }
    -
    235
    -
    236 // Write the output.
    -
    237 if (simd_lane_id == 0) {
    -
    238 size_t out_column = BN * gid.x + out_offset.x;
    -
    239 out += out_idx * reduction_stride + out_column;
    -
    240 if (out_column + n_outputs <= reduction_stride) {
    -
    241 for (int i = 0; i < n_outputs; i++) {
    -
    242 out[i] = totals[i];
    -
    243 }
    -
    244 } else {
    -
    245 for (int i = 0; out_column + i < reduction_stride; i++) {
    -
    246 out[i] = totals[i];
    -
    247 }
    -
    248 }
    -
    249 }
    -
    250 }
    -
    251
    -
    252 // Each thread holds n_reads partial results. We write them all out to shared
    -
    253 // memory and threads with offset.y == 0 aggregate the columns and write the
    -
    254 // outputs.
    -
    255 else {
    -
    256 short x_block = offset.x / n_reads;
    -
    257 for (int i = 0; i < n_reads; i++) {
    -
    258 shared_vals[x_block * BM * n_reads + i * BM + offset.y] = totals[i];
    -
    259 }
    -
    260 threadgroup_barrier(mem_flags::mem_threadgroup);
    -
    261 if (offset.y == 0) {
    -
    262 for (int i = 0; i < n_reads; i++) {
    -
    263 for (int j = 1; j < BM; j++) {
    -
    264 totals[i] =
    -
    265 op(shared_vals[x_block * BM * n_reads + i * BM + j], totals[i]);
    -
    266 }
    -
    267 }
    -
    268 }
    -
    269
    -
    270 // Write the output.
    -
    271 if (offset.y == 0) {
    -
    272 out += out_idx * reduction_stride + column;
    -
    273 if (safe) {
    -
    274 for (int i = 0; i < n_reads; i++) {
    -
    275 out[i] = totals[i];
    -
    276 }
    -
    277 } else {
    -
    278 for (int i = 0; column + i < reduction_stride; i++) {
    -
    279 out[i] = totals[i];
    -
    280 }
    -
    281 }
    -
    282 }
    -
    283 }
    -
    284}
    +
    143
    +
    155template <
    +
    156 typename T,
    +
    157 typename U,
    +
    158 typename Op,
    +
    159 typename IdxT,
    +
    160 int NDIMS,
    +
    161 int BM,
    +
    162 int BN>
    +
    +
    163[[kernel]] void col_reduce_looped(
    +
    164 const device T* in [[buffer(0)]],
    +
    165 device U* out [[buffer(1)]],
    +
    166 const constant size_t& reduction_size [[buffer(2)]],
    +
    167 const constant size_t& reduction_stride [[buffer(3)]],
    +
    168 const constant int* shape [[buffer(4)]],
    +
    169 const constant size_t* strides [[buffer(5)]],
    +
    170 const constant int& ndim [[buffer(6)]],
    +
    171 const constant int* reduce_shape [[buffer(7)]],
    +
    172 const constant size_t* reduce_strides [[buffer(8)]],
    +
    173 const constant int& reduce_ndim [[buffer(9)]],
    +
    174 const constant size_t& non_col_reductions [[buffer(10)]],
    +
    175 uint3 gid [[threadgroup_position_in_grid]],
    +
    176 uint3 gsize [[threadgroups_per_grid]],
    +
    177 uint simd_lane_id [[thread_index_in_simdgroup]],
    +
    178 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    +
    179 Op op;
    +
    180 constexpr int n_simdgroups = 8;
    +
    181 constexpr short tgp_size = n_simdgroups * simd_size;
    +
    182 constexpr short n_reads = (BM * BN) / tgp_size;
    +
    183 constexpr short n_read_blocks = BN / n_reads;
    +
    184
    +
    185 threadgroup U shared_vals[BN * BM];
    +
    186 U totals[n_reads];
    +
    187 LoopedElemToLoc<NDIMS, IdxT, (NDIMS > 2)> loop(reduce_ndim);
    +
    188 const device T* row;
    +
    189
    +
    190 for (int i = 0; i < n_reads; i++) {
    +
    191 totals[i] = Op::init;
    +
    192 }
    +
    193
    +
    194 short lid = simd_group_id * simd_size + simd_lane_id;
    +
    195 short2 offset((lid % n_read_blocks) * n_reads, lid / n_read_blocks);
    +
    196 IdxT column = BN * gid.x + offset.x;
    +
    197 bool safe = column + n_reads <= reduction_stride;
    +
    198
    +
    199 IdxT out_idx = gid.y + gsize.y * IdxT(gid.z);
    +
    200 IdxT in_idx = elem_to_loc<size_t, IdxT>(out_idx, shape, strides, ndim);
    +
    201 in += in_idx + column;
    +
    202
    +
    203 IdxT total = IdxT(non_col_reductions) * IdxT(reduction_size);
    +
    204 loop.next(offset.y, reduce_shape, reduce_strides);
    +
    205 for (IdxT r = offset.y; r < total; r += BM) {
    +
    206 row = in + loop.location();
    +
    207
    +
    208 if (safe) {
    +
    209 for (int i = 0; i < n_reads; i++) {
    +
    210 totals[i] = op(static_cast<U>(row[i]), totals[i]);
    +
    211 }
    +
    212 } else {
    +
    213 U vals[n_reads];
    +
    214 for (int i = 0; i < n_reads; i++) {
    +
    215 vals[i] =
    +
    216 (column + i < reduction_stride) ? static_cast<U>(row[i]) : op.init;
    +
    217 }
    +
    218 for (int i = 0; i < n_reads; i++) {
    +
    219 totals[i] = op(vals[i], totals[i]);
    +
    220 }
    +
    221 }
    +
    222
    +
    223 loop.next(BM, reduce_shape, reduce_strides);
    +
    224 }
    +
    225
    +
    226 // We can use a simd reduction to accumulate across BM so each thread writes
    +
    227 // the partial output to SM and then each simdgroup does BN / n_simdgroups
    +
    228 // accumulations.
    +
    229 if (BM == 32) {
    +
    230 constexpr int n_outputs = BN / n_simdgroups;
    +
    231 static_assert(
    +
    232 BM != 32 || n_outputs == n_reads,
    +
    233 "The tile should be selected such that n_outputs == n_reads");
    +
    234 for (int i = 0; i < n_reads; i++) {
    +
    235 shared_vals[offset.y * BN + offset.x + i] = totals[i];
    +
    236 }
    +
    237 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    238 short2 out_offset(simd_group_id * n_outputs, simd_lane_id);
    +
    239 for (int i = 0; i < n_outputs; i++) {
    +
    240 totals[i] =
    +
    241 op.simd_reduce(shared_vals[out_offset.y * BN + out_offset.x + i]);
    +
    242 }
    +
    243
    +
    244 // Write the output.
    +
    245 if (simd_lane_id == 0) {
    +
    246 IdxT out_column = BN * gid.x + out_offset.x;
    +
    247 out += out_idx * IdxT(reduction_stride) + out_column;
    +
    248 if (out_column + n_outputs <= reduction_stride) {
    +
    249 for (int i = 0; i < n_outputs; i++) {
    +
    250 out[i] = totals[i];
    +
    251 }
    +
    252 } else {
    +
    253 for (int i = 0; out_column + i < reduction_stride; i++) {
    +
    254 out[i] = totals[i];
    +
    255 }
    +
    256 }
    +
    257 }
    +
    258 }
    +
    259
    +
    260 // Each thread holds n_reads partial results. We write them all out to shared
    +
    261 // memory and threads with offset.y == 0 aggregate the columns and write the
    +
    262 // outputs.
    +
    263 else {
    +
    264 short x_block = offset.x / n_reads;
    +
    265 for (int i = 0; i < n_reads; i++) {
    +
    266 shared_vals[x_block * BM * n_reads + i * BM + offset.y] = totals[i];
    +
    267 }
    +
    268 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    269 if (offset.y == 0) {
    +
    270 for (int i = 0; i < n_reads; i++) {
    +
    271 for (int j = 1; j < BM; j++) {
    +
    272 totals[i] =
    +
    273 op(shared_vals[x_block * BM * n_reads + i * BM + j], totals[i]);
    +
    274 }
    +
    275 }
    +
    276 }
    +
    277
    +
    278 // Write the output.
    +
    279 if (offset.y == 0) {
    +
    280 out += out_idx * IdxT(reduction_stride) + column;
    +
    281 if (safe) {
    +
    282 for (int i = 0; i < n_reads; i++) {
    +
    283 out[i] = totals[i];
    +
    284 }
    +
    285 } else {
    +
    286 for (int i = 0; column + i < reduction_stride; i++) {
    +
    287 out[i] = totals[i];
    +
    288 }
    +
    289 }
    +
    290 }
    +
    291 }
    +
    292}
    -
    285
    -
    286template <typename T, typename U, typename Op, int NDIMS, int BM, int BN>
    -
    -
    287[[kernel]] void col_reduce_2pass(
    -
    288 const device T* in [[buffer(0)]],
    -
    289 device U* out [[buffer(1)]],
    -
    290 const constant size_t& reduction_size [[buffer(2)]],
    -
    291 const constant size_t& reduction_stride [[buffer(3)]],
    -
    292 const constant int* shape [[buffer(4)]],
    -
    293 const constant size_t* strides [[buffer(5)]],
    -
    294 const constant int& ndim [[buffer(6)]],
    -
    295 const constant int* reduce_shape [[buffer(7)]],
    -
    296 const constant size_t* reduce_strides [[buffer(8)]],
    -
    297 const constant int& reduce_ndim [[buffer(9)]],
    -
    298 const constant size_t& non_col_reductions [[buffer(10)]],
    -
    299 const constant size_t& out_size [[buffer(11)]],
    -
    300 uint3 gid [[threadgroup_position_in_grid]],
    -
    301 uint3 gsize [[threadgroups_per_grid]],
    -
    302 uint simd_lane_id [[thread_index_in_simdgroup]],
    -
    303 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    -
    304 Op op;
    -
    305 constexpr int n_simdgroups = 8;
    -
    306 constexpr short tgp_size = n_simdgroups * simd_size;
    -
    307 constexpr short n_reads = (BM * BN) / tgp_size;
    -
    308 constexpr short n_read_blocks = BN / n_reads;
    -
    309 constexpr int n_outputs = BN / n_simdgroups;
    -
    310 constexpr short outer_blocks = 32;
    -
    311 static_assert(BM == 32, "BM should be equal to 32");
    -
    312
    -
    313 threadgroup U shared_vals[BN * BM];
    -
    314 U totals[n_reads];
    - -
    316 const device T* row;
    -
    317
    -
    318 for (int i = 0; i < n_reads; i++) {
    -
    319 totals[i] = Op::init;
    -
    320 }
    -
    321
    -
    322 short lid = simd_group_id * simd_size + simd_lane_id;
    -
    323 short2 offset((lid % n_read_blocks) * n_reads, lid / n_read_blocks);
    -
    324 size_t column = BN * gid.x + offset.x;
    -
    325 bool safe = column + n_reads <= reduction_stride;
    -
    326
    -
    327 size_t full_idx = gid.y + gsize.y * size_t(gid.z);
    -
    328 size_t block_idx = full_idx / out_size;
    -
    329 size_t out_idx = full_idx % out_size;
    -
    330 size_t in_idx = elem_to_loc(out_idx, shape, strides, ndim);
    -
    331 in += in_idx + column;
    +
    293
    +
    294template <
    +
    295 typename T,
    +
    296 typename U,
    +
    297 typename Op,
    +
    298 typename IdxT,
    +
    299 int NDIMS,
    +
    300 int BM,
    +
    301 int BN>
    +
    +
    302[[kernel]] void col_reduce_2pass(
    +
    303 const device T* in [[buffer(0)]],
    +
    304 device U* out [[buffer(1)]],
    +
    305 const constant size_t& reduction_size [[buffer(2)]],
    +
    306 const constant size_t& reduction_stride [[buffer(3)]],
    +
    307 const constant int* shape [[buffer(4)]],
    +
    308 const constant size_t* strides [[buffer(5)]],
    +
    309 const constant int& ndim [[buffer(6)]],
    +
    310 const constant int* reduce_shape [[buffer(7)]],
    +
    311 const constant size_t* reduce_strides [[buffer(8)]],
    +
    312 const constant int& reduce_ndim [[buffer(9)]],
    +
    313 const constant size_t& non_col_reductions [[buffer(10)]],
    +
    314 const constant size_t& out_size [[buffer(11)]],
    +
    315 uint3 gid [[threadgroup_position_in_grid]],
    +
    316 uint3 gsize [[threadgroups_per_grid]],
    +
    317 uint simd_lane_id [[thread_index_in_simdgroup]],
    +
    318 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    +
    319 Op op;
    +
    320 constexpr int n_simdgroups = 8;
    +
    321 constexpr short tgp_size = n_simdgroups * simd_size;
    +
    322 constexpr short n_reads = (BM * BN) / tgp_size;
    +
    323 constexpr short n_read_blocks = BN / n_reads;
    +
    324 constexpr int n_outputs = BN / n_simdgroups;
    +
    325 constexpr short outer_blocks = 32;
    +
    326 static_assert(BM == 32, "BM should be equal to 32");
    +
    327
    +
    328 threadgroup U shared_vals[BN * BM];
    +
    329 U totals[n_reads];
    +
    330 LoopedElemToLoc<NDIMS, IdxT, (NDIMS > 2)> loop(reduce_ndim);
    +
    331 const device T* row;
    332
    -
    333 size_t total = non_col_reductions * reduction_size;
    -
    334 loop.next(offset.y + block_idx * BM, reduce_shape, reduce_strides);
    -
    335 for (size_t r = offset.y + block_idx * BM; r < total;
    -
    336 r += outer_blocks * BM) {
    -
    337 row = in + loop.location(r, reduce_shape, reduce_strides, reduce_ndim);
    -
    338
    -
    339 if (safe) {
    -
    340 for (int i = 0; i < n_reads; i++) {
    -
    341 totals[i] = op(static_cast<U>(row[i]), totals[i]);
    -
    342 }
    -
    343 } else {
    -
    344 U vals[n_reads];
    -
    345 for (int i = 0; i < n_reads; i++) {
    -
    346 vals[i] =
    -
    347 (column + i < reduction_stride) ? static_cast<U>(row[i]) : op.init;
    -
    348 }
    -
    349 for (int i = 0; i < n_reads; i++) {
    -
    350 totals[i] = op(vals[i], totals[i]);
    -
    351 }
    -
    352 }
    -
    353
    -
    354 loop.next(outer_blocks * BM, reduce_shape, reduce_strides);
    -
    355 }
    -
    356
    -
    357 // We can use a simd reduction to accumulate across BM so each thread writes
    -
    358 // the partial output to SM and then each simdgroup does BN / n_simdgroups
    -
    359 // accumulations.
    -
    360 for (int i = 0; i < n_reads; i++) {
    -
    361 shared_vals[offset.y * BN + offset.x + i] = totals[i];
    -
    362 }
    -
    363 threadgroup_barrier(mem_flags::mem_threadgroup);
    -
    364 short2 out_offset(simd_group_id * n_outputs, simd_lane_id);
    -
    365 for (int i = 0; i < n_outputs; i++) {
    -
    366 totals[i] =
    -
    367 op.simd_reduce(shared_vals[out_offset.y * BN + out_offset.x + i]);
    -
    368 }
    -
    369
    -
    370 // Write the output.
    -
    371 if (simd_lane_id == 0) {
    -
    372 size_t out_column = BN * gid.x + out_offset.x;
    -
    373 out += full_idx * reduction_stride + out_column;
    -
    374 if (out_column + n_outputs <= reduction_stride) {
    -
    375 for (int i = 0; i < n_outputs; i++) {
    -
    376 out[i] = totals[i];
    -
    377 }
    -
    378 } else {
    -
    379 for (int i = 0; out_column + i < reduction_stride; i++) {
    -
    380 out[i] = totals[i];
    -
    381 }
    -
    382 }
    -
    383 }
    -
    384}
    +
    333 for (int i = 0; i < n_reads; i++) {
    +
    334 totals[i] = Op::init;
    +
    335 }
    +
    336
    +
    337 short lid = simd_group_id * simd_size + simd_lane_id;
    +
    338 short2 offset((lid % n_read_blocks) * n_reads, lid / n_read_blocks);
    +
    339 IdxT column = BN * gid.x + offset.x;
    +
    340 bool safe = column + n_reads <= reduction_stride;
    +
    341
    +
    342 IdxT full_idx = gid.y + gsize.y * IdxT(gid.z);
    +
    343 IdxT block_idx = full_idx / IdxT(out_size);
    +
    344 IdxT out_idx = full_idx % IdxT(out_size);
    +
    345 IdxT in_idx = elem_to_loc<size_t, IdxT>(out_idx, shape, strides, ndim);
    +
    346 in += in_idx + column;
    +
    347
    +
    348 IdxT total = IdxT(non_col_reductions) * IdxT(reduction_size);
    +
    349 loop.next(offset.y + block_idx * BM, reduce_shape, reduce_strides);
    +
    350 for (IdxT r = offset.y + block_idx * BM; r < total; r += outer_blocks * BM) {
    +
    351 row = in + loop.location();
    +
    352
    +
    353 if (safe) {
    +
    354 for (int i = 0; i < n_reads; i++) {
    +
    355 totals[i] = op(static_cast<U>(row[i]), totals[i]);
    +
    356 }
    +
    357 } else {
    +
    358 U vals[n_reads];
    +
    359 for (int i = 0; i < n_reads; i++) {
    +
    360 vals[i] =
    +
    361 (column + i < reduction_stride) ? static_cast<U>(row[i]) : op.init;
    +
    362 }
    +
    363 for (int i = 0; i < n_reads; i++) {
    +
    364 totals[i] = op(vals[i], totals[i]);
    +
    365 }
    +
    366 }
    +
    367
    +
    368 loop.next(outer_blocks * BM, reduce_shape, reduce_strides);
    +
    369 }
    +
    370
    +
    371 // We can use a simd reduction to accumulate across BM so each thread writes
    +
    372 // the partial output to SM and then each simdgroup does BN / n_simdgroups
    +
    373 // accumulations.
    +
    374 for (int i = 0; i < n_reads; i++) {
    +
    375 shared_vals[offset.y * BN + offset.x + i] = totals[i];
    +
    376 }
    +
    377 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    378 short2 out_offset(simd_group_id * n_outputs, simd_lane_id);
    +
    379 for (int i = 0; i < n_outputs; i++) {
    +
    380 totals[i] =
    +
    381 op.simd_reduce(shared_vals[out_offset.y * BN + out_offset.x + i]);
    +
    382 }
    +
    383
    +
    384 // Write the output.
    +
    385 if (simd_lane_id == 0) {
    +
    386 IdxT out_column = BN * gid.x + out_offset.x;
    +
    387 out += full_idx * IdxT(reduction_stride) + out_column;
    +
    388 if (out_column + n_outputs <= reduction_stride) {
    +
    389 for (int i = 0; i < n_outputs; i++) {
    +
    390 out[i] = totals[i];
    +
    391 }
    +
    392 } else {
    +
    393 for (int i = 0; out_column + i < reduction_stride; i++) {
    +
    394 out[i] = totals[i];
    +
    395 }
    +
    396 }
    +
    397 }
    +
    398}
    static constant constexpr const uint8_t simd_size
    Definition ops.h:22
    -
    METAL_FUNC stride_t elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim)
    Definition utils.h:87
    +
    METAL_FUNC IdxT elem_to_loc(uint elem, constant const int *shape, constant const StrideT *strides, int ndim)
    Definition utils.h:93
    Op op
    Definition binary.h:129
    -
    void col_reduce_2pass(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, const constant size_t &out_size, uint3 gid, uint3 gsize, uint simd_lane_id, uint simd_group_id)
    Definition reduce_col.h:287
    -
    void col_reduce_looped(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, uint3 gid, uint3 gsize, uint simd_lane_id, uint simd_group_id)
    Our approach is the following simple looped approach:
    Definition reduce_col.h:155
    -
    void col_reduce_longcolumn(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, const constant size_t &out_size, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize)
    Definition reduce_col.h:97
    -
    void col_reduce_small(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize)
    Definition reduce_col.h:4
    -
    Definition utils.h:197
    -
    void next(const constant int *shape, const constant size_t *strides)
    Definition utils.h:202
    -
    offset_t location(offset_t, const constant int *, const constant size_t *, int)
    Definition utils.h:229
    +
    void col_reduce_small(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize)
    Definition reduce_col.h:4
    +
    void col_reduce_2pass(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, const constant size_t &out_size, uint3 gid, uint3 gsize, uint simd_lane_id, uint simd_group_id)
    Definition reduce_col.h:302
    +
    void col_reduce_longcolumn(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, const constant size_t &out_size, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize)
    Definition reduce_col.h:97
    +
    void col_reduce_looped(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &reduction_stride, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, const constant size_t &non_col_reductions, uint3 gid, uint3 gsize, uint simd_lane_id, uint simd_group_id)
    Our approach is the following simple looped approach:
    Definition reduce_col.h:163
    +
    Definition utils.h:208
    - - - - - - - - - + + + + + + + + +
    void col_reduce_small
    template<typename T , typename U , typename Op , int N_READS = REDUCE_N_READS>
    METAL_FUNC void thread_reduce (thread U &total, const device T *row, int blocks, int extra)
     
    template<typename T , typename U , typename Op , int NDIMS, int N_READS = REDUCE_N_READS>
    void row_reduce_small (const device T *in, device U *out, const constant size_t &row_size, const constant size_t &non_row_reductions, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, uint simd_lane_id, uint3 gid, uint3 gsize, uint3 tid, uint3 tsize)
     
    template<typename T , typename U , typename Op , int N_READS = REDUCE_N_READS, int N_WRITES = REDUCE_N_WRITES>
    void row_reduce_simple (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &out_size, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
     
    template<typename T , typename U , typename Op , int NDIMS, int N_READS = REDUCE_N_READS>
    void row_reduce_looped (const device T *in, device U *out, const constant size_t &row_size, const constant size_t &non_row_reductions, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
     
    template<typename T , typename U , typename Op , typename IdxT , int NDIMS, int N_READS = REDUCE_N_READS>
    void row_reduce_small (const device T *in, device U *out, const constant size_t &row_size, const constant size_t &non_row_reductions, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, uint simd_lane_id, uint3 gid, uint3 gsize, uint3 tid, uint3 tsize)
     
    template<typename T , typename U , typename Op , typename IdxT = size_t, int N_READS = REDUCE_N_READS, int N_WRITES = REDUCE_N_WRITES>
    void row_reduce_simple (const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &out_size, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
     
    template<typename T , typename U , typename Op , typename IdxT , int NDIMS, int N_READS = REDUCE_N_READS>
    void row_reduce_looped (const device T *in, device U *out, const constant size_t &row_size, const constant size_t &non_row_reductions, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
     

    Function Documentation

    @@ -289,13 +289,13 @@ template<typename T , typename U , typename Op , int N_READS = REDUCE_N_READS
    - -

    ◆ row_reduce_looped()

    + +

    ◆ row_reduce_looped()

    -template<typename T , typename U , typename Op , int NDIMS, int N_READS = REDUCE_N_READS>
    +template<typename T , typename U , typename Op , typename IdxT , int NDIMS, int N_READS = REDUCE_N_READS>
    @@ -387,13 +387,13 @@ template<typename T , typename U , typename Op , int NDIMS, int N_READS = RED - -

    ◆ row_reduce_simple()

    + +

    ◆ row_reduce_simple()

    -template<typename T , typename U , typename Op , int N_READS = REDUCE_N_READS, int N_WRITES = REDUCE_N_WRITES>
    +template<typename T , typename U , typename Op , typename IdxT = size_t, int N_READS = REDUCE_N_READS, int N_WRITES = REDUCE_N_WRITES>
    void row_reduce_looped
    @@ -455,13 +455,13 @@ template<typename T , typename U , typename Op , int N_READS = REDUCE_N_READS - -

    ◆ row_reduce_small()

    + +

    ◆ row_reduce_small()

    -template<typename T , typename U , typename Op , int NDIMS, int N_READS = REDUCE_N_READS>
    +template<typename T , typename U , typename Op , typename IdxT , int NDIMS, int N_READS = REDUCE_N_READS>
    void row_reduce_simple
    diff --git a/docs/build/html/reduce__row_8h_source.html b/docs/build/html/reduce__row_8h_source.html index d59088ed..588211d0 100644 --- a/docs/build/html/reduce__row_8h_source.html +++ b/docs/build/html/reduce__row_8h_source.html @@ -198,7 +198,7 @@ $(function(){ initResizable(false); });
    110 const device T* inputs[N_WRITES];
    111 in += lid_x * N_READS;
    112 for (int i = 0; i < N_READS; i++) {
    -
    113 inputs[i] = in + elem_to_loc(row_idx + i, shape, strides, ndim);
    +
    113 inputs[i] = in + elem_to_loc(row_idx + i, shape, strides, ndim);
    114 }
    115
    @@ -283,197 +283,199 @@ $(function(){ initResizable(false); });
    193 typename T,
    194 typename U,
    195 typename Op,
    -
    196 int NDIMS,
    -
    197 int N_READS = REDUCE_N_READS>
    -
    -
    198[[kernel]] void row_reduce_small(
    -
    199 const device T* in [[buffer(0)]],
    -
    200 device U* out [[buffer(1)]],
    -
    201 const constant size_t& row_size [[buffer(2)]],
    -
    202 const constant size_t& non_row_reductions [[buffer(3)]],
    -
    203 const constant int* shape [[buffer(4)]],
    -
    204 const constant size_t* strides [[buffer(5)]],
    -
    205 const constant int& ndim [[buffer(6)]],
    -
    206 const constant int* reduce_shape [[buffer(7)]],
    -
    207 const constant size_t* reduce_strides [[buffer(8)]],
    -
    208 const constant int& reduce_ndim [[buffer(9)]],
    -
    209 uint simd_lane_id [[thread_index_in_simdgroup]],
    -
    210 uint3 gid [[threadgroup_position_in_grid]],
    -
    211 uint3 gsize [[threadgroups_per_grid]],
    -
    212 uint3 tid [[thread_position_in_grid]],
    -
    213 uint3 tsize [[threads_per_grid]]) {
    -
    214 Op op;
    -
    215
    -
    216 U total_val = Op::init;
    - -
    218
    -
    219 // Precompute some row reduction numbers
    -
    220 const device T* row;
    -
    221 int blocks = row_size / N_READS;
    -
    222 int extra = row_size % N_READS;
    -
    223
    -
    224 if ((non_row_reductions < 32 && row_size <= 8) || non_row_reductions <= 8) {
    -
    225 // Simple loop over non_row_reductions and reduce the row in the thread.
    -
    226 size_t out_idx = tid.x + tsize.y * size_t(tid.y);
    -
    227 in += elem_to_loc(out_idx, shape, strides, ndim);
    -
    228
    -
    229 for (uint r = 0; r < non_row_reductions; r++) {
    -
    230 row = in + loop.location(r, reduce_shape, reduce_strides, reduce_ndim);
    -
    231 thread_reduce<T, U, Op, N_READS>(total_val, row, blocks, extra);
    -
    232 loop.next(reduce_shape, reduce_strides);
    -
    233 }
    -
    234
    -
    235 out[out_idx] = total_val;
    -
    236 } else {
    -
    237 // Collaboratively reduce over non_row_reductions in the simdgroup. Each
    -
    238 // thread reduces every 32nd row and then a simple simd reduce.
    -
    239 size_t out_idx = gid.y + gsize.y * size_t(gid.z);
    -
    240 in += elem_to_loc(out_idx, shape, strides, ndim);
    -
    241
    -
    242 loop.next(simd_lane_id, reduce_shape, reduce_strides);
    -
    243
    -
    244 for (uint r = simd_lane_id; r < non_row_reductions; r += simd_size) {
    -
    245 row = in + loop.location(r, reduce_shape, reduce_strides, reduce_ndim);
    -
    246 thread_reduce<T, U, Op, N_READS>(total_val, row, blocks, extra);
    -
    247 loop.next(simd_size, reduce_shape, reduce_strides);
    -
    248 }
    -
    249
    -
    250 total_val = op.simd_reduce(total_val);
    -
    251
    -
    252 if (simd_lane_id == 0) {
    -
    253 out[out_idx] = total_val;
    -
    254 }
    -
    255 }
    -
    256}
    +
    196 typename IdxT,
    +
    197 int NDIMS,
    +
    198 int N_READS = REDUCE_N_READS>
    +
    +
    199[[kernel]] void row_reduce_small(
    +
    200 const device T* in [[buffer(0)]],
    +
    201 device U* out [[buffer(1)]],
    +
    202 const constant size_t& row_size [[buffer(2)]],
    +
    203 const constant size_t& non_row_reductions [[buffer(3)]],
    +
    204 const constant int* shape [[buffer(4)]],
    +
    205 const constant size_t* strides [[buffer(5)]],
    +
    206 const constant int& ndim [[buffer(6)]],
    +
    207 const constant int* reduce_shape [[buffer(7)]],
    +
    208 const constant size_t* reduce_strides [[buffer(8)]],
    +
    209 const constant int& reduce_ndim [[buffer(9)]],
    +
    210 uint simd_lane_id [[thread_index_in_simdgroup]],
    +
    211 uint3 gid [[threadgroup_position_in_grid]],
    +
    212 uint3 gsize [[threadgroups_per_grid]],
    +
    213 uint3 tid [[thread_position_in_grid]],
    +
    214 uint3 tsize [[threads_per_grid]]) {
    +
    215 Op op;
    +
    216
    +
    217 U total_val = Op::init;
    +
    218 LoopedElemToLoc<NDIMS, IdxT, (NDIMS > 2)> loop(reduce_ndim);
    +
    219
    +
    220 // Precompute some row reduction numbers
    +
    221 const device T* row;
    +
    222 int blocks = IdxT(row_size) / N_READS;
    +
    223 int extra = IdxT(row_size) % N_READS;
    +
    224
    +
    225 if ((non_row_reductions < 32 && row_size <= 8) || non_row_reductions <= 8) {
    +
    226 // Simple loop over non_row_reductions and reduce the row in the thread.
    +
    227 IdxT out_idx = tid.x + tsize.y * IdxT(tid.y);
    +
    228 in += elem_to_loc<size_t, IdxT>(out_idx, shape, strides, ndim);
    +
    229
    +
    230 for (uint r = 0; r < non_row_reductions; r++) {
    +
    231 row = in + loop.location();
    +
    232 thread_reduce<T, U, Op, N_READS>(total_val, row, blocks, extra);
    +
    233 loop.next(reduce_shape, reduce_strides);
    +
    234 }
    +
    235
    +
    236 out[out_idx] = total_val;
    +
    237 } else {
    +
    238 // Collaboratively reduce over non_row_reductions in the simdgroup. Each
    +
    239 // thread reduces every 32nd row and then a simple simd reduce.
    +
    240 IdxT out_idx = gid.y + gsize.y * IdxT(gid.z);
    +
    241 in += elem_to_loc<size_t, IdxT>(out_idx, shape, strides, ndim);
    +
    242
    +
    243 loop.next(simd_lane_id, reduce_shape, reduce_strides);
    +
    244
    +
    245 for (uint r = simd_lane_id; r < non_row_reductions; r += simd_size) {
    +
    246 row = in + loop.location();
    +
    247 thread_reduce<T, U, Op, N_READS>(total_val, row, blocks, extra);
    +
    248 loop.next(simd_size, reduce_shape, reduce_strides);
    +
    249 }
    +
    250
    +
    251 total_val = op.simd_reduce(total_val);
    +
    252
    +
    253 if (simd_lane_id == 0) {
    +
    254 out[out_idx] = total_val;
    +
    255 }
    +
    256 }
    +
    257}
    -
    257
    -
    258template <
    -
    259 typename T,
    -
    260 typename U,
    -
    261 typename Op,
    -
    262 int N_READS = REDUCE_N_READS,
    -
    263 int N_WRITES = REDUCE_N_WRITES>
    -
    -
    264[[kernel]] void row_reduce_simple(
    -
    265 const device T* in [[buffer(0)]],
    -
    266 device U* out [[buffer(1)]],
    -
    267 const constant size_t& reduction_size [[buffer(2)]],
    -
    268 const constant size_t& out_size [[buffer(3)]],
    -
    269 uint3 gid [[threadgroup_position_in_grid]],
    -
    270 uint3 gsize [[threadgroups_per_grid]],
    -
    271 uint3 lid [[thread_position_in_threadgroup]],
    -
    272 uint3 lsize [[threads_per_threadgroup]],
    -
    273 uint simd_lane_id [[thread_index_in_simdgroup]],
    -
    274 uint simd_per_group [[simdgroups_per_threadgroup]],
    -
    275 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    -
    276 threadgroup U shared_vals[simd_size * N_WRITES];
    -
    277 U totals[N_WRITES];
    -
    278
    -
    279 // Move to the row
    -
    280 size_t out_idx = N_WRITES * (gid.y + gsize.y * size_t(gid.z));
    -
    281 if (out_idx + N_WRITES > out_size) {
    -
    282 out_idx = out_size - N_WRITES;
    -
    283 }
    -
    284 in += out_idx * reduction_size;
    -
    285 out += out_idx;
    -
    286
    -
    287 // Each thread reduces across the row
    -
    288 int blocks = reduction_size / (lsize.x * N_READS);
    -
    289 int extra = reduction_size - blocks * (lsize.x * N_READS);
    - -
    291 totals, in, reduction_size, blocks, extra, lsize.x, lid.x);
    -
    292
    -
    293 // Reduce across the threadgroup
    - -
    295 totals, shared_vals, lid, simd_lane_id, simd_per_group, simd_group_id);
    -
    296
    -
    297 // Write the output
    -
    298 if (lid.x == 0) {
    -
    299 for (int i = 0; i < N_WRITES; i++) {
    -
    300 out[i] = totals[i];
    -
    301 }
    -
    302 }
    -
    303}
    +
    258
    +
    259template <
    +
    260 typename T,
    +
    261 typename U,
    +
    262 typename Op,
    +
    263 typename IdxT = size_t,
    +
    264 int N_READS = REDUCE_N_READS,
    +
    265 int N_WRITES = REDUCE_N_WRITES>
    +
    +
    266[[kernel]] void row_reduce_simple(
    +
    267 const device T* in [[buffer(0)]],
    +
    268 device U* out [[buffer(1)]],
    +
    269 const constant size_t& reduction_size [[buffer(2)]],
    +
    270 const constant size_t& out_size [[buffer(3)]],
    +
    271 uint3 gid [[threadgroup_position_in_grid]],
    +
    272 uint3 gsize [[threadgroups_per_grid]],
    +
    273 uint3 lid [[thread_position_in_threadgroup]],
    +
    274 uint3 lsize [[threads_per_threadgroup]],
    +
    275 uint simd_lane_id [[thread_index_in_simdgroup]],
    +
    276 uint simd_per_group [[simdgroups_per_threadgroup]],
    +
    277 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    +
    278 threadgroup U shared_vals[simd_size * N_WRITES];
    +
    279 U totals[N_WRITES];
    +
    280
    +
    281 // Move to the row
    +
    282 IdxT out_idx = N_WRITES * (gid.y + gsize.y * IdxT(gid.z));
    +
    283 if (out_idx + N_WRITES > out_size) {
    +
    284 out_idx = out_size - N_WRITES;
    +
    285 }
    +
    286 in += out_idx * IdxT(reduction_size);
    +
    287 out += out_idx;
    +
    288
    +
    289 // Each thread reduces across the row
    +
    290 int blocks = IdxT(reduction_size) / (lsize.x * N_READS);
    +
    291 int extra = reduction_size - blocks * (lsize.x * N_READS);
    + +
    293 totals, in, reduction_size, blocks, extra, lsize.x, lid.x);
    +
    294
    +
    295 // Reduce across the threadgroup
    + +
    297 totals, shared_vals, lid, simd_lane_id, simd_per_group, simd_group_id);
    +
    298
    +
    299 // Write the output
    +
    300 if (lid.x == 0) {
    +
    301 for (int i = 0; i < N_WRITES; i++) {
    +
    302 out[i] = totals[i];
    +
    303 }
    +
    304 }
    +
    305}
    -
    304
    -
    305template <
    -
    306 typename T,
    -
    307 typename U,
    -
    308 typename Op,
    -
    309 int NDIMS,
    -
    310 int N_READS = REDUCE_N_READS>
    -
    -
    311[[kernel]] void row_reduce_looped(
    -
    312 const device T* in [[buffer(0)]],
    -
    313 device U* out [[buffer(1)]],
    -
    314 const constant size_t& row_size [[buffer(2)]],
    -
    315 const constant size_t& non_row_reductions [[buffer(3)]],
    -
    316 const constant int* shape [[buffer(4)]],
    -
    317 const constant size_t* strides [[buffer(5)]],
    -
    318 const constant int& ndim [[buffer(6)]],
    -
    319 const constant int* reduce_shape [[buffer(7)]],
    -
    320 const constant size_t* reduce_strides [[buffer(8)]],
    -
    321 const constant int& reduce_ndim [[buffer(9)]],
    -
    322 uint3 gid [[threadgroup_position_in_grid]],
    -
    323 uint3 gsize [[threadgroups_per_grid]],
    -
    324 uint3 lid [[thread_position_in_threadgroup]],
    -
    325 uint3 lsize [[threads_per_threadgroup]],
    -
    326 uint simd_lane_id [[thread_index_in_simdgroup]],
    -
    327 uint simd_per_group [[simdgroups_per_threadgroup]],
    -
    328 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    -
    329 Op op;
    -
    330 threadgroup U shared_vals[simd_size];
    -
    331 U total = Op::init;
    -
    332
    -
    333 size_t out_idx = gid.y + gsize.y * size_t(gid.z);
    -
    334
    -
    335 // lid.x * N_READS breaks the per_thread_row_reduce interface a bit. Maybe it
    -
    336 // needs a small refactor.
    -
    337 in += elem_to_loc(out_idx, shape, strides, ndim) + lid.x * N_READS;
    -
    338
    - -
    340 const device T* row;
    -
    341 int blocks = row_size / (lsize.x * N_READS);
    -
    342 int extra = row_size - blocks * (lsize.x * N_READS);
    -
    343
    -
    344 for (size_t i = 0; i < non_row_reductions; i++) {
    -
    345 row = in + loop.location(i, reduce_shape, reduce_strides, reduce_ndim);
    -
    346
    -
    347 // Each thread reduces across the row
    -
    348 U row_total;
    - -
    350 &row_total, &row, blocks, extra, lsize.x, lid.x);
    -
    351
    -
    352 // Aggregate across rows
    -
    353 total = op(total, row_total);
    -
    354
    -
    355 loop.next(reduce_shape, reduce_strides);
    -
    356 }
    -
    357
    -
    358 // Reduce across the threadgroup
    - -
    360 &total, shared_vals, lid, simd_lane_id, simd_per_group, simd_group_id);
    +
    306
    +
    307template <
    +
    308 typename T,
    +
    309 typename U,
    +
    310 typename Op,
    +
    311 typename IdxT,
    +
    312 int NDIMS,
    +
    313 int N_READS = REDUCE_N_READS>
    +
    +
    314[[kernel]] void row_reduce_looped(
    +
    315 const device T* in [[buffer(0)]],
    +
    316 device U* out [[buffer(1)]],
    +
    317 const constant size_t& row_size [[buffer(2)]],
    +
    318 const constant size_t& non_row_reductions [[buffer(3)]],
    +
    319 const constant int* shape [[buffer(4)]],
    +
    320 const constant size_t* strides [[buffer(5)]],
    +
    321 const constant int& ndim [[buffer(6)]],
    +
    322 const constant int* reduce_shape [[buffer(7)]],
    +
    323 const constant size_t* reduce_strides [[buffer(8)]],
    +
    324 const constant int& reduce_ndim [[buffer(9)]],
    +
    325 uint3 gid [[threadgroup_position_in_grid]],
    +
    326 uint3 gsize [[threadgroups_per_grid]],
    +
    327 uint3 lid [[thread_position_in_threadgroup]],
    +
    328 uint3 lsize [[threads_per_threadgroup]],
    +
    329 uint simd_lane_id [[thread_index_in_simdgroup]],
    +
    330 uint simd_per_group [[simdgroups_per_threadgroup]],
    +
    331 uint simd_group_id [[simdgroup_index_in_threadgroup]]) {
    +
    332 Op op;
    +
    333 threadgroup U shared_vals[simd_size];
    +
    334 U total = Op::init;
    +
    335
    +
    336 IdxT out_idx = gid.y + gsize.y * IdxT(gid.z);
    +
    337
    +
    338 // lid.x * N_READS breaks the per_thread_row_reduce interface a bit. Maybe it
    +
    339 // needs a small refactor.
    +
    340 in += elem_to_loc<size_t, IdxT>(out_idx, shape, strides, ndim) +
    +
    341 lid.x * N_READS;
    +
    342
    +
    343 LoopedElemToLoc<NDIMS, IdxT, (NDIMS > 2)> loop(reduce_ndim);
    +
    344 const device T* row;
    +
    345 int blocks = IdxT(row_size) / (lsize.x * N_READS);
    +
    346 int extra = row_size - blocks * (lsize.x * N_READS);
    +
    347
    +
    348 for (IdxT i = 0; i < non_row_reductions; i++) {
    +
    349 row = in + loop.location();
    +
    350
    +
    351 // Each thread reduces across the row
    +
    352 U row_total;
    + +
    354 &row_total, &row, blocks, extra, lsize.x, lid.x);
    +
    355
    +
    356 // Aggregate across rows
    +
    357 total = op(total, row_total);
    +
    358
    +
    359 loop.next(reduce_shape, reduce_strides);
    +
    360 }
    361
    -
    362 // Write the output
    -
    363 if (lid.x == 0) {
    -
    364 out[out_idx] = total;
    -
    365 }
    -
    366}
    +
    362 // Reduce across the threadgroup
    + +
    364 &total, shared_vals, lid, simd_lane_id, simd_per_group, simd_group_id);
    +
    365
    +
    366 // Write the output
    +
    367 if (lid.x == 0) {
    +
    368 out[out_idx] = total;
    +
    369 }
    +
    370}
    static constant constexpr const uint8_t simd_size
    Definition ops.h:22
    -
    METAL_FUNC stride_t elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim)
    Definition utils.h:87
    +
    METAL_FUNC IdxT elem_to_loc(uint elem, constant const int *shape, constant const StrideT *strides, int ndim)
    Definition utils.h:93
    Op op
    Definition binary.h:129
    static constexpr int REDUCE_N_READS
    Definition defines.h:12
    static constexpr int REDUCE_N_WRITES
    Definition defines.h:13
    -
    void row_reduce_small(const device T *in, device U *out, const constant size_t &row_size, const constant size_t &non_row_reductions, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, uint simd_lane_id, uint3 gid, uint3 gsize, uint3 tid, uint3 tsize)
    Definition reduce_row.h:198
    METAL_FUNC void per_thread_row_reduce(thread U totals[N_WRITES], const device T *inputs[N_WRITES], int blocks, int extra, uint lsize_x, uint lid_x)
    The thread group collaboratively reduces across the rows with bounds checking.
    Definition reduce_row.h:19
    METAL_FUNC void threadgroup_reduce(thread U totals[N_WRITES], threadgroup U *shared_vals, uint3 lid, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
    Reduce within the threadgroup.
    Definition reduce_row.h:129
    -
    void row_reduce_simple(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &out_size, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
    Definition reduce_row.h:264
    -
    void row_reduce_looped(const device T *in, device U *out, const constant size_t &row_size, const constant size_t &non_row_reductions, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
    Definition reduce_row.h:311
    +
    void row_reduce_small(const device T *in, device U *out, const constant size_t &row_size, const constant size_t &non_row_reductions, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, uint simd_lane_id, uint3 gid, uint3 gsize, uint3 tid, uint3 tsize)
    Definition reduce_row.h:199
    +
    void row_reduce_simple(const device T *in, device U *out, const constant size_t &reduction_size, const constant size_t &out_size, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
    Definition reduce_row.h:266
    +
    void row_reduce_looped(const device T *in, device U *out, const constant size_t &row_size, const constant size_t &non_row_reductions, const constant int *shape, const constant size_t *strides, const constant int &ndim, const constant int *reduce_shape, const constant size_t *reduce_strides, const constant int &reduce_ndim, uint3 gid, uint3 gsize, uint3 lid, uint3 lsize, uint simd_lane_id, uint simd_per_group, uint simd_group_id)
    Definition reduce_row.h:314
    METAL_FUNC void thread_reduce(thread U &total, const device T *row, int blocks, int extra)
    Definition reduce_row.h:166
    -
    Definition utils.h:197
    -
    void next(const constant int *shape, const constant size_t *strides)
    Definition utils.h:202
    -
    offset_t location(offset_t, const constant int *, const constant size_t *, int)
    Definition utils.h:229
    +
    Definition utils.h:208
    void row_reduce_small
    - - - - - -
    -
    MLX -
    -
    -
    - - - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    -
    -
    scaled_dot_product_attention_params.h
    -
    -
    -Go to the documentation of this file.
    1//
    -
    2// scaled_dot_product_attention_params.h
    -
    3// mlx
    -
    4
    -
    5#pragma once
    -
    6
    -
    - -
    8 const int M;
    -
    9 const int N;
    -
    10 const int K;
    -
    11
    -
    12 const int ldq; // ldq == ldo
    -
    13 const int ldk;
    -
    14 const int ldv;
    -
    15 const int lds;
    -
    16 const int ldo;
    -
    17
    -
    18 const int tiles_n;
    -
    19 const int tiles_m;
    -
    20
    -
    21 const int batch_stride_q;
    -
    22 const int batch_stride_k;
    -
    23 const int batch_stride_v;
    -
    24 const int batch_stride_o;
    -
    25
    -
    26 const int swizzle_log;
    - - - -
    30
    -
    31 const int batch_ndim;
    -
    32 const float alpha;
    -
    33};
    -
    -
    34
    -
    - -
    36 // Associated dimensions & transposition information
    -
    37 const uint QUERY_SEQUENCE_LENGTH = 1;
    -
    38 const uint N_Q_HEADS = 32;
    -
    39 const uint N_KV_HEADS = 32;
    -
    40 const uint KV_TILES = 1;
    -
    41 const float INV_ALPHA = 0.08838834764831843f;
    -
    42};
    -
    -
    Definition scaled_dot_product_attention_params.h:7
    -
    const int tiles_m
    Definition scaled_dot_product_attention_params.h:19
    -
    const int batch_stride_v
    Definition scaled_dot_product_attention_params.h:23
    -
    const int batch_stride_k
    Definition scaled_dot_product_attention_params.h:22
    -
    const int ldk
    Definition scaled_dot_product_attention_params.h:13
    -
    const int lds
    Definition scaled_dot_product_attention_params.h:15
    -
    const int gemm_sv_m_block_iterations
    Definition scaled_dot_product_attention_params.h:29
    -
    const int batch_stride_o
    Definition scaled_dot_product_attention_params.h:24
    -
    const int M
    Definition scaled_dot_product_attention_params.h:8
    -
    const int tiles_n
    Definition scaled_dot_product_attention_params.h:18
    -
    const int swizzle_log
    Definition scaled_dot_product_attention_params.h:26
    -
    const int batch_ndim
    Definition scaled_dot_product_attention_params.h:31
    -
    const float alpha
    Definition scaled_dot_product_attention_params.h:32
    -
    const int batch_stride_q
    Definition scaled_dot_product_attention_params.h:21
    -
    const int ldo
    Definition scaled_dot_product_attention_params.h:16
    -
    const int N
    Definition scaled_dot_product_attention_params.h:9
    -
    const int gemm_n_iterations_aligned
    Definition scaled_dot_product_attention_params.h:27
    -
    const int K
    Definition scaled_dot_product_attention_params.h:10
    -
    const int gemm_k_iterations_aligned
    Definition scaled_dot_product_attention_params.h:28
    -
    const int ldv
    Definition scaled_dot_product_attention_params.h:14
    -
    const int ldq
    Definition scaled_dot_product_attention_params.h:12
    -
    Definition scaled_dot_product_attention_params.h:35
    -
    const uint N_Q_HEADS
    Definition scaled_dot_product_attention_params.h:38
    -
    const uint QUERY_SEQUENCE_LENGTH
    Definition scaled_dot_product_attention_params.h:37
    -
    const uint KV_TILES
    Definition scaled_dot_product_attention_params.h:40
    -
    const uint N_KV_HEADS
    Definition scaled_dot_product_attention_params.h:39
    -
    const float INV_ALPHA
    Definition scaled_dot_product_attention_params.h:41
    -
    - - -
    - - diff --git a/docs/build/html/scan_8h.html b/docs/build/html/scan_8h.html index d4dce074..17c2b345 100644 --- a/docs/build/html/scan_8h.html +++ b/docs/build/html/scan_8h.html @@ -164,7 +164,7 @@ Functions
    val = simd_scan(val); \
    return simd_shuffle_and_fill_up(val, init, 1); \
    }
    -
    uint64_t simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta)
    Definition utils.h:342
    +
    uint64_t simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta)
    Definition utils.h:383
    diff --git a/docs/build/html/scan_8h_source.html b/docs/build/html/scan_8h_source.html index ed748db2..0aa061ea 100644 --- a/docs/build/html/scan_8h_source.html +++ b/docs/build/html/scan_8h_source.html @@ -623,9 +623,9 @@ $(function(){ initResizable(false); });
    487}
    static constant constexpr const uint8_t simd_size
    Definition ops.h:22
    -
    uint64_t simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta)
    Definition utils.h:342
    -
    uint64_t simd_shuffle(uint64_t data, uint16_t lane)
    Definition utils.h:367
    -
    T ceildiv(T N, U M)
    Compute ceil((float)N/(float)M)
    Definition utils.h:272
    +
    uint64_t simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta)
    Definition utils.h:383
    +
    uint64_t simd_shuffle(uint64_t data, uint16_t lane)
    Definition utils.h:408
    +
    T ceildiv(T N, U M)
    Compute ceil((float)N/(float)M)
    Definition utils.h:313
    Op op
    Definition binary.h:129
    #define DEFINE_SIMD_SCAN()
    Definition scan.h:5
    #define DEFINE_SIMD_EXCLUSIVE_SCAN()
    Definition scan.h:19
    @@ -650,7 +650,7 @@ $(function(){ initResizable(false); });
    bool operator()(bool a, T b)
    Definition scan.h:78
    Definition scan.h:53
    Definition scan.h:32
    -
    Definition utils.h:17
    +
    Definition utils.h:23
    +
    +
    + +

    ◆ sdpa_vector_2pass_1()

    + +
    +
    +
    +template<typename T , int D>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void sdpa_vector_2pass_1 (const device T * queries,
    const device T * keys,
    const device T * values,
    device float * out,
    device float * sums,
    device float * maxs,
    const constant int & gqa_factor,
    const constant int & N,
    const constant size_t & k_stride,
    const constant size_t & v_stride,
    const constant float & scale,
    uint3 tid,
    uint simd_gid,
    uint simd_lid )
    +
    + +
    +
    + +

    ◆ sdpa_vector_2pass_2()

    + +
    +
    +
    +template<typename T , int D>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void sdpa_vector_2pass_2 (const device float * partials,
    const device float * sums,
    const device float * maxs,
    device T * out,
    uint3 tid,
    uint simd_gid,
    uint simd_lid )
    +
    +
    diff --git a/docs/build/html/sdpa__vector_8h_source.html b/docs/build/html/sdpa__vector_8h_source.html index 39019313..8785dfc9 100644 --- a/docs/build/html/sdpa__vector_8h_source.html +++ b/docs/build/html/sdpa__vector_8h_source.html @@ -115,106 +115,288 @@ $(function(){ initResizable(false); });
    21 constexpr int BN = 32;
    22 constexpr int BD = 32;
    23 constexpr int elem_per_thread = D / BD;
    -
    24
    -
    25 const int stride = BN * D;
    -
    26
    -
    27 typedef float U;
    -
    28
    -
    29 thread U q[elem_per_thread];
    -
    30 thread U k[elem_per_thread];
    -
    31 thread U o[elem_per_thread];
    -
    32
    -
    33 threadgroup U outputs[BN * BD];
    -
    34 threadgroup U max_scores[BN];
    -
    35 threadgroup U sum_exp_scores[BN];
    -
    36
    -
    37 // Adjust positions
    -
    38 const int head_idx = tid.y;
    -
    39 const int kv_head_idx = head_idx / gqa_factor;
    -
    40 queries += head_idx * D + simd_lid * elem_per_thread;
    -
    41 keys += kv_head_idx * k_stride + simd_gid * D + simd_lid * elem_per_thread;
    -
    42 values += kv_head_idx * v_stride + simd_gid * D + simd_lid * elem_per_thread;
    -
    43 out += head_idx * D + simd_gid * elem_per_thread;
    -
    44
    -
    45 // Read the query and 0 the output accumulator
    -
    46 for (int i = 0; i < elem_per_thread; i++) {
    -
    47 q[i] = static_cast<U>(scale) * queries[i];
    -
    48 }
    -
    49 for (int i = 0; i < elem_per_thread; i++) {
    -
    50 o[i] = 0;
    -
    51 }
    -
    52
    -
    53 U max_score = -INFINITY;
    -
    54 U sum_exp_score = 0;
    -
    55
    -
    56 // For each key
    -
    57 for (int i = simd_gid; i < N; i += BN) {
    -
    58 // Read the key
    -
    59 for (int i = 0; i < elem_per_thread; i++) {
    -
    60 k[i] = keys[i];
    -
    61 }
    -
    62
    -
    63 // Compute the i-th score
    -
    64 U score = 0;
    -
    65 for (int i = 0; i < elem_per_thread; i++) {
    -
    66 score += q[i] * k[i];
    -
    67 }
    -
    68 score = simd_sum(score);
    -
    69
    -
    70 // Update the accumulators
    -
    71 U new_max = max(max_score, score);
    -
    72 U factor = fast::exp(max_score - new_max);
    -
    73 U exp_score = fast::exp(score - new_max);
    -
    74
    -
    75 max_score = new_max;
    -
    76 sum_exp_score = sum_exp_score * factor + exp_score;
    -
    77
    -
    78 // Update the output accumulator
    -
    79 for (int i = 0; i < elem_per_thread; i++) {
    -
    80 o[i] = o[i] * factor + exp_score * values[i];
    -
    81 }
    -
    82
    -
    83 // Move the pointers to the next kv
    -
    84 keys += stride;
    -
    85 values += stride;
    -
    86 }
    -
    87 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    24 constexpr int stride = BN * D;
    +
    25
    +
    26 typedef float U;
    +
    27
    +
    28 thread U q[elem_per_thread];
    +
    29 thread U k[elem_per_thread];
    +
    30 thread U o[elem_per_thread];
    +
    31
    +
    32 threadgroup U outputs[BN * BD];
    +
    33 threadgroup U max_scores[BN];
    +
    34 threadgroup U sum_exp_scores[BN];
    +
    35
    +
    36 // Adjust positions
    +
    37 const int head_idx = tid.y;
    +
    38 const int kv_head_idx = head_idx / gqa_factor;
    +
    39 queries += head_idx * D + simd_lid * elem_per_thread;
    +
    40 keys += kv_head_idx * k_stride + simd_gid * D + simd_lid * elem_per_thread;
    +
    41 values += kv_head_idx * v_stride + simd_gid * D + simd_lid * elem_per_thread;
    +
    42 out += head_idx * D + simd_gid * elem_per_thread;
    +
    43
    +
    44 // Read the query and 0 the output accumulator
    +
    45 for (int i = 0; i < elem_per_thread; i++) {
    +
    46 q[i] = static_cast<U>(scale) * queries[i];
    +
    47 }
    +
    48 for (int i = 0; i < elem_per_thread; i++) {
    +
    49 o[i] = 0;
    +
    50 }
    +
    51
    +
    52 U max_score = -INFINITY;
    +
    53 U sum_exp_score = 0;
    +
    54
    +
    55 // For each key
    +
    56 for (int i = simd_gid; i < N; i += BN) {
    +
    57 // Read the key
    +
    58 for (int i = 0; i < elem_per_thread; i++) {
    +
    59 k[i] = keys[i];
    +
    60 }
    +
    61
    +
    62 // Compute the i-th score
    +
    63 U score = 0;
    +
    64 for (int i = 0; i < elem_per_thread; i++) {
    +
    65 score += q[i] * k[i];
    +
    66 }
    +
    67 score = simd_sum(score);
    +
    68
    +
    69 // Update the accumulators
    +
    70 U new_max = max(max_score, score);
    +
    71 U factor = fast::exp(max_score - new_max);
    +
    72 U exp_score = fast::exp(score - new_max);
    +
    73
    +
    74 max_score = new_max;
    +
    75 sum_exp_score = sum_exp_score * factor + exp_score;
    +
    76
    +
    77 // Update the output accumulator
    +
    78 for (int i = 0; i < elem_per_thread; i++) {
    +
    79 o[i] = o[i] * factor + exp_score * values[i];
    +
    80 }
    +
    81
    +
    82 // Move the pointers to the next kv
    +
    83 keys += stride;
    +
    84 values += stride;
    +
    85 }
    +
    86
    +
    87 // Each thread has a partial part of the output so we need to combine them.
    88
    -
    89 // Each thread has a partial part of the output so we need to combine them.
    -
    90
    -
    91 // First let's communicate the max and sum_exp
    -
    92 if (simd_lid == 0) {
    -
    93 max_scores[simd_gid] = max_score;
    -
    94 sum_exp_scores[simd_gid] = sum_exp_score;
    -
    95 }
    -
    96 threadgroup_barrier(mem_flags::mem_threadgroup);
    -
    97 max_score = max_scores[simd_lid];
    -
    98 U new_max = simd_max(max_score);
    -
    99 U factor = fast::exp(max_score - new_max);
    -
    100 sum_exp_score = simd_sum(sum_exp_scores[simd_lid] * factor);
    -
    101
    -
    102 // Now we need to aggregate all the outputs
    -
    103 for (int i = 0; i < elem_per_thread; i++) {
    -
    104 outputs[simd_lid * BD + simd_gid] = o[i];
    +
    89 // First let's communicate the max and sum_exp
    +
    90 if (simd_lid == 0) {
    +
    91 max_scores[simd_gid] = max_score;
    +
    92 sum_exp_scores[simd_gid] = sum_exp_score;
    +
    93 }
    +
    94 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    95 max_score = max_scores[simd_lid];
    +
    96 U new_max = simd_max(max_score);
    +
    97 U factor = fast::exp(max_score - new_max);
    +
    98 sum_exp_score = simd_sum(sum_exp_scores[simd_lid] * factor);
    +
    99
    +
    100 // Now we need to aggregate all the outputs
    +
    101 for (int i = 0; i < elem_per_thread; i++) {
    +
    102 outputs[simd_lid * BD + simd_gid] = o[i];
    +
    103 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    104 o[i] = simd_sum(outputs[simd_gid * BD + simd_lid] * factor) / sum_exp_score;
    105 threadgroup_barrier(mem_flags::mem_threadgroup);
    -
    106 o[i] = simd_sum(outputs[simd_gid * BD + simd_lid] * factor) / sum_exp_score;
    -
    107 threadgroup_barrier(mem_flags::mem_threadgroup);
    -
    108 }
    -
    109
    -
    110 // And write the output
    -
    111 if (simd_lid == 0) {
    -
    112 for (int i = 0; i < elem_per_thread; i++) {
    -
    113 out[i] = static_cast<T>(o[i]);
    -
    114 }
    -
    115 }
    -
    116}
    +
    106 }
    +
    107
    +
    108 // And write the output
    +
    109 if (simd_lid == 0) {
    +
    110 for (int i = 0; i < elem_per_thread; i++) {
    +
    111 out[i] = static_cast<T>(o[i]);
    +
    112 }
    +
    113 }
    +
    114}
    -
    METAL_FUNC bfloat16_t exp(bfloat16_t x)
    Definition bf16_math.h:242
    -
    Definition bf16.h:265
    -
    METAL_FUNC bfloat16_t simd_max(bfloat16_t data)
    Definition bf16_math.h:392
    -
    METAL_FUNC bfloat16_t simd_sum(bfloat16_t data)
    Definition bf16_math.h:392
    -
    METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:234
    +
    115
    +
    116template <typename T, int D>
    +
    +
    117[[kernel]] void sdpa_vector_2pass_1(
    +
    118 const device T* queries [[buffer(0)]],
    +
    119 const device T* keys [[buffer(1)]],
    +
    120 const device T* values [[buffer(2)]],
    +
    121 device float* out [[buffer(3)]],
    +
    122 device float* sums [[buffer(4)]],
    +
    123 device float* maxs [[buffer(5)]],
    +
    124 const constant int& gqa_factor,
    +
    125 const constant int& N,
    +
    126 const constant size_t& k_stride,
    +
    127 const constant size_t& v_stride,
    +
    128 const constant float& scale,
    +
    129 uint3 tid [[threadgroup_position_in_grid]],
    +
    130 uint simd_gid [[simdgroup_index_in_threadgroup]],
    +
    131 uint simd_lid [[thread_index_in_simdgroup]]) {
    +
    132 constexpr int BN = 8;
    +
    133 constexpr int BD = 32;
    +
    134 constexpr int elem_per_thread = D / BD;
    +
    135 constexpr int stride = BN * D;
    +
    136 constexpr int blocks = 32;
    +
    137
    +
    138 typedef float U;
    +
    139
    +
    140 thread U q[elem_per_thread];
    +
    141 thread U k[elem_per_thread];
    +
    142 thread U o[elem_per_thread];
    +
    143
    +
    144 threadgroup U outputs[BN * BD];
    +
    145 threadgroup U max_scores[BN];
    +
    146 threadgroup U sum_exp_scores[BN];
    +
    147
    +
    148 // Adjust positions
    +
    149 const int block_idx = tid.z;
    +
    150 const int head_idx = tid.y;
    +
    151 const int kv_head_idx = head_idx / gqa_factor;
    +
    152 queries += head_idx * D + simd_lid * elem_per_thread;
    +
    153 keys += kv_head_idx * k_stride + (block_idx * BN + simd_gid) * D +
    +
    154 simd_lid * elem_per_thread;
    +
    155 values += kv_head_idx * v_stride + (block_idx * BN + simd_gid) * D +
    +
    156 simd_lid * elem_per_thread;
    +
    157 out += head_idx * blocks * D + block_idx * D + simd_lid * elem_per_thread;
    +
    158 sums += head_idx * blocks + block_idx;
    +
    159 maxs += head_idx * blocks + block_idx;
    +
    160
    +
    161 // Read the query and 0 the output accumulator
    +
    162 for (int i = 0; i < elem_per_thread; i++) {
    +
    163 q[i] = static_cast<U>(scale) * queries[i];
    +
    164 }
    +
    165 for (int i = 0; i < elem_per_thread; i++) {
    +
    166 o[i] = 0;
    +
    167 }
    +
    168
    +
    169 U max_score = -1e9;
    +
    170 U sum_exp_score = 0;
    +
    171
    +
    172 // For each key
    +
    173 for (int i = block_idx * BN + simd_gid; i < N; i += blocks * BN) {
    +
    174 // Read the key
    +
    175 for (int i = 0; i < elem_per_thread; i++) {
    +
    176 k[i] = keys[i];
    +
    177 }
    +
    178
    +
    179 // Compute the i-th score
    +
    180 U score = 0;
    +
    181 for (int i = 0; i < elem_per_thread; i++) {
    +
    182 score += q[i] * k[i];
    +
    183 }
    +
    184 score = simd_sum(score);
    +
    185
    +
    186 // Update the accumulators
    +
    187 U new_max = max(max_score, score);
    +
    188 U factor = fast::exp(max_score - new_max);
    +
    189 U exp_score = fast::exp(score - new_max);
    +
    190
    +
    191 max_score = new_max;
    +
    192 sum_exp_score = sum_exp_score * factor + exp_score;
    +
    193
    +
    194 // Update the output accumulator
    +
    195 for (int i = 0; i < elem_per_thread; i++) {
    +
    196 o[i] = o[i] * factor + exp_score * values[i];
    +
    197 }
    +
    198
    +
    199 // Move the pointers to the next kv
    +
    200 keys += blocks * stride;
    +
    201 values += blocks * stride;
    +
    202 }
    +
    203
    +
    204 // Each thread has a partial part of the output so we need to combine them.
    +
    205
    +
    206 // First let's communicate the max and sum_exp
    +
    207 if (simd_lid == 0) {
    +
    208 max_scores[simd_gid] = max_score;
    +
    209 sum_exp_scores[simd_gid] = sum_exp_score;
    +
    210 }
    +
    211 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    212 max_score = (simd_lid < BN) ? max_scores[simd_lid] : -1e9;
    +
    213 U new_max = simd_max(max_score);
    +
    214 U factor = fast::exp(max_score - new_max);
    +
    215 sum_exp_score = (simd_lid < BN) ? sum_exp_scores[simd_lid] : 0;
    +
    216 sum_exp_score = simd_sum(sum_exp_score * factor);
    +
    217
    +
    218 // Write the sum and new max
    +
    219 if (simd_gid == 0) {
    +
    220 sums[0] = sum_exp_score;
    +
    221 maxs[0] = new_max;
    +
    222 }
    +
    223
    +
    224 // Now we need to aggregate all the outputs
    +
    225 for (int i = 0; i < elem_per_thread; i++) {
    +
    226 outputs[simd_lid * BN + simd_gid] =
    +
    227 o[i] * fast::exp(max_scores[simd_gid] - new_max);
    +
    228 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    229
    +
    230 // And write the output
    +
    231 if (simd_gid == 0) {
    +
    232 U output = outputs[simd_lid * BN];
    +
    233 for (int j = 1; j < BN; j++) {
    +
    234 output += outputs[simd_lid * BN + j];
    +
    235 }
    +
    236 out[i] = static_cast<T>(output);
    +
    237 }
    +
    238 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    239 }
    +
    240}
    +
    +
    241
    +
    242template <typename T, int D>
    +
    +
    243[[kernel]] void sdpa_vector_2pass_2(
    +
    244 const device float* partials [[buffer(0)]],
    +
    245 const device float* sums [[buffer(1)]],
    +
    246 const device float* maxs [[buffer(2)]],
    +
    247 device T* out [[buffer(3)]],
    +
    248 uint3 tid [[threadgroup_position_in_grid]],
    +
    249 uint simd_gid [[simdgroup_index_in_threadgroup]],
    +
    250 uint simd_lid [[thread_index_in_simdgroup]]) {
    +
    251 constexpr int BN = 32;
    +
    252 constexpr int BD = 32;
    +
    253 constexpr int elem_per_thread = D / BD;
    +
    254 constexpr int blocks = 32;
    +
    255
    +
    256 typedef float U;
    +
    257
    +
    258 thread U o[elem_per_thread];
    +
    259 threadgroup U outputs[BN * BD];
    +
    260
    +
    261 // Adjust positions
    +
    262 const int head_idx = tid.y;
    +
    263 partials += head_idx * blocks * D + simd_gid * D + simd_lid * elem_per_thread;
    +
    264 sums += head_idx * blocks;
    +
    265 maxs += head_idx * blocks;
    +
    266 out += head_idx * D + simd_gid * elem_per_thread;
    +
    267
    +
    268 // First everybody reads the max and sum_exp
    +
    269 U max_score = maxs[simd_lid];
    +
    270 U new_max = simd_max(max_score);
    +
    271 U factor = fast::exp(max_score - new_max);
    +
    272 U sum_exp_score = simd_sum(sums[simd_lid] * factor);
    +
    273
    +
    274 // Now read the block into registers and then use shared memory to transpose
    +
    275 // it
    +
    276 for (int i = 0; i < elem_per_thread; i++) {
    +
    277 o[i] = partials[i];
    +
    278 }
    +
    279 for (int i = 0; i < elem_per_thread; i++) {
    +
    280 outputs[simd_lid * BD + simd_gid] = o[i];
    +
    281 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    282 o[i] = simd_sum(outputs[simd_gid * BD + simd_lid] * factor) / sum_exp_score;
    +
    283 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    284 }
    +
    285
    +
    286 // And write the output
    +
    287 if (simd_lid == 0) {
    +
    288 for (int i = 0; i < elem_per_thread; i++) {
    +
    289 out[i] = static_cast<T>(o[i]);
    +
    290 }
    +
    291 }
    +
    292}
    +
    +
    METAL_FUNC bfloat16_t exp(bfloat16_t x)
    Definition bf16_math.h:240
    +
    Definition bf16_math.h:226
    +
    METAL_FUNC bfloat16_t simd_max(bfloat16_t data)
    Definition bf16_math.h:378
    +
    METAL_FUNC bfloat16_t simd_sum(bfloat16_t data)
    Definition bf16_math.h:378
    +
    METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:232
    +
    void sdpa_vector_2pass_2(const device float *partials, const device float *sums, const device float *maxs, device T *out, uint3 tid, uint simd_gid, uint simd_lid)
    Definition sdpa_vector.h:243
    void sdpa_vector(const device T *queries, const device T *keys, const device T *values, device T *out, const constant int &gqa_factor, const constant int &N, const constant size_t &k_stride, const constant size_t &v_stride, const constant float &scale, uint3 tid, uint simd_gid, uint simd_lid)
    Definition sdpa_vector.h:8
    +
    void sdpa_vector_2pass_1(const device T *queries, const device T *keys, const device T *values, device float *out, device float *sums, device float *maxs, const constant int &gqa_factor, const constant int &N, const constant size_t &k_stride, const constant size_t &v_stride, const constant float &scale, uint3 tid, uint simd_gid, uint simd_lid)
    Definition sdpa_vector.h:117
    @@ -445,7 +445,6 @@
  • mlx.core.fast.layer_norm
  • mlx.core.fast.rope
  • mlx.core.fast.scaled_dot_product_attention
  • -
  • mlx.core.fast.affine_quantize
  • mlx.core.fast.metal_kernel
  • @@ -522,6 +521,7 @@
  • mlx.nn.ALiBi
  • mlx.nn.AvgPool1d
  • mlx.nn.AvgPool2d
  • +
  • mlx.nn.AvgPool3d
  • mlx.nn.BatchNorm
  • mlx.nn.CELU
  • mlx.nn.Conv1d
  • @@ -551,6 +551,7 @@
  • mlx.nn.LSTM
  • mlx.nn.MaxPool1d
  • mlx.nn.MaxPool2d
  • +
  • mlx.nn.MaxPool3d
  • mlx.nn.Mish
  • mlx.nn.MultiHeadAttention
  • mlx.nn.PReLU
  • diff --git a/docs/build/html/search/all_1.js b/docs/build/html/search/all_1.js index 2feceb6c..0b76d81d 100644 --- a/docs/build/html/search/all_1.js +++ b/docs/build/html/search/all_1.js @@ -5,7 +5,7 @@ var searchData= ['a_5fstr_5fm_2',['A_str_m',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab9c7f5386594497f5f4df7e59670b877',1,'mlx::steel::BlockMMA']]], ['abs_3',['Abs',['../struct_abs.html',1,'Abs'],['../classmlx_1_1core_1_1_abs.html',1,'mlx::core::Abs'],['../structmlx_1_1core_1_1detail_1_1_abs.html',1,'mlx::core::detail::Abs'],['../classmlx_1_1core_1_1_abs.html#a1247e72feb640fb562d036b2dd1ae4ad',1,'mlx::core::Abs::Abs()']]], ['abs_4',['abs',['../namespacemetal.html#a87c5122c60f9a12afceb9925a5b78ffb',1,'metal::abs()'],['../namespacemetal_1_1fast.html#a90d2973f71f83180e7f02e38d11c7a8f',1,'metal::fast::abs()'],['../namespacemetal_1_1precise.html#a99f2b2746e813b9ca7b4249afbaf2a14',1,'metal::precise::abs()'],['../group__ops.html#ga5528e80f5e8bad71e106a0cf9edd8920',1,'mlx::core::abs()']]], - ['accum_5ftype_5',['accum_type',['../structmlx_1_1steel_1_1_accum_helper.html#ab594958b88746f759aa7ca573f1903da',1,'mlx::steel::AccumHelper']]], + ['accum_5ftype_5',['accum_type',['../structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26',1,'mlx::steel::AccumHelper']]], ['accumhelper_6',['AccumHelper',['../structmlx_1_1steel_1_1_accum_helper.html',1,'mlx::steel']]], ['acos_7',['acos',['../namespacemetal.html#ad4537748b3c832b6569ff7ccb209fcb2',1,'metal::acos()'],['../namespacemetal_1_1fast.html#a805ce5c3a94b618b7349d70bbb82f0b2',1,'metal::fast::acos()'],['../namespacemetal_1_1precise.html#a8a2bcc89fc0b7e74f0453f82f89a8604',1,'metal::precise::acos()']]], ['acosh_8',['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()']]], @@ -26,18 +26,18 @@ var searchData= ['adjust_5fmatrix_5foffsets_23',['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_24',['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_25',['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_26',['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_27',['affine_quantize_scales_biases',['../quantized_8h.html#a7561acefd7b55e7e2b25393be08bb99c',1,'quantized.h']]], - ['affinequantize_28',['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_29',['align_K',['../steel__gemm__fused_8h.html#a8bdd2cecf97aa5b033152b1d0f0d2416',1,'steel_gemm_fused.h']]], - ['align_5fm_30',['align_M',['../steel__gemm__fused_8h.html#a55af226dc74b0026b7d4b865142a6d21',1,'steel_gemm_fused.h']]], - ['align_5fn_31',['align_N',['../steel__gemm__fused_8h.html#aa3b267252df2dcbfdde8c5f174d27036',1,'steel_gemm_fused.h']]], + ['affine_5fquantize_26',['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={})']]], + ['affinequantize_27',['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_28',['align_K',['../steel__attention_8h.html#a8bdd2cecf97aa5b033152b1d0f0d2416',1,'align_K: steel_attention.h'],['../steel__gemm__fused_8h.html#a8bdd2cecf97aa5b033152b1d0f0d2416',1,'align_K: steel_gemm_fused.h']]], + ['align_5fm_29',['align_M',['../steel__gemm__fused_8h.html#a55af226dc74b0026b7d4b865142a6d21',1,'steel_gemm_fused.h']]], + ['align_5fn_30',['align_N',['../steel__gemm__fused_8h.html#aa3b267252df2dcbfdde8c5f174d27036',1,'steel_gemm_fused.h']]], + ['align_5fq_31',['align_Q',['../steel__attention_8h.html#a171fdea1b23976453f5dc5e6b3161982',1,'steel_attention.h']]], ['aligned_5falloc_32',['aligned_alloc',['../namespacepocketfft_1_1detail.html#ae397445c61400f47a8fe3f8e1b6d0b76',1,'pocketfft::detail']]], ['aligned_5fallocator_33',['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_34',['aligned_dealloc',['../namespacepocketfft_1_1detail.html#aec7820e36a33e0a8bb83aa03b04b81e8',1,'pocketfft::detail']]], ['all_35',['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_36',['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_37',['all_reduce',['../reduce__all_8h.html#a99ef48ae72b3e715c5f4d7ea07cd213d',1,'reduce_all.h']]], + ['all_5freduce_37',['all_reduce',['../reduce__all_8h.html#a9086a585eda5a887160ee24baae0a7b8',1,'reduce_all.h']]], ['all_5freduce_5fdispatch_38',['all_reduce_dispatch',['../namespacemlx_1_1core.html#a3ab0fd997d9a35782106ff083a72e098',1,'mlx::core']]], ['all_5fsum_39',['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_40',['allclose',['../group__ops.html#gaf0cd4257de7542daf9faf5e605e31020',1,'mlx::core']]], @@ -48,13 +48,13 @@ var searchData= ['allocator_45',['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_46',['allocator.h',['../allocator_8h.html',1,'(Global Namespace)'],['../backend_2metal_2allocator_8h.html',1,'(Global Namespace)']]], ['allreduce_47',['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_48',['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']]], + ['alpha_48',['alpha',['../structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff',1,'mlx::steel::TransformAxpby::alpha'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#af8693d96512eff3e125d33d203920710',1,'mlx::steel::GEMMAddMMParams::alpha']]], ['and_49',['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_50',['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_51',['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_52',['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_53',['apply_epilogue_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA']]], - ['apply_5finplace_5fop_54',['apply_inplace_op',['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader']]], + ['apply_51',['apply',['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply()'],['../struct_transform_scale.html#a9dd329422e5b8da43486cdce17132e16',1,'TransformScale::apply()'],['../struct_max_op.html#ab3d3c3040017a13c170e7bdd1ffac46e',1,'MaxOp::apply()'],['../struct_sum_op.html#aa9563a98cbbe1b1921ade0c63ab38b4d',1,'SumOp::apply()'],['../struct_mul_op.html#a1b93d804653d92fc7e46747de9e9c756',1,'MulOp::apply()'],['../struct_sub_op.html#ad211f879a212ed0e98136217ca8e4143',1,'SubOp::apply()'],['../struct_exp_sub_op.html#a00e457a01cb38f959dfd789455e7f334',1,'ExpSubOp::apply()'],['../struct_div_op.html#a1b8df47142dc6ea15315ce3a310f9221',1,'DivOp::apply()'],['../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'],['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply()'],['../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_52',['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)'],['../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_53',['apply_epilogue_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA::apply_epilogue_safe(const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const BinaryEpilogue &epilogue_op)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA::apply_epilogue_safe(const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const BinaryEpilogue &epilogue_op)']]], + ['apply_5finplace_5fop_54',['apply_inplace_op',['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader::apply_inplace_op()'],['../structmlx_1_1steel_1_1_block_loader_t.html#a2b136fad00dc54300e68aa6b905eff97',1,'mlx::steel::BlockLoaderT::apply_inplace_op()'],['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader::apply_inplace_op()']]], ['arange_55',['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_56',['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_57',['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)']]], @@ -104,12 +104,15 @@ var searchData= ['atan_101',['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_102',['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_103',['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()']]], - ['atile_104',['Atile',['../structmlx_1_1steel_1_1_block_m_m_a.html#af1a138c5e118147dc46475e4a5557e7c',1,'mlx::steel::BlockMMA']]], + ['atile_104',['Atile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a47e614120c650f7479db79f23a0df586',1,'mlx::steel::BlockMMA']]], ['atleast_5f1d_105',['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_106',['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_107',['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_108',['atomic.h',['../atomic_8h.html',1,'']]], ['atomic_5fupdate_109',['atomic_update',['../struct_none.html#aecbce7c97e8b1d5dc4afd2e788c24e06',1,'None']]], ['attach_5fevent_110',['attach_event',['../classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da',1,'mlx::core::array']]], - ['available_111',['available',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae',1,'mlx::core::array']]] + ['attention_111',['attention',['../steel__attention_8h.html#a5423b2a414f5e3c14166d568dedfbd33',1,'steel_attention.h']]], + ['attn_2eh_112',['attn.h',['../attn_8h.html',1,'']]], + ['attnparams_113',['AttnParams',['../structmlx_1_1steel_1_1_attn_params.html',1,'mlx::steel']]], + ['available_114',['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 9ae5f957..d5786df4 100644 --- a/docs/build/html/search/all_10.js +++ b/docs/build/html/search/all_10.js @@ -6,7 +6,7 @@ var searchData= ['pad_5fgpu_3',['pad_gpu',['../namespacemlx_1_1core.html#a6e2054d396ae487d810642dc19cdd0b0',1,'mlx::core']]], ['parallelfilereader_4',['ParallelFileReader',['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html',1,'mlx::core::io::ParallelFileReader'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a6cdb4547408f8cbca9e2ddd82514e697',1,'mlx::core::io::ParallelFileReader::ParallelFileReader()']]], ['params_5',['params',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a09b4719415c5bddb0bb70c704b1d8d02',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a4f8c792ede675d14b70dd19fcf3c5aee',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::params'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a1fed11be2e8d9d594dcdf60e32b936b1',1,'mlx::steel::Conv2DWeightBlockLoader::params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a335c573456ede3dd34bda1eec9842fe2',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::params'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#af67adf4550d69231a259e79c1aae9acc',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a09fd92c74ef57c20b48bc780153365ba',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::params'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#ae4759d18c0e5cc3530b3da8493008419',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::params']]], - ['params_2eh_6',['params.h',['../conv_2params_8h.html',1,'(Global Namespace)'],['../gemm_2params_8h.html',1,'(Global Namespace)']]], + ['params_2eh_6',['params.h',['../attn_2params_8h.html',1,'(Global Namespace)'],['../conv_2params_8h.html',1,'(Global Namespace)'],['../gemm_2params_8h.html',1,'(Global Namespace)']]], ['partition_7',['Partition',['../classmlx_1_1core_1_1_partition.html',1,'mlx::core::Partition'],['../classmlx_1_1core_1_1_partition.html#a7b82ca3895b6654308fac566b277ac0d',1,'mlx::core::Partition::Partition()']]], ['partition_8',['partition',['../group__ops.html#gac1b30830a972fb9a2601379ad2b32405',1,'mlx::core::partition(const array &a, int kth, StreamOrDevice s={})'],['../group__ops.html#ga4fbea3a5f66cf81e3c119d1661119321',1,'mlx::core::partition(const array &a, int kth, int axis, StreamOrDevice s={})']]], ['per_5fthread_5frow_5freduce_9',['per_thread_row_reduce',['../reduce__row_8h.html#a9d5e0049a2276f43702fc6907e74a35f',1,'per_thread_row_reduce(thread U totals[N_WRITES], const device T *inputs[N_WRITES], int blocks, int extra, uint lsize_x, uint lid_x): reduce_row.h'],['../reduce__row_8h.html#a045ec34228e77c79ec67d11c39ff097a',1,'per_thread_row_reduce(thread U totals[N_WRITES], const device T *in, const constant size_t &reduction_size, int blocks, int extra, uint lsize_x, uint lid_x): reduce_row.h'],['../reduce__row_8h.html#a4d00c44e5f4a13be529ff8b664a0a342',1,'per_thread_row_reduce(thread U totals[N_WRITES], const device T *in, const size_t row_idx, int blocks, int extra, const constant int *shape, const constant size_t *strides, const constant int &ndim, uint lsize_x, uint lid_x): reduce_row.h']]], @@ -59,7 +59,7 @@ var searchData= ['primitive_5fid_56',['primitive_id',['../classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c',1,'mlx::core::array']]], ['primitive_5fptr_57',['primitive_ptr',['../classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469',1,'mlx::core::array']]], ['primitives_2eh_58',['primitives.h',['../distributed_2primitives_8h.html',1,'(Global Namespace)'],['../primitives_8h.html',1,'(Global Namespace)']]], - ['print_59',['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_59',['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_contiguous.html#aca8a4ba9a58cc10f063e6b082fa2fc23',1,'mlx::core::Contiguous::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_60',['print_complex_constant',['../namespacemlx_1_1core.html#a2b78f270942c6eb185e8045f1c5b4286',1,'mlx::core']]], ['print_5fconstant_61',['print_constant',['../namespacemlx_1_1core.html#a7d11b000895d44d183260634f4192d92',1,'mlx::core']]], ['print_5ffloat_5fconstant_62',['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 1d12b31b..4d6d6dc3 100644 --- a/docs/build/html/search/all_11.js +++ b/docs/build/html/search/all_11.js @@ -1,32 +1,33 @@ 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#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']]], - ['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#a1546533c5b925b2fbb3bec870ec7487a',1,'quantized.h']]], - ['qvm_5fsplit_5fk_28',['qvm_split_k',['../quantized_8h.html#ab8243818512d6078d23e6ffb65fd7bb8',1,'quantized.h']]] + ['q_5fstrides_1',['Q_strides',['../structmlx_1_1steel_1_1_attn_params.html#a90bba215328201a37eb1c430ce9f8563',1,'mlx::steel::AttnParams']]], + ['qdot_2',['qdot',['../quantized_8h.html#ab364d58ab652e3ad87a8f80910556071',1,'quantized.h']]], + ['qdot_5fsafe_3',['qdot_safe',['../quantized_8h.html#a07b26d2d0b0d65dfe925c452c453fa42',1,'quantized.h']]], + ['ql_4',['qL',['../structmlx_1_1steel_1_1_attn_params.html#a59255882cbd78bb6f15e704e3a356a7f',1,'mlx::steel::AttnParams']]], + ['qmm_5fn_5',['qmm_n',['../quantized_8h.html#a2ce135e392dbf9a3e5180fb083792ed7',1,'quantized.h']]], + ['qmm_5fn_5fimpl_6',['qmm_n_impl',['../quantized_8h.html#a0ba59096494f1001c195312571523ae9',1,'quantized.h']]], + ['qmm_5ft_7',['qmm_t',['../quantized_8h.html#abe2e3ef0ee4ec2cb61dc5330ad463d10',1,'quantized.h']]], + ['qmm_5ft_5fimpl_8',['qmm_t_impl',['../quantized_8h.html#af5750a35e8f5462218effba719f7f5b8',1,'quantized.h']]], + ['qmv_9',['qmv',['../quantized_8h.html#a639c50a08b5cf57e8be5279a116274bd',1,'quantized.h']]], + ['qmv_5ffast_10',['qmv_fast',['../quantized_8h.html#a7bd1d9f17c86c8fd34ec13678cff755f',1,'quantized.h']]], + ['qmv_5ffast_5fimpl_11',['qmv_fast_impl',['../quantized_8h.html#aba7687e6f8f1d29c0a1b2a3db150bd81',1,'quantized.h']]], + ['qmv_5fimpl_12',['qmv_impl',['../quantized_8h.html#a8e13c7d895624f738d2a6d9893b687fd',1,'quantized.h']]], + ['qmv_5fquad_13',['qmv_quad',['../quantized_8h.html#a7ce5f53a4d6d1555e9402d545408d0ad',1,'quantized.h']]], + ['qmv_5fquad_5fimpl_14',['qmv_quad_impl',['../quantized_8h.html#ad5cf1cf63656bc1780685d22169cd4ef',1,'quantized.h']]], + ['qouter_15',['qouter',['../quantized_8h.html#ae756f6817b584c60f5dcdd1d9c6b4f58',1,'quantized.h']]], + ['qr_16',['qr',['../namespacemlx_1_1core_1_1linalg.html#ae6d97829459353fe3b31c8a0867c0ca2',1,'mlx::core::linalg']]], + ['qrf_17',['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_18',['QUAD_SIZE',['../quantized_8h.html#a803e4d5a1459844ba647aea5b004e133',1,'quantized.h']]], + ['quantize_19',['quantize',['../group__ops.html#gab43cc28690da7cdd43b43065adbd31da',1,'mlx::core']]], + ['quantized_20',['quantized',['../namespacemlx_1_1core_1_1metal.html#a949f029424218ab5c5588563d2e076f5',1,'mlx::core::metal']]], + ['quantized_2eh_21',['quantized.h',['../quantized_8h.html',1,'']]], + ['quantized_5fmatmul_22',['quantized_matmul',['../group__ops.html#gabfa4208fb1f9b1cdd0abc563b19175af',1,'mlx::core']]], + ['quantizedblockloader_23',['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#a60713ce7498aa683cbb2a0f19ab16589',1,'QuantizedBlockLoader::QuantizedBlockLoader()']]], + ['quantizedmatmul_24',['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()']]], + ['queue_25',['queue',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d',1,'mlx::core::metal::DeviceStream']]], + ['quiet_5fnan_26',['quiet_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['qvm_27',['qvm',['../quantized_8h.html#ad84f7d5ab9e32dbbe3ca759ae5d5d5c5',1,'quantized.h']]], + ['qvm_5fimpl_28',['qvm_impl',['../quantized_8h.html#a1546533c5b925b2fbb3bec870ec7487a',1,'quantized.h']]], + ['qvm_5fsplit_5fk_29',['qvm_split_k',['../quantized_8h.html#ab8243818512d6078d23e6ffb65fd7bb8',1,'quantized.h']]] ]; diff --git a/docs/build/html/search/all_12.js b/docs/build/html/search/all_12.js index 2f420b98..c8a65d50 100644 --- a/docs/build/html/search/all_12.js +++ b/docs/build/html/search/all_12.js @@ -1,6 +1,6 @@ var searchData= [ - ['r_0',['r',['../structpocketfft_1_1detail_1_1cmplx.html#afc51cdf222d77690953a8cb8ce3ee692',1,'pocketfft::detail::cmplx']]], + ['r_0',['r',['../structpocketfft_1_1detail_1_1cmplx.html#afc51cdf222d77690953a8cb8ce3ee692',1,'pocketfft::detail::cmplx::r'],['../structmlx_1_1steel_1_1_shape2_d.html#a6e9e8d56782fc8772bc432c7f58393fe',1,'mlx::steel::Shape2D::r']]], ['r2c_1',['r2c',['../namespacepocketfft_1_1detail.html#a4e46762466d399e35b79c324cfe21616',1,'pocketfft::detail::r2c(const shape_t &shape_in, const stride_t &stride_in, const stride_t &stride_out, size_t axis, bool forward, const T *data_in, std::complex< T > *data_out, T fct, size_t nthreads=1)'],['../namespacepocketfft_1_1detail.html#a454179497c44714d4b7425f116468c17',1,'pocketfft::detail::r2c(const shape_t &shape_in, const stride_t &stride_in, const stride_t &stride_out, const shape_t &axes, bool forward, const T *data_in, std::complex< T > *data_out, T fct, size_t nthreads=1)']]], ['r2h_2',['r2h',['../structpocketfft_1_1detail_1_1_exec_r2_r.html#a925b398c8e1868614ce9eaf381d02b7e',1,'pocketfft::detail::ExecR2R']]], ['r2r_5ffftpack_3',['r2r_fftpack',['../namespacepocketfft_1_1detail.html#a1ccca4cbbc6150d65620e2f9cdff62ac',1,'pocketfft::detail']]], @@ -120,12 +120,15 @@ var searchData= ['round_117',['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_118',['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_119',['round_error',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['row_5fcontiguous_120',['row_contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd',1,'mlx::core::array::Flags::row_contiguous'],['../struct_indices.html#a255e340a39c6ac28ef2c232b106f85d1',1,'Indices::row_contiguous']]], - ['row_5freduce_5fgeneral_5fdispatch_121',['row_reduce_general_dispatch',['../namespacemlx_1_1core.html#ab1eeca8ec6fa31819ee108fa6ed2c41b',1,'mlx::core']]], - ['row_5freduce_5flooped_122',['row_reduce_looped',['../reduce__row_8h.html#ad98332d74a6824aa7499df3e2f2246ae',1,'reduce_row.h']]], - ['row_5freduce_5fsimple_123',['row_reduce_simple',['../reduce__row_8h.html#ac01d30987668930c8b38900e47b8308b',1,'reduce_row.h']]], - ['row_5freduce_5fsmall_124',['row_reduce_small',['../reduce__row_8h.html#a27e75312086e31f6bd1bbf4b366679da',1,'reduce_row.h']]], - ['rsqrt_125',['Rsqrt',['../structmlx_1_1core_1_1detail_1_1_rsqrt.html',1,'mlx::core::detail::Rsqrt'],['../struct_rsqrt.html',1,'Rsqrt']]], - ['rsqrt_126',['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_127',['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()']]] + ['row_5fbin_5fop_120',['row_bin_op',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a318c4279bdc7b39b7919f108b1cd8010',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::row_bin_op()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a3d0d5b9c7962658cc6d5afbbbb2f19e2',1,'mlx::steel::MMATile::row_bin_op()']]], + ['row_5fcontiguous_121',['row_contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd',1,'mlx::core::array::Flags::row_contiguous'],['../struct_indices.html#a255e340a39c6ac28ef2c232b106f85d1',1,'Indices::row_contiguous']]], + ['row_5ffrag_5ftype_122',['row_frag_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a5ec2e40a8f5ad98c71b825544cdd878b',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], + ['row_5freduce_123',['row_reduce',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a51d662e4cff88b5ad17d7c44bb6b6970',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::row_reduce()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa0ad5cb750ace934bf230385d8bd9f88',1,'mlx::steel::MMATile::row_reduce()']]], + ['row_5freduce_5fgeneral_5fdispatch_124',['row_reduce_general_dispatch',['../namespacemlx_1_1core.html#ab1eeca8ec6fa31819ee108fa6ed2c41b',1,'mlx::core']]], + ['row_5freduce_5flooped_125',['row_reduce_looped',['../reduce__row_8h.html#afba85f5a1c935c124ef52e986d4b2c49',1,'reduce_row.h']]], + ['row_5freduce_5fsimple_126',['row_reduce_simple',['../reduce__row_8h.html#aef628dfccdb1361da5546f8b17c510bf',1,'reduce_row.h']]], + ['row_5freduce_5fsmall_127',['row_reduce_small',['../reduce__row_8h.html#aeb49e89f1163cb3093770bb710df9f5e',1,'reduce_row.h']]], + ['rsqrt_128',['Rsqrt',['../structmlx_1_1core_1_1detail_1_1_rsqrt.html',1,'mlx::core::detail::Rsqrt'],['../struct_rsqrt.html',1,'Rsqrt']]], + ['rsqrt_129',['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_130',['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(const device T *A, const device T *B, device U *D, const constant GEMMParams *params, threadgroup T *As, threadgroup T *Bs, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5',1,'mlx::steel::GEMMKernel::run(const device T *A, const device T *B, device U *D, const constant GEMMParams *params, threadgroup T *As, threadgroup T *Bs, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)']]] ]; diff --git a/docs/build/html/search/all_13.js b/docs/build/html/search/all_13.js index 38e2a2c7..28a0076a 100644 --- a/docs/build/html/search/all_13.js +++ b/docs/build/html/search/all_13.js @@ -6,193 +6,200 @@ var searchData= ['save_5fgguf_3',['save_gguf',['../namespacemlx_1_1core.html#a8bcc29ca8846ec99dce333df4a34dc5f',1,'mlx::core']]], ['save_5fsafetensors_4',['save_safetensors',['../namespacemlx_1_1core.html#a9f158db20c2405557f3ebc397e876de8',1,'mlx::core::save_safetensors(std::shared_ptr< io::Writer > in_stream, std::unordered_map< std::string, array >, std::unordered_map< std::string, std::string > metadata={})'],['../namespacemlx_1_1core.html#a21e256d852d587bcdc0827831b2c5c16',1,'mlx::core::save_safetensors(std::string file, std::unordered_map< std::string, array >, std::unordered_map< std::string, std::string > metadata={})']]], ['scalar_5',['Scalar',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337af60357a8d17e45793298323f1b372a74',1,'mlx::core']]], - ['scale_6',['scale',['../struct_scale_op.html#a02043fac21c68fb8d6863a01f45ede4b',1,'ScaleOp']]], + ['scale_6',['scale',['../struct_scale_op.html#a02043fac21c68fb8d6863a01f45ede4b',1,'ScaleOp::scale'],['../struct_transform_scale.html#aa56b8e107acf16fdf77006625c2b8bc6',1,'TransformScale::scale'],['../structmlx_1_1steel_1_1_attn_params.html#ad81bcd32e6ff8fec0000eca505fb6826',1,'mlx::steel::AttnParams::scale']]], ['scaled_5fdot_5fproduct_5fattention_7',['scaled_dot_product_attention',['../namespacemlx_1_1core_1_1fast.html#a3663b50265b0a9c0cca2b5376852e059',1,'mlx::core::fast']]], - ['scaled_5fdot_5fproduct_5fattention_5fparams_2eh_8',['scaled_dot_product_attention_params.h',['../scaled__dot__product__attention__params_8h.html',1,'']]], - ['scaleddotproductattention_9',['ScaledDotProductAttention',['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html',1,'mlx::core::fast::ScaledDotProductAttention'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a6a904c377fffc3c193102a3123f5e706',1,'mlx::core::fast::ScaledDotProductAttention::ScaledDotProductAttention()']]], - ['scaleop_10',['ScaleOp',['../struct_scale_op.html',1,'']]], - ['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',['../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_5fadd_18',['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_19',['scatter_impl',['../scatter_8h.html#ad1ce39d0b6d733a95e739121fcc61bd1',1,'scatter.h']]], - ['scatter_5fkernels_20',['scatter_kernels',['../jit_2indexing_8h.html#a768c949cd650a44c6b402fc1440c1a56',1,'indexing.h']]], - ['scatter_5fmax_21',['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_22',['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_23',['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_24',['scheduled',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae',1,'mlx::core::array']]], - ['scheduler_25',['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_26',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html#ae856e468c2f7c8f8ec672522cc13730b',1,'mlx::core::scheduler']]], - ['scheduler_2eh_27',['scheduler.h',['../scheduler_8h.html',1,'']]], - ['sdpa_5fvector_28',['sdpa_vector',['../sdpa__vector_8h.html#a4bf36f16e16c1c62d9b243573568e5ae',1,'sdpa_vector.h']]], - ['sdpa_5fvector_2eh_29',['sdpa_vector.h',['../sdpa__vector_8h.html',1,'']]], - ['seed_30',['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_31',['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_32',['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_33',['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_34',['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_35',['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_36',['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_37',['set_compile_mode',['../namespacemlx_1_1core.html#a49445a55f976c4397f25ea18e1e92bef',1,'mlx::core']]], - ['set_5fdata_38',['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_39',['set_default_device',['../namespacemlx_1_1core.html#a312a2de41367fe52caeaf8c0f596a120',1,'mlx::core']]], - ['set_5fdefault_5fstream_40',['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_41',['set_input_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4',1,'mlx::core::metal::CommandEncoder']]], - ['set_5fmemory_5flimit_42',['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_43',['set_output_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522',1,'mlx::core::metal::CommandEncoder']]], - ['set_5fresidency_5fset_44',['set_residency_set',['../classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f',1,'mlx::core::metal::Device']]], - ['set_5fsiblings_45',['set_siblings',['../classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1',1,'mlx::core::array']]], - ['set_5fstatus_46',['set_status',['../classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c',1,'mlx::core::array']]], - ['set_5ftracer_47',['set_tracer',['../classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8',1,'mlx::core::array']]], - ['set_5fvalue_48',['set_value',['../classmlx_1_1core_1_1_event.html#a0d077b11f4b28f882b42440b7ac6d40d',1,'mlx::core::Event']]], - ['set_5fvector_5fbytes_49',['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_50',['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_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_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_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_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_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)'],['../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_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_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_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_5fsum_86',['simd_sum',['../namespacemetal.html#a85181e37a00cb4a4217f1bb25389bce5',1,'metal']]], - ['simd_5fxor_87',['simd_xor',['../namespacemetal.html#a1308decbf2d5c33d34d6be523ea1c30f',1,'metal']]], - ['simple_5fiter_88',['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_89',['SimpleValueAndGradFn',['../namespacemlx_1_1core.html#a2689b8f1181648cb1685204fea9f3066',1,'mlx::core']]], - ['sin_90',['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_91',['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_92',['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_93',['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_94',['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_95',['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_96',['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_97',['size_of',['../namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95',1,'mlx::core']]], - ['slice_98',['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_99',['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_100',['slice_gpu',['../namespacemlx_1_1core.html#a59048c5ff114c101a496bf33f62e3de9',1,'mlx::core']]], - ['slice_5fupdate_101',['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_102',['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_103',['slicing.h',['../common_2slicing_8h.html',1,'(Global Namespace)'],['../metal_2slicing_8h.html',1,'(Global Namespace)']]], - ['sm_104',['sm',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa85451edf6900fd6af164d4d50889ae3',1,'mlx::steel::BlockMMA']]], - ['sn_105',['sn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ade420e8b811d597345783c324c23a34a',1,'mlx::steel::BlockMMA']]], - ['softmax_106',['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_107',['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_108',['softmax.h',['../jit_2softmax_8h.html',1,'(Global Namespace)'],['../kernels_2softmax_8h.html',1,'(Global Namespace)']]], - ['softmax_5fexp_109',['softmax_exp',['../kernels_2softmax_8h.html#a440d4031ee5e86159a4dd715e44a438b',1,'softmax.h']]], - ['softmax_5fkernels_110',['softmax_kernels',['../jit_2softmax_8h.html#a1cbfb210a9a765c6620e9f1247ccef12',1,'softmax.h']]], - ['softmax_5flooped_111',['softmax_looped',['../kernels_2softmax_8h.html#a8c47b0924ebfeebcca25f3dd17373276',1,'softmax.h']]], - ['softmax_5fn_5freads_112',['SOFTMAX_N_READS',['../defines_8h.html#a722995df24286b27b7da3d74b73f768d',1,'defines.h']]], - ['softmax_5fsingle_5frow_113',['softmax_single_row',['../kernels_2softmax_8h.html#a815fe70f879f318e5d6e99acf043f52b',1,'softmax.h']]], - ['sort_114',['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_115',['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_116',['sort.h',['../sort_8h.html',1,'']]], - ['special_5fmul_117',['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_118',['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_119',['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_120',['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_121',['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_122',['split_k_partitions',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#ae06c27116905d4ff3b9b436e588a93fd',1,'mlx::steel::GEMMSpiltKParams']]], - ['sqrt_123',['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_124',['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_125',['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_126',['square',['../group__ops.html#ga1234e4c39cfa79f19d4bdb5b8ea4d45e',1,'mlx::core']]], - ['squeeze_127',['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_128',['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_129',['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_130',['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_131',['start_capture',['../namespacemlx_1_1core_1_1metal.html#aa47cb5651bf3b65c46ab216b7e504d77',1,'mlx::core::metal']]], - ['start_5fconcurrent_132',['start_concurrent',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034',1,'mlx::core::metal::CommandEncoder']]], - ['start_5frow_133',['start_row',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a220e033b689c8d6a6f319dae02b38334',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], - ['status_134',['Status',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078',1,'mlx::core::array']]], - ['status_135',['status',['../classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad',1,'mlx::core::array']]], - ['std_136',['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_137',['STEEL_CONST',['../steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b',1,'defines.h']]], - ['steel_5fconv_138',['steel_conv',['../namespacemlx_1_1core_1_1metal.html#a92f1e559b1121d545746f81ff86eaca1',1,'mlx::core::metal']]], - ['steel_5fconv_2eh_139',['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_140',['steel_conv_general',['../namespacemlx_1_1core_1_1metal.html#a02edb6a90bdf30f4c9f0d6c25b0267b5',1,'mlx::core::metal']]], - ['steel_5fconv_5fgeneral_2eh_141',['steel_conv_general.h',['../steel__conv__general_8h.html',1,'']]], - ['steel_5fconv_5fgeneral_5fkernels_142',['steel_conv_general_kernels',['../jit_2steel__conv_8h.html#ae4ca1720029316b08ea92b7662347d47',1,'steel_conv.h']]], - ['steel_5fconv_5fkernels_143',['steel_conv_kernels',['../jit_2steel__conv_8h.html#a386d79077465df56659416fd84adb513',1,'steel_conv.h']]], - ['steel_5fgemm_2eh_144',['steel_gemm.h',['../steel__gemm_8h.html',1,'']]], - ['steel_5fgemm_5ffused_145',['steel_gemm_fused',['../namespacemlx_1_1core_1_1metal.html#a17764366deed71c160fb26091400a803',1,'mlx::core::metal']]], - ['steel_5fgemm_5ffused_2eh_146',['steel_gemm_fused.h',['../steel__gemm__fused_8h.html',1,'']]], - ['steel_5fgemm_5ffused_5fkernels_147',['steel_gemm_fused_kernels',['../steel__gemm_8h.html#a4c6009fd5357b730805f2fd4ba6e093e',1,'steel_gemm.h']]], - ['steel_5fgemm_5fmasked_148',['steel_gemm_masked',['../namespacemlx_1_1core_1_1metal.html#a962272ca73d26c08f76f706a128fd71f',1,'mlx::core::metal']]], - ['steel_5fgemm_5fmasked_2eh_149',['steel_gemm_masked.h',['../steel__gemm__masked_8h.html',1,'']]], - ['steel_5fgemm_5fmasked_5fkernels_150',['steel_gemm_masked_kernels',['../steel__gemm_8h.html#a62a358fd3ec5365081920d07aceb581c',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_151',['steel_gemm_splitk',['../namespacemlx_1_1core_1_1metal.html#ad0dfd40ba7c09755711ceb731e57a5ac',1,'mlx::core::metal']]], - ['steel_5fgemm_5fsplitk_2eh_152',['steel_gemm_splitk.h',['../steel__gemm__splitk_8h.html',1,'']]], - ['steel_5fgemm_5fsplitk_5faccum_5faxbpy_5fkernels_153',['steel_gemm_splitk_accum_axbpy_kernels',['../steel__gemm_8h.html#a40a86e1381c241aba8511e51a981a4bf',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_5faccum_5fkernels_154',['steel_gemm_splitk_accum_kernels',['../steel__gemm_8h.html#a144a64b8d94f0371fb144e2cc308fcf9',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_5fkernels_155',['steel_gemm_splitk_kernels',['../steel__gemm_8h.html#a92108ab01d826e38bca83d8569b947d9',1,'steel_gemm.h']]], - ['steel_5fmatmul_156',['steel_matmul',['../namespacemlx_1_1core.html#ab43a7633794498e1c6775cca829eb886',1,'mlx::core']]], - ['steel_5fmatmul_5fregular_157',['steel_matmul_regular',['../namespacemlx_1_1core.html#a227588758ccc9ee869dba147e830bb74',1,'mlx::core']]], - ['steel_5fpragma_5funroll_158',['STEEL_PRAGMA_UNROLL',['../steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6',1,'defines.h']]], - ['step_159',['step',['../structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef',1,'mlx::core::ContiguousIterator']]], - ['stop_160',['stop',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a456ad1c0c9e731833a2f8411c4ed51aa',1,'mlx::core::scheduler::StreamThread']]], - ['stop_5fcapture_161',['stop_capture',['../namespacemlx_1_1core_1_1metal.html#ac90714424e36fb01e04550de69b8314f',1,'mlx::core::metal']]], - ['stop_5fgradient_162',['stop_gradient',['../group__ops.html#ga36bc28f1deb2fe668ca9ae1e447b6b1f',1,'mlx::core']]], - ['stopgradient_163',['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_164',['store',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a2aadaa3239cb3af0c2ee8af9b88c8a98',1,'mlx::steel::MMATile::store(threadgroup U *dst) const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a752f708e4fe5ef37fdd902dae153179f',1,'mlx::steel::MMATile::store(device U *dst, const int ld) const']]], - ['store_5fresult_165',['store_result',['../structmlx_1_1steel_1_1_block_m_m_a.html#a0461451ffb5041b6a916ea17ed34288b',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd)'],['../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_166',['store_result_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a081ba538d30d1d02498a7f341e6bd611',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)'],['../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']]], - ['store_5fsafe_167',['store_safe',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a57703f522c7409dbe2c0a68bb7acc2ba',1,'mlx::steel::MMATile::store_safe()']]], - ['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',['../scan_8h.html#a7abb6ffb6c3b96b88c2a63cd4cc2f7ae',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',['../namespacemlx_1_1steel.html#ab4a6ddea4beb7c447cf5b69b9d46cc3b',1,'mlx::steel::sum(T x)'],['../namespacemlx_1_1steel.html#acd6e194d37b617d7a5818bc384a97fe4',1,'mlx::steel::sum(T x, Us... us)'],['../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)']]] + ['scaleddotproductattention_8',['ScaledDotProductAttention',['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html',1,'mlx::core::fast::ScaledDotProductAttention'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a6a904c377fffc3c193102a3123f5e706',1,'mlx::core::fast::ScaledDotProductAttention::ScaledDotProductAttention()']]], + ['scaleop_9',['ScaleOp',['../struct_scale_op.html',1,'']]], + ['scales_10',['scales',['../struct_quantized_block_loader.html#a6123e4a9209d6eacb58b2c2344ed1ecf',1,'QuantizedBlockLoader']]], + ['scan_11',['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_12',['scan',['../namespacemlx_1_1core_1_1metal.html#a81c2cf124b0803098a54a78f8f6873a6',1,'mlx::core::metal']]], + ['scan_2eh_13',['scan.h',['../scan_8h.html',1,'']]], + ['scatter_14',['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_15',['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_16',['scatter.h',['../scatter_8h.html',1,'']]], + ['scatter_5fadd_17',['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_18',['scatter_impl',['../scatter_8h.html#a0df7206d4519defb48a6275afc12f87c',1,'scatter.h']]], + ['scatter_5fkernels_19',['scatter_kernels',['../jit_2indexing_8h.html#a768c949cd650a44c6b402fc1440c1a56',1,'indexing.h']]], + ['scatter_5fmax_20',['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_21',['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_22',['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_23',['scheduled',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae',1,'mlx::core::array']]], + ['scheduler_24',['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_25',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html#ae856e468c2f7c8f8ec672522cc13730b',1,'mlx::core::scheduler']]], + ['scheduler_2eh_26',['scheduler.h',['../scheduler_8h.html',1,'']]], + ['sdpa_5fvector_27',['sdpa_vector',['../sdpa__vector_8h.html#a4bf36f16e16c1c62d9b243573568e5ae',1,'sdpa_vector.h']]], + ['sdpa_5fvector_2eh_28',['sdpa_vector.h',['../sdpa__vector_8h.html',1,'']]], + ['sdpa_5fvector_5f2pass_5f1_29',['sdpa_vector_2pass_1',['../sdpa__vector_8h.html#ae070ec482c79c5b3bd19dd03ea42ec74',1,'sdpa_vector.h']]], + ['sdpa_5fvector_5f2pass_5f2_30',['sdpa_vector_2pass_2',['../sdpa__vector_8h.html#a1368cf3618a4e03dbf743b3463205efe',1,'sdpa_vector.h']]], + ['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_5fbytes_37',['set_bytes',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9c343f791812a45c6c03a5c9f27f74d5',1,'mlx::core::metal::CommandEncoder::set_bytes(const T *v, int n, int idx)'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#abc52d18ea87d213c47fd26062c829849',1,'mlx::core::metal::CommandEncoder::set_bytes(const T &v, int idx)']]], + ['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_5fcompute_5fpipeline_5fstate_40',['set_compute_pipeline_state',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef',1,'mlx::core::metal::CommandEncoder']]], + ['set_5fdata_41',['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_42',['set_default_device',['../namespacemlx_1_1core.html#a312a2de41367fe52caeaf8c0f596a120',1,'mlx::core']]], + ['set_5fdefault_5fstream_43',['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_44',['set_input_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4',1,'mlx::core::metal::CommandEncoder']]], + ['set_5fmemory_5flimit_45',['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_46',['set_output_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522',1,'mlx::core::metal::CommandEncoder']]], + ['set_5fresidency_5fset_47',['set_residency_set',['../classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f',1,'mlx::core::metal::Device']]], + ['set_5fsiblings_48',['set_siblings',['../classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1',1,'mlx::core::array']]], + ['set_5fstatus_49',['set_status',['../classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c',1,'mlx::core::array']]], + ['set_5ftracer_50',['set_tracer',['../classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8',1,'mlx::core::array']]], + ['set_5fvalue_51',['set_value',['../classmlx_1_1core_1_1_event.html#a0d077b11f4b28f882b42440b7ac6d40d',1,'mlx::core::Event']]], + ['set_5fvector_5fbytes_52',['set_vector_bytes',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b',1,'mlx::core::metal::CommandEncoder::set_vector_bytes(const std::vector< T > &vec, size_t nelems, int idx)'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115',1,'mlx::core::metal::CommandEncoder::set_vector_bytes(const std::vector< T > &vec, int idx)']]], + ['set_5fwired_5flimit_53',['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_54',['shape',['../structmlx_1_1core_1_1_reduction_plan.html#a6cfa8771fa9caf6fdcc3d74c9fca83ae',1,'mlx::core::ReductionPlan::shape'],['../structmlx_1_1steel_1_1_layout2_d.html#a23183747ab1ddbdd3f1fcac6d0faa2cd',1,'mlx::steel::Layout2D::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']]], + ['shape2d_55',['Shape2D',['../structmlx_1_1steel_1_1_shape2_d.html',1,'mlx::steel::Shape2D< RInt, CInt >'],['../structmlx_1_1steel_1_1_shape2_d.html#a070ce70eb6d84361c7f313159c438a5c',1,'mlx::steel::Shape2D::Shape2D()']]], + ['shape_5ft_56',['shape_t',['../namespacepocketfft_1_1detail.html#a885ee37fcf564a268a5c8ca9ea8603e1',1,'pocketfft::detail']]], + ['shapes_57',['shapes',['../struct_indices.html#a5ab170f1a77636180889ddfffd4f7d2f',1,'Indices']]], + ['shapes_5fwithout_5freduction_5faxes_58',['shapes_without_reduction_axes',['../namespacemlx_1_1core.html#a44c3ea6db6553c3f6552b9ba64a69494',1,'mlx::core']]], + ['shared_5fbuffer_5fslice_59',['shared_buffer_slice',['../namespacemlx_1_1core.html#aea2a6a4eddfd4cfac89d20786059de2a',1,'mlx::core']]], + ['shp_60',['shp',['../classpocketfft_1_1detail_1_1arr__info.html#a2467e9e01de1ba4d7cd28c1af783da8d',1,'pocketfft::detail::arr_info']]], + ['shutdown_61',['shutdown',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a0c7c29290fde806031c497f24c4ad411',1,'pocketfft::detail::threading::thread_pool']]], + ['siblings_62',['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_63',['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_64',['sigmoid',['../group__ops.html#ga708abf8f79609cd6831db7c38cafac0e',1,'mlx::core']]], + ['sign_65',['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_66',['sign',['../group__ops.html#ga20f1a1a8c0cd6206485f9363f3915faa',1,'mlx::core']]], + ['signal_67',['signal',['../classmlx_1_1core_1_1_event.html#a65a858445506a61be5889ae0e3651b89',1,'mlx::core::Event']]], + ['signaling_5fnan_68',['signaling_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['signedinteger_69',['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_70',['simd_broadcast',['../namespacemetal.html#a498f1e85107eb5f01ba4435977f8efe0',1,'metal']]], + ['simd_5fexclusive_5fscan_71',['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_72',['simd_max',['../namespacemetal.html#a048cad0aca52cb737ebf103e76bd1c49',1,'metal']]], + ['simd_5fmin_73',['simd_min',['../namespacemetal.html#ae9e2a23e00724ba2d7868bc4112b386b',1,'metal']]], + ['simd_5fprefix_5fexclusive_5fproduct_74',['simd_prefix_exclusive_product',['../namespacemetal.html#a5ca40242390b632f737e29636829b2e4',1,'metal']]], + ['simd_5fprefix_5fexclusive_5fsum_75',['simd_prefix_exclusive_sum',['../namespacemetal.html#abfbb70c7471f28bf7ff36a612ad014b2',1,'metal']]], + ['simd_5fprefix_5finclusive_5fproduct_76',['simd_prefix_inclusive_product',['../namespacemetal.html#a6ca6a7e1996228fa536e969e9e45c446',1,'metal']]], + ['simd_5fprefix_5finclusive_5fsum_77',['simd_prefix_inclusive_sum',['../namespacemetal.html#a567acb18199ac0107712eb8cb8aeb8e9',1,'metal']]], + ['simd_5fproduct_78',['simd_product',['../namespacemetal.html#ac6e883a04e2265a9790d7db76059e1b4',1,'metal']]], + ['simd_5fscan_79',['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_80',['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_81',['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_82',['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_83',['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_84',['simd_shuffle_rotate_down',['../namespacemetal.html#a4bb203647a421032db47e73cd649841b',1,'metal']]], + ['simd_5fshuffle_5frotate_5fup_85',['simd_shuffle_rotate_up',['../namespacemetal.html#a729b22077d6c944491a6027c18ea80c9',1,'metal']]], + ['simd_5fshuffle_5fup_86',['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_87',['simd_shuffle_xor',['../namespacemetal.html#a5017efc9605e069cfb507137cd1a1852',1,'metal']]], + ['simd_5fsize_88',['SIMD_SIZE',['../quantized_8h.html#a62969a218d93680f5e35d0c61b160b99',1,'quantized.h']]], + ['simd_5fsize_89',['simd_size',['../backend_2metal_2kernels_2reduction_2ops_8h.html#a515b75d563a93d3c09ee677948dc83e3',1,'ops.h']]], + ['simd_5fsum_90',['simd_sum',['../namespacemetal.html#a85181e37a00cb4a4217f1bb25389bce5',1,'metal']]], + ['simd_5fxor_91',['simd_xor',['../namespacemetal.html#a1308decbf2d5c33d34d6be523ea1c30f',1,'metal']]], + ['simple_5fiter_92',['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_93',['SimpleValueAndGradFn',['../namespacemlx_1_1core.html#a2689b8f1181648cb1685204fea9f3066',1,'mlx::core']]], + ['sin_94',['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_95',['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_96',['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_97',['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_98',['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_99',['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_100',['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_101',['size_of',['../namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95',1,'mlx::core']]], + ['slice_102',['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_103',['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_104',['slice_gpu',['../namespacemlx_1_1core.html#a59048c5ff114c101a496bf33f62e3de9',1,'mlx::core']]], + ['slice_5fupdate_105',['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_106',['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_107',['slicing.h',['../common_2slicing_8h.html',1,'(Global Namespace)'],['../metal_2slicing_8h.html',1,'(Global Namespace)']]], + ['sm_108',['sm',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa85451edf6900fd6af164d4d50889ae3',1,'mlx::steel::BlockMMA']]], + ['sn_109',['sn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ade420e8b811d597345783c324c23a34a',1,'mlx::steel::BlockMMA']]], + ['softmax_110',['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_111',['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_112',['softmax.h',['../jit_2softmax_8h.html',1,'(Global Namespace)'],['../kernels_2softmax_8h.html',1,'(Global Namespace)']]], + ['softmax_5fexp_113',['softmax_exp',['../kernels_2softmax_8h.html#a440d4031ee5e86159a4dd715e44a438b',1,'softmax.h']]], + ['softmax_5fkernels_114',['softmax_kernels',['../jit_2softmax_8h.html#a1cbfb210a9a765c6620e9f1247ccef12',1,'softmax.h']]], + ['softmax_5flooped_115',['softmax_looped',['../kernels_2softmax_8h.html#a8c47b0924ebfeebcca25f3dd17373276',1,'softmax.h']]], + ['softmax_5fn_5freads_116',['SOFTMAX_N_READS',['../defines_8h.html#a722995df24286b27b7da3d74b73f768d',1,'defines.h']]], + ['softmax_5fsingle_5frow_117',['softmax_single_row',['../kernels_2softmax_8h.html#a815fe70f879f318e5d6e99acf043f52b',1,'softmax.h']]], + ['sort_118',['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_119',['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_120',['sort.h',['../sort_8h.html',1,'']]], + ['special_5fmul_121',['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_122',['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_123',['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_124',['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_125',['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_126',['split_k_partitions',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#ae06c27116905d4ff3b9b436e588a93fd',1,'mlx::steel::GEMMSpiltKParams']]], + ['sqrt_127',['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_128',['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_129',['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_130',['square',['../group__ops.html#ga1234e4c39cfa79f19d4bdb5b8ea4d45e',1,'mlx::core']]], + ['squeeze_131',['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_132',['src',['../struct_quantized_block_loader.html#abbf8249ca99e3e87b296ddd60a984b76',1,'QuantizedBlockLoader::src'],['../structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa',1,'mlx::steel::BlockLoader::src'],['../structmlx_1_1steel_1_1_block_loader_t.html#a7004a4efaa483cc79b8b79810a17c777',1,'mlx::steel::BlockLoaderT::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']]], + ['src_5fld_133',['src_ld',['../struct_quantized_block_loader.html#a8050977d473d1a24fae5c833e609839e',1,'QuantizedBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d',1,'mlx::steel::BlockLoader::src_ld'],['../structmlx_1_1steel_1_1_block_loader_t.html#aeba87e81185da6b20a092c5d240d3321',1,'mlx::steel::BlockLoaderT::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']]], + ['stack_134',['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_135',['start_capture',['../namespacemlx_1_1core_1_1metal.html#aa47cb5651bf3b65c46ab216b7e504d77',1,'mlx::core::metal']]], + ['start_5fconcurrent_136',['start_concurrent',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034',1,'mlx::core::metal::CommandEncoder']]], + ['start_5frow_137',['start_row',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a220e033b689c8d6a6f319dae02b38334',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], + ['status_138',['Status',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078',1,'mlx::core::array']]], + ['status_139',['status',['../classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad',1,'mlx::core::array']]], + ['std_140',['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_5fattention_2eh_141',['steel_attention.h',['../steel__attention_8h.html',1,'']]], + ['steel_5fconst_142',['STEEL_CONST',['../steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b',1,'defines.h']]], + ['steel_5fconv_143',['steel_conv',['../namespacemlx_1_1core_1_1metal.html#a92f1e559b1121d545746f81ff86eaca1',1,'mlx::core::metal']]], + ['steel_5fconv_2eh_144',['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_145',['steel_conv_general',['../namespacemlx_1_1core_1_1metal.html#a02edb6a90bdf30f4c9f0d6c25b0267b5',1,'mlx::core::metal']]], + ['steel_5fconv_5fgeneral_2eh_146',['steel_conv_general.h',['../steel__conv__general_8h.html',1,'']]], + ['steel_5fconv_5fgeneral_5fkernels_147',['steel_conv_general_kernels',['../jit_2steel__conv_8h.html#ae4ca1720029316b08ea92b7662347d47',1,'steel_conv.h']]], + ['steel_5fconv_5fkernels_148',['steel_conv_kernels',['../jit_2steel__conv_8h.html#a386d79077465df56659416fd84adb513',1,'steel_conv.h']]], + ['steel_5fgemm_2eh_149',['steel_gemm.h',['../steel__gemm_8h.html',1,'']]], + ['steel_5fgemm_5ffused_150',['steel_gemm_fused',['../namespacemlx_1_1core_1_1metal.html#a17764366deed71c160fb26091400a803',1,'mlx::core::metal']]], + ['steel_5fgemm_5ffused_2eh_151',['steel_gemm_fused.h',['../steel__gemm__fused_8h.html',1,'']]], + ['steel_5fgemm_5ffused_5fkernels_152',['steel_gemm_fused_kernels',['../steel__gemm_8h.html#a4c6009fd5357b730805f2fd4ba6e093e',1,'steel_gemm.h']]], + ['steel_5fgemm_5fmasked_153',['steel_gemm_masked',['../namespacemlx_1_1core_1_1metal.html#a962272ca73d26c08f76f706a128fd71f',1,'mlx::core::metal']]], + ['steel_5fgemm_5fmasked_2eh_154',['steel_gemm_masked.h',['../steel__gemm__masked_8h.html',1,'']]], + ['steel_5fgemm_5fmasked_5fkernels_155',['steel_gemm_masked_kernels',['../steel__gemm_8h.html#a62a358fd3ec5365081920d07aceb581c',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_156',['steel_gemm_splitk',['../namespacemlx_1_1core_1_1metal.html#ad0dfd40ba7c09755711ceb731e57a5ac',1,'mlx::core::metal']]], + ['steel_5fgemm_5fsplitk_2eh_157',['steel_gemm_splitk.h',['../steel__gemm__splitk_8h.html',1,'']]], + ['steel_5fgemm_5fsplitk_5faccum_5faxbpy_5fkernels_158',['steel_gemm_splitk_accum_axbpy_kernels',['../steel__gemm_8h.html#a40a86e1381c241aba8511e51a981a4bf',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_5faccum_5fkernels_159',['steel_gemm_splitk_accum_kernels',['../steel__gemm_8h.html#a144a64b8d94f0371fb144e2cc308fcf9',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_5fkernels_160',['steel_gemm_splitk_kernels',['../steel__gemm_8h.html#a92108ab01d826e38bca83d8569b947d9',1,'steel_gemm.h']]], + ['steel_5fmatmul_161',['steel_matmul',['../namespacemlx_1_1core.html#ab43a7633794498e1c6775cca829eb886',1,'mlx::core']]], + ['steel_5fmatmul_5fregular_162',['steel_matmul_regular',['../namespacemlx_1_1core.html#a227588758ccc9ee869dba147e830bb74',1,'mlx::core']]], + ['steel_5fpragma_5funroll_163',['STEEL_PRAGMA_UNROLL',['../steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6',1,'defines.h']]], + ['step_164',['step',['../structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef',1,'mlx::core::ContiguousIterator']]], + ['stop_165',['stop',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a456ad1c0c9e731833a2f8411c4ed51aa',1,'mlx::core::scheduler::StreamThread']]], + ['stop_5fcapture_166',['stop_capture',['../namespacemlx_1_1core_1_1metal.html#ac90714424e36fb01e04550de69b8314f',1,'mlx::core::metal']]], + ['stop_5fgradient_167',['stop_gradient',['../group__ops.html#ga36bc28f1deb2fe668ca9ae1e447b6b1f',1,'mlx::core']]], + ['stopgradient_168',['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_169',['store',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a2aadaa3239cb3af0c2ee8af9b88c8a98',1,'mlx::steel::MMATile::store(threadgroup U *dst) const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a752f708e4fe5ef37fdd902dae153179f',1,'mlx::steel::MMATile::store(device U *dst, const int ld) const'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a2aadaa3239cb3af0c2ee8af9b88c8a98',1,'mlx::steel::MMATile::store(threadgroup U *dst) const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a752f708e4fe5ef37fdd902dae153179f',1,'mlx::steel::MMATile::store(device U *dst, const int ld) const']]], + ['store_5fresult_170',['store_result',['../structmlx_1_1steel_1_1_block_m_m_a.html#a0461451ffb5041b6a916ea17ed34288b',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd)'],['../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'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a0461451ffb5041b6a916ea17ed34288b',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd)'],['../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_171',['store_result_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a081ba538d30d1d02498a7f341e6bd611',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)'],['../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'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a081ba538d30d1d02498a7f341e6bd611',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)'],['../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']]], + ['store_5fsafe_172',['store_safe',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a57703f522c7409dbe2c0a68bb7acc2ba',1,'mlx::steel::MMATile::store_safe()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a57703f522c7409dbe2c0a68bb7acc2ba',1,'mlx::steel::MMATile::store_safe()']]], + ['str_173',['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_174',['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_175',['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_176',['stream.h',['../stream_8h.html',1,'']]], + ['streamcontext_177',['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_178',['StreamOrDevice',['../namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58',1,'mlx::core']]], + ['streamthread_179',['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_180',['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_181',['stride_in',['../classpocketfft_1_1detail_1_1multi__iter.html#ac947f03b1cfcb63436a7e61ff020a88c',1,'pocketfft::detail::multi_iter']]], + ['stride_5fout_182',['stride_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a81d71a13bf0b85e556fbb9834167ecc7',1,'pocketfft::detail::multi_iter']]], + ['stride_5ft_183',['stride_t',['../namespacepocketfft_1_1detail.html#afb987c919e9424a996d0fc8b3c23cc84',1,'pocketfft::detail']]], + ['strided_5fdevice_5fidx_184',['strided_device_idx',['../struct_read_writer.html#a4c0b12484aac4fd6759d67c190391989',1,'ReadWriter']]], + ['strided_5freduce_5fgeneral_5fdispatch_185',['strided_reduce_general_dispatch',['../namespacemlx_1_1core.html#aa0332c64ee9965f05026c30a0b778000',1,'mlx::core']]], + ['strided_5fscan_186',['strided_scan',['../scan_8h.html#a7abb6ffb6c3b96b88c2a63cd4cc2f7ae',1,'scan.h']]], + ['strided_5fshared_5fidx_187',['strided_shared_idx',['../struct_read_writer.html#ace40adb02cfb33d89c98353327c251fc',1,'ReadWriter']]], + ['strides_188',['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_189',['submit',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a8698d49e8f406cdb88006aac6a91f9a4',1,'pocketfft::detail::threading::thread_pool']]], + ['subop_190',['SubOp',['../struct_sub_op.html',1,'']]], + ['subtract_191',['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_192',['subtract',['../group__ops.html#ga196c240d3d0fcbb4713802c485e15133',1,'mlx::core']]], + ['sum_193',['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_194',['sum',['../namespacemlx_1_1steel.html#ab4a6ddea4beb7c447cf5b69b9d46cc3b',1,'mlx::steel::sum(T x)'],['../namespacemlx_1_1steel.html#acd6e194d37b617d7a5818bc384a97fe4',1,'mlx::steel::sum(T x, Us... us)'],['../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={})']]], + ['sumop_195',['SumOp',['../struct_sum_op.html',1,'']]], + ['svd_196',['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_197',['svd',['../namespacemlx_1_1core_1_1linalg.html#a64364b880e99914cf47bf756fa8dbaf0',1,'mlx::core::linalg']]], + ['swapaxes_198',['swapaxes',['../group__ops.html#gabc46eed81ab6c6247903e4ec0c4ec1fb',1,'mlx::core']]], + ['swizzle_199',['swizzle',['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle::swizzle(uint3 tid, const int swizzle_log)'],['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle::swizzle(uint3 tid, const int swizzle_log)']]], + ['swizzle_5flog_200',['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_201',['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 aadbb734..b9e7c8c6 100644 --- a/docs/build/html/search/all_14.js +++ b/docs/build/html/search/all_14.js @@ -19,10 +19,10 @@ var searchData= ['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_19',['ternary_g',['../metal_2kernels_2ternary_8h.html#ab2051fd944c2e24c57d5b4af54894d72',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_5fg_5fnd2_21',['ternary_g_nd2',['../metal_2kernels_2ternary_8h.html#adec9ca8a8bf527cb15d70da5857af15d',1,'ternary.h']]], + ['ternary_5fg_5fnd3_22',['ternary_g_nd3',['../metal_2kernels_2ternary_8h.html#a046dcbf67cd2318d45355dc7516e3ff4',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']]], @@ -39,7 +39,7 @@ var searchData= ['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_5fidx_39',['thread_idx',['../struct_quantized_block_loader.html#a50821537ea747bc03295a09bb0eef475',1,'QuantizedBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b',1,'mlx::steel::BlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_block_loader_t.html#af2838998a02866f22b525f9b6ae004da',1,'mlx::steel::BlockLoaderT::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']]], ['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']]], @@ -56,11 +56,11 @@ var searchData= ['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_5fmatmad_55',['tile_matmad',['../namespacemlx_1_1steel.html#ad583e6038efc119542410f43b603d4ad',1,'mlx::steel']]], - ['tile_5fstride_56',['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_56',['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'],['../structmlx_1_1steel_1_1_block_loader_t.html#a3abb86e68adb7e4d87cb808d6c25e35f',1,'mlx::steel::BlockLoaderT::tile_stride']]], ['tile_5fstride_5fa_57',['tile_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8fddaa78913cdc8eea5e1cf7d2776330',1,'mlx::steel::BlockMMA']]], ['tile_5fstride_5fb_58',['tile_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#ae3f35453b3afbaac9df64ad5966b34a4',1,'mlx::steel::BlockMMA']]], - ['tiles_5fm_59',['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_60',['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']]], + ['tiles_5fm_59',['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_60',['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_61',['TM',['../structmlx_1_1steel_1_1_block_m_m_a.html#aba5f749fdf32d8bd9d9e29f2a9ae4591',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']]], @@ -69,25 +69,26 @@ var searchData= ['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()']]], + ['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(const float, const float)'],['../structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae',1,'mlx::steel::TransformAdd::TransformAdd(const float, const float)']]], + ['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(const float alpha_, const float beta_)'],['../structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9',1,'mlx::steel::TransformAxpby::TransformAxpby(const float alpha_, const float beta_)']]], ['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_2eh_72',['transforms.h',['../backend_2metal_2kernels_2steel_2attn_2transforms_8h.html',1,'(Global Namespace)'],['../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']]], - ['true_5ftype_81',['true_type',['../namespacemlx_1_1steel.html#a594a6ccb75b38b5ae4ddd0d9ad047b3a',1,'mlx::steel']]], - ['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'],['../structmlx_1_1steel_1_1integral__constant.html#a6492c15b37d160d3a33e1cbe770aa3f1',1,'mlx::steel::integral_constant::type'],['../structmetal_1_1make__void.html#aee74916713465374928c5379ab0d9b75',1,'metal::make_void::type'],['../structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4.html#a98fbc2aa99dd26bb35aa9cd1826318d8',1,'metal::pointer_element< thread T * >::type'],['../structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4.html#ab36a7c5a64c0693dd3d8ccb322c163d4',1,'metal::pointer_element< device T * >::type'],['../structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4.html#ad154b55b9e450a6376016488c8e68c53',1,'metal::pointer_element< constant T * >::type'],['../structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4.html#a78c718d6da9d393c139a385f42472362',1,'metal::pointer_element< threadgroup 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']]], - ['type_5ftraits_2eh_88',['type_traits.h',['../type__traits_8h.html',1,'']]], - ['typetodtype_89',['TypeToDtype',['../structmlx_1_1core_1_1_type_to_dtype.html',1,'mlx::core']]] + ['transformscale_74',['TransformScale',['../struct_transform_scale.html',1,'TransformScale< T >'],['../struct_transform_scale.html#ae109cf7c963ba13df96977e7563f7b70',1,'TransformScale::TransformScale()']]], + ['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']]], + ['true_5ftype_82',['true_type',['../namespacemlx_1_1steel.html#a594a6ccb75b38b5ae4ddd0d9ad047b3a',1,'mlx::steel']]], + ['trunc_83',['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_84',['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_85',['try_pop',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#aa3807d46a126d229f9054c779105ea43',1,'pocketfft::detail::threading::concurrent_queue']]], + ['two_86',['two',['../classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a41877eab6fa3db7d7ed2cda9eba14251',1,'mlx::core::Log']]], + ['type_87',['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'],['../structmlx_1_1steel_1_1integral__constant.html#a6492c15b37d160d3a33e1cbe770aa3f1',1,'mlx::steel::integral_constant::type'],['../structmetal_1_1make__void.html#aee74916713465374928c5379ab0d9b75',1,'metal::make_void::type'],['../structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4.html#a98fbc2aa99dd26bb35aa9cd1826318d8',1,'metal::pointer_element< thread T * >::type'],['../structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4.html#ab36a7c5a64c0693dd3d8ccb322c163d4',1,'metal::pointer_element< device T * >::type'],['../structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4.html#ad154b55b9e450a6376016488c8e68c53',1,'metal::pointer_element< constant T * >::type'],['../structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4.html#a78c718d6da9d393c139a385f42472362',1,'metal::pointer_element< threadgroup 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_88',['type_to_name',['../namespacemlx_1_1core.html#aef60e3a8d9c987c9c338b193673d2164',1,'mlx::core::type_to_name(const Dtype &t)'],['../namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae',1,'mlx::core::type_to_name(const array &a)']]], + ['type_5ftraits_2eh_89',['type_traits.h',['../type__traits_8h.html',1,'']]], + ['typetodtype_90',['TypeToDtype',['../structmlx_1_1core_1_1_type_to_dtype.html',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/all_15.js b/docs/build/html/search/all_15.js index 2b9eaeeb..a19220bc 100644 --- a/docs/build/html/search/all_15.js +++ b/docs/build/html/search/all_15.js @@ -2,13 +2,13 @@ var searchData= [ ['u_0',['u',['../structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c',1,'mlx::core::Dtype::u'],['../types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd',1,'u: bf16.h'],['../fp16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd',1,'u: fp16.h']]], ['uint16_1',['uint16',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaa00ef2ef85ff67b7b39339886f19044f',1,'mlx::core::Dtype::uint16'],['../namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812',1,'mlx::core::uint16']]], - ['uint16_5fto_5fbfloat16_2',['uint16_to_bfloat16',['../bf16__math_8h.html#a030d871474c0e7d907fccffcc8c047e0',1,'bf16_math.h']]], + ['uint16_5fto_5fbfloat16_2',['uint16_to_bfloat16',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4',1,'uint16_to_bfloat16(const uint16_t x): bf16.h'],['../backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4',1,'uint16_to_bfloat16(const uint16_t x): bf16.h']]], ['uint32_3',['uint32',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa3de84ad0700f2a1571f633d399e1900e',1,'mlx::core::Dtype::uint32'],['../namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e',1,'mlx::core::uint32']]], ['uint64_4',['uint64',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa2e8d31865e5d4b9d8611e1b991baed07',1,'mlx::core::Dtype::uint64'],['../namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8',1,'mlx::core::uint64']]], ['uint8_5',['uint8',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa5f423e669d0a8f4ab7c4c3e6da27161a',1,'mlx::core::Dtype::uint8'],['../namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68',1,'mlx::core::uint8']]], ['unary_6',['unary',['../namespacemlx_1_1core_1_1metal.html#afac64fd56ac492d6baf6de7e8a00b039',1,'mlx::core::metal']]], ['unary_2eh_7',['unary.h',['../common_2unary_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2unary_8h.html',1,'(Global Namespace)'],['../metal_2unary_8h.html',1,'(Global Namespace)']]], - ['unary_5fg_8',['unary_g',['../metal_2kernels_2unary_8h.html#ac965f8d3ed62f8580dbfb645e83d4ae5',1,'unary.h']]], + ['unary_5fg_8',['unary_g',['../metal_2kernels_2unary_8h.html#ac2a85fee50af49620ff62c1a71e2575d',1,'unary.h']]], ['unary_5fop_5fgpu_9',['unary_op_gpu',['../namespacemlx_1_1core.html#aba2b4accc059f30d4dca88db9f7a6e13',1,'mlx::core']]], ['unary_5fop_5fgpu_5finplace_10',['unary_op_gpu_inplace',['../namespacemlx_1_1core.html#a668fde2bd280a88f63a68b68a343d375',1,'mlx::core']]], ['unary_5fops_11',['unary_ops',['../namespacemlx_1_1core_1_1metal.html#a17b471fa52ea5f24ee63e081f46528f5',1,'mlx::core::metal']]], @@ -20,8 +20,9 @@ var searchData= ['uniform_17',['uniform',['../namespacemlx_1_1core_1_1random.html#adaa626cf75ab891978954bd1eb79a38b',1,'mlx::core::random::uniform(const array &low, const array &high, const std::vector< int > &shape, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#ac0dd00f7e37377d621f9f5bfb5a3f8e4',1,'mlx::core::random::uniform(T low, U high, const std::vector< int > &shape, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a2922e133d9f82dcf925bae0a784cc4a7',1,'mlx::core::random::uniform(const std::vector< int > &shape, Dtype dtype, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a133d2855ff4d8daf41029cffdf43cdf9',1,'mlx::core::random::uniform(const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], ['unscheduled_18',['unscheduled',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb',1,'mlx::core::array']]], ['unsignedinteger_19',['unsignedinteger',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3',1,'mlx::core::Dtype::unsignedinteger'],['../namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81',1,'mlx::core::unsignedinteger']]], - ['use_5fout_5fsource_20',['use_out_source',['../steel__gemm__fused_8h.html#a3fe4e4382bda8a419557a5e6f77bc084',1,'steel_gemm_fused.h']]], - ['util_21',['util',['../structpocketfft_1_1detail_1_1util.html',1,'pocketfft::detail']]], - ['utils_22',['utils',['../namespacemlx_1_1core_1_1metal.html#a529dc6c2d4a37ba544b66b2c3cd792cc',1,'mlx::core::metal']]], - ['utils_2eh_23',['utils.h',['../backend_2accelerate_2utils_8h.html',1,'(Global Namespace)'],['../backend_2common_2utils_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2steel_2utils_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2utils_8h.html',1,'(Global Namespace)'],['../backend_2metal_2utils_8h.html',1,'(Global Namespace)'],['../utils_8h.html',1,'(Global Namespace)']]] + ['update_5ffence_20',['update_fence',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#aeef08f5f3c015578d40de756a6465aa2',1,'mlx::core::metal::CommandEncoder']]], + ['use_5fout_5fsource_21',['use_out_source',['../steel__gemm__fused_8h.html#a3fe4e4382bda8a419557a5e6f77bc084',1,'steel_gemm_fused.h']]], + ['util_22',['util',['../structpocketfft_1_1detail_1_1util.html',1,'pocketfft::detail']]], + ['utils_23',['utils',['../namespacemlx_1_1core_1_1metal.html#a529dc6c2d4a37ba544b66b2c3cd792cc',1,'mlx::core::metal']]], + ['utils_2eh_24',['utils.h',['../backend_2accelerate_2utils_8h.html',1,'(Global Namespace)'],['../backend_2common_2utils_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2steel_2utils_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2utils_8h.html',1,'(Global Namespace)'],['../backend_2metal_2utils_8h.html',1,'(Global Namespace)'],['../utils_8h.html',1,'(Global Namespace)']]] ]; diff --git a/docs/build/html/search/all_16.js b/docs/build/html/search/all_16.js index 7c6cf43a..ffbd5899 100644 --- a/docs/build/html/search/all_16.js +++ b/docs/build/html/search/all_16.js @@ -1,27 +1,28 @@ var searchData= [ ['v_0',['V',['../structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce',1,'mlx::core::Dtype']]], - ['v_1',['v',['../structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#afbef88bfb901a71e8423de911b7c7347',1,'mlx::steel::BlockLoader::ReadVector']]], - ['val_2',['Val',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da',1,'mlx::core::Dtype']]], - ['val_3',['val',['../structpocketfft_1_1detail_1_1_v_l_e_n.html#ab1fdc340dedde723e636746c828a4534',1,'pocketfft::detail::VLEN::val'],['../structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747',1,'mlx_atomic::val'],['../structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d',1,'mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >::val'],['../structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1',1,'mlx::core::Dtype::val()']]], - ['val_5ffrags_4',['val_frags',['../structmlx_1_1steel_1_1_m_m_a_tile.html#ac4fb73ebc4e7b47a44b8bd6cadda5d44',1,'mlx::steel::MMATile']]], - ['val_5ft_5',['val_t',['../struct_kernel_merge_sort.html#a4e3f09896275956fc4c23e1f157dca3b',1,'KernelMergeSort']]], - ['valid_6',['valid',['../classmlx_1_1core_1_1_event.html#aa77afd9669e2ef9d5e9ae1c2c6fd24fa',1,'mlx::core::Event']]], - ['value_7',['value',['../structmlx_1_1steel_1_1integral__constant.html#a4efa69cb3fd42ac0dcad46578600d637',1,'mlx::steel::integral_constant::value'],['../classmlx_1_1core_1_1_event.html#ab71c7baee3d1d02ad6a2001bbf90b970',1,'mlx::core::Event::value()']]], - ['value_5fand_5fgrad_8',['value_and_grad',['../namespacemlx_1_1core.html#abf49b337a00997231c0f7fd389efa8f3',1,'mlx::core::value_and_grad(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< int > &argnums)'],['../namespacemlx_1_1core.html#a7b987f404b8699de00f9e0099ab6b1b0',1,'mlx::core::value_and_grad(const std::function< std::vector< array >(const std::vector< array > &)> &fun, int argnum=0)'],['../namespacemlx_1_1core.html#a5a64dc878b29403d27e50bd7a288cc04',1,'mlx::core::value_and_grad(const std::function< array(const array &)> &fun)'],['../namespacemlx_1_1core.html#a7620f1ae298127cb6181db9162f012a7',1,'mlx::core::value_and_grad(const std::function< array(const std::vector< array > &)> &fun, const std::vector< int > &argnums)'],['../namespacemlx_1_1core.html#a2f69ffc30d66b1fca8f24b65be161a51',1,'mlx::core::value_and_grad(const std::function< array(const std::vector< array > &)> &fun, int argnum=0)']]], - ['value_5ftype_9',['value_type',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#ab86a2740ed9ce3199135372ff1d88c76',1,'pocketfft::detail::threading::aligned_allocator::value_type'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ae24fe304397e961687d0d4c7012b8ae4',1,'mlx::core::array::ArrayIterator::value_type'],['../structmlx_1_1steel_1_1integral__constant.html#a0569cc1334e0bc4f474304b33d365759',1,'mlx::steel::integral_constant::value_type']]], - ['valueandgradfn_10',['ValueAndGradFn',['../namespacemlx_1_1core.html#ab79d66ddf1ec38b2f2c01234892a2230',1,'mlx::core']]], - ['var_11',['var',['../group__ops.html#ga7e133df686439588a8cd1fb10ce0c6e9',1,'mlx::core::var(const array &a, bool keepdims, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga7d7b38d118fa2613214078ef0f7d5a42',1,'mlx::core::var(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga78ddeb966cbe7a5b0aa17e1de43025f2',1,'mlx::core::var(const array &a, const std::vector< int > &axes, bool keepdims=false, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga4fbf3e3f98f2e4956faf87af320aa9d0',1,'mlx::core::var(const array &a, int axis, bool keepdims=false, int ddof=0, StreamOrDevice s={})']]], - ['vec_5fsize_12',['vec_size',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#adcc83bf6c02391cc2375e55c06a1c9a4',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a71c313e1597a2bb99f7b07d434e119d2',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a10109dc9553207f5a365799e4969c6d2',1,'mlx::steel::Conv2DWeightBlockLoader::vec_size'],['../structmlx_1_1steel_1_1_channel_helper.html#a2b24f991a9380fdad6b51a038770b925',1,'mlx::steel::ChannelHelper::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#a71449551bbfe56058440755dfd50fc75',1,'mlx::steel::ChannelHelper< 1 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#acfb18991a77a9d1d4a79918ac5f387af',1,'mlx::steel::ChannelHelper< 2 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#a5cb83774601c29564a6bbc010fc0bf7f',1,'mlx::steel::ChannelHelper< 3 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#af28cdbe2a3c027d95832de07f60448ca',1,'mlx::steel::ChannelHelper< 4 >::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a6b0b18428516d1d6dcae3beb3faee81c',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a006153d274aa13d5fd4448b4607fff3a',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1587047caa339cf5b2c06adc4b332ab8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a08dba753ec7c8ea2892775746933b3e7',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::vec_size'],['../structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092',1,'mlx::steel::BlockLoader::vec_size']]], - ['vector_13',['Vector',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337a57dea6f5039281b7fee517fc43bf3110',1,'mlx::core']]], - ['view_14',['View',['../classmlx_1_1core_1_1_view.html',1,'mlx::core::View'],['../classmlx_1_1core_1_1_view.html#ad7eed156c308e9a29a8b41f965ec941e',1,'mlx::core::View::View()']]], - ['view_15',['view',['../group__ops.html#ga3602aa91b7b124a0b41ec1b2137a1b02',1,'mlx::core']]], - ['vjp_16',['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_17',['VLEN',['../structpocketfft_1_1detail_1_1_v_l_e_n.html',1,'pocketfft::detail']]], - ['vmap_18',['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_19',['vmap_replace',['../namespacemlx_1_1core_1_1detail.html#a31a5582530faea230eb8acafc0f7e154',1,'mlx::core::detail']]], - ['vmap_5ftrace_20',['vmap_trace',['../namespacemlx_1_1core_1_1detail.html#a5ba794afe1a557e0505887cfb481c515',1,'mlx::core::detail']]], - ['void_5ft_21',['void_t',['../namespacemetal.html#a192322c772aa8b168d59edc55fb806f1',1,'metal']]], - ['vtype_22',['VTYPE',['../structpocketfft_1_1detail_1_1_v_t_y_p_e.html',1,'pocketfft::detail']]], - ['vtype_5ft_23',['vtype_t',['../namespacepocketfft_1_1detail.html#a3edfb93aeed2f8258183d463ea291d62',1,'pocketfft::detail']]] + ['v_1',['v',['../structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#a20963f7191251defca48bf8a843d019d',1,'mlx::steel::BlockLoader::ReadVector']]], + ['v_5fstrides_2',['V_strides',['../structmlx_1_1steel_1_1_attn_params.html#acc4860c3ce09c7230b470182ed002d3c',1,'mlx::steel::AttnParams']]], + ['val_3',['Val',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da',1,'mlx::core::Dtype']]], + ['val_4',['val',['../structpocketfft_1_1detail_1_1_v_l_e_n.html#ab1fdc340dedde723e636746c828a4534',1,'pocketfft::detail::VLEN::val'],['../structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747',1,'mlx_atomic::val'],['../structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d',1,'mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >::val'],['../structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1',1,'mlx::core::Dtype::val()']]], + ['val_5ffrags_5',['val_frags',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a684e6c6d9f00f583994285b60aaa3b62',1,'mlx::steel::MMATile']]], + ['val_5ft_6',['val_t',['../struct_kernel_merge_sort.html#a4e3f09896275956fc4c23e1f157dca3b',1,'KernelMergeSort']]], + ['valid_7',['valid',['../classmlx_1_1core_1_1_event.html#aa77afd9669e2ef9d5e9ae1c2c6fd24fa',1,'mlx::core::Event']]], + ['value_8',['value',['../structmlx_1_1steel_1_1integral__constant.html#a4efa69cb3fd42ac0dcad46578600d637',1,'mlx::steel::integral_constant::value'],['../classmlx_1_1core_1_1_event.html#ab71c7baee3d1d02ad6a2001bbf90b970',1,'mlx::core::Event::value()']]], + ['value_5fand_5fgrad_9',['value_and_grad',['../namespacemlx_1_1core.html#abf49b337a00997231c0f7fd389efa8f3',1,'mlx::core::value_and_grad(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< int > &argnums)'],['../namespacemlx_1_1core.html#a7b987f404b8699de00f9e0099ab6b1b0',1,'mlx::core::value_and_grad(const std::function< std::vector< array >(const std::vector< array > &)> &fun, int argnum=0)'],['../namespacemlx_1_1core.html#a5a64dc878b29403d27e50bd7a288cc04',1,'mlx::core::value_and_grad(const std::function< array(const array &)> &fun)'],['../namespacemlx_1_1core.html#a7620f1ae298127cb6181db9162f012a7',1,'mlx::core::value_and_grad(const std::function< array(const std::vector< array > &)> &fun, const std::vector< int > &argnums)'],['../namespacemlx_1_1core.html#a2f69ffc30d66b1fca8f24b65be161a51',1,'mlx::core::value_and_grad(const std::function< array(const std::vector< array > &)> &fun, int argnum=0)']]], + ['value_5ftype_10',['value_type',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#ab86a2740ed9ce3199135372ff1d88c76',1,'pocketfft::detail::threading::aligned_allocator::value_type'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ae24fe304397e961687d0d4c7012b8ae4',1,'mlx::core::array::ArrayIterator::value_type'],['../structmlx_1_1steel_1_1integral__constant.html#a0569cc1334e0bc4f474304b33d365759',1,'mlx::steel::integral_constant::value_type']]], + ['valueandgradfn_11',['ValueAndGradFn',['../namespacemlx_1_1core.html#ab79d66ddf1ec38b2f2c01234892a2230',1,'mlx::core']]], + ['var_12',['var',['../group__ops.html#ga7e133df686439588a8cd1fb10ce0c6e9',1,'mlx::core::var(const array &a, bool keepdims, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga7d7b38d118fa2613214078ef0f7d5a42',1,'mlx::core::var(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga78ddeb966cbe7a5b0aa17e1de43025f2',1,'mlx::core::var(const array &a, const std::vector< int > &axes, bool keepdims=false, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga4fbf3e3f98f2e4956faf87af320aa9d0',1,'mlx::core::var(const array &a, int axis, bool keepdims=false, int ddof=0, StreamOrDevice s={})']]], + ['vec_5fsize_13',['vec_size',['../structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092',1,'mlx::steel::BlockLoader::vec_size'],['../structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5',1,'mlx::steel::BlockLoaderT::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#adcc83bf6c02391cc2375e55c06a1c9a4',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a71c313e1597a2bb99f7b07d434e119d2',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a10109dc9553207f5a365799e4969c6d2',1,'mlx::steel::Conv2DWeightBlockLoader::vec_size'],['../structmlx_1_1steel_1_1_channel_helper.html#a2b24f991a9380fdad6b51a038770b925',1,'mlx::steel::ChannelHelper::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#a71449551bbfe56058440755dfd50fc75',1,'mlx::steel::ChannelHelper< 1 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#acfb18991a77a9d1d4a79918ac5f387af',1,'mlx::steel::ChannelHelper< 2 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#a5cb83774601c29564a6bbc010fc0bf7f',1,'mlx::steel::ChannelHelper< 3 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#af28cdbe2a3c027d95832de07f60448ca',1,'mlx::steel::ChannelHelper< 4 >::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a6b0b18428516d1d6dcae3beb3faee81c',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a006153d274aa13d5fd4448b4607fff3a',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1587047caa339cf5b2c06adc4b332ab8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a08dba753ec7c8ea2892775746933b3e7',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::vec_size']]], + ['vector_14',['Vector',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337a57dea6f5039281b7fee517fc43bf3110',1,'mlx::core']]], + ['view_15',['View',['../classmlx_1_1core_1_1_view.html',1,'mlx::core::View'],['../classmlx_1_1core_1_1_view.html#ad7eed156c308e9a29a8b41f965ec941e',1,'mlx::core::View::View()']]], + ['view_16',['view',['../group__ops.html#ga3602aa91b7b124a0b41ec1b2137a1b02',1,'mlx::core']]], + ['vjp_17',['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_contiguous.html#abf488f02057fd5852f38b2e8a600ad2a',1,'mlx::core::Contiguous::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_18',['VLEN',['../structpocketfft_1_1detail_1_1_v_l_e_n.html',1,'pocketfft::detail']]], + ['vmap_19',['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_contiguous.html#a563221e90b15aa90bfae23d29c10e4ec',1,'mlx::core::Contiguous::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_20',['vmap_replace',['../namespacemlx_1_1core_1_1detail.html#a31a5582530faea230eb8acafc0f7e154',1,'mlx::core::detail']]], + ['vmap_5ftrace_21',['vmap_trace',['../namespacemlx_1_1core_1_1detail.html#a5ba794afe1a557e0505887cfb481c515',1,'mlx::core::detail']]], + ['void_5ft_22',['void_t',['../namespacemetal.html#a192322c772aa8b168d59edc55fb806f1',1,'metal']]], + ['vtype_23',['VTYPE',['../structpocketfft_1_1detail_1_1_v_t_y_p_e.html',1,'pocketfft::detail']]], + ['vtype_5ft_24',['vtype_t',['../namespacepocketfft_1_1detail.html#a3edfb93aeed2f8258183d463ea291d62',1,'pocketfft::detail']]] ]; diff --git a/docs/build/html/search/all_17.js b/docs/build/html/search/all_17.js index 40e85431..7b4dff75 100644 --- a/docs/build/html/search/all_17.js +++ b/docs/build/html/search/all_17.js @@ -1,19 +1,20 @@ var searchData= [ ['wait_0',['wait',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#af503189cc9247047fbdfc3ebf1daacc1',1,'pocketfft::detail::threading::latch::wait()'],['../classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e',1,'mlx::core::array::wait()'],['../classmlx_1_1core_1_1_event.html#a634afd918e6ed847f354531ba9f48252',1,'mlx::core::Event::wait()']]], - ['wait_5ffor_5fone_1',['wait_for_one',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a01c574bb388f10d67aaaaa541894d807',1,'mlx::core::scheduler::Scheduler::wait_for_one()'],['../namespacemlx_1_1core_1_1scheduler.html#a8cc4d5fd1f5ce722b377ead1863a2291',1,'mlx::core::scheduler::wait_for_one()']]], - ['weight_5fbase_2',['weight_base',['../structmlx_1_1steel_1_1_conv2_d_general_base_info.html#a1d88677c4617f4bdae157e40a64a407b',1,'mlx::steel::Conv2DGeneralBaseInfo']]], - ['weight_5fh_3',['weight_h',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a3be4815d4090cb27ebe2f9bad1a39e95',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::weight_h'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a366c3cee4ed1165545287c8d5ce49445',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::weight_h'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a397412909eb955babc935a35d97c3fd4',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::weight_h'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a5997fd8ef249e4cd3df7dad7b251d8d5',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::weight_h']]], - ['weight_5fhw_4',['weight_hw',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#ae39d43f741c9c87cce9c6d3144dc8b94',1,'mlx::steel::Conv2DWeightBlockLoader::weight_hw'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a7dd320bc5b0a9a2e425d6b292ddac037',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::weight_hw'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a5752e0309a4dc873cb31ce724c11ada6',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::weight_hw']]], - ['weight_5fsize_5',['weight_size',['../structmlx_1_1steel_1_1_conv2_d_general_base_info.html#aff119a4325b97fdbd745d8fcaed9f041',1,'mlx::steel::Conv2DGeneralBaseInfo']]], - ['weight_5fw_6',['weight_w',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#add1186c7accb62bfa8a4a7e87fc4cc84',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::weight_w'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a4744bd79fb05e81eaa53d2eabe017446',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::weight_w'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a0261d0349a0a95ca1a02a959b73e9352',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::weight_w'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6efa6268a37f18f4d225674bf1780cf6',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::weight_w']]], - ['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',['../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',['../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']]] + ['wait_5ffor_5ffence_1',['wait_for_fence',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefdadbff4e003dc6f77506840babc088',1,'mlx::core::metal::CommandEncoder']]], + ['wait_5ffor_5fone_2',['wait_for_one',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a01c574bb388f10d67aaaaa541894d807',1,'mlx::core::scheduler::Scheduler::wait_for_one()'],['../namespacemlx_1_1core_1_1scheduler.html#a8cc4d5fd1f5ce722b377ead1863a2291',1,'mlx::core::scheduler::wait_for_one()']]], + ['weight_5fbase_3',['weight_base',['../structmlx_1_1steel_1_1_conv2_d_general_base_info.html#a1d88677c4617f4bdae157e40a64a407b',1,'mlx::steel::Conv2DGeneralBaseInfo']]], + ['weight_5fh_4',['weight_h',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a3be4815d4090cb27ebe2f9bad1a39e95',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::weight_h'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a366c3cee4ed1165545287c8d5ce49445',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::weight_h'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a397412909eb955babc935a35d97c3fd4',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::weight_h'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a5997fd8ef249e4cd3df7dad7b251d8d5',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::weight_h']]], + ['weight_5fhw_5',['weight_hw',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#ae39d43f741c9c87cce9c6d3144dc8b94',1,'mlx::steel::Conv2DWeightBlockLoader::weight_hw'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a7dd320bc5b0a9a2e425d6b292ddac037',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::weight_hw'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a5752e0309a4dc873cb31ce724c11ada6',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::weight_hw']]], + ['weight_5fsize_6',['weight_size',['../structmlx_1_1steel_1_1_conv2_d_general_base_info.html#aff119a4325b97fdbd745d8fcaed9f041',1,'mlx::steel::Conv2DGeneralBaseInfo']]], + ['weight_5fw_7',['weight_w',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#add1186c7accb62bfa8a4a7e87fc4cc84',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::weight_w'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a4744bd79fb05e81eaa53d2eabe017446',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::weight_w'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a0261d0349a0a95ca1a02a959b73e9352',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::weight_w'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6efa6268a37f18f4d225674bf1780cf6',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::weight_w']]], + ['where_8',['where',['../group__ops.html#ga8a2056f8c9bb30914c40bcf509386491',1,'mlx::core']]], + ['write_9',['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_10',['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_11',['write_safe',['../scan_8h.html#ae86aef08e5ebc8790031eb51eefa754c',1,'scan.h']]], + ['write_5fstrided_12',['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_13',['write_unsafe',['../scan_8h.html#a8010e7bdf7a72cbd35ce7cd7ecb08e32',1,'scan.h']]], + ['writer_14',['Writer',['../classmlx_1_1core_1_1io_1_1_writer.html',1,'mlx::core::io']]], + ['ws_15',['wS',['../struct_m_l_x_conv_params.html#aba2074189644b1b59567d018409277a9',1,'MLXConvParams']]], + ['wt_5fstrides_16',['wt_strides',['../struct_m_l_x_conv_params.html#a887fee0da1494d038526fb0f59faff45',1,'MLXConvParams']]] ]; diff --git a/docs/build/html/search/all_2.js b/docs/build/html/search/all_2.js index 29d40404..01d6f288 100644 --- a/docs/build/html/search/all_2.js +++ b/docs/build/html/search/all_2.js @@ -1,110 +1,110 @@ var searchData= [ - ['b_0',['b',['../unionbool4__or__uint.html#a47d77eac47598fe420f8f04a615f76ca',1,'bool4_or_uint::b'],['../structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f',1,'mlx::core::Dtype::b']]], - ['b_5fstr_5fk_1',['B_str_k',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa71400922babd388177f228c2c82b211',1,'mlx::steel::BlockMMA']]], - ['b_5fstr_5fn_2',['B_str_n',['../structmlx_1_1steel_1_1_block_m_m_a.html#a49538190209e522ddbef45fe95563d17',1,'mlx::steel::BlockMMA']]], - ['backward_3',['BACKWARD',['../namespacepocketfft_1_1detail.html#a9d1eaa7469c018c39e745733eab9a9c3',1,'pocketfft::detail']]], - ['base_4',['Base',['../classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421',1,'mlx::core::Log']]], - ['base_5fwh_5',['base_wh',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aca37adba6f148579eb1cd0a7800a5cfe',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::base_wh'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6c46564bf1a96a02791dd432cc9c883e',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::base_wh']]], - ['base_5fww_6',['base_ww',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a32d020c6715d06f7de360877fcb7b6e4',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::base_ww'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a230f0e581f9b8227b9ee68760b3b1503',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::base_ww']]], - ['basemmafrag_7',['BaseMMAFrag',['../structmlx_1_1steel_1_1_base_m_m_a_frag.html',1,'mlx::steel']]], - ['basemmafrag_3c_20t_2c_208_2c_208_20_3e_8',['BaseMMAFrag< T, 8, 8 >',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html',1,'mlx::steel']]], - ['batch_5fndim_9',['batch_ndim',['../struct_m_l_x_fast_attention_params.html#a6f3d94dbe44b32e675558768710bf0a3',1,'MLXFastAttentionParams::batch_ndim'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a640dc138a8bf7b2b5bed6a436b429c2f',1,'mlx::steel::GEMMParams::batch_ndim']]], - ['batch_5fsize_10',['batch_size',['../struct_read_writer.html#a689f4890c1d2ce33fc6da7550beec735',1,'ReadWriter']]], - ['batch_5fstride_5fa_11',['batch_stride_a',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a76f55783a8e2ee203cf8507eee4b000c',1,'mlx::steel::GEMMParams']]], - ['batch_5fstride_5fb_12',['batch_stride_b',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a99b959b12d12da657648fa24d43e49e8',1,'mlx::steel::GEMMParams']]], - ['batch_5fstride_5fc_13',['batch_stride_c',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a77c065db228e9654a0a75a6ffe47c15a',1,'mlx::steel::GEMMAddMMParams']]], - ['batch_5fstride_5fd_14',['batch_stride_d',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#ad98006dd509a455864e6aa7c52743a41',1,'mlx::steel::GEMMParams']]], - ['batch_5fstride_5fk_15',['batch_stride_k',['../struct_m_l_x_fast_attention_params.html#a162826d3f288f64c0aea88a36b34859b',1,'MLXFastAttentionParams']]], - ['batch_5fstride_5fo_16',['batch_stride_o',['../struct_m_l_x_fast_attention_params.html#a3c5b1170999087f3f3a03830193b55c7',1,'MLXFastAttentionParams']]], - ['batch_5fstride_5fq_17',['batch_stride_q',['../struct_m_l_x_fast_attention_params.html#a98766fc89f75d5eef65b345f16a782d1',1,'MLXFastAttentionParams']]], - ['batch_5fstride_5fv_18',['batch_stride_v',['../struct_m_l_x_fast_attention_params.html#a1180e311b95cd4b6d4a336d21b873c21',1,'MLXFastAttentionParams']]], - ['bcols_19',['BCOLS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a29fbeeacdf5b6feeb74815ced255fa5a',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ac3b40db720055350bba59d614ea1dd79',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a86519729ef0561686bb86e474c95b93d',1,'mlx::steel::Conv2DWeightBlockLoader::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9229d22e0a02d96825eb5a57c8cb95ac',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a8b6cf53a10514310d01f4d6459053a57',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3d6272d000f8ea79d9b3b5228bdca20f',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a1843921cd67926002bb0dcccf3048eb6',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::BCOLS']]], - ['bcols_5fpacked_20',['BCOLS_PACKED',['../struct_quantized_block_loader.html#a1392a5278cf6e090ea80ebe7c4ac5fbb',1,'QuantizedBlockLoader']]], - ['begin_21',['begin',['../classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914',1,'mlx::core::array']]], - ['bernoulli_22',['bernoulli',['../namespacemlx_1_1core_1_1random.html#acb3f278fea2c4f06dea947d3bac2e9b7',1,'mlx::core::random::bernoulli(const array &p, const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#aaa49f6c2af5496822fa09435e54275cb',1,'mlx::core::random::bernoulli(const array &p, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#aa9e360f9cb7bd23221352ed9e31d83c2',1,'mlx::core::random::bernoulli(T p, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a37fcba120a1d246176db5256d3201cd4',1,'mlx::core::random::bernoulli(T p, const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#ad7eb4467e2f9d5f74a5607b29a935b6e',1,'mlx::core::random::bernoulli(const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], - ['beta_23',['beta',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#ac0ce4d8a6014f8adb29fd0a0bb23139f',1,'mlx::steel::GEMMAddMMParams::beta'],['../structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6',1,'mlx::steel::TransformAxpby::beta']]], - ['bf16_2eh_24',['bf16.h',['../backend_2metal_2kernels_2bf16_8h.html',1,'(Global Namespace)'],['../types_2bf16_8h.html',1,'(Global Namespace)']]], - ['bf16_5fmath_2eh_25',['bf16_math.h',['../bf16__math_8h.html',1,'']]], - ['bfloat16_26',['bfloat16',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47',1,'mlx::core::Dtype::bfloat16'],['../namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7',1,'mlx::core::bfloat16']]], - ['bfloat16_5ft_27',['bfloat16_t',['../backend_2metal_2kernels_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82',1,'bf16.h']]], - ['bfloat16_5fto_5fuint16_28',['bfloat16_to_uint16',['../bf16__math_8h.html#a51cfdd4502e755310f6f3456f039bea7',1,'bf16_math.h']]], - ['bfloat_5fbinop_29',['bfloat_binop',['../backend_2metal_2kernels_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707',1,'bfloat_binop: bf16.h'],['../types_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707',1,'bfloat_binop: bf16.h']]], - ['bfloat_5fbinop_5fbase_30',['bfloat_binop_base',['../backend_2metal_2kernels_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70',1,'bfloat_binop_base: bf16.h'],['../types_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70',1,'bfloat_binop_base: bf16.h']]], - ['bfloat_5fbinop_5fhelper_31',['bfloat_binop_helper',['../backend_2metal_2kernels_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594',1,'bfloat_binop_helper: bf16.h'],['../types_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594',1,'bfloat_binop_helper: bf16.h']]], - ['bfloat_5fbitop_32',['bfloat_bitop',['../types_2bf16_8h.html#aac9ba86d4bf05bcda1936494f9b9b4d3',1,'bf16.h']]], - ['bfloat_5fbits_5fto_5ffloat_33',['bfloat_bits_to_float',['../backend_2metal_2kernels_2bf16_8h.html#a3b33ae338dc4f223d0f3c748de07bad1',1,'bf16.h']]], - ['bfloat_5fcompop_34',['bfloat_compop',['../backend_2metal_2kernels_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239',1,'bfloat_compop: bf16.h'],['../types_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239',1,'bfloat_compop: bf16.h']]], - ['bfloat_5finplace_5fbitop_35',['bfloat_inplace_bitop',['../types_2bf16_8h.html#af13b46bc58e6e6f675ae47aabec37711',1,'bf16.h']]], - ['bfloat_5finplace_5fop_36',['bfloat_inplace_op',['../backend_2metal_2kernels_2bf16_8h.html#a4ac82467fbc674e990090f482b9c1e5c',1,'bfloat_inplace_op: bf16.h'],['../types_2bf16_8h.html#aee905053f51f76e0c1af94199714d514',1,'bfloat_inplace_op: bf16.h']]], - ['bfloat_5finplace_5fop_5faddr_5fspace_5fhelper_37',['bfloat_inplace_op_addr_space_helper',['../backend_2metal_2kernels_2bf16_8h.html#af30a2cbd2c3415516203b83bd21872f8',1,'bfloat_inplace_op_addr_space_helper: bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1457da931c28fa4e2500daa4e6441e8b',1,'bfloat_inplace_op_addr_space_helper: bf16.h']]], - ['bfloat_5finplace_5fop_5fhelper_38',['bfloat_inplace_op_helper',['../backend_2metal_2kernels_2bf16_8h.html#a2846fd11b5e19b435e9f7ef0998c9b1d',1,'bfloat_inplace_op_helper: bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afe5988aa8147be2bafda6a5b7792fe15',1,'bfloat_inplace_op_helper: bf16.h']]], - ['bi_39',['bi',['../struct_quantized_block_loader.html#a85041d72225a2095659c70509291a906',1,'QuantizedBlockLoader::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a8e53b0a9951cb840d922cc285b257ee3',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ae3af75287f279d2cdeef189126740d4c',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a8c5e74003600132954cb953616e1a026',1,'mlx::steel::Conv2DWeightBlockLoader::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9eb024e2fc6f07345f87fbf7141c0d16',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae3b9f21f72e5e6c541c9978f55d354c7',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a32a3a91fa715b82f36e05ceb10933d09',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a4c91f848856ab0872bdfd37c62d4b0ba',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::bi'],['../structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af',1,'mlx::steel::BlockLoader::bi']]], - ['biases_40',['biases',['../struct_quantized_block_loader.html#a17d01a6aba0833b073586ef2c09d0fbd',1,'QuantizedBlockLoader']]], - ['binary_41',['binary',['../namespacemlx_1_1core_1_1metal.html#a269d591ec02e2f7c0f7a718fbfa37f73',1,'mlx::core::metal']]], - ['binary_2eh_42',['binary.h',['../common_2binary_8h.html',1,'(Global Namespace)'],['../metal_2binary_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2binary_8h.html',1,'(Global Namespace)']]], - ['binary_5fg_43',['binary_g',['../metal_2kernels_2binary_8h.html#a1f3f5d6bfbf3914f365790dd1434c10b',1,'binary_g(device const T *a, device const T *b, device U *c, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const int &ndim, uint3 index, uint3 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a6297badf47dece518bb4e67f02cffea8',1,'binary_g(device const T *a, device const T *b, device U *c, device U *d, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const int &ndim, uint3 index, uint3 grid_dim): binary_two.h']]], - ['binary_5fg_5fnd1_44',['binary_g_nd1',['../metal_2kernels_2binary_8h.html#a6808bfb006cb5473da087a2758d0d867',1,'binary_g_nd1(device const T *a, device const T *b, device U *c, constant const size_t &a_stride, constant const size_t &b_stride, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ad1fad37c168192b212a4294f4cf78133',1,'binary_g_nd1(device const T *a, device const T *b, device U *c, device U *d, constant const size_t &a_stride, constant const size_t &b_stride, uint index): binary_two.h']]], - ['binary_5fg_5fnd2_45',['binary_g_nd2',['../metal_2kernels_2binary_8h.html#a8cd5989852ec704c6fd132ae28f4fc14',1,'binary_g_nd2(device const T *a, device const T *b, device U *c, constant const size_t a_strides[2], constant const size_t b_strides[2], uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a03f7c15a1607576755abb65c542ae347',1,'binary_g_nd2(device const T *a, device const T *b, device U *c, device U *d, constant const size_t a_strides[2], constant const size_t b_strides[2], uint2 index, uint2 grid_dim): binary_two.h']]], - ['binary_5fg_5fnd3_46',['binary_g_nd3',['../metal_2kernels_2binary_8h.html#ac4979e60b993f7ffb602bcb91cd68bc9',1,'binary_g_nd3(device const T *a, device const T *b, device U *c, constant const size_t a_strides[3], constant const size_t b_strides[3], uint3 index, uint3 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a43e5943460996c43060d1f3aa1309ba6',1,'binary_g_nd3(device const T *a, device const T *b, device U *c, device U *d, constant const size_t a_strides[3], constant const size_t b_strides[3], uint3 index, uint3 grid_dim): binary_two.h']]], - ['binary_5fop_5fgpu_47',['binary_op_gpu',['../namespacemlx_1_1core.html#ad884f4a36308b5b4f8a5d990d2e086df',1,'mlx::core::binary_op_gpu(const std::vector< array > &inputs, std::vector< array > &outputs, const std::string &op, const Stream &s)'],['../namespacemlx_1_1core.html#a094876ea5a2a2445ab64efc8222da202',1,'mlx::core::binary_op_gpu(const std::vector< array > &inputs, array &out, const std::string &op, const Stream &s)']]], - ['binary_5fop_5fgpu_5finplace_48',['binary_op_gpu_inplace',['../namespacemlx_1_1core.html#a8616c0b7b0fc118a75400bc86404c367',1,'mlx::core::binary_op_gpu_inplace(const std::vector< array > &inputs, std::vector< array > &outputs, const std::string &op, const Stream &s)'],['../namespacemlx_1_1core.html#a7e6af6624e322e7ad60a3873a66e18a3',1,'mlx::core::binary_op_gpu_inplace(const std::vector< array > &inputs, array &out, const std::string &op, const Stream &s)']]], - ['binary_5fops_49',['binary_ops',['../namespacemlx_1_1core_1_1metal.html#a8db7f9cc781d4bfb08423a401665f322',1,'mlx::core::metal']]], - ['binary_5fops_2eh_50',['binary_ops.h',['../binary__ops_8h.html',1,'']]], - ['binary_5fss_51',['binary_ss',['../metal_2kernels_2binary_8h.html#a242b8b29a852c255467e50628c6dccf5',1,'binary_ss(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#af8a791ac7ca88d32cd8f4e9ac0f9ab4f',1,'binary_ss(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], - ['binary_5fsv_52',['binary_sv',['../metal_2kernels_2binary_8h.html#a4116c35f2e4632366d1611d5a95ba141',1,'binary_sv(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ab18c6ecf5065275c93701efd095c916c',1,'binary_sv(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], - ['binary_5fsv2_53',['binary_sv2',['../metal_2kernels_2binary_8h.html#aa8c48b1b21d8f5a181f5443de2346589',1,'binary_sv2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a08822ff98ea6f61a98b49a9e9a38b891',1,'binary_sv2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], - ['binary_5ftwo_54',['binary_two',['../namespacemlx_1_1core_1_1metal.html#aed047eec38b030ec5f29b9da54abf8cb',1,'mlx::core::metal']]], - ['binary_5ftwo_2eh_55',['binary_two.h',['../common_2binary__two_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2binary__two_8h.html',1,'(Global Namespace)']]], - ['binary_5fvs_56',['binary_vs',['../metal_2kernels_2binary_8h.html#a649851d133358dd5832a73b1061b3313',1,'binary_vs(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#a12dbda74fa460812177ccb9aeee6e1ca',1,'binary_vs(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], - ['binary_5fvs2_57',['binary_vs2',['../metal_2kernels_2binary_8h.html#a48bd82eb10f9c623ce7d28daec4fa512',1,'binary_vs2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a273d2f31691f2c64623c2a97eab344be',1,'binary_vs2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], - ['binary_5fvv_58',['binary_vv',['../metal_2kernels_2binary_8h.html#add6a9aeee3cb0ba909574f27fa9ecd5b',1,'binary_vv(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ab4324f594c007a6895540b77ad5d89d9',1,'binary_vv(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], - ['binary_5fvv2_59',['binary_vv2',['../metal_2kernels_2binary_8h.html#a19dbbf8fea68b64bdd25dc8d36865171',1,'binary_vv2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a12e80730e43dfaa4c79ce8d5f99edc50',1,'binary_vv2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], - ['bits_60',['bits',['../namespacemlx_1_1core_1_1random.html#abb895baa477f5a06b5f88e69245f1825',1,'mlx::core::random::bits(const std::vector< int > &shape, int width, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a548ffed4ba3107b89885ff850ffce5f4',1,'mlx::core::random::bits(const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], - ['bits_5f_61',['bits_',['../struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8',1,'_MLX_BFloat16::bits_'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#aca48963f820065c3d8ecab24265ab3fc',1,'mlx::core::_MLX_BFloat16::bits_'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a5203fe52424fd32bce6eb7917dd9288b',1,'mlx::core::_MLX_Float16::bits_']]], - ['bits_5fto_5fbfloat_62',['bits_to_bfloat',['../struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca',1,'_MLX_BFloat16']]], - ['bits_5fto_5fbfloat_5fstruct_63',['bits_to_bfloat_struct',['../struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html',1,'_MLX_BFloat16']]], - ['bitwise_5fand_64',['bitwise_and',['../group__ops.html#ga752fd2707dabb05d0308ba3d55346ada',1,'mlx::core']]], - ['bitwise_5for_65',['bitwise_or',['../group__ops.html#ga8af4f22c08c11c4ffab7e3d45e0f3cd6',1,'mlx::core']]], - ['bitwise_5fxor_66',['bitwise_xor',['../group__ops.html#ga3188638fba3a60e264baf69956a1e08b',1,'mlx::core']]], - ['bitwiseand_67',['BitwiseAnd',['../struct_bitwise_and.html',1,'BitwiseAnd'],['../structmlx_1_1core_1_1detail_1_1_bitwise_and.html',1,'mlx::core::detail::BitwiseAnd']]], - ['bitwisebinary_68',['BitwiseBinary',['../classmlx_1_1core_1_1_bitwise_binary.html',1,'mlx::core::BitwiseBinary'],['../classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172',1,'mlx::core::BitwiseBinary::BitwiseBinary()']]], - ['bitwiseor_69',['BitwiseOr',['../struct_bitwise_or.html',1,'BitwiseOr'],['../structmlx_1_1core_1_1detail_1_1_bitwise_or.html',1,'mlx::core::detail::BitwiseOr']]], - ['bitwisexor_70',['BitwiseXor',['../struct_bitwise_xor.html',1,'BitwiseXor'],['../structmlx_1_1core_1_1detail_1_1_bitwise_xor.html',1,'mlx::core::detail::BitwiseXor']]], - ['bj_71',['bj',['../struct_quantized_block_loader.html#ae2add92b2aaf3414e91f0470b9b0cc00',1,'QuantizedBlockLoader::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a7ae9e41f50c0c63c35b63086a1c22cc3',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a6fd3dd7b74d91609fa9dd61c657a0e32',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a6f2fdcaf5a67567cca38ae3d8120ab37',1,'mlx::steel::Conv2DWeightBlockLoader::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a7cf448573d41fbc67f8dfc65b7aef2b2',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#adaa261fc2e8e694aedab4ebd60b52e5e',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#ace16704025bc6e6204c306a357f3a8b8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acec010e10d5733654963407af38d4f67',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::bj'],['../structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4',1,'mlx::steel::BlockLoader::bj']]], - ['block_5fmasked_5fgemm_72',['block_masked_gemm',['../steel__gemm__masked_8h.html#af805e998b2046ee30c2b4be813e3af97',1,'block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device out_mask_t *out_mask, const device op_mask_t *lhs_mask, const device op_mask_t *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_masked.h'],['../steel__gemm__masked_8h.html#a477932e2ae9d49366f7ede6db63f9cac',1,'block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device bool *out_mask, const device bool *lhs_mask, const device bool *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_masked.h']]], - ['block_5fmasked_5fmm_73',['block_masked_mm',['../group__ops.html#ga6b76c8ea46b19e6866af155fa5910be6',1,'mlx::core']]], - ['block_5fmerge_5fsort_5ft_74',['block_merge_sort_t',['../struct_kernel_merge_sort.html#adae7850e057fc30d5328c7b3dcc998fa',1,'KernelMergeSort::block_merge_sort_t'],['../struct_kernel_multi_block_merge_sort.html#af27e9af4b58640c0aa620bc4efc68dff',1,'KernelMultiBlockMergeSort::block_merge_sort_t']]], - ['block_5fsort_75',['block_sort',['../struct_kernel_merge_sort.html#a56b644ec66f7fb5c01b280f124304be9',1,'KernelMergeSort::block_sort()'],['../struct_kernel_multi_block_merge_sort.html#a322ed2eac315a561e0fd90af2fd577eb',1,'KernelMultiBlockMergeSort::block_sort()'],['../sort_8h.html#a93f14092416169c4449141043ac45ffd',1,'block_sort(const device T *inp, device U *out, const constant int &size_sorted_axis, const constant int &in_stride_sorted_axis, const constant int &out_stride_sorted_axis, const constant int &in_stride_segment_axis, const constant int &out_stride_segment_axis, uint3 tid, uint3 lid): sort.h']]], - ['block_5fsort_5fnc_76',['block_sort_nc',['../sort_8h.html#a4ee3de195a6f9c33aa91ac52461808ad',1,'sort.h']]], - ['blockloader_77',['BlockLoader',['../structmlx_1_1steel_1_1_block_loader.html',1,'mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >'],['../structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335',1,'mlx::steel::BlockLoader::BlockLoader()']]], - ['blockm_78',['blockM',['../struct_g_e_m_v_kernel.html#a7281520100658811076400060663903c',1,'GEMVKernel::blockM'],['../struct_g_e_m_v_t_kernel.html#a2ae8ce535d59cccf453381b4485a77f0',1,'GEMVTKernel::blockM']]], - ['blockmaskedmm_79',['BlockMaskedMM',['../classmlx_1_1core_1_1_block_masked_m_m.html',1,'mlx::core::BlockMaskedMM'],['../classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477',1,'mlx::core::BlockMaskedMM::BlockMaskedMM()']]], - ['blockmergesort_80',['BlockMergeSort',['../struct_block_merge_sort.html',1,'']]], - ['blockmma_81',['BlockMMA',['../structmlx_1_1steel_1_1_block_m_m_a.html',1,'mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >'],['../structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8',1,'mlx::steel::BlockMMA::BlockMMA()']]], - ['blockn_82',['blockN',['../struct_g_e_m_v_kernel.html#a2fef17f9c9aa0bdf530ad3554fb0988b',1,'GEMVKernel::blockN'],['../struct_g_e_m_v_t_kernel.html#a60be87666006ba0bf88bc8e6902da42a',1,'GEMVTKernel::blockN']]], - ['blockswizzle_83',['BlockSwizzle',['../structmlx_1_1steel_1_1_block_swizzle.html',1,'mlx::steel']]], - ['bluestein_5ffft_84',['bluestein_fft',['../backend_2metal_2kernels_2fft_8h.html#a0abc609e9756475800e996775a96a87e',1,'fft.h']]], - ['bool4_5for_5fuint_85',['bool4_or_uint',['../unionbool4__or__uint.html',1,'']]], - ['bool_5f_86',['bool_',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa467afb5838aa377d55cce81f84c5512b',1,'mlx::core::Dtype::bool_'],['../namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82',1,'mlx::core::bool_']]], - ['bool_5fconstant_87',['bool_constant',['../namespacemlx_1_1steel.html#adbb34bcf0d2dca6b9fb803d591d00da9',1,'mlx::steel']]], - ['broadcast_88',['Broadcast',['../classmlx_1_1core_1_1_broadcast.html',1,'mlx::core::Broadcast'],['../classmlx_1_1core_1_1_broadcast.html#accbab8433c93e281608a268d11afaefb',1,'mlx::core::Broadcast::Broadcast()']]], - ['broadcast_5farrays_89',['broadcast_arrays',['../group__ops.html#gab783890428b596f715dc7dd2057eae99',1,'mlx::core']]], - ['broadcast_5fshapes_90',['broadcast_shapes',['../namespacemlx_1_1core.html#a075e07def338cd9d815182d0e6a656c0',1,'mlx::core']]], - ['broadcast_5fto_91',['broadcast_to',['../group__ops.html#gad256e86cc1a6e6b3832e392baa90318d',1,'mlx::core']]], - ['brows_92',['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_93',['Bs_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca',1,'mlx::steel::BlockMMA']]], - ['bs_5fqmm_5fn_94',['bs_qmm_n',['../quantized_8h.html#a1a66b061c46383952a0f067c3848971f',1,'quantized.h']]], - ['bs_5fqmm_5ft_95',['bs_qmm_t',['../quantized_8h.html#ab1ae143eba2afceb8df63f38b26f9a84',1,'quantized.h']]], - ['bs_5fqmv_96',['bs_qmv',['../quantized_8h.html#acf4c7fc77821a83b31aedfb48443d3ed',1,'quantized.h']]], - ['bs_5fqmv_5ffast_97',['bs_qmv_fast',['../quantized_8h.html#a530b720e123e59d73ea89a0a2d0946b7',1,'quantized.h']]], - ['bs_5fqvm_98',['bs_qvm',['../quantized_8h.html#a6d6e3c31e44f232e58ae9d605e1f4494',1,'quantized.h']]], - ['btile_99',['Btile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a19abba19edeb37018da4bd31e01c8e26',1,'mlx::steel::BlockMMA']]], - ['buf_100',['buf',['../struct_read_writer.html#a23bac3c96dd0265ddbee1f256be45ff5',1,'ReadWriter::buf'],['../backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697',1,'buf: allocator.h']]], - ['buffer_101',['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_102',['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_103',['buffer_ops',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782',1,'mlx::core::metal::DeviceStream']]], - ['buffer_5fsize_104',['buffer_size',['../classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd',1,'mlx::core::array']]], - ['buffers_105',['buffers',['../struct_indices.html#ad705070a740579c07d109ae4f3d86e76',1,'Indices']]], - ['build_5flib_5fname_106',['build_lib_name',['../namespacemlx_1_1core.html#a3ef23f334cb9f68a2c50524bc67c913b',1,'mlx::core']]] + ['b_0',['B',['../structmlx_1_1steel_1_1_attn_params.html#a1cba7fedbd02e157922619195997cf4f',1,'mlx::steel::AttnParams']]], + ['b_1',['b',['../unionbool4__or__uint.html#a47d77eac47598fe420f8f04a615f76ca',1,'bool4_or_uint::b'],['../structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f',1,'mlx::core::Dtype::b']]], + ['b_5fstr_5fk_2',['B_str_k',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa71400922babd388177f228c2c82b211',1,'mlx::steel::BlockMMA']]], + ['b_5fstr_5fn_3',['B_str_n',['../structmlx_1_1steel_1_1_block_m_m_a.html#a49538190209e522ddbef45fe95563d17',1,'mlx::steel::BlockMMA']]], + ['backward_4',['BACKWARD',['../namespacepocketfft_1_1detail.html#a9d1eaa7469c018c39e745733eab9a9c3',1,'pocketfft::detail']]], + ['base_5',['Base',['../classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421',1,'mlx::core::Log']]], + ['base_5fwh_6',['base_wh',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aca37adba6f148579eb1cd0a7800a5cfe',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::base_wh'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6c46564bf1a96a02791dd432cc9c883e',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::base_wh']]], + ['base_5fww_7',['base_ww',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a32d020c6715d06f7de360877fcb7b6e4',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::base_ww'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a230f0e581f9b8227b9ee68760b3b1503',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::base_ww']]], + ['basemmafrag_8',['BaseMMAFrag',['../structmlx_1_1steel_1_1_base_m_m_a_frag.html',1,'mlx::steel']]], + ['basemmafrag_3c_20t_2c_208_2c_208_20_3e_9',['BaseMMAFrag< T, 8, 8 >',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html',1,'mlx::steel']]], + ['batch_5fndim_10',['batch_ndim',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a640dc138a8bf7b2b5bed6a436b429c2f',1,'mlx::steel::GEMMParams']]], + ['batch_5fsize_11',['batch_size',['../struct_read_writer.html#a689f4890c1d2ce33fc6da7550beec735',1,'ReadWriter']]], + ['batch_5fstride_5fa_12',['batch_stride_a',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a76f55783a8e2ee203cf8507eee4b000c',1,'mlx::steel::GEMMParams']]], + ['batch_5fstride_5fb_13',['batch_stride_b',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a99b959b12d12da657648fa24d43e49e8',1,'mlx::steel::GEMMParams']]], + ['batch_5fstride_5fc_14',['batch_stride_c',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a77c065db228e9654a0a75a6ffe47c15a',1,'mlx::steel::GEMMAddMMParams']]], + ['batch_5fstride_5fd_15',['batch_stride_d',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#ad98006dd509a455864e6aa7c52743a41',1,'mlx::steel::GEMMParams']]], + ['bcols_16',['BCOLS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a29fbeeacdf5b6feeb74815ced255fa5a',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ac3b40db720055350bba59d614ea1dd79',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a86519729ef0561686bb86e474c95b93d',1,'mlx::steel::Conv2DWeightBlockLoader::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9229d22e0a02d96825eb5a57c8cb95ac',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a8b6cf53a10514310d01f4d6459053a57',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3d6272d000f8ea79d9b3b5228bdca20f',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a1843921cd67926002bb0dcccf3048eb6',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::BCOLS']]], + ['bcols_5fpacked_17',['BCOLS_PACKED',['../struct_quantized_block_loader.html#a1392a5278cf6e090ea80ebe7c4ac5fbb',1,'QuantizedBlockLoader']]], + ['begin_18',['begin',['../classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914',1,'mlx::core::array']]], + ['bernoulli_19',['bernoulli',['../namespacemlx_1_1core_1_1random.html#acb3f278fea2c4f06dea947d3bac2e9b7',1,'mlx::core::random::bernoulli(const array &p, const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#aaa49f6c2af5496822fa09435e54275cb',1,'mlx::core::random::bernoulli(const array &p, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#aa9e360f9cb7bd23221352ed9e31d83c2',1,'mlx::core::random::bernoulli(T p, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a37fcba120a1d246176db5256d3201cd4',1,'mlx::core::random::bernoulli(T p, const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#ad7eb4467e2f9d5f74a5607b29a935b6e',1,'mlx::core::random::bernoulli(const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], + ['beta_20',['beta',['../structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6',1,'mlx::steel::TransformAxpby::beta'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#ac0ce4d8a6014f8adb29fd0a0bb23139f',1,'mlx::steel::GEMMAddMMParams::beta']]], + ['bf16_2eh_21',['bf16.h',['../backend_2metal_2kernels_2jit_2bf16_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2metal__3__1_2bf16_8h.html',1,'(Global Namespace)'],['../types_2bf16_8h.html',1,'(Global Namespace)']]], + ['bf16_5fmath_2eh_22',['bf16_math.h',['../bf16__math_8h.html',1,'']]], + ['bfloat16_23',['bfloat16',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47',1,'mlx::core::Dtype::bfloat16'],['../namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7',1,'mlx::core::bfloat16']]], + ['bfloat16_5ft_24',['bfloat16_t',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82',1,'bfloat16_t: bf16.h'],['../backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a58e15a77da988b9104fee00cdf8b280e',1,'bfloat16_t: bf16.h']]], + ['bfloat16_5fto_5fuint16_25',['bfloat16_to_uint16',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088',1,'bfloat16_to_uint16(const bfloat16_t x): bf16.h'],['../backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088',1,'bfloat16_to_uint16(const bfloat16_t x): bf16.h']]], + ['bfloat_5fbinop_26',['bfloat_binop',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707',1,'bfloat_binop: bf16.h'],['../types_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707',1,'bfloat_binop: bf16.h']]], + ['bfloat_5fbinop_5fbase_27',['bfloat_binop_base',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70',1,'bfloat_binop_base: bf16.h'],['../types_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70',1,'bfloat_binop_base: bf16.h']]], + ['bfloat_5fbinop_5fhelper_28',['bfloat_binop_helper',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594',1,'bfloat_binop_helper: bf16.h'],['../types_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594',1,'bfloat_binop_helper: bf16.h']]], + ['bfloat_5fbitop_29',['bfloat_bitop',['../types_2bf16_8h.html#aac9ba86d4bf05bcda1936494f9b9b4d3',1,'bf16.h']]], + ['bfloat_5fbits_5fto_5ffloat_30',['bfloat_bits_to_float',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3b33ae338dc4f223d0f3c748de07bad1',1,'bf16.h']]], + ['bfloat_5fcompop_31',['bfloat_compop',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239',1,'bfloat_compop: bf16.h'],['../types_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239',1,'bfloat_compop: bf16.h']]], + ['bfloat_5finplace_5fbitop_32',['bfloat_inplace_bitop',['../types_2bf16_8h.html#af13b46bc58e6e6f675ae47aabec37711',1,'bf16.h']]], + ['bfloat_5finplace_5fop_33',['bfloat_inplace_op',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ac82467fbc674e990090f482b9c1e5c',1,'bfloat_inplace_op: bf16.h'],['../types_2bf16_8h.html#aee905053f51f76e0c1af94199714d514',1,'bfloat_inplace_op: bf16.h']]], + ['bfloat_5finplace_5fop_5faddr_5fspace_5fhelper_34',['bfloat_inplace_op_addr_space_helper',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af30a2cbd2c3415516203b83bd21872f8',1,'bfloat_inplace_op_addr_space_helper: bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1457da931c28fa4e2500daa4e6441e8b',1,'bfloat_inplace_op_addr_space_helper: bf16.h']]], + ['bfloat_5finplace_5fop_5fhelper_35',['bfloat_inplace_op_helper',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2846fd11b5e19b435e9f7ef0998c9b1d',1,'bfloat_inplace_op_helper: bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afe5988aa8147be2bafda6a5b7792fe15',1,'bfloat_inplace_op_helper: bf16.h']]], + ['bfs_5fmax_5fwidth_36',['bfs_max_width',['../namespacemlx_1_1core_1_1env.html#ac3266e1259a64c8b56bdc6c7029179f2',1,'mlx::core::env']]], + ['bi_37',['bi',['../struct_quantized_block_loader.html#a85041d72225a2095659c70509291a906',1,'QuantizedBlockLoader::bi'],['../structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af',1,'mlx::steel::BlockLoader::bi'],['../structmlx_1_1steel_1_1_block_loader_t.html#a6964273994b06d6cf8ef7e59fb10bb35',1,'mlx::steel::BlockLoaderT::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a8e53b0a9951cb840d922cc285b257ee3',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ae3af75287f279d2cdeef189126740d4c',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a8c5e74003600132954cb953616e1a026',1,'mlx::steel::Conv2DWeightBlockLoader::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9eb024e2fc6f07345f87fbf7141c0d16',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae3b9f21f72e5e6c541c9978f55d354c7',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a32a3a91fa715b82f36e05ceb10933d09',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a4c91f848856ab0872bdfd37c62d4b0ba',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::bi']]], + ['biases_38',['biases',['../struct_quantized_block_loader.html#a17d01a6aba0833b073586ef2c09d0fbd',1,'QuantizedBlockLoader']]], + ['binary_39',['binary',['../namespacemlx_1_1core_1_1metal.html#a269d591ec02e2f7c0f7a718fbfa37f73',1,'mlx::core::metal']]], + ['binary_2eh_40',['binary.h',['../common_2binary_8h.html',1,'(Global Namespace)'],['../metal_2binary_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2binary_8h.html',1,'(Global Namespace)']]], + ['binary_5fg_41',['binary_g',['../metal_2kernels_2binary_8h.html#ab1b49438a70f6c707c18afd5bce12bb3',1,'binary_g(device const T *a, device const T *b, device U *c, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const int &ndim, uint3 index, uint3 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#aaf6edb734cea627bca4f6540dc338fbd',1,'binary_g(device const T *a, device const T *b, device U *c, device U *d, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const int &ndim, uint3 index, uint3 grid_dim): binary_two.h']]], + ['binary_5fg_5fnd1_42',['binary_g_nd1',['../metal_2kernels_2binary_8h.html#a6808bfb006cb5473da087a2758d0d867',1,'binary_g_nd1(device const T *a, device const T *b, device U *c, constant const size_t &a_stride, constant const size_t &b_stride, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ad1fad37c168192b212a4294f4cf78133',1,'binary_g_nd1(device const T *a, device const T *b, device U *c, device U *d, constant const size_t &a_stride, constant const size_t &b_stride, uint index): binary_two.h']]], + ['binary_5fg_5fnd2_43',['binary_g_nd2',['../metal_2kernels_2binary_8h.html#a6cefcfee68bd62f3a6924df0cd53dd49',1,'binary_g_nd2(device const T *a, device const T *b, device U *c, constant const size_t a_strides[2], constant const size_t b_strides[2], uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a97b5613aff654d32c49225209a19bb95',1,'binary_g_nd2(device const T *a, device const T *b, device U *c, device U *d, constant const size_t a_strides[2], constant const size_t b_strides[2], uint2 index, uint2 grid_dim): binary_two.h']]], + ['binary_5fg_5fnd3_44',['binary_g_nd3',['../metal_2kernels_2binary_8h.html#abb15de8250f9a259de80618c6de46dfa',1,'binary_g_nd3(device const T *a, device const T *b, device U *c, constant const size_t a_strides[3], constant const size_t b_strides[3], uint3 index, uint3 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#aae07014f8dffa3649a5c7f4671e1268e',1,'binary_g_nd3(device const T *a, device const T *b, device U *c, device U *d, constant const size_t a_strides[3], constant const size_t b_strides[3], uint3 index, uint3 grid_dim): binary_two.h']]], + ['binary_5fop_5fgpu_45',['binary_op_gpu',['../namespacemlx_1_1core.html#ad884f4a36308b5b4f8a5d990d2e086df',1,'mlx::core::binary_op_gpu(const std::vector< array > &inputs, std::vector< array > &outputs, const std::string &op, const Stream &s)'],['../namespacemlx_1_1core.html#a094876ea5a2a2445ab64efc8222da202',1,'mlx::core::binary_op_gpu(const std::vector< array > &inputs, array &out, const std::string &op, const Stream &s)']]], + ['binary_5fop_5fgpu_5finplace_46',['binary_op_gpu_inplace',['../namespacemlx_1_1core.html#a8616c0b7b0fc118a75400bc86404c367',1,'mlx::core::binary_op_gpu_inplace(const std::vector< array > &inputs, std::vector< array > &outputs, const std::string &op, const Stream &s)'],['../namespacemlx_1_1core.html#a7e6af6624e322e7ad60a3873a66e18a3',1,'mlx::core::binary_op_gpu_inplace(const std::vector< array > &inputs, array &out, const std::string &op, const Stream &s)']]], + ['binary_5fops_47',['binary_ops',['../namespacemlx_1_1core_1_1metal.html#a8db7f9cc781d4bfb08423a401665f322',1,'mlx::core::metal']]], + ['binary_5fops_2eh_48',['binary_ops.h',['../binary__ops_8h.html',1,'']]], + ['binary_5fss_49',['binary_ss',['../metal_2kernels_2binary_8h.html#a242b8b29a852c255467e50628c6dccf5',1,'binary_ss(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#af8a791ac7ca88d32cd8f4e9ac0f9ab4f',1,'binary_ss(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], + ['binary_5fsv_50',['binary_sv',['../metal_2kernels_2binary_8h.html#a4116c35f2e4632366d1611d5a95ba141',1,'binary_sv(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ab18c6ecf5065275c93701efd095c916c',1,'binary_sv(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], + ['binary_5fsv2_51',['binary_sv2',['../metal_2kernels_2binary_8h.html#aa8c48b1b21d8f5a181f5443de2346589',1,'binary_sv2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a08822ff98ea6f61a98b49a9e9a38b891',1,'binary_sv2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], + ['binary_5ftwo_52',['binary_two',['../namespacemlx_1_1core_1_1metal.html#aed047eec38b030ec5f29b9da54abf8cb',1,'mlx::core::metal']]], + ['binary_5ftwo_2eh_53',['binary_two.h',['../common_2binary__two_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2binary__two_8h.html',1,'(Global Namespace)']]], + ['binary_5fvs_54',['binary_vs',['../metal_2kernels_2binary_8h.html#a649851d133358dd5832a73b1061b3313',1,'binary_vs(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#a12dbda74fa460812177ccb9aeee6e1ca',1,'binary_vs(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], + ['binary_5fvs2_55',['binary_vs2',['../metal_2kernels_2binary_8h.html#a48bd82eb10f9c623ce7d28daec4fa512',1,'binary_vs2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a273d2f31691f2c64623c2a97eab344be',1,'binary_vs2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], + ['binary_5fvv_56',['binary_vv',['../metal_2kernels_2binary_8h.html#add6a9aeee3cb0ba909574f27fa9ecd5b',1,'binary_vv(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ab4324f594c007a6895540b77ad5d89d9',1,'binary_vv(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], + ['binary_5fvv2_57',['binary_vv2',['../metal_2kernels_2binary_8h.html#a19dbbf8fea68b64bdd25dc8d36865171',1,'binary_vv2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a12e80730e43dfaa4c79ce8d5f99edc50',1,'binary_vv2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], + ['bits_58',['bits',['../namespacemlx_1_1core_1_1random.html#abb895baa477f5a06b5f88e69245f1825',1,'mlx::core::random::bits(const std::vector< int > &shape, int width, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a548ffed4ba3107b89885ff850ffce5f4',1,'mlx::core::random::bits(const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], + ['bits_5f_59',['bits_',['../struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8',1,'_MLX_BFloat16::bits_'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#aca48963f820065c3d8ecab24265ab3fc',1,'mlx::core::_MLX_BFloat16::bits_'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a5203fe52424fd32bce6eb7917dd9288b',1,'mlx::core::_MLX_Float16::bits_']]], + ['bits_5fto_5fbfloat_60',['bits_to_bfloat',['../struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca',1,'_MLX_BFloat16']]], + ['bits_5fto_5fbfloat_5fstruct_61',['bits_to_bfloat_struct',['../struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html',1,'_MLX_BFloat16']]], + ['bitwise_5fand_62',['bitwise_and',['../group__ops.html#ga752fd2707dabb05d0308ba3d55346ada',1,'mlx::core']]], + ['bitwise_5for_63',['bitwise_or',['../group__ops.html#ga8af4f22c08c11c4ffab7e3d45e0f3cd6',1,'mlx::core']]], + ['bitwise_5fxor_64',['bitwise_xor',['../group__ops.html#ga3188638fba3a60e264baf69956a1e08b',1,'mlx::core']]], + ['bitwiseand_65',['BitwiseAnd',['../struct_bitwise_and.html',1,'BitwiseAnd'],['../structmlx_1_1core_1_1detail_1_1_bitwise_and.html',1,'mlx::core::detail::BitwiseAnd']]], + ['bitwisebinary_66',['BitwiseBinary',['../classmlx_1_1core_1_1_bitwise_binary.html',1,'mlx::core::BitwiseBinary'],['../classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172',1,'mlx::core::BitwiseBinary::BitwiseBinary()']]], + ['bitwiseor_67',['BitwiseOr',['../struct_bitwise_or.html',1,'BitwiseOr'],['../structmlx_1_1core_1_1detail_1_1_bitwise_or.html',1,'mlx::core::detail::BitwiseOr']]], + ['bitwisexor_68',['BitwiseXor',['../struct_bitwise_xor.html',1,'BitwiseXor'],['../structmlx_1_1core_1_1detail_1_1_bitwise_xor.html',1,'mlx::core::detail::BitwiseXor']]], + ['bj_69',['bj',['../struct_quantized_block_loader.html#ae2add92b2aaf3414e91f0470b9b0cc00',1,'QuantizedBlockLoader::bj'],['../structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4',1,'mlx::steel::BlockLoader::bj'],['../structmlx_1_1steel_1_1_block_loader_t.html#aca83e49c31095badc8a46eb3c8e00957',1,'mlx::steel::BlockLoaderT::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a7ae9e41f50c0c63c35b63086a1c22cc3',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a6fd3dd7b74d91609fa9dd61c657a0e32',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a6f2fdcaf5a67567cca38ae3d8120ab37',1,'mlx::steel::Conv2DWeightBlockLoader::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a7cf448573d41fbc67f8dfc65b7aef2b2',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#adaa261fc2e8e694aedab4ebd60b52e5e',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#ace16704025bc6e6204c306a357f3a8b8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acec010e10d5733654963407af38d4f67',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::bj']]], + ['block_5fmasked_5fgemm_70',['block_masked_gemm',['../steel__gemm__masked_8h.html#af805e998b2046ee30c2b4be813e3af97',1,'block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device out_mask_t *out_mask, const device op_mask_t *lhs_mask, const device op_mask_t *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_masked.h'],['../steel__gemm__masked_8h.html#a477932e2ae9d49366f7ede6db63f9cac',1,'block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device bool *out_mask, const device bool *lhs_mask, const device bool *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_masked.h']]], + ['block_5fmasked_5fmm_71',['block_masked_mm',['../group__ops.html#ga6b76c8ea46b19e6866af155fa5910be6',1,'mlx::core']]], + ['block_5fmerge_5fsort_5ft_72',['block_merge_sort_t',['../struct_kernel_merge_sort.html#adae7850e057fc30d5328c7b3dcc998fa',1,'KernelMergeSort::block_merge_sort_t'],['../struct_kernel_multi_block_merge_sort.html#af27e9af4b58640c0aa620bc4efc68dff',1,'KernelMultiBlockMergeSort::block_merge_sort_t']]], + ['block_5fsort_73',['block_sort',['../struct_kernel_merge_sort.html#a56b644ec66f7fb5c01b280f124304be9',1,'KernelMergeSort::block_sort()'],['../struct_kernel_multi_block_merge_sort.html#a322ed2eac315a561e0fd90af2fd577eb',1,'KernelMultiBlockMergeSort::block_sort()'],['../sort_8h.html#a93f14092416169c4449141043ac45ffd',1,'block_sort(const device T *inp, device U *out, const constant int &size_sorted_axis, const constant int &in_stride_sorted_axis, const constant int &out_stride_sorted_axis, const constant int &in_stride_segment_axis, const constant int &out_stride_segment_axis, uint3 tid, uint3 lid): sort.h']]], + ['block_5fsort_5fnc_74',['block_sort_nc',['../sort_8h.html#a4ee3de195a6f9c33aa91ac52461808ad',1,'sort.h']]], + ['blockloader_75',['BlockLoader',['../structmlx_1_1steel_1_1_block_loader.html',1,'mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >'],['../structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335',1,'mlx::steel::BlockLoader::BlockLoader(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)'],['../structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335',1,'mlx::steel::BlockLoader::BlockLoader(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)']]], + ['blockloadert_76',['BlockLoaderT',['../structmlx_1_1steel_1_1_block_loader_t.html',1,'mlx::steel::BlockLoaderT< T, BROWS, BCOLS, kDstStrRow, kDstStrCol, reduction_dim, tgp_size, n_reads, TCOLS, TROWS >'],['../structmlx_1_1steel_1_1_block_loader_t.html#a076616a7c67ad1b847e0e6b046077ee2',1,'mlx::steel::BlockLoaderT::BlockLoaderT()']]], + ['blockm_77',['blockM',['../struct_g_e_m_v_kernel.html#a7281520100658811076400060663903c',1,'GEMVKernel::blockM'],['../struct_g_e_m_v_t_kernel.html#a2ae8ce535d59cccf453381b4485a77f0',1,'GEMVTKernel::blockM']]], + ['blockmaskedmm_78',['BlockMaskedMM',['../classmlx_1_1core_1_1_block_masked_m_m.html',1,'mlx::core::BlockMaskedMM'],['../classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477',1,'mlx::core::BlockMaskedMM::BlockMaskedMM()']]], + ['blockmergesort_79',['BlockMergeSort',['../struct_block_merge_sort.html',1,'']]], + ['blockmma_80',['BlockMMA',['../structmlx_1_1steel_1_1_block_m_m_a.html',1,'mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >'],['../structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8',1,'mlx::steel::BlockMMA::BlockMMA(ushort simd_group_id, ushort simd_lane_id)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8',1,'mlx::steel::BlockMMA::BlockMMA(ushort simd_group_id, ushort simd_lane_id)']]], + ['blockn_81',['blockN',['../struct_g_e_m_v_kernel.html#a2fef17f9c9aa0bdf530ad3554fb0988b',1,'GEMVKernel::blockN'],['../struct_g_e_m_v_t_kernel.html#a60be87666006ba0bf88bc8e6902da42a',1,'GEMVTKernel::blockN']]], + ['blockswizzle_82',['BlockSwizzle',['../structmlx_1_1steel_1_1_block_swizzle.html',1,'mlx::steel']]], + ['bluestein_5ffft_83',['bluestein_fft',['../backend_2metal_2kernels_2fft_8h.html#a0abc609e9756475800e996775a96a87e',1,'fft.h']]], + ['bool4_5for_5fuint_84',['bool4_or_uint',['../unionbool4__or__uint.html',1,'']]], + ['bool_5f_85',['bool_',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa467afb5838aa377d55cce81f84c5512b',1,'mlx::core::Dtype::bool_'],['../namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82',1,'mlx::core::bool_']]], + ['bool_5fconstant_86',['bool_constant',['../namespacemlx_1_1steel.html#adbb34bcf0d2dca6b9fb803d591d00da9',1,'mlx::steel']]], + ['broadcast_87',['Broadcast',['../classmlx_1_1core_1_1_broadcast.html',1,'mlx::core::Broadcast'],['../classmlx_1_1core_1_1_broadcast.html#accbab8433c93e281608a268d11afaefb',1,'mlx::core::Broadcast::Broadcast()']]], + ['broadcast_5farrays_88',['broadcast_arrays',['../group__ops.html#gab783890428b596f715dc7dd2057eae99',1,'mlx::core']]], + ['broadcast_5fshapes_89',['broadcast_shapes',['../namespacemlx_1_1core.html#a075e07def338cd9d815182d0e6a656c0',1,'mlx::core']]], + ['broadcast_5fto_90',['broadcast_to',['../group__ops.html#gad256e86cc1a6e6b3832e392baa90318d',1,'mlx::core']]], + ['brows_91',['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_92',['Bs_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca',1,'mlx::steel::BlockMMA']]], + ['bs_5fqmm_5fn_93',['bs_qmm_n',['../quantized_8h.html#a1a66b061c46383952a0f067c3848971f',1,'quantized.h']]], + ['bs_5fqmm_5ft_94',['bs_qmm_t',['../quantized_8h.html#ab1ae143eba2afceb8df63f38b26f9a84',1,'quantized.h']]], + ['bs_5fqmv_95',['bs_qmv',['../quantized_8h.html#acf4c7fc77821a83b31aedfb48443d3ed',1,'quantized.h']]], + ['bs_5fqmv_5ffast_96',['bs_qmv_fast',['../quantized_8h.html#a530b720e123e59d73ea89a0a2d0946b7',1,'quantized.h']]], + ['bs_5fqvm_97',['bs_qvm',['../quantized_8h.html#a6d6e3c31e44f232e58ae9d605e1f4494',1,'quantized.h']]], + ['btile_98',['Btile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a44fca27c821764317263047a780977b0',1,'mlx::steel::BlockMMA']]], + ['buf_99',['buf',['../struct_read_writer.html#a23bac3c96dd0265ddbee1f256be45ff5',1,'ReadWriter::buf'],['../backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697',1,'buf: allocator.h']]], + ['buffer_100',['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_101',['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_102',['buffer_ops',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782',1,'mlx::core::metal::DeviceStream']]], + ['buffer_5fsize_103',['buffer_size',['../classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd',1,'mlx::core::array']]], + ['buffers_104',['buffers',['../struct_indices.html#ad705070a740579c07d109ae4f3d86e76',1,'Indices']]], + ['build_5flib_5fname_105',['build_lib_name',['../namespacemlx_1_1core.html#a3ef23f334cb9f68a2c50524bc67c913b',1,'mlx::core']]], + ['bytes_5fper_5fpack_106',['bytes_per_pack',['../struct_quantized_block_loader.html#ad00fe6d8bd395206a41693a8ed65d4db',1,'QuantizedBlockLoader']]] ]; diff --git a/docs/build/html/search/all_3.js b/docs/build/html/search/all_3.js index adac7585..726ce7d5 100644 --- a/docs/build/html/search/all_3.js +++ b/docs/build/html/search/all_3.js @@ -1,12 +1,12 @@ var searchData= [ ['c_0',['C',['../struct_m_l_x_conv_params.html#a0953063962ac3b5a027243289e72fbb2',1,'MLXConvParams']]], - ['c_1',['c',['../structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33',1,'mlx::core::Dtype']]], + ['c_1',['c',['../structmlx_1_1steel_1_1_shape2_d.html#ae51347b2131647f2ed735ed43840d26e',1,'mlx::steel::Shape2D::c'],['../structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33',1,'mlx::core::Dtype::c']]], ['c2c_2',['c2c',['../namespacepocketfft_1_1detail.html#ab585ac594ae1253d4659e7b9e1623c8a',1,'pocketfft::detail']]], ['c2r_3',['c2r',['../namespacepocketfft_1_1detail.html#ab26cbfed16f487b987f50bf63bfc1ab9',1,'pocketfft::detail::c2r(const shape_t &shape_out, const stride_t &stride_in, const stride_t &stride_out, size_t axis, bool forward, const std::complex< T > *data_in, T *data_out, T fct, size_t nthreads=1)'],['../namespacepocketfft_1_1detail.html#a788506fff59f8e13056247076cac51c1',1,'pocketfft::detail::c2r(const shape_t &shape_out, const stride_t &stride_in, const stride_t &stride_out, const shape_t &axes, bool forward, const std::complex< T > *data_in, T *data_out, T fct, size_t nthreads=1)']]], - ['can_5fconvert_5ffrom_5fbfloat_4',['can_convert_from_bfloat',['../backend_2metal_2kernels_2bf16_8h.html#a7e5992f7fcd8f2cdadcc1d7f6aefbb5a',1,'bf16.h']]], + ['can_5fconvert_5ffrom_5fbfloat_4',['can_convert_from_bfloat',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e5992f7fcd8f2cdadcc1d7f6aefbb5a',1,'bf16.h']]], ['can_5fconvert_5ffrom_5fcomplex64_5',['can_convert_from_complex64',['../backend_2metal_2kernels_2complex_8h.html#ab149db78f6f19b8da6297dac4c36d893',1,'complex.h']]], - ['can_5fconvert_5fto_5fbfloat_6',['can_convert_to_bfloat',['../backend_2metal_2kernels_2bf16_8h.html#aae77817d261452b2f001f4d947a3e04e',1,'bf16.h']]], + ['can_5fconvert_5fto_5fbfloat_6',['can_convert_to_bfloat',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aae77817d261452b2f001f4d947a3e04e',1,'bf16.h']]], ['can_5fconvert_5fto_5fcomplex128_7',['can_convert_to_complex128',['../namespacemlx_1_1core.html#a2822d2a4d346c826d3cfebbcf89c3057',1,'mlx::core']]], ['can_5fconvert_5fto_5fcomplex64_8',['can_convert_to_complex64',['../backend_2metal_2kernels_2complex_8h.html#a4f90ad54f4fae363e8d3cc41d539557b',1,'can_convert_to_complex64: complex.h'],['../namespacemlx_1_1core.html#a0b3c76fd03f4df39ec8f9aefdced0861',1,'mlx::core::can_convert_to_complex64']]], ['capitalize_5fbool_9',['capitalize_bool',['../structmlx_1_1core_1_1_print_formatter.html#adf49a949db36f0ba076842a6d675d79a',1,'mlx::core::PrintFormatter']]], @@ -27,7 +27,7 @@ var searchData= ['cholesky_24',['Cholesky',['../classmlx_1_1core_1_1_cholesky.html',1,'mlx::core::Cholesky'],['../classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab',1,'mlx::core::Cholesky::Cholesky()']]], ['cholesky_25',['cholesky',['../namespacemlx_1_1core_1_1linalg.html#a46c8a4f806f0a97a4323e91189aa512b',1,'mlx::core::linalg']]], ['cholesky_5finv_26',['cholesky_inv',['../namespacemlx_1_1core_1_1linalg.html#aef0fe4894c5cf98792d59859c6d20511',1,'mlx::core::linalg']]], - ['clear_27',['clear',['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa97a98e423827a889c13a92217626ec7',1,'mlx::steel::MMATile']]], + ['clear_27',['clear',['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa97a98e423827a889c13a92217626ec7',1,'mlx::steel::MMATile::clear()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa97a98e423827a889c13a92217626ec7',1,'mlx::steel::MMATile::clear()']]], ['clear_5fcache_28',['clear_cache',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a447c1eb38c00d2e8e521675297f4a9b1',1,'mlx::core::metal::MetalAllocator::clear_cache()'],['../namespacemlx_1_1core_1_1metal.html#a22b3384ebd17f2fca198f81b9f1b6dc3',1,'mlx::core::metal::clear_cache()']]], ['clip_29',['clip',['../group__ops.html#ga157cd7c23f9b306fee2e1eb2b9bf1dd8',1,'mlx::core']]], ['cmplx_30',['cmplx',['../structpocketfft_1_1detail_1_1cmplx.html',1,'pocketfft::detail::cmplx< T >'],['../structpocketfft_1_1detail_1_1cmplx.html#a5b1ce506f1023f5254025ac81b831a2c',1,'pocketfft::detail::cmplx::cmplx()'],['../structpocketfft_1_1detail_1_1cmplx.html#a05491b4f1f22ca0bc49012f6a1c1710a',1,'pocketfft::detail::cmplx::cmplx(T r_, T i_)']]], @@ -35,120 +35,123 @@ var searchData= ['cmplx_3c_20thigh_20_3e_32',['cmplx< Thigh >',['../structpocketfft_1_1detail_1_1cmplx.html',1,'pocketfft::detail']]], ['cndarr_33',['cndarr',['../classpocketfft_1_1detail_1_1cndarr.html',1,'pocketfft::detail::cndarr< T >'],['../classpocketfft_1_1detail_1_1cndarr.html#abf73f1b4ddcfb27d7f85cfa441607129',1,'pocketfft::detail::cndarr::cndarr()']]], ['col_5fcontiguous_34',['col_contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#ae24709026598d635e6b5c24a15f8a802',1,'mlx::core::array::Flags']]], - ['col_5freduce_5f2pass_35',['col_reduce_2pass',['../reduce__col_8h.html#a0e92fc74eeaa8ee2ceb83bafc6eb1d7d',1,'reduce_col.h']]], - ['col_5freduce_5flongcolumn_36',['col_reduce_longcolumn',['../reduce__col_8h.html#a5b4f4c4c247ad341ff8d31dcbbbce0eb',1,'reduce_col.h']]], - ['col_5freduce_5flooped_37',['col_reduce_looped',['../reduce__col_8h.html#a11bfc6112ae2386ac03f5ea7b7d93385',1,'reduce_col.h']]], - ['col_5freduce_5fsmall_38',['col_reduce_small',['../reduce__col_8h.html#a7c378443a2b6f4d9210db8a21a9ac4f5',1,'reduce_col.h']]], - ['collapse_5fcontiguous_5fdims_39',['collapse_contiguous_dims',['../namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< std::vector< int64_t > > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#af2895f9b0083efd8221275eb8cadccbe',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< std::vector< size_t > > &strides, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a90e2b6edc0fe82230cb93f5ea39febb4',1,'mlx::core::collapse_contiguous_dims(const std::vector< array > &xs, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#ac813412cce77fc1340dcfefc6e099276',1,'mlx::core::collapse_contiguous_dims(Arrays &&... xs)'],['../namespacemlx_1_1core.html#aab3cc7f3808934ae0727b920eba231bd',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< int64_t > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a1e0cbcf109d32794ffc8efc7302ba9b0',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< size_t > &strides, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a4ee50bfb240512d0c0ce151dfe2c74ef',1,'mlx::core::collapse_contiguous_dims(const array &a, size_t size_cap=std::numeric_limits< int32_t >::max())']]], - ['commandencoder_40',['CommandEncoder',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html',1,'mlx::core::metal::CommandEncoder'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3',1,'mlx::core::metal::CommandEncoder::CommandEncoder(MTL::CommandBuffer *cbuf)'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14',1,'mlx::core::metal::CommandEncoder::CommandEncoder(const CommandEncoder &)=delete']]], - ['commit_5fcommand_5fbuffer_41',['commit_command_buffer',['../classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c',1,'mlx::core::metal::Device']]], - ['commonallocator_42',['CommonAllocator',['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html',1,'mlx::core::allocator']]], - ['communication_5fstream_43',['communication_stream',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#ac3612edf0e0e18c1e4ba0ce7c6e35cd6',1,'mlx::core::distributed::detail']]], - ['compile_44',['compile',['../namespacemlx_1_1core.html#a3ac798e65e59fe10b7fb5c522efce782',1,'mlx::core::compile()'],['../namespacemlx_1_1core_1_1detail.html#ac3b7b09892ff7290d5f3ef26cb444329',1,'mlx::core::detail::compile()']]], - ['compile_2eh_45',['compile.h',['../compile_8h.html',1,'']]], - ['compile_5favailable_5ffor_5fdevice_46',['compile_available_for_device',['../namespacemlx_1_1core_1_1detail.html#aeeff2ba6ec3d9d4ed090de6d2681dbc2',1,'mlx::core::detail']]], - ['compile_5fclear_5fcache_47',['compile_clear_cache',['../namespacemlx_1_1core_1_1detail.html#a3fb927c209b946aefebb195993fbe4cf',1,'mlx::core::detail']]], - ['compile_5ferase_48',['compile_erase',['../namespacemlx_1_1core_1_1detail.html#a69eb76a14f845ca000f1ccb2edda0175',1,'mlx::core::detail']]], - ['compile_5fimpl_2eh_49',['compile_impl.h',['../compile__impl_8h.html',1,'']]], - ['compiled_50',['Compiled',['../classmlx_1_1core_1_1_compiled.html',1,'mlx::core::Compiled'],['../classmlx_1_1core_1_1_compiled.html#a2d8cefff835c419a48a077d306b8e051',1,'mlx::core::Compiled::Compiled()']]], - ['compiled_2eh_51',['compiled.h',['../compiled_8h.html',1,'']]], - ['compiled_5fallocate_5foutputs_52',['compiled_allocate_outputs',['../namespacemlx_1_1core.html#ab8c3c4fc05745f586de922c8266f4fce',1,'mlx::core']]], - ['compiled_5fcheck_5fcontiguity_53',['compiled_check_contiguity',['../namespacemlx_1_1core.html#a3b900ab319948c5a01a3ecd30a709027',1,'mlx::core']]], - ['compiled_5fpreamble_2eh_54',['compiled_preamble.h',['../compiled__preamble_8h.html',1,'']]], - ['compilemode_55',['CompileMode',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4',1,'mlx::core']]], - ['complex_2eh_56',['complex.h',['../backend_2metal_2kernels_2complex_8h.html',1,'(Global Namespace)'],['../types_2complex_8h.html',1,'(Global Namespace)']]], - ['complex128_5ft_57',['complex128_t',['../structmlx_1_1core_1_1complex128__t.html',1,'mlx::core::complex128_t'],['../structmlx_1_1core_1_1complex128__t.html#aa15d0b805f8790f7c7b76fc7b9d677e0',1,'mlx::core::complex128_t::complex128_t(double v, double u)'],['../structmlx_1_1core_1_1complex128__t.html#abf2842253b874f9f13f39ea68a89e5b6',1,'mlx::core::complex128_t::complex128_t(std::complex< double > v)'],['../structmlx_1_1core_1_1complex128__t.html#a526fba96d7e815360cb4226af085a1bf',1,'mlx::core::complex128_t::complex128_t(T x)']]], - ['complex64_58',['complex64',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf',1,'mlx::core::Dtype::complex64'],['../namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4',1,'mlx::core::complex64']]], - ['complex64_5ft_59',['complex64_t',['../structcomplex64__t.html',1,'complex64_t'],['../structmlx_1_1core_1_1complex64__t.html',1,'mlx::core::complex64_t'],['../structcomplex64__t.html#adbd392a5e92d31997380ad0a38be4be8',1,'complex64_t::complex64_t(float real, float imag)'],['../structcomplex64__t.html#a29782289bb90d6294099667b86509cd3',1,'complex64_t::complex64_t()'],['../structcomplex64__t.html#a905b048d70eb8d748a62454268242291',1,'complex64_t::complex64_t() threadgroup'],['../structcomplex64__t.html#a33a2452eb33b5ed53655773539c357a5',1,'complex64_t::complex64_t(T x) thread'],['../structcomplex64__t.html#a89b65ace8588b7bf215355f705eb23d9',1,'complex64_t::complex64_t(T x) threadgroup'],['../structcomplex64__t.html#ac81b486f642fb3b26c5d659917bdbcd0',1,'complex64_t::complex64_t(T x) device'],['../structcomplex64__t.html#a0a27a41206400f1e62b60ceb56960c93',1,'complex64_t::complex64_t(T x) const ant'],['../structmlx_1_1core_1_1complex64__t.html#a697cc973ae27d63c8e00d830e780bd8c',1,'mlx::core::complex64_t::complex64_t(float v, float u)'],['../structmlx_1_1core_1_1complex64__t.html#ae065e39938f9c4374b4116f4c67d4d09',1,'mlx::core::complex64_t::complex64_t(std::complex< float > v)'],['../structmlx_1_1core_1_1complex64__t.html#a2232cbbe591a9d2bc228cb23fac38b50',1,'mlx::core::complex64_t::complex64_t(T x)']]], - ['complex_5fbinop_60',['complex_binop',['../types_2complex_8h.html#a9c7995d495359894e1b30c0f1678d6bd',1,'complex.h']]], - ['complex_5fbinop_5fhelper_61',['complex_binop_helper',['../types_2complex_8h.html#ac6890f9852de12339b09b65757ebc8c4',1,'complex.h']]], - ['complex_5fmul_62',['complex_mul',['../radix_8h.html#a5bfc53b531214c9ce277bebc18aa67d6',1,'radix.h']]], - ['complex_5fmul_5fconj_63',['complex_mul_conj',['../radix_8h.html#a0e2dfd3d1dda09f47ccc64eec35629f3',1,'radix.h']]], - ['complexfloating_64',['complexfloating',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812',1,'mlx::core::Dtype::complexfloating'],['../namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423',1,'mlx::core::complexfloating']]], - ['compute_5fstrided_5findices_65',['compute_strided_indices',['../struct_read_writer.html#a7c903fbb8b85a856ba5564d7df537cdf',1,'ReadWriter']]], - ['concatenate_66',['Concatenate',['../classmlx_1_1core_1_1_concatenate.html',1,'mlx::core::Concatenate'],['../classmlx_1_1core_1_1_concatenate.html#acff07853de2d31faeec7c4ca40ce0888',1,'mlx::core::Concatenate::Concatenate()']]], - ['concatenate_67',['concatenate',['../group__ops.html#gabdc36fa65697d0361c8d67495de77129',1,'mlx::core::concatenate(const std::vector< array > &arrays, int axis, StreamOrDevice s={})'],['../group__ops.html#gaa95c34ca3a8877f2c50cb60e7fa312b8',1,'mlx::core::concatenate(const std::vector< array > &arrays, StreamOrDevice s={})']]], - ['concatenate_5fgpu_68',['concatenate_gpu',['../namespacemlx_1_1core.html#a050299d0d366ca5c9d09d1004dcc3e7d',1,'mlx::core']]], - ['concurrent_5fqueue_69',['concurrent_queue',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html',1,'pocketfft::detail::threading']]], - ['concurrent_5fqueue_3c_20std_3a_3afunction_3c_20void_28_29_3e_20_3e_70',['concurrent_queue< std::function< void()> >',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html',1,'pocketfft::detail::threading']]], - ['concurrentcontext_71',['ConcurrentContext',['../structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html',1,'mlx::core::metal::CommandEncoder::ConcurrentContext'],['../structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174',1,'mlx::core::metal::CommandEncoder::ConcurrentContext::ConcurrentContext()']]], - ['cond_72',['cond',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a4ffd524d6a5bedd1a303b63bdde6701c',1,'mlx::core::scheduler::StreamThread']]], - ['conj_73',['conj',['../namespacepocketfft_1_1detail.html#a66d79051d502046a9b9f103e744dbad3',1,'pocketfft::detail']]], - ['conjugate_74',['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_75',['conjugate',['../group__ops.html#ga5b596906bf8cdc8d97ed6ddc9aeb4c23',1,'mlx::core']]], - ['contiguous_76',['contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#afd0ab11e7a486a2a8e50ee84b971ac8a',1,'mlx::core::array::Flags']]], - ['contiguous_5fscan_77',['contiguous_scan',['../scan_8h.html#a60d279b9add7d56639bb209408f09d79',1,'scan.h']]], - ['contiguousallreduce_78',['ContiguousAllReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ae4e34c7154eb8dc47aa8503209730424',1,'mlx::core']]], - ['contiguousiterator_79',['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_80',['ContiguousReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ad2547f25dffe8d8936dbec25601cfc84',1,'mlx::core']]], - ['contiguousstridedreduce_81',['ContiguousStridedReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ab48dac7508a2c790de1bdc33f29177ed',1,'mlx::core']]], - ['conv_82',['conv',['../namespacemlx_1_1core_1_1metal.html#ab1704e853394c725668c06752ebb5c24',1,'mlx::core::metal']]], - ['conv_2eh_83',['conv.h',['../conv_8h.html',1,'']]], - ['conv1d_84',['conv1d',['../group__ops.html#ga30d47e08093c03a3676f235f9f559411',1,'mlx::core']]], - ['conv2d_85',['conv2d',['../group__ops.html#ga73b02833229678786e7f302d458d5a83',1,'mlx::core']]], - ['conv2dgeneralbaseinfo_86',['Conv2DGeneralBaseInfo',['../structmlx_1_1steel_1_1_conv2_d_general_base_info.html',1,'mlx::steel']]], - ['conv2dgeneraljumpparams_87',['Conv2DGeneralJumpParams',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html',1,'mlx::steel']]], - ['conv2dinputblockloadergeneral_88',['Conv2DInputBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html',1,'mlx::steel::Conv2DInputBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1d83af561a483432bf8dcb42e734b23b',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::Conv2DInputBlockLoaderGeneral()']]], - ['conv2dinputblockloaderlargefilter_89',['Conv2DInputBlockLoaderLargeFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a8755116a535539744e4947bc69f9c50f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::Conv2DInputBlockLoaderLargeFilter()']]], - ['conv2dinputblockloadersmallchannels_90',['Conv2DInputBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#ab9fd3fdeab94470dde3326f1dd5c455a',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::Conv2DInputBlockLoaderSmallChannels()']]], - ['conv2dinputblockloadersmallfilter_91',['Conv2DInputBlockLoaderSmallFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a0a2cbf57c51cd928722e3f06aafcf933',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::Conv2DInputBlockLoaderSmallFilter()']]], - ['conv2dweightblockloader_92',['Conv2DWeightBlockLoader',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html',1,'mlx::steel::Conv2DWeightBlockLoader< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a9a7dca3512b64cffb6eac305d795831c',1,'mlx::steel::Conv2DWeightBlockLoader::Conv2DWeightBlockLoader()']]], - ['conv2dweightblockloadergeneral_93',['Conv2DWeightBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#ad0550fabbdc9297559381a5b488e9af1',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::Conv2DWeightBlockLoaderGeneral()']]], - ['conv2dweightblockloadersmallchannels_94',['Conv2DWeightBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae1806ea1c19713819dee83a38ab35fa6',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::Conv2DWeightBlockLoaderSmallChannels()']]], - ['conv3d_95',['conv3d',['../group__ops.html#ga6e9907d2f14dc4803e4306b3dbc4b3ca',1,'mlx::core']]], - ['conv_5fgeneral_96',['conv_general',['../group__ops.html#ga2236e5dfc7e52e28abf6c21675d0a51e',1,'mlx::core::conv_general(array input, array weight, std::vector< int > stride={}, std::vector< int > padding_lo={}, std::vector< int > padding_hi={}, std::vector< int > kernel_dilation={}, std::vector< int > input_dilation={}, int groups=1, bool flip=false, StreamOrDevice s={})'],['../group__ops.html#gab59f89942cd1efaadffe9e8762e3c99d',1,'mlx::core::conv_general(const array &input, const array &weight, std::vector< int > stride={}, std::vector< int > padding={}, std::vector< int > kernel_dilation={}, std::vector< int > input_dilation={}, int groups=1, bool flip=false, StreamOrDevice s={})']]], - ['conv_5ftranspose1d_97',['conv_transpose1d',['../group__ops.html#gaa30bf1adcd78d1c2595d07b215731714',1,'mlx::core']]], - ['conv_5ftranspose2d_98',['conv_transpose2d',['../group__ops.html#gaebb59971cb9bc45005dc1d398e4f0a3d',1,'mlx::core']]], - ['conv_5ftranspose3d_99',['conv_transpose3d',['../group__ops.html#ga8db814da631d9cd32a8d6563bf4ac530',1,'mlx::core']]], - ['convolution_100',['Convolution',['../classmlx_1_1core_1_1_convolution.html',1,'mlx::core::Convolution'],['../classmlx_1_1core_1_1_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef',1,'mlx::core::Convolution::Convolution()']]], - ['copy_101',['Copy',['../classmlx_1_1core_1_1_copy.html',1,'mlx::core::Copy'],['../classmlx_1_1core_1_1_copy.html#a6243e044af119105ffaaed7d405cd584',1,'mlx::core::Copy::Copy()']]], - ['copy_102',['copy',['../namespacemlx_1_1core.html#a479648542a2bea151b947b18f0e79dd2',1,'mlx::core::copy()'],['../namespacemlx_1_1core_1_1metal.html#aa215e631e2680f04a591b88d91571719',1,'mlx::core::metal::copy()'],['../group__ops.html#gae306e93af12f774bd80bad6c231b09d6',1,'mlx::core::copy()']]], - ['copy_2eh_103',['copy.h',['../common_2copy_8h.html',1,'(Global Namespace)'],['../metal_2copy_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2copy_8h.html',1,'(Global Namespace)']]], - ['copy_5fg_104',['copy_g',['../metal_2kernels_2copy_8h.html#a778ce2dbfbaa23b24bd5efbe68448c36',1,'copy.h']]], - ['copy_5fg_5fnd1_105',['copy_g_nd1',['../metal_2kernels_2copy_8h.html#aba4530a7db6a61ca36f50e4f5e58fb77',1,'copy.h']]], - ['copy_5fg_5fnd2_106',['copy_g_nd2',['../metal_2kernels_2copy_8h.html#aee678c7c31119f3e609685589f37490c',1,'copy.h']]], - ['copy_5fg_5fnd3_107',['copy_g_nd3',['../metal_2kernels_2copy_8h.html#a821f8f3f3891159a295c66fc25aed1ff',1,'copy.h']]], - ['copy_5fgg_108',['copy_gg',['../metal_2kernels_2copy_8h.html#a1e39c2683eeaf05955e7619fbd34aea5',1,'copy.h']]], - ['copy_5fgg_5fnd1_109',['copy_gg_nd1',['../metal_2kernels_2copy_8h.html#a3278d9c999718bee3ccbe2922f501bf1',1,'copy.h']]], - ['copy_5fgg_5fnd2_110',['copy_gg_nd2',['../metal_2kernels_2copy_8h.html#a3e2d3cc7f34f56170409b6735f51a950',1,'copy.h']]], - ['copy_5fgg_5fnd3_111',['copy_gg_nd3',['../metal_2kernels_2copy_8h.html#a59f43b5bffed936d7559ceb06a10aabd',1,'copy.h']]], - ['copy_5fgpu_112',['copy_gpu',['../namespacemlx_1_1core.html#addaa46a13ac2deb1d9ce621338320e0e',1,'mlx::core::copy_gpu(const array &src, array &out, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#a6a6f4e46c8fc44fdc74c50ace02bcf38',1,'mlx::core::copy_gpu(const array &src, array &out, CopyType ctype)']]], - ['copy_5fgpu_5finplace_113',['copy_gpu_inplace',['../namespacemlx_1_1core.html#a69e30f5d30a6d72ac0ffe4886f24b7ba',1,'mlx::core::copy_gpu_inplace(const array &in, array &out, const std::vector< int > &data_shape, const std::vector< stride_t > &i_strides, const std::vector< stride_t > &o_strides, int64_t i_offset, int64_t o_offset, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#a8e1ccb0ed9387b0a789311d9f8964803',1,'mlx::core::copy_gpu_inplace(const array &src, array &out, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#ae55b801b09ccf55cba96278163a9b1ef',1,'mlx::core::copy_gpu_inplace(const array &in, array &out, const std::vector< int64_t > &istride, int64_t ioffset, CopyType ctype, const Stream &s)']]], - ['copy_5fhartley_114',['copy_hartley',['../namespacepocketfft_1_1detail.html#abac3fcc8ce83800d228774f64c28d4c3',1,'pocketfft::detail::copy_hartley(const multi_iter< vlen > &it, const vtype_t< T > *src, ndarr< T > &dst)'],['../namespacepocketfft_1_1detail.html#ae7b44d2773d9d06a9787aff01d66b3ed',1,'pocketfft::detail::copy_hartley(const multi_iter< vlen > &it, const T *src, ndarr< T > &dst)']]], - ['copy_5finplace_115',['copy_inplace',['../namespacemlx_1_1core.html#a98495894a796b2cc6d022e7a03432c64',1,'mlx::core::copy_inplace(const array &src, array &dst, CopyType ctype)'],['../namespacemlx_1_1core.html#aad636e2d0b2f882cadd1b438f4daa9ed',1,'mlx::core::copy_inplace(const array &src, array &dst, const std::vector< int > &data_shape, const std::vector< stride_t > &i_strides, const std::vector< stride_t > &o_strides, int64_t i_offset, int64_t o_offset, CopyType ctype)']]], - ['copy_5finput_116',['copy_input',['../namespacepocketfft_1_1detail.html#aff05be3064743c1143b19318ab12ad4a',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< cmplx< T > > &src, cmplx< vtype_t< T > > *dst)'],['../namespacepocketfft_1_1detail.html#a30fc708f9d8f9cfa74194925c7863c0a',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< T > &src, vtype_t< T > *dst)'],['../namespacepocketfft_1_1detail.html#a3387bd35f237870e42b8461769e6aec4',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< T > &src, T *dst)']]], - ['copy_5foutput_117',['copy_output',['../namespacepocketfft_1_1detail.html#a1523a037300a8da05db210b802d9cb0e',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const cmplx< vtype_t< T > > *src, ndarr< cmplx< T > > &dst)'],['../namespacepocketfft_1_1detail.html#a21980853aca4d92ed06e3dcffe7ef660',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const vtype_t< T > *src, ndarr< T > &dst)'],['../namespacepocketfft_1_1detail.html#a310481c334e46674710ba794ad7403c0',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const T *src, ndarr< T > &dst)']]], - ['copy_5fs_118',['copy_s',['../metal_2kernels_2copy_8h.html#aef09f9b9475345b1bba121d037d222ea',1,'copy.h']]], - ['copy_5fs2_119',['copy_s2',['../metal_2kernels_2copy_8h.html#a8023e9335cc5334847a8d315042be3a3',1,'copy.h']]], - ['copy_5fshared_5fbuffer_120',['copy_shared_buffer',['../classmlx_1_1core_1_1array.html#a28df7a333d90a311c49bc4bce7a1ad6d',1,'mlx::core::array::copy_shared_buffer(const array &other, const std::vector< size_t > &strides, Flags flags, size_t data_size, size_t offset=0)'],['../classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29',1,'mlx::core::array::copy_shared_buffer(const array &other)']]], - ['copy_5fv_121',['copy_v',['../metal_2kernels_2copy_8h.html#ae26a13e0c8e6c15f7b10078e65970659',1,'copy.h']]], - ['copy_5fv2_122',['copy_v2',['../metal_2kernels_2copy_8h.html#aee14a5326f53d9b30b0b38e27d180ef3',1,'copy.h']]], - ['copytype_123',['CopyType',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337',1,'mlx::core']]], - ['core_20array_20operations_124',['Core array operations',['../group__ops.html',1,'']]], - ['cos_125',['Cos',['../struct_cos.html',1,'Cos'],['../classmlx_1_1core_1_1_cos.html',1,'mlx::core::Cos'],['../structmlx_1_1core_1_1detail_1_1_cos.html',1,'mlx::core::detail::Cos'],['../classmlx_1_1core_1_1_cos.html#a2acb9fcf0901462189c476756fd99995',1,'mlx::core::Cos::Cos()']]], - ['cos_126',['cos',['../namespacepocketfft_1_1detail.html#a499c1e8b7d79a5272af024f46c63ff9d',1,'pocketfft::detail::cos()'],['../namespacemetal.html#a2fa4778a6fe2fa43253ea724e5a608a3',1,'metal::cos()'],['../namespacemetal_1_1fast.html#a75b6bb32fa3870eda46a7bfc9f481f88',1,'metal::fast::cos()'],['../namespacemetal_1_1precise.html#ac4941f62e7d8ab9d7cabbd967aa9f220',1,'metal::precise::cos()'],['../group__ops.html#ga39dfdf72b556012aa35ff27a94116e74',1,'mlx::core::cos()']]], - ['cosh_127',['Cosh',['../struct_cosh.html',1,'Cosh'],['../classmlx_1_1core_1_1_cosh.html',1,'mlx::core::Cosh'],['../structmlx_1_1core_1_1detail_1_1_cosh.html',1,'mlx::core::detail::Cosh'],['../classmlx_1_1core_1_1_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1',1,'mlx::core::Cosh::Cosh()']]], - ['cosh_128',['cosh',['../namespacemetal.html#a8a68a88cc110830d057dbd71431b93c0',1,'metal::cosh()'],['../namespacemetal_1_1fast.html#a31544ad9de28012a4ddda86e3966a77e',1,'metal::fast::cosh()'],['../namespacemetal_1_1precise.html#a72d86d508300a9b58f4ccbbe70da4fbc',1,'metal::precise::cosh()'],['../group__ops.html#ga2181b71cda88007a3092be4795ff0715',1,'mlx::core::cosh()']]], - ['cosine_129',['cosine',['../structpocketfft_1_1detail_1_1_exec_dcst.html#a185023fc1e386cc8f233b79c49c1fd8a',1,'pocketfft::detail::ExecDcst']]], - ['cospi_130',['cospi',['../namespacemetal.html#a5c2f37939ad705ddea4409d3bedb8ce1',1,'metal::cospi()'],['../namespacemetal_1_1fast.html#a9906b41f75319b384ffb570cc94d67ce',1,'metal::fast::cospi()'],['../namespacemetal_1_1precise.html#a2392b78bd196efdbbac65901c4ab20e7',1,'metal::precise::cospi()']]], - ['cost_5fguess_131',['cost_guess',['../structpocketfft_1_1detail_1_1util.html#ad3d874bc3fb0048df2270779a15d4bd0',1,'pocketfft::detail::util']]], - ['count_5fdown_132',['count_down',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#a81d6597189b40410e35f3cd653fd1342',1,'pocketfft::detail::threading::latch']]], - ['cpu_133',['cpu',['../structmlx_1_1core_1_1_device.html#a69ee81924251dec96f1945c9d91506fd',1,'mlx::core::Device::cpu'],['../structmlx_1_1core_1_1_device.html#ac45b3de9b3458d8f31005136cde20fdbad9747e2da342bdb995f6389533ad1a3d',1,'mlx::core::Device::cpu']]], - ['cross_134',['cross',['../namespacemlx_1_1core_1_1linalg.html#abcda3fbda45183c21e7f27aa0dde64e6',1,'mlx::core::linalg']]], - ['ctile_135',['Ctile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a81838da5d81e62d372d581be599c5a88',1,'mlx::steel::BlockMMA']]], - ['cummax_136',['CumMax',['../struct_cum_max.html',1,'']]], - ['cummax_137',['cummax',['../group__ops.html#gaee37cac8476e8f8d666bcded5bc59143',1,'mlx::core']]], - ['cummin_138',['CumMin',['../struct_cum_min.html',1,'']]], - ['cummin_139',['cummin',['../group__ops.html#ga19c1bf6929fe8d66b9cd408946aea6a8',1,'mlx::core']]], - ['cumprod_140',['CumProd',['../struct_cum_prod.html',1,'']]], - ['cumprod_141',['cumprod',['../group__ops.html#ga0d71dfbc14ef3ed564b0c5ee26af680f',1,'mlx::core']]], - ['cumprod_3c_20bool_20_3e_142',['CumProd< bool >',['../struct_cum_prod_3_01bool_01_4.html',1,'']]], - ['cumsum_143',['CumSum',['../struct_cum_sum.html',1,'']]], - ['cumsum_144',['cumsum',['../group__ops.html#gaddc825a5c173e195ab0fda83ad630420',1,'mlx::core']]], - ['custom_145',['Custom',['../classmlx_1_1core_1_1fast_1_1_custom.html',1,'mlx::core::fast::Custom'],['../classmlx_1_1core_1_1fast_1_1_custom.html#a4186fea23f7156c38960426821fca313',1,'mlx::core::fast::Custom::Custom()']]], - ['custom_5ffunction_146',['custom_function',['../namespacemlx_1_1core.html#a8d3ca5fbaecdb995660c24cde5aeebaf',1,'mlx::core']]], - ['custom_5fvjp_147',['custom_vjp',['../namespacemlx_1_1core.html#a9290596250fa308df4c69b44483bb8aa',1,'mlx::core']]], - ['customkernel_148',['CustomKernel',['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html',1,'mlx::core::fast::CustomKernel'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a954893e07f0d36715b4e1e414b6f2153',1,'mlx::core::fast::CustomKernel::CustomKernel()']]], - ['customkernelshapeinfo_149',['CustomKernelShapeInfo',['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html',1,'mlx::core::fast']]], - ['customtransforms_150',['CustomTransforms',['../classmlx_1_1core_1_1_custom_transforms.html',1,'mlx::core::CustomTransforms'],['../classmlx_1_1core_1_1_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488',1,'mlx::core::CustomTransforms::CustomTransforms()']]] + ['col_5ffrag_5ftype_35',['col_frag_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aab8dd1c6917247da41dd3a31139a665f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], + ['col_5freduce_5f2pass_36',['col_reduce_2pass',['../reduce__col_8h.html#a9a7be400d810700b47fc1a998032ce29',1,'reduce_col.h']]], + ['col_5freduce_5flongcolumn_37',['col_reduce_longcolumn',['../reduce__col_8h.html#aa3287cd98e97123b67b5d3920d984ca2',1,'reduce_col.h']]], + ['col_5freduce_5flooped_38',['col_reduce_looped',['../reduce__col_8h.html#ae8f9354e1c595142d05b33fe13988f02',1,'reduce_col.h']]], + ['col_5freduce_5fsmall_39',['col_reduce_small',['../reduce__col_8h.html#a82cd031d8014c02e61dc9a817ea6d4ec',1,'reduce_col.h']]], + ['collapse_5fcontiguous_5fdims_40',['collapse_contiguous_dims',['../namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< std::vector< int64_t > > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#af2895f9b0083efd8221275eb8cadccbe',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< std::vector< size_t > > &strides, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a90e2b6edc0fe82230cb93f5ea39febb4',1,'mlx::core::collapse_contiguous_dims(const std::vector< array > &xs, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#ac813412cce77fc1340dcfefc6e099276',1,'mlx::core::collapse_contiguous_dims(Arrays &&... xs)'],['../namespacemlx_1_1core.html#aab3cc7f3808934ae0727b920eba231bd',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< int64_t > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a1e0cbcf109d32794ffc8efc7302ba9b0',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< size_t > &strides, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a4ee50bfb240512d0c0ce151dfe2c74ef',1,'mlx::core::collapse_contiguous_dims(const array &a, size_t size_cap=std::numeric_limits< int32_t >::max())']]], + ['commandencoder_41',['CommandEncoder',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html',1,'mlx::core::metal::CommandEncoder'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3',1,'mlx::core::metal::CommandEncoder::CommandEncoder(MTL::CommandBuffer *cbuf)'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14',1,'mlx::core::metal::CommandEncoder::CommandEncoder(const CommandEncoder &)=delete']]], + ['commit_5fcommand_5fbuffer_42',['commit_command_buffer',['../classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c',1,'mlx::core::metal::Device']]], + ['commonallocator_43',['CommonAllocator',['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html',1,'mlx::core::allocator']]], + ['communication_5fstream_44',['communication_stream',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#ac3612edf0e0e18c1e4ba0ce7c6e35cd6',1,'mlx::core::distributed::detail']]], + ['compile_45',['compile',['../namespacemlx_1_1core.html#a3ac798e65e59fe10b7fb5c522efce782',1,'mlx::core::compile()'],['../namespacemlx_1_1core_1_1detail.html#ac3b7b09892ff7290d5f3ef26cb444329',1,'mlx::core::detail::compile()']]], + ['compile_2eh_46',['compile.h',['../compile_8h.html',1,'']]], + ['compile_5favailable_5ffor_5fdevice_47',['compile_available_for_device',['../namespacemlx_1_1core_1_1detail.html#aeeff2ba6ec3d9d4ed090de6d2681dbc2',1,'mlx::core::detail']]], + ['compile_5fclear_5fcache_48',['compile_clear_cache',['../namespacemlx_1_1core_1_1detail.html#a3fb927c209b946aefebb195993fbe4cf',1,'mlx::core::detail']]], + ['compile_5ferase_49',['compile_erase',['../namespacemlx_1_1core_1_1detail.html#a69eb76a14f845ca000f1ccb2edda0175',1,'mlx::core::detail']]], + ['compile_5fimpl_2eh_50',['compile_impl.h',['../compile__impl_8h.html',1,'']]], + ['compiled_51',['Compiled',['../classmlx_1_1core_1_1_compiled.html',1,'mlx::core::Compiled'],['../classmlx_1_1core_1_1_compiled.html#a2d8cefff835c419a48a077d306b8e051',1,'mlx::core::Compiled::Compiled()']]], + ['compiled_2eh_52',['compiled.h',['../compiled_8h.html',1,'']]], + ['compiled_5fallocate_5foutputs_53',['compiled_allocate_outputs',['../namespacemlx_1_1core.html#ab8c3c4fc05745f586de922c8266f4fce',1,'mlx::core']]], + ['compiled_5fcheck_5fcontiguity_54',['compiled_check_contiguity',['../namespacemlx_1_1core.html#a3b900ab319948c5a01a3ecd30a709027',1,'mlx::core']]], + ['compiled_5fpreamble_2eh_55',['compiled_preamble.h',['../compiled__preamble_8h.html',1,'']]], + ['compilemode_56',['CompileMode',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4',1,'mlx::core']]], + ['complex_2eh_57',['complex.h',['../backend_2metal_2kernels_2complex_8h.html',1,'(Global Namespace)'],['../types_2complex_8h.html',1,'(Global Namespace)']]], + ['complex128_5ft_58',['complex128_t',['../structmlx_1_1core_1_1complex128__t.html',1,'mlx::core::complex128_t'],['../structmlx_1_1core_1_1complex128__t.html#aa15d0b805f8790f7c7b76fc7b9d677e0',1,'mlx::core::complex128_t::complex128_t(double v, double u)'],['../structmlx_1_1core_1_1complex128__t.html#abf2842253b874f9f13f39ea68a89e5b6',1,'mlx::core::complex128_t::complex128_t(std::complex< double > v)'],['../structmlx_1_1core_1_1complex128__t.html#a526fba96d7e815360cb4226af085a1bf',1,'mlx::core::complex128_t::complex128_t(T x)']]], + ['complex64_59',['complex64',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf',1,'mlx::core::Dtype::complex64'],['../namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4',1,'mlx::core::complex64']]], + ['complex64_5ft_60',['complex64_t',['../structcomplex64__t.html',1,'complex64_t'],['../structmlx_1_1core_1_1complex64__t.html',1,'mlx::core::complex64_t'],['../structcomplex64__t.html#adbd392a5e92d31997380ad0a38be4be8',1,'complex64_t::complex64_t(float real, float imag)'],['../structcomplex64__t.html#a29782289bb90d6294099667b86509cd3',1,'complex64_t::complex64_t()'],['../structcomplex64__t.html#a905b048d70eb8d748a62454268242291',1,'complex64_t::complex64_t() threadgroup'],['../structcomplex64__t.html#a33a2452eb33b5ed53655773539c357a5',1,'complex64_t::complex64_t(T x) thread'],['../structcomplex64__t.html#a89b65ace8588b7bf215355f705eb23d9',1,'complex64_t::complex64_t(T x) threadgroup'],['../structcomplex64__t.html#ac81b486f642fb3b26c5d659917bdbcd0',1,'complex64_t::complex64_t(T x) device'],['../structcomplex64__t.html#a0a27a41206400f1e62b60ceb56960c93',1,'complex64_t::complex64_t(T x) const ant'],['../structmlx_1_1core_1_1complex64__t.html#a697cc973ae27d63c8e00d830e780bd8c',1,'mlx::core::complex64_t::complex64_t(float v, float u)'],['../structmlx_1_1core_1_1complex64__t.html#ae065e39938f9c4374b4116f4c67d4d09',1,'mlx::core::complex64_t::complex64_t(std::complex< float > v)'],['../structmlx_1_1core_1_1complex64__t.html#a2232cbbe591a9d2bc228cb23fac38b50',1,'mlx::core::complex64_t::complex64_t(T x)']]], + ['complex_5fbinop_61',['complex_binop',['../types_2complex_8h.html#a9c7995d495359894e1b30c0f1678d6bd',1,'complex.h']]], + ['complex_5fbinop_5fhelper_62',['complex_binop_helper',['../types_2complex_8h.html#ac6890f9852de12339b09b65757ebc8c4',1,'complex.h']]], + ['complex_5fmul_63',['complex_mul',['../radix_8h.html#a5bfc53b531214c9ce277bebc18aa67d6',1,'radix.h']]], + ['complex_5fmul_5fconj_64',['complex_mul_conj',['../radix_8h.html#a0e2dfd3d1dda09f47ccc64eec35629f3',1,'radix.h']]], + ['complexfloating_65',['complexfloating',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812',1,'mlx::core::Dtype::complexfloating'],['../namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423',1,'mlx::core::complexfloating']]], + ['compute_5fstrided_5findices_66',['compute_strided_indices',['../struct_read_writer.html#a7c903fbb8b85a856ba5564d7df537cdf',1,'ReadWriter']]], + ['concatenate_67',['Concatenate',['../classmlx_1_1core_1_1_concatenate.html',1,'mlx::core::Concatenate'],['../classmlx_1_1core_1_1_concatenate.html#acff07853de2d31faeec7c4ca40ce0888',1,'mlx::core::Concatenate::Concatenate()']]], + ['concatenate_68',['concatenate',['../namespacemlx_1_1core.html#a76a2e310857f60f5ea6f1388d45b964d',1,'mlx::core::concatenate(std::string &acc, T first)'],['../namespacemlx_1_1core.html#aaf51544472fa87fa974686eacdd2a4a6',1,'mlx::core::concatenate(std::string &acc, T first, Args... args)'],['../group__ops.html#gabdc36fa65697d0361c8d67495de77129',1,'mlx::core::concatenate(const std::vector< array > &arrays, int axis, StreamOrDevice s={})'],['../group__ops.html#gaa95c34ca3a8877f2c50cb60e7fa312b8',1,'mlx::core::concatenate(const std::vector< array > &arrays, StreamOrDevice s={})']]], + ['concatenate_5fgpu_69',['concatenate_gpu',['../namespacemlx_1_1core.html#a050299d0d366ca5c9d09d1004dcc3e7d',1,'mlx::core']]], + ['concurrent_5fqueue_70',['concurrent_queue',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html',1,'pocketfft::detail::threading']]], + ['concurrent_5fqueue_3c_20std_3a_3afunction_3c_20void_28_29_3e_20_3e_71',['concurrent_queue< std::function< void()> >',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html',1,'pocketfft::detail::threading']]], + ['concurrentcontext_72',['ConcurrentContext',['../structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html',1,'mlx::core::metal::CommandEncoder::ConcurrentContext'],['../structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174',1,'mlx::core::metal::CommandEncoder::ConcurrentContext::ConcurrentContext()']]], + ['cond_73',['cond',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a4ffd524d6a5bedd1a303b63bdde6701c',1,'mlx::core::scheduler::StreamThread']]], + ['conj_74',['conj',['../namespacepocketfft_1_1detail.html#a66d79051d502046a9b9f103e744dbad3',1,'pocketfft::detail']]], + ['conjugate_75',['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_76',['conjugate',['../group__ops.html#ga5b596906bf8cdc8d97ed6ddc9aeb4c23',1,'mlx::core']]], + ['contiguous_77',['Contiguous',['../classmlx_1_1core_1_1_contiguous.html',1,'mlx::core::Contiguous'],['../classmlx_1_1core_1_1_contiguous.html#a3e83f414c02ae0b92a50b6f8e402e1c0',1,'mlx::core::Contiguous::Contiguous()']]], + ['contiguous_78',['contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#afd0ab11e7a486a2a8e50ee84b971ac8a',1,'mlx::core::array::Flags::contiguous'],['../group__ops.html#ga8ab10aa6c41416d739791164a52b25d5',1,'mlx::core::contiguous()']]], + ['contiguous_5fscan_79',['contiguous_scan',['../scan_8h.html#a60d279b9add7d56639bb209408f09d79',1,'scan.h']]], + ['contiguousallreduce_80',['ContiguousAllReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ae4e34c7154eb8dc47aa8503209730424',1,'mlx::core']]], + ['contiguousiterator_81',['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_82',['ContiguousReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ad2547f25dffe8d8936dbec25601cfc84',1,'mlx::core']]], + ['contiguousstridedreduce_83',['ContiguousStridedReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ab48dac7508a2c790de1bdc33f29177ed',1,'mlx::core']]], + ['conv_84',['conv',['../namespacemlx_1_1core_1_1metal.html#ab1704e853394c725668c06752ebb5c24',1,'mlx::core::metal']]], + ['conv_2eh_85',['conv.h',['../conv_8h.html',1,'']]], + ['conv1d_86',['conv1d',['../group__ops.html#ga30d47e08093c03a3676f235f9f559411',1,'mlx::core']]], + ['conv2d_87',['conv2d',['../group__ops.html#ga73b02833229678786e7f302d458d5a83',1,'mlx::core']]], + ['conv2dgeneralbaseinfo_88',['Conv2DGeneralBaseInfo',['../structmlx_1_1steel_1_1_conv2_d_general_base_info.html',1,'mlx::steel']]], + ['conv2dgeneraljumpparams_89',['Conv2DGeneralJumpParams',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html',1,'mlx::steel']]], + ['conv2dinputblockloadergeneral_90',['Conv2DInputBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html',1,'mlx::steel::Conv2DInputBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1d83af561a483432bf8dcb42e734b23b',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::Conv2DInputBlockLoaderGeneral()']]], + ['conv2dinputblockloaderlargefilter_91',['Conv2DInputBlockLoaderLargeFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a8755116a535539744e4947bc69f9c50f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::Conv2DInputBlockLoaderLargeFilter()']]], + ['conv2dinputblockloadersmallchannels_92',['Conv2DInputBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#ab9fd3fdeab94470dde3326f1dd5c455a',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::Conv2DInputBlockLoaderSmallChannels()']]], + ['conv2dinputblockloadersmallfilter_93',['Conv2DInputBlockLoaderSmallFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a0a2cbf57c51cd928722e3f06aafcf933',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::Conv2DInputBlockLoaderSmallFilter()']]], + ['conv2dweightblockloader_94',['Conv2DWeightBlockLoader',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html',1,'mlx::steel::Conv2DWeightBlockLoader< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a9a7dca3512b64cffb6eac305d795831c',1,'mlx::steel::Conv2DWeightBlockLoader::Conv2DWeightBlockLoader()']]], + ['conv2dweightblockloadergeneral_95',['Conv2DWeightBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral< T, BM, BN, BK, tgp_size, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#ad0550fabbdc9297559381a5b488e9af1',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::Conv2DWeightBlockLoaderGeneral()']]], + ['conv2dweightblockloadersmallchannels_96',['Conv2DWeightBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels< T, BM, BN, BK, tgp_size, n_channels, tgp_padding >'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae1806ea1c19713819dee83a38ab35fa6',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::Conv2DWeightBlockLoaderSmallChannels()']]], + ['conv3d_97',['conv3d',['../group__ops.html#ga6e9907d2f14dc4803e4306b3dbc4b3ca',1,'mlx::core']]], + ['conv_5fgeneral_98',['conv_general',['../group__ops.html#ga2236e5dfc7e52e28abf6c21675d0a51e',1,'mlx::core::conv_general(array input, array weight, std::vector< int > stride={}, std::vector< int > padding_lo={}, std::vector< int > padding_hi={}, std::vector< int > kernel_dilation={}, std::vector< int > input_dilation={}, int groups=1, bool flip=false, StreamOrDevice s={})'],['../group__ops.html#gab59f89942cd1efaadffe9e8762e3c99d',1,'mlx::core::conv_general(const array &input, const array &weight, std::vector< int > stride={}, std::vector< int > padding={}, std::vector< int > kernel_dilation={}, std::vector< int > input_dilation={}, int groups=1, bool flip=false, StreamOrDevice s={})']]], + ['conv_5ftranspose1d_99',['conv_transpose1d',['../group__ops.html#gaa30bf1adcd78d1c2595d07b215731714',1,'mlx::core']]], + ['conv_5ftranspose2d_100',['conv_transpose2d',['../group__ops.html#gaebb59971cb9bc45005dc1d398e4f0a3d',1,'mlx::core']]], + ['conv_5ftranspose3d_101',['conv_transpose3d',['../group__ops.html#ga8db814da631d9cd32a8d6563bf4ac530',1,'mlx::core']]], + ['convolution_102',['Convolution',['../classmlx_1_1core_1_1_convolution.html',1,'mlx::core::Convolution'],['../classmlx_1_1core_1_1_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef',1,'mlx::core::Convolution::Convolution()']]], + ['copy_103',['Copy',['../classmlx_1_1core_1_1_copy.html',1,'mlx::core::Copy'],['../classmlx_1_1core_1_1_copy.html#a6243e044af119105ffaaed7d405cd584',1,'mlx::core::Copy::Copy()']]], + ['copy_104',['copy',['../namespacemlx_1_1core.html#a479648542a2bea151b947b18f0e79dd2',1,'mlx::core::copy()'],['../namespacemlx_1_1core_1_1metal.html#aa215e631e2680f04a591b88d91571719',1,'mlx::core::metal::copy()'],['../group__ops.html#gae306e93af12f774bd80bad6c231b09d6',1,'mlx::core::copy()']]], + ['copy_2eh_105',['copy.h',['../common_2copy_8h.html',1,'(Global Namespace)'],['../metal_2copy_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2copy_8h.html',1,'(Global Namespace)']]], + ['copy_5fg_106',['copy_g',['../metal_2kernels_2copy_8h.html#a71e4103db4689d90ef6f9d5ba93604cf',1,'copy.h']]], + ['copy_5fg_5fnd1_107',['copy_g_nd1',['../metal_2kernels_2copy_8h.html#aba4530a7db6a61ca36f50e4f5e58fb77',1,'copy.h']]], + ['copy_5fg_5fnd2_108',['copy_g_nd2',['../metal_2kernels_2copy_8h.html#a39ec5b7b8351e4332b842982a2ee6260',1,'copy.h']]], + ['copy_5fg_5fnd3_109',['copy_g_nd3',['../metal_2kernels_2copy_8h.html#aab82689380897ff4716b5eafd6ef3ecc',1,'copy.h']]], + ['copy_5fgg_110',['copy_gg',['../metal_2kernels_2copy_8h.html#ade9a9eea9b8262a854a11721fe2bb9fa',1,'copy.h']]], + ['copy_5fgg_5fnd1_111',['copy_gg_nd1',['../metal_2kernels_2copy_8h.html#a3278d9c999718bee3ccbe2922f501bf1',1,'copy.h']]], + ['copy_5fgg_5fnd2_112',['copy_gg_nd2',['../metal_2kernels_2copy_8h.html#af0b06ac3a96852a64fa4274a94b58301',1,'copy.h']]], + ['copy_5fgg_5fnd3_113',['copy_gg_nd3',['../metal_2kernels_2copy_8h.html#a3f3836ad0b6545ec9b9e1864224f7a13',1,'copy.h']]], + ['copy_5fgpu_114',['copy_gpu',['../namespacemlx_1_1core.html#addaa46a13ac2deb1d9ce621338320e0e',1,'mlx::core::copy_gpu(const array &src, array &out, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#a6a6f4e46c8fc44fdc74c50ace02bcf38',1,'mlx::core::copy_gpu(const array &src, array &out, CopyType ctype)']]], + ['copy_5fgpu_5finplace_115',['copy_gpu_inplace',['../namespacemlx_1_1core.html#a69e30f5d30a6d72ac0ffe4886f24b7ba',1,'mlx::core::copy_gpu_inplace(const array &in, array &out, const std::vector< int > &data_shape, const std::vector< stride_t > &i_strides, const std::vector< stride_t > &o_strides, int64_t i_offset, int64_t o_offset, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#a8e1ccb0ed9387b0a789311d9f8964803',1,'mlx::core::copy_gpu_inplace(const array &src, array &out, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#ae55b801b09ccf55cba96278163a9b1ef',1,'mlx::core::copy_gpu_inplace(const array &in, array &out, const std::vector< int64_t > &istride, int64_t ioffset, CopyType ctype, const Stream &s)']]], + ['copy_5fhartley_116',['copy_hartley',['../namespacepocketfft_1_1detail.html#abac3fcc8ce83800d228774f64c28d4c3',1,'pocketfft::detail::copy_hartley(const multi_iter< vlen > &it, const vtype_t< T > *src, ndarr< T > &dst)'],['../namespacepocketfft_1_1detail.html#ae7b44d2773d9d06a9787aff01d66b3ed',1,'pocketfft::detail::copy_hartley(const multi_iter< vlen > &it, const T *src, ndarr< T > &dst)']]], + ['copy_5finplace_117',['copy_inplace',['../namespacemlx_1_1core.html#a98495894a796b2cc6d022e7a03432c64',1,'mlx::core::copy_inplace(const array &src, array &dst, CopyType ctype)'],['../namespacemlx_1_1core.html#aad636e2d0b2f882cadd1b438f4daa9ed',1,'mlx::core::copy_inplace(const array &src, array &dst, const std::vector< int > &data_shape, const std::vector< stride_t > &i_strides, const std::vector< stride_t > &o_strides, int64_t i_offset, int64_t o_offset, CopyType ctype)']]], + ['copy_5finput_118',['copy_input',['../namespacepocketfft_1_1detail.html#aff05be3064743c1143b19318ab12ad4a',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< cmplx< T > > &src, cmplx< vtype_t< T > > *dst)'],['../namespacepocketfft_1_1detail.html#a30fc708f9d8f9cfa74194925c7863c0a',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< T > &src, vtype_t< T > *dst)'],['../namespacepocketfft_1_1detail.html#a3387bd35f237870e42b8461769e6aec4',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< T > &src, T *dst)']]], + ['copy_5foutput_119',['copy_output',['../namespacepocketfft_1_1detail.html#a1523a037300a8da05db210b802d9cb0e',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const cmplx< vtype_t< T > > *src, ndarr< cmplx< T > > &dst)'],['../namespacepocketfft_1_1detail.html#a21980853aca4d92ed06e3dcffe7ef660',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const vtype_t< T > *src, ndarr< T > &dst)'],['../namespacepocketfft_1_1detail.html#a310481c334e46674710ba794ad7403c0',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const T *src, ndarr< T > &dst)']]], + ['copy_5fs_120',['copy_s',['../metal_2kernels_2copy_8h.html#aef09f9b9475345b1bba121d037d222ea',1,'copy.h']]], + ['copy_5fs2_121',['copy_s2',['../metal_2kernels_2copy_8h.html#a8023e9335cc5334847a8d315042be3a3',1,'copy.h']]], + ['copy_5fshared_5fbuffer_122',['copy_shared_buffer',['../classmlx_1_1core_1_1array.html#a28df7a333d90a311c49bc4bce7a1ad6d',1,'mlx::core::array::copy_shared_buffer(const array &other, const std::vector< size_t > &strides, Flags flags, size_t data_size, size_t offset=0)'],['../classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29',1,'mlx::core::array::copy_shared_buffer(const array &other)']]], + ['copy_5fv_123',['copy_v',['../metal_2kernels_2copy_8h.html#ae26a13e0c8e6c15f7b10078e65970659',1,'copy.h']]], + ['copy_5fv2_124',['copy_v2',['../metal_2kernels_2copy_8h.html#aee14a5326f53d9b30b0b38e27d180ef3',1,'copy.h']]], + ['copytype_125',['CopyType',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337',1,'mlx::core']]], + ['core_20array_20operations_126',['Core array operations',['../group__ops.html',1,'']]], + ['cos_127',['Cos',['../struct_cos.html',1,'Cos'],['../classmlx_1_1core_1_1_cos.html',1,'mlx::core::Cos'],['../structmlx_1_1core_1_1detail_1_1_cos.html',1,'mlx::core::detail::Cos'],['../classmlx_1_1core_1_1_cos.html#a2acb9fcf0901462189c476756fd99995',1,'mlx::core::Cos::Cos()']]], + ['cos_128',['cos',['../namespacepocketfft_1_1detail.html#a499c1e8b7d79a5272af024f46c63ff9d',1,'pocketfft::detail::cos()'],['../namespacemetal.html#a2fa4778a6fe2fa43253ea724e5a608a3',1,'metal::cos()'],['../namespacemetal_1_1fast.html#a75b6bb32fa3870eda46a7bfc9f481f88',1,'metal::fast::cos()'],['../namespacemetal_1_1precise.html#ac4941f62e7d8ab9d7cabbd967aa9f220',1,'metal::precise::cos()'],['../group__ops.html#ga39dfdf72b556012aa35ff27a94116e74',1,'mlx::core::cos()']]], + ['cosh_129',['Cosh',['../struct_cosh.html',1,'Cosh'],['../classmlx_1_1core_1_1_cosh.html',1,'mlx::core::Cosh'],['../structmlx_1_1core_1_1detail_1_1_cosh.html',1,'mlx::core::detail::Cosh'],['../classmlx_1_1core_1_1_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1',1,'mlx::core::Cosh::Cosh()']]], + ['cosh_130',['cosh',['../namespacemetal.html#a8a68a88cc110830d057dbd71431b93c0',1,'metal::cosh()'],['../namespacemetal_1_1fast.html#a31544ad9de28012a4ddda86e3966a77e',1,'metal::fast::cosh()'],['../namespacemetal_1_1precise.html#a72d86d508300a9b58f4ccbbe70da4fbc',1,'metal::precise::cosh()'],['../group__ops.html#ga2181b71cda88007a3092be4795ff0715',1,'mlx::core::cosh()']]], + ['cosine_131',['cosine',['../structpocketfft_1_1detail_1_1_exec_dcst.html#a185023fc1e386cc8f233b79c49c1fd8a',1,'pocketfft::detail::ExecDcst']]], + ['cospi_132',['cospi',['../namespacemetal.html#a5c2f37939ad705ddea4409d3bedb8ce1',1,'metal::cospi()'],['../namespacemetal_1_1fast.html#a9906b41f75319b384ffb570cc94d67ce',1,'metal::fast::cospi()'],['../namespacemetal_1_1precise.html#a2392b78bd196efdbbac65901c4ab20e7',1,'metal::precise::cospi()']]], + ['cost_5fguess_133',['cost_guess',['../structpocketfft_1_1detail_1_1util.html#ad3d874bc3fb0048df2270779a15d4bd0',1,'pocketfft::detail::util']]], + ['count_5fdown_134',['count_down',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#a81d6597189b40410e35f3cd653fd1342',1,'pocketfft::detail::threading::latch']]], + ['cpu_135',['cpu',['../structmlx_1_1core_1_1_device.html#a69ee81924251dec96f1945c9d91506fd',1,'mlx::core::Device::cpu'],['../structmlx_1_1core_1_1_device.html#ac45b3de9b3458d8f31005136cde20fdbad9747e2da342bdb995f6389533ad1a3d',1,'mlx::core::Device::cpu']]], + ['cross_136',['cross',['../namespacemlx_1_1core_1_1linalg.html#abcda3fbda45183c21e7f27aa0dde64e6',1,'mlx::core::linalg']]], + ['cshape_137',['CShape',['../structmlx_1_1steel_1_1_c_shape.html',1,'mlx::steel']]], + ['ctile_138',['Ctile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a21b0c40d16eced109bd3196186170bc6',1,'mlx::steel::BlockMMA']]], + ['cummax_139',['CumMax',['../struct_cum_max.html',1,'']]], + ['cummax_140',['cummax',['../group__ops.html#gaee37cac8476e8f8d666bcded5bc59143',1,'mlx::core']]], + ['cummin_141',['CumMin',['../struct_cum_min.html',1,'']]], + ['cummin_142',['cummin',['../group__ops.html#ga19c1bf6929fe8d66b9cd408946aea6a8',1,'mlx::core']]], + ['cumprod_143',['CumProd',['../struct_cum_prod.html',1,'']]], + ['cumprod_144',['cumprod',['../group__ops.html#ga0d71dfbc14ef3ed564b0c5ee26af680f',1,'mlx::core']]], + ['cumprod_3c_20bool_20_3e_145',['CumProd< bool >',['../struct_cum_prod_3_01bool_01_4.html',1,'']]], + ['cumsum_146',['CumSum',['../struct_cum_sum.html',1,'']]], + ['cumsum_147',['cumsum',['../group__ops.html#gaddc825a5c173e195ab0fda83ad630420',1,'mlx::core']]], + ['custom_148',['Custom',['../classmlx_1_1core_1_1fast_1_1_custom.html',1,'mlx::core::fast::Custom'],['../classmlx_1_1core_1_1fast_1_1_custom.html#a4186fea23f7156c38960426821fca313',1,'mlx::core::fast::Custom::Custom()']]], + ['custom_5ffunction_149',['custom_function',['../namespacemlx_1_1core.html#a8d3ca5fbaecdb995660c24cde5aeebaf',1,'mlx::core']]], + ['custom_5fvjp_150',['custom_vjp',['../namespacemlx_1_1core.html#a9290596250fa308df4c69b44483bb8aa',1,'mlx::core']]], + ['customkernel_151',['CustomKernel',['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html',1,'mlx::core::fast::CustomKernel'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a954893e07f0d36715b4e1e414b6f2153',1,'mlx::core::fast::CustomKernel::CustomKernel()']]], + ['customkernelshapeinfo_152',['CustomKernelShapeInfo',['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html',1,'mlx::core::fast']]], + ['customtransforms_153',['CustomTransforms',['../classmlx_1_1core_1_1_custom_transforms.html',1,'mlx::core::CustomTransforms'],['../classmlx_1_1core_1_1_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488',1,'mlx::core::CustomTransforms::CustomTransforms()']]] ]; diff --git a/docs/build/html/search/all_4.js b/docs/build/html/search/all_4.js index 17515ff9..cfaf8fd6 100644 --- a/docs/build/html/search/all_4.js +++ b/docs/build/html/search/all_4.js @@ -1,64 +1,67 @@ var searchData= [ - ['d_0',['d',['../classpocketfft_1_1detail_1_1cndarr.html#ac29c769aebb03f81fbcf16ba6e766af2',1,'pocketfft::detail::cndarr::d'],['../structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311',1,'mlx::core::array::Data::d']]], - ['data_1',['Data',['../structmlx_1_1core_1_1array_1_1_data.html',1,'mlx::core::array::Data'],['../structmlx_1_1core_1_1array_1_1_data.html#a77e2ea35fac1d54e4062468a432e1482',1,'mlx::core::array::Data::Data(allocator::Buffer buffer, deleter_t d=allocator::free)'],['../structmlx_1_1core_1_1array_1_1_data.html#a50f242040b123052e48e18c244ff70fc',1,'mlx::core::array::Data::Data(const Data &d)=delete']]], - ['data_2',['data',['../classpocketfft_1_1detail_1_1arr.html#aec0f2191b4663b4187aab92454c34de8',1,'pocketfft::detail::arr::data()'],['../classpocketfft_1_1detail_1_1arr.html#ac82daa17e9f991072b012343f9d7c182',1,'pocketfft::detail::arr::data() const'],['../classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95',1,'mlx::core::array::data()'],['../classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676',1,'mlx::core::array::data() const']]], - ['data_5fshared_5fptr_3',['data_shared_ptr',['../classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141',1,'mlx::core::array']]], - ['data_5fsize_4',['data_size',['../classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd',1,'mlx::core::array']]], - ['dct_5',['dct',['../namespacepocketfft_1_1detail.html#a60615f5b685314c658346c309d5ef2ba',1,'pocketfft::detail']]], - ['deallocate_6',['deallocate',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a2a99b8e296d26b255e9937ba5f30e76f',1,'pocketfft::detail::threading::aligned_allocator']]], - ['debug_5fset_5fprimitive_5fbuffer_5flabel_7',['debug_set_primitive_buffer_label',['../namespacemlx_1_1core.html#a489e45b3a5cd8b46e8ea56b9132eb230',1,'mlx::core']]], - ['debug_5fset_5fstream_5fqueue_5flabel_8',['debug_set_stream_queue_label',['../namespacemlx_1_1core.html#a79817d2432e782e596c9c49a08b93be2',1,'mlx::core']]], - ['decompose_5fhadamard_9',['decompose_hadamard',['../namespacemlx_1_1core.html#a3a8fe7ba84714dbb5fdc81e93a07abc8',1,'mlx::core']]], - ['default_5f_10',['default_',['../classmlx_1_1core_1_1random_1_1_key_sequence.html#ab5993daeed822c6b970caddab7e3fd90',1,'mlx::core::random::KeySequence']]], - ['default_5fdevice_11',['default_device',['../namespacemlx_1_1core.html#a0196171cfe6ee2953113abce597dc815',1,'mlx::core']]], - ['default_5fstream_12',['default_stream',['../namespacemlx_1_1core.html#ac198b7e282957c724c84a435e8f1215e',1,'mlx::core']]], - ['defaultcontiguousreduce_13',['DefaultContiguousReduce',['../structmlx_1_1core_1_1_default_contiguous_reduce.html',1,'mlx::core::DefaultContiguousReduce< T, U, Op >'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#aeb4fb7fa1a4c8e7d1da1f450ce95c57f',1,'mlx::core::DefaultContiguousReduce::DefaultContiguousReduce()']]], - ['defaultstridedreduce_14',['DefaultStridedReduce',['../structmlx_1_1core_1_1_default_strided_reduce.html',1,'mlx::core::DefaultStridedReduce< T, U, Op >'],['../structmlx_1_1core_1_1_default_strided_reduce.html#a477e5dd0dd33071e48769d11d19a13fb',1,'mlx::core::DefaultStridedReduce::DefaultStridedReduce()']]], - ['define_5fdefault_5fis_5fequivalent_15',['DEFINE_DEFAULT_IS_EQUIVALENT',['../primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a',1,'primitives.h']]], - ['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_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,'']]] + ['d_0',['D',['../structmlx_1_1steel_1_1_attn_params.html#a07ae31628e43e09bce533c7682c8dae3',1,'mlx::steel::AttnParams']]], + ['d_1',['d',['../classpocketfft_1_1detail_1_1cndarr.html#ac29c769aebb03f81fbcf16ba6e766af2',1,'pocketfft::detail::cndarr::d'],['../structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311',1,'mlx::core::array::Data::d']]], + ['data_2',['Data',['../structmlx_1_1core_1_1array_1_1_data.html',1,'mlx::core::array::Data'],['../structmlx_1_1core_1_1array_1_1_data.html#a77e2ea35fac1d54e4062468a432e1482',1,'mlx::core::array::Data::Data(allocator::Buffer buffer, deleter_t d=allocator::free)'],['../structmlx_1_1core_1_1array_1_1_data.html#a50f242040b123052e48e18c244ff70fc',1,'mlx::core::array::Data::Data(const Data &d)=delete']]], + ['data_3',['data',['../classpocketfft_1_1detail_1_1arr.html#aec0f2191b4663b4187aab92454c34de8',1,'pocketfft::detail::arr::data()'],['../classpocketfft_1_1detail_1_1arr.html#ac82daa17e9f991072b012343f9d7c182',1,'pocketfft::detail::arr::data() const'],['../classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95',1,'mlx::core::array::data()'],['../classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676',1,'mlx::core::array::data() const']]], + ['data_5fshared_5fptr_4',['data_shared_ptr',['../classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141',1,'mlx::core::array']]], + ['data_5fsize_5',['data_size',['../classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd',1,'mlx::core::array']]], + ['dct_6',['dct',['../namespacepocketfft_1_1detail.html#a60615f5b685314c658346c309d5ef2ba',1,'pocketfft::detail']]], + ['deallocate_7',['deallocate',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a2a99b8e296d26b255e9937ba5f30e76f',1,'pocketfft::detail::threading::aligned_allocator']]], + ['debug_5fset_5fprimitive_5fbuffer_5flabel_8',['debug_set_primitive_buffer_label',['../namespacemlx_1_1core.html#a489e45b3a5cd8b46e8ea56b9132eb230',1,'mlx::core']]], + ['debug_5fset_5fstream_5fqueue_5flabel_9',['debug_set_stream_queue_label',['../namespacemlx_1_1core.html#a79817d2432e782e596c9c49a08b93be2',1,'mlx::core']]], + ['decompose_5fhadamard_10',['decompose_hadamard',['../namespacemlx_1_1core.html#a3a8fe7ba84714dbb5fdc81e93a07abc8',1,'mlx::core']]], + ['default_5f_11',['default_',['../classmlx_1_1core_1_1random_1_1_key_sequence.html#ab5993daeed822c6b970caddab7e3fd90',1,'mlx::core::random::KeySequence']]], + ['default_5fdevice_12',['default_device',['../namespacemlx_1_1core.html#a0196171cfe6ee2953113abce597dc815',1,'mlx::core']]], + ['default_5fstream_13',['default_stream',['../namespacemlx_1_1core.html#ac198b7e282957c724c84a435e8f1215e',1,'mlx::core']]], + ['defaultcontiguousreduce_14',['DefaultContiguousReduce',['../structmlx_1_1core_1_1_default_contiguous_reduce.html',1,'mlx::core::DefaultContiguousReduce< T, U, Op >'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#aeb4fb7fa1a4c8e7d1da1f450ce95c57f',1,'mlx::core::DefaultContiguousReduce::DefaultContiguousReduce()']]], + ['defaultstridedreduce_15',['DefaultStridedReduce',['../structmlx_1_1core_1_1_default_strided_reduce.html',1,'mlx::core::DefaultStridedReduce< T, U, Op >'],['../structmlx_1_1core_1_1_default_strided_reduce.html#a477e5dd0dd33071e48769d11d19a13fb',1,'mlx::core::DefaultStridedReduce::DefaultStridedReduce()']]], + ['define_5fdefault_5fis_5fequivalent_16',['DEFINE_DEFAULT_IS_EQUIVALENT',['../primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a',1,'primitives.h']]], + ['define_5fgrads_17',['DEFINE_GRADS',['../primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6',1,'primitives.h']]], + ['define_5finput_5foutput_5fshape_18',['DEFINE_INPUT_OUTPUT_SHAPE',['../primitives_8h.html#a649a06267b75e007224ea4ddefedb999',1,'primitives.h']]], + ['define_5fprint_19',['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_5fexclusive_5fscan_20',['DEFINE_SIMD_EXCLUSIVE_SCAN',['../scan_8h.html#a185f66aac8c5317587e6abd43f3013fc',1,'scan.h']]], + ['define_5fsimd_5freduce_21',['DEFINE_SIMD_REDUCE',['../backend_2metal_2kernels_2reduction_2ops_8h.html#acacf99e0ba629ed062ccc3c2eba89b05',1,'ops.h']]], + ['define_5fsimd_5fscan_22',['DEFINE_SIMD_SCAN',['../scan_8h.html#a0d8d6a9b0f3a1263629380bda8eca7bc',1,'scan.h']]], + ['define_5fvmap_23',['DEFINE_VMAP',['../primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd',1,'primitives.h']]], + ['defines_2eh_24',['defines.h',['../defines_8h.html',1,'(Global Namespace)'],['../steel_2defines_8h.html',1,'(Global Namespace)']]], + ['degrees_25',['degrees',['../group__ops.html#ga3a70569b50e1083c5ded199d73fb960c',1,'mlx::core']]], + ['deleter_5ft_26',['deleter_t',['../namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8',1,'mlx::core']]], + ['denorm_5fmin_27',['denorm_min',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['depends_28',['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_29',['depends',['../group__ops.html#gac4a51a68fbe1725436b026d2fbb95759',1,'mlx::core']]], + ['dequantize_30',['dequantize',['../quantized_8h.html#aecff265b63566d0d5689cfc4e5b037d2',1,'dequantize(): quantized.h'],['../group__ops.html#gabff758a5c1ce32ad7e8b78aba0164077',1,'mlx::core::dequantize()']]], + ['detach_31',['detach',['../classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2',1,'mlx::core::array']]], + ['device_32',['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_33',['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_34',['device.h',['../backend_2metal_2device_8h.html',1,'(Global Namespace)'],['../device_8h.html',1,'(Global Namespace)']]], + ['device_5finfo_35',['device_info',['../namespacemlx_1_1core_1_1metal.html#a6ad19c44efabb7423f973407926ead61',1,'mlx::core::metal']]], + ['devicestream_36',['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_37',['DeviceType',['../structmlx_1_1core_1_1_device.html#ac45b3de9b3458d8f31005136cde20fdb',1,'mlx::core::Device']]], + ['diag_38',['diag',['../group__ops.html#ga11af511875640e1fa88e0ca87e199344',1,'mlx::core']]], + ['diagonal_39',['diagonal',['../group__ops.html#ga9236b085a88ead3128ed8079d009cac6',1,'mlx::core']]], + ['difference_5ftype_40',['difference_type',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5',1,'mlx::core::array::ArrayIterator']]], + ['digits_41',['digits',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['digits10_42',['digits10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['dim_43',['dim',['../struct_looped_elem_to_loc.html#af8285112846769aba2c0d8615f6f1364',1,'LoopedElemToLoc::dim'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e',1,'LoopedElemToLoc< 1, OffsetT, true >::dim']]], + ['disable_5fcompile_44',['disable_compile',['../namespacemlx_1_1core.html#a5f5fea955057bb3842b271b037909e66',1,'mlx::core']]], + ['disabled_45',['disabled',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4a075ae3d2fc31640504f814f60e5ef713',1,'mlx::core']]], + ['dispatch_5fthreadgroups_46',['dispatch_threadgroups',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d',1,'mlx::core::metal::CommandEncoder']]], + ['dispatch_5fthreads_47',['dispatch_threads',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05',1,'mlx::core::metal::CommandEncoder']]], + ['distprimitive_48',['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_49',['distributed.h',['../distributed_8h.html',1,'']]], + ['distributed_5fimpl_2eh_50',['distributed_impl.h',['../distributed__impl_8h.html',1,'']]], + ['divide_51',['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_52',['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_53',['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_54',['divmod',['../group__ops.html#gaa30ebc0a8376dbc3f7e46a47052b5894',1,'mlx::core']]], + ['divop_55',['DivOp',['../struct_div_op.html',1,'']]], + ['do_5faxpby_56',['do_axpby',['../steel__gemm__fused_8h.html#a703f06c849c89c37af7b1d27b0804a29',1,'steel_gemm_fused.h']]], + ['do_5fgather_57',['do_gather',['../steel__gemm__fused_8h.html#a60efac3ac3b7cd64d096bbae38a3ac69',1,'steel_gemm_fused.h']]], + ['do_5fread_58',['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_59',['dst',['../struct_quantized_block_loader.html#a9857214690fe6abad0e19d1045152f83',1,'QuantizedBlockLoader::dst'],['../structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2',1,'mlx::steel::BlockLoader::dst'],['../structmlx_1_1steel_1_1_block_loader_t.html#a6eb4e566b687395e27f290da288362db',1,'mlx::steel::BlockLoaderT::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'],['../namespacepocketfft_1_1detail.html#add0f231fc8a1ce01b90a90faeebcb4eb',1,'pocketfft::detail::dst()']]], + ['dst_5fld_60',['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_61',['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_62',['dtype',['../classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd',1,'mlx::core::array']]], + ['dtype_2eh_63',['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 1fb21449..d3f39741 100644 --- a/docs/build/html/search/all_5.js +++ b/docs/build/html/search/all_5.js @@ -8,15 +8,15 @@ var searchData= ['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_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#a22eaa505dbc7dd2a63a895f2e16712f5',1,'elem_to_loc(uint elem, constant const int *shape, constant const StrideT *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a4b53fb0679f67f9063deba94753d4185',1,'elem_to_loc(StrideT elem, constant const int *shape, constant const StrideT *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#aec82f4bf0e22b8d1b89ad654ad8d8753',1,'elem_to_loc(uint3 elem, constant const int *shape, constant const StrideT *strides, int ndim): utils.h']]], + ['elem_5fto_5floc_5f1_9',['elem_to_loc_1',['../backend_2metal_2kernels_2utils_8h.html#ac612d0ae30b8257198339debe04916a3',1,'utils.h']]], + ['elem_5fto_5floc_5f2_10',['elem_to_loc_2',['../backend_2metal_2kernels_2utils_8h.html#a43f33efc000962d6de881a3aab7458de',1,'utils.h']]], + ['elem_5fto_5floc_5f2_5fnd_11',['elem_to_loc_2_nd',['../backend_2metal_2kernels_2utils_8h.html#a66a2d7eec0262b12db16cd6c781ccf9a',1,'utils.h']]], + ['elem_5fto_5floc_5f3_12',['elem_to_loc_3',['../backend_2metal_2kernels_2utils_8h.html#a650f8ea8cf9f9519da9e301aad0308dc',1,'utils.h']]], + ['elem_5fto_5floc_5f3_5fnd_13',['elem_to_loc_3_nd',['../backend_2metal_2kernels_2utils_8h.html#a65d87b425e1f8ca19df97c15049f8733',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']]], - ['elem_5ftype_15',['elem_type',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c',1,'mlx::steel::MMATile']]], - ['elems_16',['elems',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc',1,'mlx::steel::MMATile::elems()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1',1,'mlx::steel::MMATile::elems() const']]], + ['elem_5ftype_15',['elem_type',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628',1,'mlx::steel::MMATile']]], + ['elems_16',['elems',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc',1,'mlx::steel::MMATile::elems()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1',1,'mlx::steel::MMATile::elems() const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc',1,'mlx::steel::MMATile::elems()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1',1,'mlx::steel::MMATile::elems() const']]], ['elems_5fper_5fthread_17',['elems_per_thread',['../struct_read_writer.html#a444230a0182ce6ba1898c04ce6e669a7',1,'ReadWriter']]], ['elems_5fper_5fthread_5f_18',['elems_per_thread_',['../backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3',1,'fft.h']]], ['empty_19',['empty',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#a1269e5da40c3f5145c895cee3641879a',1,'pocketfft::detail::threading::concurrent_queue']]], @@ -37,8 +37,8 @@ var searchData= ['erfinv_34',['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_35',['erfinv',['../erf_8h.html#a1846e0d683c7aff826bb32addcc3b885',1,'erfinv(): erf.h'],['../group__ops.html#ga76fb9062c64264e34d2e07013390557c',1,'mlx::core::erfinv()']]], ['eval_36',['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_37',['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_38',['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()']]], + ['eval_5fcpu_37',['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_contiguous.html#a742de24e6c0310cd85a606dec0cd8336',1,'mlx::core::Contiguous::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_38',['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_contiguous.html#a519cd16fd0c55b371ea7625fbb37c70f',1,'mlx::core::Contiguous::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_39',['evaluated',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268',1,'mlx::core::array']]], ['event_40',['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_41',['event',['../classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf',1,'mlx::core::array']]], @@ -61,5 +61,6 @@ var searchData= ['expm1f_2eh_58',['expm1f.h',['../expm1f_8h.html',1,'']]], ['expm1f_5fscaled_5funchecked_59',['expm1f_scaled_unchecked',['../expm1f_8h.html#adf20e03405fba634ca8d01acac24592e',1,'expm1f.h']]], ['export_5fto_5fdot_60',['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_61',['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={})']]] + ['expsubop_61',['ExpSubOp',['../struct_exp_sub_op.html',1,'']]], + ['eye_62',['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 76b0e44f..c0265cd5 100644 --- a/docs/build/html/search/all_6.js +++ b/docs/build/html/search/all_6.js @@ -34,7 +34,7 @@ var searchData= ['float16_31',['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_32',['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_33',['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_34',['float_to_bfloat_bits',['../backend_2metal_2kernels_2bf16_8h.html#a31ce5e8e860295fa236e0d4b0befeae1',1,'bf16.h']]], + ['float_5fto_5fbfloat_5fbits_34',['float_to_bfloat_bits',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31ce5e8e860295fa236e0d4b0befeae1',1,'bf16.h']]], ['floating_35',['floating',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17',1,'mlx::core::Dtype::floating'],['../namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a',1,'mlx::core::floating']]], ['floor_36',['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_37',['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={})']]], @@ -53,8 +53,8 @@ var searchData= ['fp16_2eh_50',['fp16.h',['../fp16_8h.html',1,'']]], ['fp16_5fbf16_5fbinop_5fhelper_51',['fp16_bf16_binop_helper',['../half__types_8h.html#a1f0d5d395d403bde764fffe4846617f9',1,'half_types.h']]], ['fract_52',['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()']]], - ['frag_5fat_53',['frag_at',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4',1,'mlx::steel::MMATile::frag_at(const short i, const short j)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad476e1d9a12178fb35c207312339e485',1,'mlx::steel::MMATile::frag_at(const short i, const short j) const']]], - ['frag_5ftype_54',['frag_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#af67c1b1aea594468e9426e1be0e31d0b',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::frag_type'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a5976565323f2e30479158c14f4b1bfef',1,'mlx::steel::MMATile::frag_type']]], + ['frag_5fat_53',['frag_at',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4',1,'mlx::steel::MMATile::frag_at(const short i, const short j)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad476e1d9a12178fb35c207312339e485',1,'mlx::steel::MMATile::frag_at(const short i, const short j) const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4',1,'mlx::steel::MMATile::frag_at(const short i, const short j)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad476e1d9a12178fb35c207312339e485',1,'mlx::steel::MMATile::frag_at(const short i, const short j) const']]], + ['frag_5ftype_54',['frag_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::frag_type'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aac25cd0a9bdf24aa2af809c95f0bd171',1,'mlx::steel::MMATile::frag_type']]], ['free_55',['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_56',['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_57',['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()']]], diff --git a/docs/build/html/search/all_7.js b/docs/build/html/search/all_7.js index 50f643ba..379fa3f6 100644 --- a/docs/build/html/search/all_7.js +++ b/docs/build/html/search/all_7.js @@ -4,7 +4,7 @@ var searchData= ['gather_1',['gather',['../namespacemlx_1_1core_1_1metal.html#a545de371fefba1feec2e70b7e9f4187c',1,'mlx::core::metal::gather()'],['../group__ops.html#gab6e7f655a9ff15350ca5379692f9d444',1,'mlx::core::gather(const array &a, const std::vector< array > &indices, const std::vector< int > &axes, const std::vector< int > &slice_sizes, StreamOrDevice s={})'],['../group__ops.html#gadb4337ca5d4f88fe9e7c083bc478158b',1,'mlx::core::gather(const array &a, const array &indices, int axis, const std::vector< int > &slice_sizes, StreamOrDevice s={})']]], ['gather_2eh_2',['gather.h',['../gather_8h.html',1,'']]], ['gather_5fbias_3',['gather_bias',['../steel__gemm__fused_8h.html#aaaf17233201156be684f858bfd0f1b67',1,'steel_gemm_fused.h']]], - ['gather_5fimpl_4',['gather_impl',['../gather_8h.html#abdec470e1af0109563ddae3e85e6526c',1,'gather.h']]], + ['gather_5fimpl_4',['gather_impl',['../gather_8h.html#a767d7c5be6f2f649101f581449af5599',1,'gather.h']]], ['gather_5fkernels_5',['gather_kernels',['../jit_2indexing_8h.html#a1a03318128191891a84707602b57b3cf',1,'indexing.h']]], ['gather_5fmm_6',['gather_mm',['../group__ops.html#ga8d50480266d258cac40ff51bcb0fc6a7',1,'mlx::core']]], ['gather_5fqmm_7',['gather_qmm',['../group__ops.html#ga368a0dc0e5dfb76922e7aa55a95f12f0',1,'mlx::core']]], @@ -13,87 +13,87 @@ var searchData= ['gemm_10',['gemm',['../namespacemlx_1_1core_1_1metal.html#ac46fd23516a61fc56d997910e4144281',1,'mlx::core::metal::gemm()'],['../steel__gemm__fused_8h.html#aa40dd40b9a0bbf20c8911032ed0c3e6d',1,'gemm(const device T *A, const device T *B, const device T *C, device T *D, const constant GEMMParams *params, const constant GEMMAddMMParams *addmm_params, const constant int *batch_shape, const constant size_t *batch_strides, const constant uint32_t *lhs_indices, const constant uint32_t *rhs_indices, const constant uint32_t *C_indices, const constant int *operand_shape, const constant size_t *operand_strides, const constant packed_int3 &operand_batch_ndim, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_fused.h']]], ['gemm_2eh_11',['gemm.h',['../gemm_8h.html',1,'']]], ['gemm_5fk_5fiterations_12',['gemm_k_iterations',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a8b50863e4e2d3481c154be6c3629bf51',1,'mlx::steel::ImplicitGemmConv2DParams']]], - ['gemm_5fk_5fiterations_5faligned_13',['gemm_k_iterations_aligned',['../struct_m_l_x_fast_attention_params.html#adbc0a13076da5f704498e57239cb2bf2',1,'MLXFastAttentionParams::gemm_k_iterations_aligned'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a0d7f419ba265805b418e93ce1ca2e0f9',1,'mlx::steel::GEMMParams::gemm_k_iterations_aligned'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#aa37e05a03ac8b34ec7dc31ca42f68998',1,'mlx::steel::GEMMSpiltKParams::gemm_k_iterations_aligned']]], - ['gemm_5floop_14',['gemm_loop',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a756d7bbcc96e2919cd65eec4bc135780',1,'mlx::steel::GEMMKernel']]], - ['gemm_5fn_5fiterations_5faligned_15',['gemm_n_iterations_aligned',['../struct_m_l_x_fast_attention_params.html#ab56b3db8fc6a938ce9c739ee78a7b803',1,'MLXFastAttentionParams']]], - ['gemm_5fparams_16',['gemm_params',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#ab0724eb3ef52ee773b6607f6433b9f2c',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::gemm_params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#acc778b3c0b7ec38a43e8ea943df8704c',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::gemm_params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#af59f9d356c4c3ec5627dc5a263d239d4',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::gemm_params']]], - ['gemm_5fsplitk_17',['gemm_splitk',['../steel__gemm__splitk_8h.html#a3be6e095a0a026d3ecf57a3e67f76188',1,'steel_gemm_splitk.h']]], - ['gemm_5fsplitk_5faccum_18',['gemm_splitk_accum',['../steel__gemm__splitk_8h.html#abeb921bf1dc7941125188ddd390b0907',1,'steel_gemm_splitk.h']]], - ['gemm_5fsplitk_5faccum_5faxpby_19',['gemm_splitk_accum_axpby',['../steel__gemm__splitk_8h.html#acc33fdfaaf3eb3a0629b3d52c7043dc1',1,'steel_gemm_splitk.h']]], - ['gemm_5fsv_5fm_5fblock_5fiterations_20',['gemm_sv_m_block_iterations',['../struct_m_l_x_fast_attention_params.html#a2799a2f219441fef7f351374f4cbc67c',1,'MLXFastAttentionParams']]], - ['gemmaddmmparams_21',['GEMMAddMMParams',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html',1,'mlx::steel']]], - ['gemmkernel_22',['GEMMKernel',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html',1,'mlx::steel']]], - ['gemmparams_23',['GEMMParams',['../structmlx_1_1steel_1_1_g_e_m_m_params.html',1,'mlx::steel']]], - ['gemmspiltkparams_24',['GEMMSpiltKParams',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html',1,'mlx::steel']]], - ['gemv_5fmasked_25',['gemv_masked',['../namespacemlx_1_1core_1_1metal.html#abc055b75e6a059618f279c35f8de36e7',1,'mlx::core::metal::gemv_masked()'],['../kernels_2gemv__masked_8h.html#ab3070d14cdecb1dd7dc220a551da6b7b',1,'gemv_masked(const device T *mat, const device T *in_vec, device T *out_vec, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &marix_ld, const constant int &batch_ndim, const constant int *batch_shape, const constant size_t *vector_batch_stride, const constant size_t *matrix_batch_stride, const device out_mask_t *out_mask, const device op_mask_t *mat_mask, const device op_mask_t *vec_mask, const constant int *mask_strides, const constant size_t *mask_batch_strides, uint3 tid, uint3 lid, uint simd_gid, uint simd_lid): gemv_masked.h']]], - ['gemv_5fmasked_2eh_26',['gemv_masked.h',['../jit_2gemv__masked_8h.html',1,'(Global Namespace)'],['../kernels_2gemv__masked_8h.html',1,'(Global Namespace)']]], - ['gemv_5fmasked_5fkernel_27',['gemv_masked_kernel',['../jit_2gemv__masked_8h.html#a933f06c211f86c37673dee329ed6901f',1,'gemv_masked.h']]], - ['gemv_5ft_5fmasked_28',['gemv_t_masked',['../kernels_2gemv__masked_8h.html#a0c8d353fc453e448b2d0ed9a19431b63',1,'gemv_masked.h']]], - ['gemvkernel_29',['GEMVKernel',['../struct_g_e_m_v_kernel.html',1,'']]], - ['gemvtkernel_30',['GEMVTKernel',['../struct_g_e_m_v_t_kernel.html',1,'']]], - ['general_31',['General',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337a0db377921f4ce762c62526131097968f',1,'mlx::core']]], - ['general_5fc2r_32',['general_c2r',['../namespacepocketfft_1_1detail.html#ac8ee38e8d8bcda875c99eeaf567550fc',1,'pocketfft::detail']]], - ['general_5fnd_33',['general_nd',['../namespacepocketfft_1_1detail.html#ab47f52551920af5eb9f57fbbded0f4f0',1,'pocketfft::detail']]], - ['general_5fr2c_34',['general_r2c',['../namespacepocketfft_1_1detail.html#a055a39b0a337ca12217717196eb92fed',1,'pocketfft::detail']]], - ['generalcontiguousreduce_35',['GeneralContiguousReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65a540cf31fe6858115a02e789938297cdb',1,'mlx::core']]], - ['generalgeneral_36',['GeneralGeneral',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337a6fe62e8ce1fae1e70cb9eeaa67d29dab',1,'mlx::core']]], - ['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_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_5farchitecture_43',['get_architecture',['../classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b',1,'mlx::core::metal::Device']]], - ['get_5fbinary_5fkernel_44',['get_binary_kernel',['../namespacemlx_1_1core.html#a4decd4a07d91487e6903f6e3c8b7513a',1,'mlx::core']]], - ['get_5fbinary_5ftwo_5fkernel_45',['get_binary_two_kernel',['../namespacemlx_1_1core.html#a4e809746f48e5dcf7fa63215d3f5e33e',1,'mlx::core']]], - ['get_5fblock_5fdims_46',['get_block_dims',['../namespacemlx_1_1core.html#a0f0f59d3ffe2d16a684e5fc093302e15',1,'mlx::core']]], - ['get_5fcache_5fmemory_47',['get_cache_memory',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#ad3cabbe638917ca4114eb74dcabe381f',1,'mlx::core::metal::MetalAllocator::get_cache_memory()'],['../namespacemlx_1_1core_1_1metal.html#a43307654f62ed7c58e014be7fb03909c',1,'mlx::core::metal::get_cache_memory()']]], - ['get_5fcolocated_5fmtllib_5fpath_48',['get_colocated_mtllib_path',['../namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f',1,'mlx::core::metal']]], - ['get_5fcommand_5fbuffer_49',['get_command_buffer',['../classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210',1,'mlx::core::metal::Device']]], - ['get_5fcommand_5fbuffer_5fops_50',['get_command_buffer_ops',['../classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8',1,'mlx::core::metal::Device']]], - ['get_5fcommand_5fencoder_51',['get_command_encoder',['../classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6',1,'mlx::core::metal::Device']]], - ['get_5fcoord_52',['get_coord',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], - ['get_5fcopy_5fkernel_53',['get_copy_kernel',['../namespacemlx_1_1core.html#a05a220cff45f12439fde775983c6df78',1,'mlx::core']]], - ['get_5fdefault_5fstream_54',['get_default_stream',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a2366c7b888e433608e203752edc92282',1,'mlx::core::scheduler::Scheduler']]], - ['get_5ffft_5fkernel_55',['get_fft_kernel',['../namespacemlx_1_1core.html#a1d4cffc3c78067b3d9a62d64f3fb686f',1,'mlx::core']]], - ['get_5fgemv_5fmasked_5fkernel_56',['get_gemv_masked_kernel',['../namespacemlx_1_1core.html#a90c24e0d0b99b68fad9deefcf4d3e818',1,'mlx::core']]], - ['get_5fkernel_57',['get_kernel',['../classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a',1,'mlx::core::metal::Device::get_kernel(const std::string &base_name, MTL::Library *mtl_lib, const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})'],['../classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf',1,'mlx::core::metal::Device::get_kernel(const std::string &base_name, const std::string &lib_name="mlx", const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})']]], - ['get_5fkernel_5fpreamble_58',['get_kernel_preamble',['../compiled__preamble_8h.html#a1dfa17a0369fb90ff615c7461f5013f3',1,'compiled_preamble.h']]], - ['get_5flibrary_59',['get_library',['../classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0',1,'mlx::core::metal::Device']]], - ['get_5fmb_5fsort_5fkernel_60',['get_mb_sort_kernel',['../namespacemlx_1_1core.html#afb57825bb763050cc9a9d194aa41ac36',1,'mlx::core']]], - ['get_5fname_61',['get_name',['../structmlx_1_1core_1_1_node_namer.html#a1690dd38de288c0aee2bb53156eb770e',1,'mlx::core::NodeNamer']]], - ['get_5fpeak_5fmemory_62',['get_peak_memory',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#ac7972a3fe58e69489de775a0f152da17',1,'mlx::core::metal::MetalAllocator::get_peak_memory()'],['../namespacemlx_1_1core_1_1metal.html#a4b67d680cefa95f0ed5801f0e14e48ce',1,'mlx::core::metal::get_peak_memory()']]], - ['get_5fplan_63',['get_plan',['../namespacepocketfft_1_1detail.html#ab24cdb6118901f4d3c8df06ef0f8390b',1,'pocketfft::detail']]], - ['get_5fpool_64',['get_pool',['../namespacepocketfft_1_1detail_1_1threading.html#a7ec2b3f99232bd0f15f7b022c59d139a',1,'pocketfft::detail::threading']]], - ['get_5fprimitive_5fstring_65',['get_primitive_string',['../namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60',1,'mlx::core']]], - ['get_5fquantized_5fkernel_66',['get_quantized_kernel',['../namespacemlx_1_1core.html#aa3faeae5378bfaafe3ce3432a051e43e',1,'mlx::core']]], - ['get_5freduce_5finit_5fkernel_67',['get_reduce_init_kernel',['../namespacemlx_1_1core.html#a3bd386cb6db09f636963ce66ceaf8647',1,'mlx::core']]], - ['get_5freduce_5fkernel_68',['get_reduce_kernel',['../namespacemlx_1_1core.html#a7aa91fcfe8b9caa42d60a957f11bfe6b',1,'mlx::core']]], - ['get_5freduction_5fplan_69',['get_reduction_plan',['../namespacemlx_1_1core.html#ac97b5a6f009ca3d99854ce9512c20dba',1,'mlx::core']]], - ['get_5fscan_5fkernel_70',['get_scan_kernel',['../namespacemlx_1_1core.html#aeefaff208444d3fa61ecc0946fe1de5f',1,'mlx::core']]], - ['get_5fshape_71',['get_shape',['../namespacemlx_1_1core.html#aab0d8a256957984acc1e3615c65c898e',1,'mlx::core']]], - ['get_5fsoftmax_5fkernel_72',['get_softmax_kernel',['../namespacemlx_1_1core.html#a35a412f688d79eb47e42d20a7c8650ee',1,'mlx::core']]], - ['get_5fsort_5fkernel_73',['get_sort_kernel',['../namespacemlx_1_1core.html#a84ebe6275218070f0ea320f126f64e22',1,'mlx::core']]], - ['get_5fsteel_5fconv_5fgeneral_5fkernel_74',['get_steel_conv_general_kernel',['../namespacemlx_1_1core.html#abce2b67044ee06a7bbe7a91ec7c8c48d',1,'mlx::core']]], - ['get_5fsteel_5fconv_5fkernel_75',['get_steel_conv_kernel',['../namespacemlx_1_1core.html#adce79d220672f5f3c65cc31d145ca9c4',1,'mlx::core']]], - ['get_5fsteel_5fgemm_5ffused_5fkernel_76',['get_steel_gemm_fused_kernel',['../namespacemlx_1_1core.html#a84fa8e0aee321a9d614433a0b933103b',1,'mlx::core']]], - ['get_5fsteel_5fgemm_5fmasked_5fkernel_77',['get_steel_gemm_masked_kernel',['../namespacemlx_1_1core.html#ab5f60614e965144b451930fdf935e08d',1,'mlx::core']]], - ['get_5fsteel_5fgemm_5fsplitk_5faccum_5fkernel_78',['get_steel_gemm_splitk_accum_kernel',['../namespacemlx_1_1core.html#a195b86cad5bb99aa1bcd23952305af6b',1,'mlx::core']]], - ['get_5fsteel_5fgemm_5fsplitk_5fkernel_79',['get_steel_gemm_splitk_kernel',['../namespacemlx_1_1core.html#af48c6f2f72b61dbd6766e4f5fea85df5',1,'mlx::core']]], - ['get_5ftemplate_5fdefinition_80',['get_template_definition',['../namespacemlx_1_1core.html#aae0d19f0acdef2accd2428fb84c8a032',1,'mlx::core']]], - ['get_5fternary_5fkernel_81',['get_ternary_kernel',['../namespacemlx_1_1core.html#a54eb3b65375022428aab5f810e40624b',1,'mlx::core']]], - ['get_5ftwiddle_82',['get_twiddle',['../radix_8h.html#ac5cf950316b9445296ee9ecfc56a56bd',1,'radix.h']]], - ['get_5ftype_5fstring_83',['get_type_string',['../namespacemlx_1_1core.html#af776fd91dd60594dcfebbafd17f19068',1,'mlx::core']]], - ['get_5funary_5fkernel_84',['get_unary_kernel',['../namespacemlx_1_1core.html#afbb085188b563a54606d84f87a9bf5a6',1,'mlx::core']]], - ['gguf_2eh_85',['gguf.h',['../gguf_8h.html',1,'']]], - ['gguf_5fload_5fquantized_86',['gguf_load_quantized',['../namespacemlx_1_1core.html#a65dd68163bdaef3631e3724327782498',1,'mlx::core']]], - ['ggufload_87',['GGUFLoad',['../namespacemlx_1_1core.html#aa5b0f7f13a941e1f41c411194e9033c7',1,'mlx::core']]], - ['ggufmetadata_88',['GGUFMetaData',['../namespacemlx_1_1core.html#a8c2c1b9a37aadfb48f4c3a7e806e32e3',1,'mlx::core']]], - ['global_5fformatter_89',['global_formatter',['../namespacemlx_1_1core.html#af5a408a78cc934717dd711ddfda58ea6',1,'mlx::core']]], - ['good_90',['good',['../classmlx_1_1core_1_1io_1_1_reader.html#a005d0b52c1f34866f7412b7f41dabec3',1,'mlx::core::io::Reader::good()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a0b050c2c27487007e250e2e19560ffe4',1,'mlx::core::io::Writer::good()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#ac54a2c693acc3d9e6e942412148ffcc9',1,'mlx::core::io::ParallelFileReader::good()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a9ec4934b26fb358d699ddce1482b2d54',1,'mlx::core::io::FileWriter::good()']]], - ['good_5fsize_5fcmplx_91',['good_size_cmplx',['../structpocketfft_1_1detail_1_1util.html#a758e00d242a1b7eda8f9f0c21f35c624',1,'pocketfft::detail::util']]], - ['good_5fsize_5freal_92',['good_size_real',['../structpocketfft_1_1detail_1_1util.html#a173da7d5929ded86fffcebcfdc5086aa',1,'pocketfft::detail::util']]], - ['gpu_93',['gpu',['../structmlx_1_1core_1_1_device.html#a45ed081b56ae5d4ddd39c83a5d8a1616',1,'mlx::core::Device::gpu'],['../structmlx_1_1core_1_1_device.html#ac45b3de9b3458d8f31005136cde20fdba0aa0be2a866411d9ff03515227454947',1,'mlx::core::Device::gpu']]], + ['gemm_5fk_5fiterations_5faligned_13',['gemm_k_iterations_aligned',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a0d7f419ba265805b418e93ce1ca2e0f9',1,'mlx::steel::GEMMParams::gemm_k_iterations_aligned'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#aa37e05a03ac8b34ec7dc31ca42f68998',1,'mlx::steel::GEMMSpiltKParams::gemm_k_iterations_aligned']]], + ['gemm_5floop_14',['gemm_loop',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a756d7bbcc96e2919cd65eec4bc135780',1,'mlx::steel::GEMMKernel::gemm_loop(threadgroup T *As, threadgroup T *Bs, const int gemm_k_iterations, thread loader_a_t &loader_a, thread loader_b_t &loader_b, thread mma_t &mma_op, thread const short &tgp_bm, thread const short &tgp_bn, thread const short &lbk, LoopAlignment< M_aligned, N_aligned, K_aligned_ > l={})'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a756d7bbcc96e2919cd65eec4bc135780',1,'mlx::steel::GEMMKernel::gemm_loop(threadgroup T *As, threadgroup T *Bs, const int gemm_k_iterations, thread loader_a_t &loader_a, thread loader_b_t &loader_b, thread mma_t &mma_op, thread const short &tgp_bm, thread const short &tgp_bn, thread const short &lbk, LoopAlignment< M_aligned, N_aligned, K_aligned_ > l={})']]], + ['gemm_5fparams_15',['gemm_params',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#ab0724eb3ef52ee773b6607f6433b9f2c',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::gemm_params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#acc778b3c0b7ec38a43e8ea943df8704c',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::gemm_params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#af59f9d356c4c3ec5627dc5a263d239d4',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::gemm_params']]], + ['gemm_5fsplitk_16',['gemm_splitk',['../steel__gemm__splitk_8h.html#a3be6e095a0a026d3ecf57a3e67f76188',1,'steel_gemm_splitk.h']]], + ['gemm_5fsplitk_5faccum_17',['gemm_splitk_accum',['../steel__gemm__splitk_8h.html#abeb921bf1dc7941125188ddd390b0907',1,'steel_gemm_splitk.h']]], + ['gemm_5fsplitk_5faccum_5faxpby_18',['gemm_splitk_accum_axpby',['../steel__gemm__splitk_8h.html#acc33fdfaaf3eb3a0629b3d52c7043dc1',1,'steel_gemm_splitk.h']]], + ['gemmaddmmparams_19',['GEMMAddMMParams',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html',1,'mlx::steel']]], + ['gemmkernel_20',['GEMMKernel',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html',1,'mlx::steel']]], + ['gemmparams_21',['GEMMParams',['../structmlx_1_1steel_1_1_g_e_m_m_params.html',1,'mlx::steel']]], + ['gemmspiltkparams_22',['GEMMSpiltKParams',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html',1,'mlx::steel']]], + ['gemv_5fmasked_23',['gemv_masked',['../namespacemlx_1_1core_1_1metal.html#abc055b75e6a059618f279c35f8de36e7',1,'mlx::core::metal::gemv_masked()'],['../kernels_2gemv__masked_8h.html#ab3070d14cdecb1dd7dc220a551da6b7b',1,'gemv_masked(const device T *mat, const device T *in_vec, device T *out_vec, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &marix_ld, const constant int &batch_ndim, const constant int *batch_shape, const constant size_t *vector_batch_stride, const constant size_t *matrix_batch_stride, const device out_mask_t *out_mask, const device op_mask_t *mat_mask, const device op_mask_t *vec_mask, const constant int *mask_strides, const constant size_t *mask_batch_strides, uint3 tid, uint3 lid, uint simd_gid, uint simd_lid): gemv_masked.h']]], + ['gemv_5fmasked_2eh_24',['gemv_masked.h',['../jit_2gemv__masked_8h.html',1,'(Global Namespace)'],['../kernels_2gemv__masked_8h.html',1,'(Global Namespace)']]], + ['gemv_5fmasked_5fkernel_25',['gemv_masked_kernel',['../jit_2gemv__masked_8h.html#a933f06c211f86c37673dee329ed6901f',1,'gemv_masked.h']]], + ['gemv_5ft_5fmasked_26',['gemv_t_masked',['../kernels_2gemv__masked_8h.html#a0c8d353fc453e448b2d0ed9a19431b63',1,'gemv_masked.h']]], + ['gemvkernel_27',['GEMVKernel',['../struct_g_e_m_v_kernel.html',1,'']]], + ['gemvtkernel_28',['GEMVTKernel',['../struct_g_e_m_v_t_kernel.html',1,'']]], + ['general_29',['General',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337a0db377921f4ce762c62526131097968f',1,'mlx::core']]], + ['general_5fc2r_30',['general_c2r',['../namespacepocketfft_1_1detail.html#ac8ee38e8d8bcda875c99eeaf567550fc',1,'pocketfft::detail']]], + ['general_5fnd_31',['general_nd',['../namespacepocketfft_1_1detail.html#ab47f52551920af5eb9f57fbbded0f4f0',1,'pocketfft::detail']]], + ['general_5fr2c_32',['general_r2c',['../namespacepocketfft_1_1detail.html#a055a39b0a337ca12217717196eb92fed',1,'pocketfft::detail']]], + ['generalcontiguousreduce_33',['GeneralContiguousReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65a540cf31fe6858115a02e789938297cdb',1,'mlx::core']]], + ['generalgeneral_34',['GeneralGeneral',['../namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337a6fe62e8ce1fae1e70cb9eeaa67d29dab',1,'mlx::core']]], + ['generalreduce_35',['GeneralReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65a3622f95ed0ec99657f9ad8ef39ec2184',1,'mlx::core']]], + ['generalstridedreduce_36',['GeneralStridedReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ad999b1a8ae1d7436efb5ffdfafb1dd3d',1,'mlx::core']]], + ['generic_37',['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_38',['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_39',['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_40',['get_arange_kernel',['../namespacemlx_1_1core.html#a76f614e9956a6ca05a9be4db5a483446',1,'mlx::core']]], + ['get_5farchitecture_41',['get_architecture',['../classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b',1,'mlx::core::metal::Device']]], + ['get_5fbinary_5fkernel_42',['get_binary_kernel',['../namespacemlx_1_1core.html#a4decd4a07d91487e6903f6e3c8b7513a',1,'mlx::core']]], + ['get_5fbinary_5ftwo_5fkernel_43',['get_binary_two_kernel',['../namespacemlx_1_1core.html#a4e809746f48e5dcf7fa63215d3f5e33e',1,'mlx::core']]], + ['get_5fblock_5fdims_44',['get_block_dims',['../namespacemlx_1_1core.html#a0f0f59d3ffe2d16a684e5fc093302e15',1,'mlx::core']]], + ['get_5fcache_5fmemory_45',['get_cache_memory',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#ad3cabbe638917ca4114eb74dcabe381f',1,'mlx::core::metal::MetalAllocator::get_cache_memory()'],['../namespacemlx_1_1core_1_1metal.html#a43307654f62ed7c58e014be7fb03909c',1,'mlx::core::metal::get_cache_memory()']]], + ['get_5fcolocated_5fmtllib_5fpath_46',['get_colocated_mtllib_path',['../namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f',1,'mlx::core::metal']]], + ['get_5fcommand_5fbuffer_47',['get_command_buffer',['../classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210',1,'mlx::core::metal::Device']]], + ['get_5fcommand_5fbuffer_5fops_48',['get_command_buffer_ops',['../classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8',1,'mlx::core::metal::Device']]], + ['get_5fcommand_5fencoder_49',['get_command_encoder',['../classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6',1,'mlx::core::metal::Device']]], + ['get_5fcoord_50',['get_coord',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::get_coord(ushort simd_lane_id)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::get_coord(ushort simd_lane_id)']]], + ['get_5fcopy_5fkernel_51',['get_copy_kernel',['../namespacemlx_1_1core.html#a05a220cff45f12439fde775983c6df78',1,'mlx::core']]], + ['get_5fdefault_5fstream_52',['get_default_stream',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a2366c7b888e433608e203752edc92282',1,'mlx::core::scheduler::Scheduler']]], + ['get_5ffft_5fkernel_53',['get_fft_kernel',['../namespacemlx_1_1core.html#a1d4cffc3c78067b3d9a62d64f3fb686f',1,'mlx::core']]], + ['get_5fgemv_5fmasked_5fkernel_54',['get_gemv_masked_kernel',['../namespacemlx_1_1core.html#a90c24e0d0b99b68fad9deefcf4d3e818',1,'mlx::core']]], + ['get_5fkernel_55',['get_kernel',['../classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a',1,'mlx::core::metal::Device::get_kernel(const std::string &base_name, MTL::Library *mtl_lib, const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})'],['../classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf',1,'mlx::core::metal::Device::get_kernel(const std::string &base_name, const std::string &lib_name="mlx", const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})']]], + ['get_5fkernel_5fpreamble_56',['get_kernel_preamble',['../compiled__preamble_8h.html#a1dfa17a0369fb90ff615c7461f5013f3',1,'compiled_preamble.h']]], + ['get_5flibrary_57',['get_library',['../classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0',1,'mlx::core::metal::Device']]], + ['get_5fmb_5fsort_5fkernel_58',['get_mb_sort_kernel',['../namespacemlx_1_1core.html#afb57825bb763050cc9a9d194aa41ac36',1,'mlx::core']]], + ['get_5fname_59',['get_name',['../structmlx_1_1core_1_1_node_namer.html#a1690dd38de288c0aee2bb53156eb770e',1,'mlx::core::NodeNamer']]], + ['get_5fpeak_5fmemory_60',['get_peak_memory',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#ac7972a3fe58e69489de775a0f152da17',1,'mlx::core::metal::MetalAllocator::get_peak_memory()'],['../namespacemlx_1_1core_1_1metal.html#a4b67d680cefa95f0ed5801f0e14e48ce',1,'mlx::core::metal::get_peak_memory()']]], + ['get_5fplan_61',['get_plan',['../namespacepocketfft_1_1detail.html#ab24cdb6118901f4d3c8df06ef0f8390b',1,'pocketfft::detail']]], + ['get_5fpool_62',['get_pool',['../namespacepocketfft_1_1detail_1_1threading.html#a7ec2b3f99232bd0f15f7b022c59d139a',1,'pocketfft::detail::threading']]], + ['get_5fprimitive_5fstring_63',['get_primitive_string',['../namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60',1,'mlx::core']]], + ['get_5fquantized_5fkernel_64',['get_quantized_kernel',['../namespacemlx_1_1core.html#aa3faeae5378bfaafe3ce3432a051e43e',1,'mlx::core']]], + ['get_5freduce_5finit_5fkernel_65',['get_reduce_init_kernel',['../namespacemlx_1_1core.html#ae0470605dc819efeb6510183619f0299',1,'mlx::core']]], + ['get_5freduce_5fkernel_66',['get_reduce_kernel',['../namespacemlx_1_1core.html#a1be32ba7d67137dde7ac191dfe83ff49',1,'mlx::core']]], + ['get_5freduction_5fplan_67',['get_reduction_plan',['../namespacemlx_1_1core.html#ac97b5a6f009ca3d99854ce9512c20dba',1,'mlx::core']]], + ['get_5fscan_5fkernel_68',['get_scan_kernel',['../namespacemlx_1_1core.html#aeefaff208444d3fa61ecc0946fe1de5f',1,'mlx::core']]], + ['get_5fshape_69',['get_shape',['../namespacemlx_1_1core.html#aab0d8a256957984acc1e3615c65c898e',1,'mlx::core']]], + ['get_5fsoftmax_5fkernel_70',['get_softmax_kernel',['../namespacemlx_1_1core.html#a35a412f688d79eb47e42d20a7c8650ee',1,'mlx::core']]], + ['get_5fsort_5fkernel_71',['get_sort_kernel',['../namespacemlx_1_1core.html#a84ebe6275218070f0ea320f126f64e22',1,'mlx::core']]], + ['get_5fsteel_5fconv_5fgeneral_5fkernel_72',['get_steel_conv_general_kernel',['../namespacemlx_1_1core.html#abce2b67044ee06a7bbe7a91ec7c8c48d',1,'mlx::core']]], + ['get_5fsteel_5fconv_5fkernel_73',['get_steel_conv_kernel',['../namespacemlx_1_1core.html#adce79d220672f5f3c65cc31d145ca9c4',1,'mlx::core']]], + ['get_5fsteel_5fgemm_5ffused_5fkernel_74',['get_steel_gemm_fused_kernel',['../namespacemlx_1_1core.html#a84fa8e0aee321a9d614433a0b933103b',1,'mlx::core']]], + ['get_5fsteel_5fgemm_5fmasked_5fkernel_75',['get_steel_gemm_masked_kernel',['../namespacemlx_1_1core.html#ab5f60614e965144b451930fdf935e08d',1,'mlx::core']]], + ['get_5fsteel_5fgemm_5fsplitk_5faccum_5fkernel_76',['get_steel_gemm_splitk_accum_kernel',['../namespacemlx_1_1core.html#a195b86cad5bb99aa1bcd23952305af6b',1,'mlx::core']]], + ['get_5fsteel_5fgemm_5fsplitk_5fkernel_77',['get_steel_gemm_splitk_kernel',['../namespacemlx_1_1core.html#af48c6f2f72b61dbd6766e4f5fea85df5',1,'mlx::core']]], + ['get_5ftemplate_5fdefinition_78',['get_template_definition',['../namespacemlx_1_1core.html#aae0d19f0acdef2accd2428fb84c8a032',1,'mlx::core']]], + ['get_5fternary_5fkernel_79',['get_ternary_kernel',['../namespacemlx_1_1core.html#a54eb3b65375022428aab5f810e40624b',1,'mlx::core']]], + ['get_5ftwiddle_80',['get_twiddle',['../radix_8h.html#ac5cf950316b9445296ee9ecfc56a56bd',1,'radix.h']]], + ['get_5ftype_5fstring_81',['get_type_string',['../namespacemlx_1_1core.html#af776fd91dd60594dcfebbafd17f19068',1,'mlx::core']]], + ['get_5funary_5fkernel_82',['get_unary_kernel',['../namespacemlx_1_1core.html#afbb085188b563a54606d84f87a9bf5a6',1,'mlx::core']]], + ['get_5fvar_83',['get_var',['../namespacemlx_1_1core_1_1env.html#a0efecbf9efe695adafad12b5a4945df3',1,'mlx::core::env']]], + ['gguf_2eh_84',['gguf.h',['../gguf_8h.html',1,'']]], + ['gguf_5fload_5fquantized_85',['gguf_load_quantized',['../namespacemlx_1_1core.html#a65dd68163bdaef3631e3724327782498',1,'mlx::core']]], + ['ggufload_86',['GGUFLoad',['../namespacemlx_1_1core.html#aa5b0f7f13a941e1f41c411194e9033c7',1,'mlx::core']]], + ['ggufmetadata_87',['GGUFMetaData',['../namespacemlx_1_1core.html#a8c2c1b9a37aadfb48f4c3a7e806e32e3',1,'mlx::core']]], + ['global_5fformatter_88',['global_formatter',['../namespacemlx_1_1core.html#af5a408a78cc934717dd711ddfda58ea6',1,'mlx::core']]], + ['good_89',['good',['../classmlx_1_1core_1_1io_1_1_reader.html#a005d0b52c1f34866f7412b7f41dabec3',1,'mlx::core::io::Reader::good()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a0b050c2c27487007e250e2e19560ffe4',1,'mlx::core::io::Writer::good()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#ac54a2c693acc3d9e6e942412148ffcc9',1,'mlx::core::io::ParallelFileReader::good()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a9ec4934b26fb358d699ddce1482b2d54',1,'mlx::core::io::FileWriter::good()']]], + ['good_5fsize_5fcmplx_90',['good_size_cmplx',['../structpocketfft_1_1detail_1_1util.html#a758e00d242a1b7eda8f9f0c21f35c624',1,'pocketfft::detail::util']]], + ['good_5fsize_5freal_91',['good_size_real',['../structpocketfft_1_1detail_1_1util.html#a173da7d5929ded86fffcebcfdc5086aa',1,'pocketfft::detail::util']]], + ['gpu_92',['gpu',['../structmlx_1_1core_1_1_device.html#a45ed081b56ae5d4ddd39c83a5d8a1616',1,'mlx::core::Device::gpu'],['../structmlx_1_1core_1_1_device.html#ac45b3de9b3458d8f31005136cde20fdba0aa0be2a866411d9ff03515227454947',1,'mlx::core::Device::gpu']]], + ['gqa_5ffactor_93',['gqa_factor',['../structmlx_1_1steel_1_1_attn_params.html#a3b3e18cb993ab24819c852bc64288841',1,'mlx::steel::AttnParams']]], ['grad_94',['grad',['../namespacemlx_1_1core.html#a3d2b2929ed4636e9e2b86e125b2e57d9',1,'mlx::core::grad(const std::function< array(const std::vector< array > &)> &fun, const std::vector< int > &argnums)'],['../namespacemlx_1_1core.html#af482f6c64acd77c57ef5bb4b7be9726c',1,'mlx::core::grad(const std::function< array(const std::vector< array > &)> &fun, int argnum=0)'],['../namespacemlx_1_1core.html#a64bc619876b0f8cc81a2637ca81c99f7',1,'mlx::core::grad(const std::function< array(const array &)> &fun)']]], ['graph_5futils_2eh_95',['graph_utils.h',['../graph__utils_8h.html',1,'']]], ['greater_96',['Greater',['../struct_greater.html',1,'Greater'],['../structmlx_1_1core_1_1detail_1_1_greater.html',1,'mlx::core::detail::Greater'],['../classmlx_1_1core_1_1_greater.html',1,'mlx::core::Greater'],['../classmlx_1_1core_1_1_greater.html#a1d5992a66c020cd97a70e8e3d8cd1a1b',1,'mlx::core::Greater::Greater()']]], diff --git a/docs/build/html/search/all_8.js b/docs/build/html/search/all_8.js index 385c5b72..b27d6bee 100644 --- a/docs/build/html/search/all_8.js +++ b/docs/build/html/search/all_8.js @@ -1,27 +1,28 @@ var searchData= [ - ['h12_0',['h12',['../namespacemlx_1_1core.html#a4beeeec4413be7adcfb14feaa9cf0e2e',1,'mlx::core']]], - ['h20_1',['h20',['../namespacemlx_1_1core.html#a862c6b94fec384c34a699ced64d01404',1,'mlx::core']]], - ['h28_2',['h28',['../namespacemlx_1_1core.html#ac447ad59592dd06435adca7df37e33ad',1,'mlx::core']]], - ['hadamard_3',['Hadamard',['../classmlx_1_1core_1_1_hadamard.html',1,'mlx::core::Hadamard'],['../classmlx_1_1core_1_1_hadamard.html#abe4a0ed820b126940beec519d4239923',1,'mlx::core::Hadamard::Hadamard()']]], - ['hadamard_4',['hadamard',['../namespacemlx_1_1core_1_1metal.html#a8bd0072616087cd568c2c804e7114aa9',1,'mlx::core::metal']]], - ['hadamard_2eh_5',['hadamard.h',['../common_2hadamard_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2hadamard_8h.html',1,'(Global Namespace)']]], - ['hadamard_5fm_6',['hadamard_m',['../metal_2kernels_2hadamard_8h.html#ab0bd478f2051af35aed1869005e3370a',1,'hadamard.h']]], - ['hadamard_5fmatrices_7',['hadamard_matrices',['../namespacemlx_1_1core.html#a50214cf406957fab27c8bef32046f030',1,'mlx::core']]], - ['hadamard_5fn_8',['hadamard_n',['../metal_2kernels_2hadamard_8h.html#a63c0e8510e555cd065e1f0ddfb33ce18',1,'hadamard.h']]], - ['hadamard_5ftransform_9',['hadamard_transform',['../group__ops.html#ga872d2c1806e67ce2596b24d056681074',1,'mlx::core']]], - ['half_5fbinop_10',['half_binop',['../fp16_8h.html#af58966694c5d80f9a0241670f3128199',1,'fp16.h']]], - ['half_5fbinop_5fbase_11',['half_binop_base',['../fp16_8h.html#a8420acf5d2687fbdafcc9052c949f323',1,'fp16.h']]], - ['half_5fbinop_5fhelper_12',['half_binop_helper',['../fp16_8h.html#aa300338c53d5a9f52fbbde8fd777f13d',1,'fp16.h']]], - ['half_5fbitop_13',['half_bitop',['../fp16_8h.html#a2242eaa64839925fd8f586dde7a59800',1,'fp16.h']]], - ['half_5fcompop_14',['half_compop',['../fp16_8h.html#acec0b85a9974cbde7b270a121f382405',1,'fp16.h']]], - ['half_5finplace_5fbitop_15',['half_inplace_bitop',['../fp16_8h.html#a378e011e994bf62a961c3c1cd6f7c290',1,'fp16.h']]], - ['half_5finplace_5fop_16',['half_inplace_op',['../fp16_8h.html#a6348c00d31a50b2df1b47d18af49c4b8',1,'fp16.h']]], - ['half_5ftypes_2eh_17',['half_types.h',['../half__types_8h.html',1,'']]], - ['has_5fbatch_18',['has_batch',['../steel__gemm__fused_8h.html#adffcdc900c19ff97f1523e43f1a5a6cc',1,'steel_gemm_fused.h']]], - ['has_5fmul_5foperand_5fmask_19',['has_mul_operand_mask',['../struct_g_e_m_v_kernel.html#ad47223ee49b3cb7bf3746a2cec45f883',1,'GEMVKernel::has_mul_operand_mask'],['../struct_g_e_m_v_t_kernel.html#a8db6f01f96a36b216acd801c34a96ef5',1,'GEMVTKernel::has_mul_operand_mask']]], - ['has_5fmul_5foutput_5fmask_20',['has_mul_output_mask',['../struct_g_e_m_v_kernel.html#a0edbf2dd6a6563e7afa6dab6b670615c',1,'GEMVKernel::has_mul_output_mask'],['../struct_g_e_m_v_t_kernel.html#a8eb06f6569e4042e24fee220b11fa10d',1,'GEMVTKernel::has_mul_output_mask']]], - ['has_5foperand_5fmask_21',['has_operand_mask',['../struct_g_e_m_v_kernel.html#ab00784dff1512a7b0919fcb4cfa5d50e',1,'GEMVKernel::has_operand_mask'],['../struct_g_e_m_v_t_kernel.html#a6729d6e63e76a1e9c7c8e78d9aac4869',1,'GEMVTKernel::has_operand_mask']]], - ['has_5foutput_5fmask_22',['has_output_mask',['../struct_g_e_m_v_kernel.html#ab8b64c94f4c8f6f09c0777415589b487',1,'GEMVKernel::has_output_mask'],['../struct_g_e_m_v_t_kernel.html#aaefdf8f023da255bbb70a0c3e3408626',1,'GEMVTKernel::has_output_mask']]], - ['has_5fprimitive_23',['has_primitive',['../classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1',1,'mlx::core::array']]] + ['h_0',['H',['../structmlx_1_1steel_1_1_attn_params.html#a3d286a0c27bace6016ed7a87f43291b7',1,'mlx::steel::AttnParams']]], + ['h12_1',['h12',['../namespacemlx_1_1core.html#a4beeeec4413be7adcfb14feaa9cf0e2e',1,'mlx::core']]], + ['h20_2',['h20',['../namespacemlx_1_1core.html#a862c6b94fec384c34a699ced64d01404',1,'mlx::core']]], + ['h28_3',['h28',['../namespacemlx_1_1core.html#ac447ad59592dd06435adca7df37e33ad',1,'mlx::core']]], + ['hadamard_4',['Hadamard',['../classmlx_1_1core_1_1_hadamard.html',1,'mlx::core::Hadamard'],['../classmlx_1_1core_1_1_hadamard.html#abe4a0ed820b126940beec519d4239923',1,'mlx::core::Hadamard::Hadamard()']]], + ['hadamard_5',['hadamard',['../namespacemlx_1_1core_1_1metal.html#a8bd0072616087cd568c2c804e7114aa9',1,'mlx::core::metal']]], + ['hadamard_2eh_6',['hadamard.h',['../common_2hadamard_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2hadamard_8h.html',1,'(Global Namespace)']]], + ['hadamard_5fm_7',['hadamard_m',['../metal_2kernels_2hadamard_8h.html#ab0bd478f2051af35aed1869005e3370a',1,'hadamard.h']]], + ['hadamard_5fmatrices_8',['hadamard_matrices',['../namespacemlx_1_1core.html#a50214cf406957fab27c8bef32046f030',1,'mlx::core']]], + ['hadamard_5fn_9',['hadamard_n',['../metal_2kernels_2hadamard_8h.html#a63c0e8510e555cd065e1f0ddfb33ce18',1,'hadamard.h']]], + ['hadamard_5ftransform_10',['hadamard_transform',['../group__ops.html#ga872d2c1806e67ce2596b24d056681074',1,'mlx::core']]], + ['half_5fbinop_11',['half_binop',['../fp16_8h.html#af58966694c5d80f9a0241670f3128199',1,'fp16.h']]], + ['half_5fbinop_5fbase_12',['half_binop_base',['../fp16_8h.html#a8420acf5d2687fbdafcc9052c949f323',1,'fp16.h']]], + ['half_5fbinop_5fhelper_13',['half_binop_helper',['../fp16_8h.html#aa300338c53d5a9f52fbbde8fd777f13d',1,'fp16.h']]], + ['half_5fbitop_14',['half_bitop',['../fp16_8h.html#a2242eaa64839925fd8f586dde7a59800',1,'fp16.h']]], + ['half_5fcompop_15',['half_compop',['../fp16_8h.html#acec0b85a9974cbde7b270a121f382405',1,'fp16.h']]], + ['half_5finplace_5fbitop_16',['half_inplace_bitop',['../fp16_8h.html#a378e011e994bf62a961c3c1cd6f7c290',1,'fp16.h']]], + ['half_5finplace_5fop_17',['half_inplace_op',['../fp16_8h.html#a6348c00d31a50b2df1b47d18af49c4b8',1,'fp16.h']]], + ['half_5ftypes_2eh_18',['half_types.h',['../half__types_8h.html',1,'']]], + ['has_5fbatch_19',['has_batch',['../steel__gemm__fused_8h.html#adffcdc900c19ff97f1523e43f1a5a6cc',1,'steel_gemm_fused.h']]], + ['has_5fmul_5foperand_5fmask_20',['has_mul_operand_mask',['../struct_g_e_m_v_kernel.html#ad47223ee49b3cb7bf3746a2cec45f883',1,'GEMVKernel::has_mul_operand_mask'],['../struct_g_e_m_v_t_kernel.html#a8db6f01f96a36b216acd801c34a96ef5',1,'GEMVTKernel::has_mul_operand_mask']]], + ['has_5fmul_5foutput_5fmask_21',['has_mul_output_mask',['../struct_g_e_m_v_kernel.html#a0edbf2dd6a6563e7afa6dab6b670615c',1,'GEMVKernel::has_mul_output_mask'],['../struct_g_e_m_v_t_kernel.html#a8eb06f6569e4042e24fee220b11fa10d',1,'GEMVTKernel::has_mul_output_mask']]], + ['has_5foperand_5fmask_22',['has_operand_mask',['../struct_g_e_m_v_kernel.html#ab00784dff1512a7b0919fcb4cfa5d50e',1,'GEMVKernel::has_operand_mask'],['../struct_g_e_m_v_t_kernel.html#a6729d6e63e76a1e9c7c8e78d9aac4869',1,'GEMVTKernel::has_operand_mask']]], + ['has_5foutput_5fmask_23',['has_output_mask',['../struct_g_e_m_v_kernel.html#ab8b64c94f4c8f6f09c0777415589b487',1,'GEMVKernel::has_output_mask'],['../struct_g_e_m_v_t_kernel.html#aaefdf8f023da255bbb70a0c3e3408626',1,'GEMVTKernel::has_output_mask']]], + ['has_5fprimitive_24',['has_primitive',['../classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1',1,'mlx::core::array']]] ]; diff --git a/docs/build/html/search/all_9.js b/docs/build/html/search/all_9.js index 0c49121e..70e12696 100644 --- a/docs/build/html/search/all_9.js +++ b/docs/build/html/search/all_9.js @@ -18,7 +18,7 @@ var searchData= ['in_5ftracing_15',['in_tracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#ac52b8e2c3f808d3076c4e1ebaf9dc63d',1,'mlx::core::detail::InTracing']]], ['includes_2eh_16',['includes.h',['../includes_8h.html',1,'']]], ['increment_5fcommand_5fbuffer_5fops_17',['increment_command_buffer_ops',['../classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6',1,'mlx::core::metal::Device']]], - ['index_18',['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']]], + ['index_18',['index',['../struct_looped_elem_to_loc.html#acbd070b3193d9e87fb2c2db8db571333',1,'LoopedElemToLoc::index'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d',1,'LoopedElemToLoc< 1, OffsetT, true >::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']]], ['indexing_2eh_19',['indexing.h',['../jit_2indexing_8h.html',1,'(Global Namespace)'],['../kernels_2indexing_8h.html',1,'(Global Namespace)']]], ['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']]], @@ -26,7 +26,7 @@ var searchData= ['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']]], + ['inner_5flooper_26',['inner_looper',['../struct_looped_elem_to_loc.html#a8fbe77b4a774a30af5734dd9c5bd1f40',1,'LoopedElemToLoc']]], ['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']]], @@ -51,42 +51,41 @@ var searchData= ['intracing_48',['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_49',['inv',['../struct_read_writer.html#a773fa8524515bdc2ff8b0e2060741813',1,'ReadWriter::inv'],['../namespacemlx_1_1core_1_1linalg.html#ad966a0b6bff176c9f933534ed62389a2',1,'mlx::core::linalg::inv()']]], ['inv_5f_50',['inv_',['../backend_2metal_2kernels_2fft_8h.html#a7a83318497519ff3ff0141b7d511ed38',1,'fft.h']]], - ['inv_5falpha_51',['INV_ALPHA',['../struct_m_l_x_scaled_dot_product_attention_params.html#a7461e0e17cdc7d3fed80bb00d58d8644',1,'MLXScaledDotProductAttentionParams']]], - ['inverse_52',['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_53',['io.h',['../io_8h.html',1,'']]], - ['iofs_54',['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_55',['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_56',['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_57',['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_58',['iS',['../struct_m_l_x_conv_params.html#a72e1c3b4da0f70622cf18036bbf97fe6',1,'MLXConvParams']]], - ['is_5farray_5fv_59',['is_array_v',['../namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af',1,'mlx::core']]], - ['is_5farrays_5fv_60',['is_arrays_v',['../namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda',1,'mlx::core']]], - ['is_5favailable_61',['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_62',['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_5fempty_63',['is_empty',['../structmetal_1_1is__empty.html',1,'metal']]], - ['is_5fequivalent_64',['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_5fintegral_65',['is_integral',['../structmlx_1_1steel_1_1is__integral.html',1,'mlx::steel']]], - ['is_5fintegral_3c_20integral_5fconstant_3c_20t_2c_20v_20_3e_20_3e_66',['is_integral< integral_constant< T, v > >',['../structmlx_1_1steel_1_1is__integral_3_01integral__constant_3_01_t_00_01v_01_4_01_4.html',1,'mlx::steel']]], - ['is_5fintegral_5fv_67',['is_integral_v',['../namespacemlx_1_1steel.html#a92a3465716ea7fd682d22cecc08d45fd',1,'mlx::steel']]], - ['is_5fmetal_5fatomic_68',['is_metal_atomic',['../atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24',1,'atomic.h']]], - ['is_5fopen_69',['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_70',['is_power_of_2',['../namespacemlx_1_1core.html#adacbc4526e8964b267a8ec3eb1bc1a32',1,'mlx::core']]], - ['is_5fpower_5fof_5f2_5f_71',['is_power_of_2_',['../backend_2metal_2kernels_2fft_8h.html#a2a4df90e329b84ee6c1890ba7c265c9c',1,'fft.h']]], - ['is_5fready_72',['is_ready',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#ab41ecc5adb6187aa2682ca190fd920f3',1,'pocketfft::detail::threading::latch']]], - ['is_5fsame_5fshape_73',['is_same_shape',['../namespacemlx_1_1core.html#ad4b664de4a4abd305827b30879b9da33',1,'mlx::core']]], - ['is_5fscalar_74',['is_scalar',['../namespacemlx_1_1core.html#a985c60929757190e0b4ec51f57c767d0',1,'mlx::core']]], - ['is_5fsignaled_75',['is_signaled',['../classmlx_1_1core_1_1_event.html#a05a9a3de88185b4a89e154242b4e770a',1,'mlx::core::Event']]], - ['is_5fstatic_76',['is_static',['../structmetal_1_1is__static.html',1,'metal']]], - ['is_5fstatic_5fcast_77',['is_static_cast',['../namespacemlx_1_1core.html#afd9e740e567f9d7c28e00113caf46d5f',1,'mlx::core']]], - ['is_5ftracer_78',['is_tracer',['../classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c',1,'mlx::core::array']]], - ['isclose_79',['isclose',['../group__ops.html#ga51eac95c04400921c54716de14b52491',1,'mlx::core']]], - ['isfinite_80',['isfinite',['../group__ops.html#ga725ff0789f934b1fdd54ee29e47022ff',1,'mlx::core']]], - ['isinf_81',['isinf',['../group__ops.html#ga8fc238d5e5d1153e69da8b36015d9844',1,'mlx::core']]], - ['isnan_82',['isnan',['../namespacemetal.html#a83320ba983d90dd1fa5847b6940dc0bb',1,'metal::isnan()'],['../group__ops.html#ga175592792471b0ffb45196dca4711ba6',1,'mlx::core::isnan(const array &a, StreamOrDevice s={})']]], - ['isneginf_83',['isneginf',['../group__ops.html#ga1940523da381ed7be50656a3bc465ff3',1,'mlx::core']]], - ['isposinf_84',['isposinf',['../group__ops.html#gad80f7c4a58c12b6cb30a8b9a73008993',1,'mlx::core']]], - ['issubdtype_85',['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_86',['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_87',['itemsize',['../classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0',1,'mlx::core::array']]], - ['iterator_5fcategory_88',['iterator_category',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a2cbf481e39164245668b3be6cbcc614d',1,'mlx::core::array::ArrayIterator']]] + ['inverse_51',['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_52',['io.h',['../io_8h.html',1,'']]], + ['iofs_53',['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_54',['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_55',['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_56',['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_57',['iS',['../struct_m_l_x_conv_params.html#a72e1c3b4da0f70622cf18036bbf97fe6',1,'MLXConvParams']]], + ['is_5farray_5fv_58',['is_array_v',['../namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af',1,'mlx::core']]], + ['is_5farrays_5fv_59',['is_arrays_v',['../namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda',1,'mlx::core']]], + ['is_5favailable_60',['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_61',['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_5fempty_62',['is_empty',['../structmetal_1_1is__empty.html',1,'metal']]], + ['is_5fequivalent_63',['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_contiguous.html#aa5d273a461fc6e64f3c9a67c24cb3372',1,'mlx::core::Contiguous::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_5fintegral_64',['is_integral',['../structmlx_1_1steel_1_1is__integral.html',1,'mlx::steel']]], + ['is_5fintegral_3c_20integral_5fconstant_3c_20t_2c_20v_20_3e_20_3e_65',['is_integral< integral_constant< T, v > >',['../structmlx_1_1steel_1_1is__integral_3_01integral__constant_3_01_t_00_01v_01_4_01_4.html',1,'mlx::steel']]], + ['is_5fintegral_5fv_66',['is_integral_v',['../namespacemlx_1_1steel.html#a92a3465716ea7fd682d22cecc08d45fd',1,'mlx::steel']]], + ['is_5fmetal_5fatomic_67',['is_metal_atomic',['../atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24',1,'atomic.h']]], + ['is_5fopen_68',['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_69',['is_power_of_2',['../namespacemlx_1_1core.html#adacbc4526e8964b267a8ec3eb1bc1a32',1,'mlx::core']]], + ['is_5fpower_5fof_5f2_5f_70',['is_power_of_2_',['../backend_2metal_2kernels_2fft_8h.html#a2a4df90e329b84ee6c1890ba7c265c9c',1,'fft.h']]], + ['is_5fready_71',['is_ready',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#ab41ecc5adb6187aa2682ca190fd920f3',1,'pocketfft::detail::threading::latch']]], + ['is_5fsame_5fshape_72',['is_same_shape',['../namespacemlx_1_1core.html#ad4b664de4a4abd305827b30879b9da33',1,'mlx::core']]], + ['is_5fscalar_73',['is_scalar',['../namespacemlx_1_1core.html#a985c60929757190e0b4ec51f57c767d0',1,'mlx::core']]], + ['is_5fsignaled_74',['is_signaled',['../classmlx_1_1core_1_1_event.html#a05a9a3de88185b4a89e154242b4e770a',1,'mlx::core::Event']]], + ['is_5fstatic_75',['is_static',['../structmetal_1_1is__static.html',1,'metal']]], + ['is_5fstatic_5fcast_76',['is_static_cast',['../namespacemlx_1_1core.html#afd9e740e567f9d7c28e00113caf46d5f',1,'mlx::core']]], + ['is_5ftracer_77',['is_tracer',['../classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c',1,'mlx::core::array']]], + ['isclose_78',['isclose',['../group__ops.html#ga51eac95c04400921c54716de14b52491',1,'mlx::core']]], + ['isfinite_79',['isfinite',['../group__ops.html#ga725ff0789f934b1fdd54ee29e47022ff',1,'mlx::core']]], + ['isinf_80',['isinf',['../group__ops.html#ga8fc238d5e5d1153e69da8b36015d9844',1,'mlx::core']]], + ['isnan_81',['isnan',['../namespacemetal.html#a83320ba983d90dd1fa5847b6940dc0bb',1,'metal::isnan()'],['../group__ops.html#ga175592792471b0ffb45196dca4711ba6',1,'mlx::core::isnan(const array &a, StreamOrDevice s={})']]], + ['isneginf_82',['isneginf',['../group__ops.html#ga1940523da381ed7be50656a3bc465ff3',1,'mlx::core']]], + ['isposinf_83',['isposinf',['../group__ops.html#gad80f7c4a58c12b6cb30a8b9a73008993',1,'mlx::core']]], + ['issubdtype_84',['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_85',['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_86',['itemsize',['../classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0',1,'mlx::core::array']]], + ['iterator_5fcategory_87',['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_a.js b/docs/build/html/search/all_a.js index 21bfc5e1..97a0c951 100644 --- a/docs/build/html/search/all_a.js +++ b/docs/build/html/search/all_a.js @@ -1,5 +1,8 @@ var searchData= [ - ['jump_5fparams_0',['jump_params',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a21b9ee9168dad4af84a611f861519e77',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::jump_params'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aa5611e9a84bebaee966d2b339c214ff5',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::jump_params']]], - ['jvp_1',['jvp',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#aeaf6f2b5955e7417cd1e36db42c45a80',1,'mlx::core::distributed::AllReduce::jvp()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a96f08a4ea8453d0b4b737c7b07972913',1,'mlx::core::distributed::AllGather::jvp()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#ac77b28702654df8e7d882a49357a9584',1,'mlx::core::fast::Custom::jvp()'],['../classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2',1,'mlx::core::Primitive::jvp()'],['../classmlx_1_1core_1_1_abs.html#a6c1e6eeaf4f5e63898c3487106e88e11',1,'mlx::core::Abs::jvp()'],['../classmlx_1_1core_1_1_add.html#a77230069f76fe60a2fe1007822a277b7',1,'mlx::core::Add::jvp()'],['../classmlx_1_1core_1_1_arc_cos.html#a240079c616f1a1f127aa783308096fe9',1,'mlx::core::ArcCos::jvp()'],['../classmlx_1_1core_1_1_arc_cosh.html#a80fcb790649219c30260af903b76a1d7',1,'mlx::core::ArcCosh::jvp()'],['../classmlx_1_1core_1_1_arc_sin.html#a37affc8c5e84e5c54e73a71fc0821ea4',1,'mlx::core::ArcSin::jvp()'],['../classmlx_1_1core_1_1_arc_sinh.html#a79ebf2f6dfecbfbb93170fdd1ca87bf4',1,'mlx::core::ArcSinh::jvp()'],['../classmlx_1_1core_1_1_arc_tan.html#a0f5590a2297fc133b4b0a15f9dd0c760',1,'mlx::core::ArcTan::jvp()'],['../classmlx_1_1core_1_1_arc_tan2.html#a01675433f2a4fa466b2f48272dbca738',1,'mlx::core::ArcTan2::jvp()'],['../classmlx_1_1core_1_1_arc_tanh.html#a534ebdbfe77241884630d25021274c4a',1,'mlx::core::ArcTanh::jvp()'],['../classmlx_1_1core_1_1_arg_partition.html#aedea4b47f947a6fe358dd1238cdfb595',1,'mlx::core::ArgPartition::jvp()'],['../classmlx_1_1core_1_1_arg_reduce.html#a03bb925e1b488c560bc3d67ce62ba6fa',1,'mlx::core::ArgReduce::jvp()'],['../classmlx_1_1core_1_1_as_type.html#a213400967150c57da35795e1c9f65ca0',1,'mlx::core::AsType::jvp()'],['../classmlx_1_1core_1_1_as_strided.html#a8ff0a398c47b42e08bc1122e07a02b53',1,'mlx::core::AsStrided::jvp()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a1dae6ce5dc0498d20530403fe5c5531d',1,'mlx::core::BitwiseBinary::jvp()'],['../classmlx_1_1core_1_1_broadcast.html#ae2fc3851a117079244708864be770ece',1,'mlx::core::Broadcast::jvp()'],['../classmlx_1_1core_1_1_ceil.html#a7ad74b27d9f26c886c2af516b845f066',1,'mlx::core::Ceil::jvp()'],['../classmlx_1_1core_1_1_compiled.html#aa385fe28626856ca5f57161b47a3c205',1,'mlx::core::Compiled::jvp()'],['../classmlx_1_1core_1_1_concatenate.html#a9f9e7a9dc3a00e02b84c94e1868baff1',1,'mlx::core::Concatenate::jvp()'],['../classmlx_1_1core_1_1_copy.html#a5acf02aa360cbefd86749fe9877b29cc',1,'mlx::core::Copy::jvp()'],['../classmlx_1_1core_1_1_cos.html#a99dd0b7e4aa2c838b77736f1fd539ee1',1,'mlx::core::Cos::jvp()'],['../classmlx_1_1core_1_1_cosh.html#a79facb0882443533f36a0a18407f5863',1,'mlx::core::Cosh::jvp()'],['../classmlx_1_1core_1_1_custom_transforms.html#aa9f695100170d5cae999b3da138ce720',1,'mlx::core::CustomTransforms::jvp()'],['../classmlx_1_1core_1_1_divide.html#ae1f408c447b17b3c84fe7f951d95559c',1,'mlx::core::Divide::jvp()'],['../classmlx_1_1core_1_1_div_mod.html#a1267401f25f25847888dd0a00b3fe3b9',1,'mlx::core::DivMod::jvp()'],['../classmlx_1_1core_1_1_select.html#a172df6812c2ea3e9d3c3fc5d527548d6',1,'mlx::core::Select::jvp()'],['../classmlx_1_1core_1_1_remainder.html#a972002173fc00ee86029d12bf1a9ba79',1,'mlx::core::Remainder::jvp()'],['../classmlx_1_1core_1_1_equal.html#a659d484589d7cd96d038922a1a98730f',1,'mlx::core::Equal::jvp()'],['../classmlx_1_1core_1_1_erf.html#ac733d605d80277d613954794eb8c46fe',1,'mlx::core::Erf::jvp()'],['../classmlx_1_1core_1_1_erf_inv.html#aa52710297ab6f7cd6826418c303e64be',1,'mlx::core::ErfInv::jvp()'],['../classmlx_1_1core_1_1_exp.html#aef6721832fcc283b082e35a7d436fa59',1,'mlx::core::Exp::jvp()'],['../classmlx_1_1core_1_1_expm1.html#ad463730632a00945d3a8addfdaec67b1',1,'mlx::core::Expm1::jvp()'],['../classmlx_1_1core_1_1_f_f_t.html#a34578814b6576f7b7b447541984ecba6',1,'mlx::core::FFT::jvp()'],['../classmlx_1_1core_1_1_floor.html#aa47bc360ec563b6e7d93e8b50626d8af',1,'mlx::core::Floor::jvp()'],['../classmlx_1_1core_1_1_full.html#a281a865d0664596ac8d05ea8e7f26407',1,'mlx::core::Full::jvp()'],['../classmlx_1_1core_1_1_gather.html#ac54ef8fac92ab190f1793f3dd95b9e8d',1,'mlx::core::Gather::jvp()'],['../classmlx_1_1core_1_1_greater.html#aa47a9f80f45daf6a405e34f6dc7c99c1',1,'mlx::core::Greater::jvp()'],['../classmlx_1_1core_1_1_greater_equal.html#ac7346080aaaa01d52896127f383f9d20',1,'mlx::core::GreaterEqual::jvp()'],['../classmlx_1_1core_1_1_hadamard.html#a22b9d55ae3ba5eef63505124696e712a',1,'mlx::core::Hadamard::jvp()'],['../classmlx_1_1core_1_1_imag.html#ac01c5ed9b886983450ed9f049ddac55a',1,'mlx::core::Imag::jvp()'],['../classmlx_1_1core_1_1_less.html#af1493d566f6d940b8f674aac17f5dfce',1,'mlx::core::Less::jvp()'],['../classmlx_1_1core_1_1_less_equal.html#addfe62d3557d216f8307bdf1cbff6a8f',1,'mlx::core::LessEqual::jvp()'],['../classmlx_1_1core_1_1_log.html#ac646d4155322c34f58183d97301e3832',1,'mlx::core::Log::jvp()'],['../classmlx_1_1core_1_1_log1p.html#a537e44c7c993daf48698082e75e71ba2',1,'mlx::core::Log1p::jvp()'],['../classmlx_1_1core_1_1_logical_not.html#a4838c483ced707cfda3d6cd24bf4667c',1,'mlx::core::LogicalNot::jvp()'],['../classmlx_1_1core_1_1_logical_and.html#a78d3be71da224ea19158cf9e8c4cf434',1,'mlx::core::LogicalAnd::jvp()'],['../classmlx_1_1core_1_1_logical_or.html#a292de6001c551214c8152a7a5b0e6bd4',1,'mlx::core::LogicalOr::jvp()'],['../classmlx_1_1core_1_1_log_add_exp.html#aea2d1d58794e86f3488219ed3fa14329',1,'mlx::core::LogAddExp::jvp()'],['../classmlx_1_1core_1_1_maximum.html#a25ac5d5b453e571bf7240aa8de103c39',1,'mlx::core::Maximum::jvp()'],['../classmlx_1_1core_1_1_minimum.html#a10acf4fef35eed7ca55d131b5ae2d038',1,'mlx::core::Minimum::jvp()'],['../classmlx_1_1core_1_1_multiply.html#a79f7f0bb70de2e3e41a66c96285325b4',1,'mlx::core::Multiply::jvp()'],['../classmlx_1_1core_1_1_negative.html#a7d918f9b26b8fb7b047a27d85ebab979',1,'mlx::core::Negative::jvp()'],['../classmlx_1_1core_1_1_not_equal.html#ae2d3e5776efaefed7f4c73f679b02f17',1,'mlx::core::NotEqual::jvp()'],['../classmlx_1_1core_1_1_pad.html#a6e43a42032ef11497e8d91290574ec72',1,'mlx::core::Pad::jvp()'],['../classmlx_1_1core_1_1_partition.html#a310f569a163958940ed02cf52079746a',1,'mlx::core::Partition::jvp()'],['../classmlx_1_1core_1_1_power.html#a3e78b06453faa4fd149fd19c0e7a300a',1,'mlx::core::Power::jvp()'],['../classmlx_1_1core_1_1_quantized_matmul.html#ae51fdd0b81dd26c6687577567c126e23',1,'mlx::core::QuantizedMatmul::jvp()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#adc579058752b927c71b45a962d4869e0',1,'mlx::core::GatherQMM::jvp()'],['../classmlx_1_1core_1_1_real.html#adff418a54970e2344bd3c2885aae5526',1,'mlx::core::Real::jvp()'],['../classmlx_1_1core_1_1_reshape.html#ab8fc28748991017cc3e29f93c91087a5',1,'mlx::core::Reshape::jvp()'],['../classmlx_1_1core_1_1_round.html#a032075a7d0dde2dba6189636d216c5e7',1,'mlx::core::Round::jvp()'],['../classmlx_1_1core_1_1_scan.html#a6f9c862f4fbc7eaf430a361cdd8933ee',1,'mlx::core::Scan::jvp()'],['../classmlx_1_1core_1_1_scatter.html#a270fa8ccf36ce4bbbc23875139223934',1,'mlx::core::Scatter::jvp()'],['../classmlx_1_1core_1_1_sigmoid.html#a62ca1c440896e32958c77af3340847db',1,'mlx::core::Sigmoid::jvp()'],['../classmlx_1_1core_1_1_sign.html#a957992c7aa0e86cf06f861a94372086b',1,'mlx::core::Sign::jvp()'],['../classmlx_1_1core_1_1_sin.html#af662d10180967399820496477ff050de',1,'mlx::core::Sin::jvp()'],['../classmlx_1_1core_1_1_sinh.html#a86e2b37823daf20a4c74c9f273215f9c',1,'mlx::core::Sinh::jvp()'],['../classmlx_1_1core_1_1_slice.html#a8288324045ab21d6c97b1695ce86ef36',1,'mlx::core::Slice::jvp()'],['../classmlx_1_1core_1_1_slice_update.html#a0ce3248cc61dae2b51d7aa8ee4197611',1,'mlx::core::SliceUpdate::jvp()'],['../classmlx_1_1core_1_1_softmax.html#af96172634a24332b0fc8d7ca7e73f19f',1,'mlx::core::Softmax::jvp()'],['../classmlx_1_1core_1_1_sort.html#af113ac983473433eec851c8fddfcba62',1,'mlx::core::Sort::jvp()'],['../classmlx_1_1core_1_1_split.html#ab8a8d30fd1ebf0891f41f3c32eabe282',1,'mlx::core::Split::jvp()'],['../classmlx_1_1core_1_1_square.html#a822629b93b91e2bef29959431d95e22d',1,'mlx::core::Square::jvp()'],['../classmlx_1_1core_1_1_sqrt.html#a78544b1fb5da0c14bce3051ffd177818',1,'mlx::core::Sqrt::jvp()'],['../classmlx_1_1core_1_1_subtract.html#a8100081a99df5166f02efc76d6641220',1,'mlx::core::Subtract::jvp()'],['../classmlx_1_1core_1_1_tan.html#a5d7c76122d63619df17b0e45450bc8f2',1,'mlx::core::Tan::jvp()'],['../classmlx_1_1core_1_1_tanh.html#ae0fbb5370dc1c3a4fb0dd02ca28a832a',1,'mlx::core::Tanh::jvp()'],['../classmlx_1_1core_1_1_transpose.html#ac1a523e25ab7fd9df4da363a922afbe1',1,'mlx::core::Transpose::jvp()'],['../namespacemlx_1_1core.html#a179a632200366c223d6ab56d3e032592',1,'mlx::core::jvp(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< array > &primals, const std::vector< array > &tangents)'],['../namespacemlx_1_1core.html#af38e7582db29519bb39326f6fa531d20',1,'mlx::core::jvp(const std::function< array(const array &)> &fun, const array &primal, const array &tangent)']]] + ['jit_5felse_0',['jit_else',['../backend_2metal_2kernels_2jit_2bf16_8h.html#a4b2f08732045407adc7ee181e39e5ae3',1,'bf16.h']]], + ['jit_5fendif_1',['jit_endif',['../backend_2metal_2kernels_2jit_2bf16_8h.html#a5049b44a1fffcb837e0c470ae4cafc56',1,'bf16.h']]], + ['jit_5fif_2',['jit_if',['../backend_2metal_2kernels_2jit_2bf16_8h.html#aaf5bb88c2349054a6c4c2aefee63d3d2',1,'bf16.h']]], + ['jump_5fparams_3',['jump_params',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a21b9ee9168dad4af84a611f861519e77',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::jump_params'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aa5611e9a84bebaee966d2b339c214ff5',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::jump_params']]], + ['jvp_4',['jvp',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#aeaf6f2b5955e7417cd1e36db42c45a80',1,'mlx::core::distributed::AllReduce::jvp()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a96f08a4ea8453d0b4b737c7b07972913',1,'mlx::core::distributed::AllGather::jvp()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#ac77b28702654df8e7d882a49357a9584',1,'mlx::core::fast::Custom::jvp()'],['../classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2',1,'mlx::core::Primitive::jvp()'],['../classmlx_1_1core_1_1_abs.html#a6c1e6eeaf4f5e63898c3487106e88e11',1,'mlx::core::Abs::jvp()'],['../classmlx_1_1core_1_1_add.html#a77230069f76fe60a2fe1007822a277b7',1,'mlx::core::Add::jvp()'],['../classmlx_1_1core_1_1_arc_cos.html#a240079c616f1a1f127aa783308096fe9',1,'mlx::core::ArcCos::jvp()'],['../classmlx_1_1core_1_1_arc_cosh.html#a80fcb790649219c30260af903b76a1d7',1,'mlx::core::ArcCosh::jvp()'],['../classmlx_1_1core_1_1_arc_sin.html#a37affc8c5e84e5c54e73a71fc0821ea4',1,'mlx::core::ArcSin::jvp()'],['../classmlx_1_1core_1_1_arc_sinh.html#a79ebf2f6dfecbfbb93170fdd1ca87bf4',1,'mlx::core::ArcSinh::jvp()'],['../classmlx_1_1core_1_1_arc_tan.html#a0f5590a2297fc133b4b0a15f9dd0c760',1,'mlx::core::ArcTan::jvp()'],['../classmlx_1_1core_1_1_arc_tan2.html#a01675433f2a4fa466b2f48272dbca738',1,'mlx::core::ArcTan2::jvp()'],['../classmlx_1_1core_1_1_arc_tanh.html#a534ebdbfe77241884630d25021274c4a',1,'mlx::core::ArcTanh::jvp()'],['../classmlx_1_1core_1_1_arg_partition.html#aedea4b47f947a6fe358dd1238cdfb595',1,'mlx::core::ArgPartition::jvp()'],['../classmlx_1_1core_1_1_arg_reduce.html#a03bb925e1b488c560bc3d67ce62ba6fa',1,'mlx::core::ArgReduce::jvp()'],['../classmlx_1_1core_1_1_as_type.html#a213400967150c57da35795e1c9f65ca0',1,'mlx::core::AsType::jvp()'],['../classmlx_1_1core_1_1_as_strided.html#a8ff0a398c47b42e08bc1122e07a02b53',1,'mlx::core::AsStrided::jvp()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a1dae6ce5dc0498d20530403fe5c5531d',1,'mlx::core::BitwiseBinary::jvp()'],['../classmlx_1_1core_1_1_broadcast.html#ae2fc3851a117079244708864be770ece',1,'mlx::core::Broadcast::jvp()'],['../classmlx_1_1core_1_1_ceil.html#a7ad74b27d9f26c886c2af516b845f066',1,'mlx::core::Ceil::jvp()'],['../classmlx_1_1core_1_1_compiled.html#aa385fe28626856ca5f57161b47a3c205',1,'mlx::core::Compiled::jvp()'],['../classmlx_1_1core_1_1_concatenate.html#a9f9e7a9dc3a00e02b84c94e1868baff1',1,'mlx::core::Concatenate::jvp()'],['../classmlx_1_1core_1_1_contiguous.html#a1f9fcae7235e0ae9217825b78cb0f991',1,'mlx::core::Contiguous::jvp()'],['../classmlx_1_1core_1_1_copy.html#a5acf02aa360cbefd86749fe9877b29cc',1,'mlx::core::Copy::jvp()'],['../classmlx_1_1core_1_1_cos.html#a99dd0b7e4aa2c838b77736f1fd539ee1',1,'mlx::core::Cos::jvp()'],['../classmlx_1_1core_1_1_cosh.html#a79facb0882443533f36a0a18407f5863',1,'mlx::core::Cosh::jvp()'],['../classmlx_1_1core_1_1_custom_transforms.html#aa9f695100170d5cae999b3da138ce720',1,'mlx::core::CustomTransforms::jvp()'],['../classmlx_1_1core_1_1_divide.html#ae1f408c447b17b3c84fe7f951d95559c',1,'mlx::core::Divide::jvp()'],['../classmlx_1_1core_1_1_div_mod.html#a1267401f25f25847888dd0a00b3fe3b9',1,'mlx::core::DivMod::jvp()'],['../classmlx_1_1core_1_1_select.html#a172df6812c2ea3e9d3c3fc5d527548d6',1,'mlx::core::Select::jvp()'],['../classmlx_1_1core_1_1_remainder.html#a972002173fc00ee86029d12bf1a9ba79',1,'mlx::core::Remainder::jvp()'],['../classmlx_1_1core_1_1_equal.html#a659d484589d7cd96d038922a1a98730f',1,'mlx::core::Equal::jvp()'],['../classmlx_1_1core_1_1_erf.html#ac733d605d80277d613954794eb8c46fe',1,'mlx::core::Erf::jvp()'],['../classmlx_1_1core_1_1_erf_inv.html#aa52710297ab6f7cd6826418c303e64be',1,'mlx::core::ErfInv::jvp()'],['../classmlx_1_1core_1_1_exp.html#aef6721832fcc283b082e35a7d436fa59',1,'mlx::core::Exp::jvp()'],['../classmlx_1_1core_1_1_expm1.html#ad463730632a00945d3a8addfdaec67b1',1,'mlx::core::Expm1::jvp()'],['../classmlx_1_1core_1_1_f_f_t.html#a34578814b6576f7b7b447541984ecba6',1,'mlx::core::FFT::jvp()'],['../classmlx_1_1core_1_1_floor.html#aa47bc360ec563b6e7d93e8b50626d8af',1,'mlx::core::Floor::jvp()'],['../classmlx_1_1core_1_1_full.html#a281a865d0664596ac8d05ea8e7f26407',1,'mlx::core::Full::jvp()'],['../classmlx_1_1core_1_1_gather.html#ac54ef8fac92ab190f1793f3dd95b9e8d',1,'mlx::core::Gather::jvp()'],['../classmlx_1_1core_1_1_greater.html#aa47a9f80f45daf6a405e34f6dc7c99c1',1,'mlx::core::Greater::jvp()'],['../classmlx_1_1core_1_1_greater_equal.html#ac7346080aaaa01d52896127f383f9d20',1,'mlx::core::GreaterEqual::jvp()'],['../classmlx_1_1core_1_1_hadamard.html#a22b9d55ae3ba5eef63505124696e712a',1,'mlx::core::Hadamard::jvp()'],['../classmlx_1_1core_1_1_imag.html#ac01c5ed9b886983450ed9f049ddac55a',1,'mlx::core::Imag::jvp()'],['../classmlx_1_1core_1_1_less.html#af1493d566f6d940b8f674aac17f5dfce',1,'mlx::core::Less::jvp()'],['../classmlx_1_1core_1_1_less_equal.html#addfe62d3557d216f8307bdf1cbff6a8f',1,'mlx::core::LessEqual::jvp()'],['../classmlx_1_1core_1_1_log.html#ac646d4155322c34f58183d97301e3832',1,'mlx::core::Log::jvp()'],['../classmlx_1_1core_1_1_log1p.html#a537e44c7c993daf48698082e75e71ba2',1,'mlx::core::Log1p::jvp()'],['../classmlx_1_1core_1_1_logical_not.html#a4838c483ced707cfda3d6cd24bf4667c',1,'mlx::core::LogicalNot::jvp()'],['../classmlx_1_1core_1_1_logical_and.html#a78d3be71da224ea19158cf9e8c4cf434',1,'mlx::core::LogicalAnd::jvp()'],['../classmlx_1_1core_1_1_logical_or.html#a292de6001c551214c8152a7a5b0e6bd4',1,'mlx::core::LogicalOr::jvp()'],['../classmlx_1_1core_1_1_log_add_exp.html#aea2d1d58794e86f3488219ed3fa14329',1,'mlx::core::LogAddExp::jvp()'],['../classmlx_1_1core_1_1_maximum.html#a25ac5d5b453e571bf7240aa8de103c39',1,'mlx::core::Maximum::jvp()'],['../classmlx_1_1core_1_1_minimum.html#a10acf4fef35eed7ca55d131b5ae2d038',1,'mlx::core::Minimum::jvp()'],['../classmlx_1_1core_1_1_multiply.html#a79f7f0bb70de2e3e41a66c96285325b4',1,'mlx::core::Multiply::jvp()'],['../classmlx_1_1core_1_1_negative.html#a7d918f9b26b8fb7b047a27d85ebab979',1,'mlx::core::Negative::jvp()'],['../classmlx_1_1core_1_1_not_equal.html#ae2d3e5776efaefed7f4c73f679b02f17',1,'mlx::core::NotEqual::jvp()'],['../classmlx_1_1core_1_1_pad.html#a6e43a42032ef11497e8d91290574ec72',1,'mlx::core::Pad::jvp()'],['../classmlx_1_1core_1_1_partition.html#a310f569a163958940ed02cf52079746a',1,'mlx::core::Partition::jvp()'],['../classmlx_1_1core_1_1_power.html#a3e78b06453faa4fd149fd19c0e7a300a',1,'mlx::core::Power::jvp()'],['../classmlx_1_1core_1_1_quantized_matmul.html#ae51fdd0b81dd26c6687577567c126e23',1,'mlx::core::QuantizedMatmul::jvp()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#adc579058752b927c71b45a962d4869e0',1,'mlx::core::GatherQMM::jvp()'],['../classmlx_1_1core_1_1_real.html#adff418a54970e2344bd3c2885aae5526',1,'mlx::core::Real::jvp()'],['../classmlx_1_1core_1_1_reshape.html#ab8fc28748991017cc3e29f93c91087a5',1,'mlx::core::Reshape::jvp()'],['../classmlx_1_1core_1_1_round.html#a032075a7d0dde2dba6189636d216c5e7',1,'mlx::core::Round::jvp()'],['../classmlx_1_1core_1_1_scan.html#a6f9c862f4fbc7eaf430a361cdd8933ee',1,'mlx::core::Scan::jvp()'],['../classmlx_1_1core_1_1_scatter.html#a270fa8ccf36ce4bbbc23875139223934',1,'mlx::core::Scatter::jvp()'],['../classmlx_1_1core_1_1_sigmoid.html#a62ca1c440896e32958c77af3340847db',1,'mlx::core::Sigmoid::jvp()'],['../classmlx_1_1core_1_1_sign.html#a957992c7aa0e86cf06f861a94372086b',1,'mlx::core::Sign::jvp()'],['../classmlx_1_1core_1_1_sin.html#af662d10180967399820496477ff050de',1,'mlx::core::Sin::jvp()'],['../classmlx_1_1core_1_1_sinh.html#a86e2b37823daf20a4c74c9f273215f9c',1,'mlx::core::Sinh::jvp()'],['../classmlx_1_1core_1_1_slice.html#a8288324045ab21d6c97b1695ce86ef36',1,'mlx::core::Slice::jvp()'],['../classmlx_1_1core_1_1_slice_update.html#a0ce3248cc61dae2b51d7aa8ee4197611',1,'mlx::core::SliceUpdate::jvp()'],['../classmlx_1_1core_1_1_softmax.html#af96172634a24332b0fc8d7ca7e73f19f',1,'mlx::core::Softmax::jvp()'],['../classmlx_1_1core_1_1_sort.html#af113ac983473433eec851c8fddfcba62',1,'mlx::core::Sort::jvp()'],['../classmlx_1_1core_1_1_split.html#ab8a8d30fd1ebf0891f41f3c32eabe282',1,'mlx::core::Split::jvp()'],['../classmlx_1_1core_1_1_square.html#a822629b93b91e2bef29959431d95e22d',1,'mlx::core::Square::jvp()'],['../classmlx_1_1core_1_1_sqrt.html#a78544b1fb5da0c14bce3051ffd177818',1,'mlx::core::Sqrt::jvp()'],['../classmlx_1_1core_1_1_subtract.html#a8100081a99df5166f02efc76d6641220',1,'mlx::core::Subtract::jvp()'],['../classmlx_1_1core_1_1_tan.html#a5d7c76122d63619df17b0e45450bc8f2',1,'mlx::core::Tan::jvp()'],['../classmlx_1_1core_1_1_tanh.html#ae0fbb5370dc1c3a4fb0dd02ca28a832a',1,'mlx::core::Tanh::jvp()'],['../classmlx_1_1core_1_1_transpose.html#ac1a523e25ab7fd9df4da363a922afbe1',1,'mlx::core::Transpose::jvp()'],['../namespacemlx_1_1core.html#a179a632200366c223d6ab56d3e032592',1,'mlx::core::jvp(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< array > &primals, const std::vector< array > &tangents)'],['../namespacemlx_1_1core.html#af38e7582db29519bb39326f6fa531d20',1,'mlx::core::jvp(const std::function< array(const array &)> &fun, const array &primal, const array &tangent)']]] ]; diff --git a/docs/build/html/search/all_b.js b/docs/build/html/search/all_b.js index d9a4955d..708cda09 100644 --- a/docs/build/html/search/all_b.js +++ b/docs/build/html/search/all_b.js @@ -1,25 +1,28 @@ var searchData= [ - ['k_0',['K',['../struct_m_l_x_fast_attention_params.html#ada454f5ad22ec36a22d0ff596751af23',1,'MLXFastAttentionParams::K'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#ae1b0386e4cd1a7018f4b654c4e9493ba',1,'mlx::steel::ImplicitGemmConv2DParams::K'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#aa0851af4da8df820bdad9589ff517cff',1,'mlx::steel::GEMMParams::K'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a3733f9031e82e761ec44e72ed5c6d0e7',1,'mlx::steel::GEMMSpiltKParams::K']]], - ['kcols_1',['kCols',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a948784652e93830887ee8ad506ec3257',1,'mlx::steel::MMATile']]], - ['kdil_2',['kdil',['../struct_m_l_x_conv_params.html#a7611db8f1621c7e09fc685ed44073b14',1,'MLXConvParams']]], - ['kelemcols_3',['kElemCols',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], - ['kelemrows_4',['kElemRows',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], - ['kelemsperfrag_5',['kElemsPerFrag',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kElemsPerFrag'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aef0ea2387e1ff5767bff8563b2d36bd6',1,'mlx::steel::MMATile::kElemsPerFrag']]], - ['kelemspertile_6',['kElemsPerTile',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a98357339ec98f804a1b12597937b318f',1,'mlx::steel::MMATile']]], - ['kernelmergesort_7',['KernelMergeSort',['../struct_kernel_merge_sort.html',1,'']]], - ['kernelmultiblockmergesort_8',['KernelMultiBlockMergeSort',['../struct_kernel_multi_block_merge_sort.html',1,'']]], - ['kernels_2eh_9',['kernels.h',['../kernels_8h.html',1,'']]], - ['key_10',['key',['../namespacemlx_1_1core_1_1random.html#acf04b6f42de11383e86dcc7f98c67bd8',1,'mlx::core::random']]], - ['keysequence_11',['KeySequence',['../classmlx_1_1core_1_1random_1_1_key_sequence.html',1,'mlx::core::random::KeySequence'],['../classmlx_1_1core_1_1random_1_1_key_sequence.html#a196eb6ce5ba1eb37cc8c67d6d1332bfe',1,'mlx::core::random::KeySequence::KeySequence()']]], - ['kfragcols_12',['kFragCols',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragCols'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906',1,'mlx::steel::MMATile::kFragCols']]], - ['kfragrows_13',['kFragRows',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragRows'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7',1,'mlx::steel::MMATile::kFragRows']]], - ['kfragsize_14',['kFragSize',['../structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d',1,'mlx::steel::BlockMMA']]], - ['kind_15',['Kind',['../structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715',1,'mlx::core::Dtype']]], - ['kindof_16',['kindof',['../namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724',1,'mlx::core']]], - ['knumfrags_17',['kNumFrags',['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae326e7693eb77c22d5a6e3e9219019d3',1,'mlx::steel::MMATile']]], - ['krows_18',['kRows',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a60ea6b8ff2923b7fe6f598e74ac54323',1,'mlx::steel::MMATile']]], - ['ktilecols_19',['kTileCols',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a46324d40f8ad61cade08a1ebad6d9ad4',1,'mlx::steel::MMATile']]], - ['ktilerows_20',['kTileRows',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1d126b14910385ab644e224ac1d0307a',1,'mlx::steel::MMATile']]], - ['kv_5ftiles_21',['KV_TILES',['../struct_m_l_x_scaled_dot_product_attention_params.html#a58ef2765fd681e6b35b2ba72030610e0',1,'MLXScaledDotProductAttentionParams']]] + ['k_0',['K',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#ae1b0386e4cd1a7018f4b654c4e9493ba',1,'mlx::steel::ImplicitGemmConv2DParams::K'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#aa0851af4da8df820bdad9589ff517cff',1,'mlx::steel::GEMMParams::K'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a3733f9031e82e761ec44e72ed5c6d0e7',1,'mlx::steel::GEMMSpiltKParams::K']]], + ['k_5fstrides_1',['K_strides',['../structmlx_1_1steel_1_1_attn_params.html#a03e5480d1cca6af541be54a8720e9974',1,'mlx::steel::AttnParams']]], + ['kcols_2',['kCols',['../structmlx_1_1steel_1_1_c_shape.html#a01b09227356b6a682a0694523a8e6901',1,'mlx::steel::CShape::kCols'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a948784652e93830887ee8ad506ec3257',1,'mlx::steel::MMATile::kCols']]], + ['kcolsperthread_3',['kColsPerThread',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1ea49efd92696b15302ee4b52ecd548c',1,'mlx::steel::MMATile']]], + ['kdil_4',['kdil',['../struct_m_l_x_conv_params.html#a7611db8f1621c7e09fc685ed44073b14',1,'MLXConvParams']]], + ['kelemcols_5',['kElemCols',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], + ['kelemrows_6',['kElemRows',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], + ['kelemsperfrag_7',['kElemsPerFrag',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kElemsPerFrag'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aef0ea2387e1ff5767bff8563b2d36bd6',1,'mlx::steel::MMATile::kElemsPerFrag']]], + ['kelemspertile_8',['kElemsPerTile',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a98357339ec98f804a1b12597937b318f',1,'mlx::steel::MMATile']]], + ['kernelmergesort_9',['KernelMergeSort',['../struct_kernel_merge_sort.html',1,'']]], + ['kernelmultiblockmergesort_10',['KernelMultiBlockMergeSort',['../struct_kernel_multi_block_merge_sort.html',1,'']]], + ['kernels_2eh_11',['kernels.h',['../kernels_8h.html',1,'']]], + ['key_12',['key',['../namespacemlx_1_1core_1_1random.html#acf04b6f42de11383e86dcc7f98c67bd8',1,'mlx::core::random']]], + ['keysequence_13',['KeySequence',['../classmlx_1_1core_1_1random_1_1_key_sequence.html',1,'mlx::core::random::KeySequence'],['../classmlx_1_1core_1_1random_1_1_key_sequence.html#a196eb6ce5ba1eb37cc8c67d6d1332bfe',1,'mlx::core::random::KeySequence::KeySequence()']]], + ['kfragcols_14',['kFragCols',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragCols'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906',1,'mlx::steel::MMATile::kFragCols']]], + ['kfragrows_15',['kFragRows',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragRows'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7',1,'mlx::steel::MMATile::kFragRows']]], + ['kfragsize_16',['kFragSize',['../structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d',1,'mlx::steel::BlockMMA']]], + ['kind_17',['Kind',['../structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715',1,'mlx::core::Dtype']]], + ['kindof_18',['kindof',['../namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724',1,'mlx::core']]], + ['kl_19',['kL',['../structmlx_1_1steel_1_1_attn_params.html#a497b7404bcd25b535c3589c61f269f63',1,'mlx::steel::AttnParams']]], + ['knumfrags_20',['kNumFrags',['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae326e7693eb77c22d5a6e3e9219019d3',1,'mlx::steel::MMATile']]], + ['krows_21',['kRows',['../structmlx_1_1steel_1_1_c_shape.html#a5caf36cb9acf9f90ba59a9b0b4197993',1,'mlx::steel::CShape::kRows'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a60ea6b8ff2923b7fe6f598e74ac54323',1,'mlx::steel::MMATile::kRows']]], + ['krowsperthread_22',['kRowsPerThread',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a5b1d1c85a5046108a4e38bdc5a0ea74e',1,'mlx::steel::MMATile']]], + ['ktilecols_23',['kTileCols',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a46324d40f8ad61cade08a1ebad6d9ad4',1,'mlx::steel::MMATile']]], + ['ktilerows_24',['kTileRows',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1d126b14910385ab644e224ac1d0307a',1,'mlx::steel::MMATile']]] ]; diff --git a/docs/build/html/search/all_c.js b/docs/build/html/search/all_c.js index fc3efb46..7377a775 100644 --- a/docs/build/html/search/all_c.js +++ b/docs/build/html/search/all_c.js @@ -8,82 +8,79 @@ var searchData= ['layer_5fnorm_5',['layer_norm',['../namespacemlx_1_1core_1_1fast.html#a01bd533ebd0e2415c4ee30032d51d7bf',1,'mlx::core::fast']]], ['layernorm_6',['LayerNorm',['../classmlx_1_1core_1_1fast_1_1_layer_norm.html',1,'mlx::core::fast::LayerNorm'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a5ac38d50e62850589bf51ee313303153',1,'mlx::core::fast::LayerNorm::LayerNorm()']]], ['layernormvjp_7',['LayerNormVJP',['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html',1,'mlx::core::fast::LayerNormVJP'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a41bc1391dbc0cf63b2c85b67956c08d9',1,'mlx::core::fast::LayerNormVJP::LayerNormVJP()']]], - ['lda_8',['lda',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#afec42b532ffcad32bbffd494526bef03',1,'mlx::steel::GEMMParams::lda'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a6fac3c4a7c35af7b46b53f9662f882c6',1,'mlx::steel::GEMMSpiltKParams::lda']]], - ['ldb_9',['ldb',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a6032a081ab707c14b5f28069faa7cf62',1,'mlx::steel::GEMMParams::ldb'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a7f6f511854ccc98fa573bb560776ebed',1,'mlx::steel::GEMMSpiltKParams::ldb']]], - ['ldc_10',['ldc',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a888730efa5c5c8ae7ed771c3084d583c',1,'mlx::steel::GEMMSpiltKParams::ldc'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a801e2245a36632160975a784b762a4e6',1,'mlx::steel::GEMMAddMMParams::ldc']]], - ['ldd_11',['ldd',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a6e8ae14e3f97c499ad9c39358a1855ab',1,'mlx::steel::GEMMParams']]], - ['ldexp_12',['ldexp',['../namespacemetal.html#a3deed001738b6f03accd3c2195586c2b',1,'metal::ldexp()'],['../namespacemetal_1_1fast.html#adb045765987e76c7ad4b511fab0c867e',1,'metal::fast::ldexp()'],['../namespacemetal_1_1precise.html#aa0462827a08a9f475fdaeb104c98b6ab',1,'metal::precise::ldexp()']]], - ['ldk_13',['ldk',['../struct_m_l_x_fast_attention_params.html#a1f8c89bd55d89ad7b9fe27c60e3cb8d5',1,'MLXFastAttentionParams']]], - ['ldo_14',['ldo',['../struct_m_l_x_fast_attention_params.html#a9e73dc1971b5ab913bd85a7afa7cf46c',1,'MLXFastAttentionParams']]], - ['ldq_15',['ldq',['../struct_m_l_x_fast_attention_params.html#af2dadba2a28f5db2ca52472d00937e58',1,'MLXFastAttentionParams']]], - ['lds_16',['lds',['../struct_m_l_x_fast_attention_params.html#a274eeb8591c02511014dce50c4240c8a',1,'MLXFastAttentionParams']]], - ['ldv_17',['ldv',['../struct_m_l_x_fast_attention_params.html#aebada0bf0789e8706dce564752208e8b',1,'MLXFastAttentionParams']]], - ['left_5fshift_18',['left_shift',['../group__ops.html#ga89682bf78491761e062d4ee7bef0c829',1,'mlx::core']]], - ['leftshift_19',['LeftShift',['../struct_left_shift.html',1,'LeftShift'],['../structmlx_1_1core_1_1detail_1_1_left_shift.html',1,'mlx::core::detail::LeftShift'],['../classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da986b39e75cbe29fcda1d7bf7942a65a0',1,'mlx::core::BitwiseBinary::LeftShift']]], - ['length_20',['length',['../classpocketfft_1_1detail_1_1pocketfft__c.html#a1fd1a2f9b3ae5ee9f00b9ca6946eb16d',1,'pocketfft::detail::pocketfft_c::length()'],['../classpocketfft_1_1detail_1_1pocketfft__r.html#a83222fdbf81a7c6d560e0841cdfca8c6',1,'pocketfft::detail::pocketfft_r::length()'],['../classpocketfft_1_1detail_1_1_t__dct1.html#ac7a04c91d507bd8f173d2266bb5bb168',1,'pocketfft::detail::T_dct1::length()'],['../classpocketfft_1_1detail_1_1_t__dst1.html#ab205d901650e38b592ff860b7978fa3e',1,'pocketfft::detail::T_dst1::length()'],['../classpocketfft_1_1detail_1_1_t__dcst23.html#a6dab012b487ff98d11b8a9418653a478',1,'pocketfft::detail::T_dcst23::length()'],['../classpocketfft_1_1detail_1_1_t__dcst4.html#af25bf28a7ccd4690ca9934e3aa79c12f',1,'pocketfft::detail::T_dcst4::length()']]], - ['length_5fin_21',['length_in',['../classpocketfft_1_1detail_1_1multi__iter.html#a5318b79d934cddf109dff7bf96a330c8',1,'pocketfft::detail::multi_iter']]], - ['length_5fout_22',['length_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a93cd515d07cd479138a35da9df66bd41',1,'pocketfft::detail::multi_iter']]], - ['less_23',['Less',['../struct_less.html',1,'Less'],['../structmlx_1_1core_1_1detail_1_1_less.html',1,'mlx::core::detail::Less'],['../classmlx_1_1core_1_1_less.html',1,'mlx::core::Less'],['../classmlx_1_1core_1_1_less.html#aa55c5cfbab0ac30e1b72c080fe9525d7',1,'mlx::core::Less::Less()']]], - ['less_24',['less',['../group__ops.html#ga9142b8d717699a8abfa2a7398891ff8a',1,'mlx::core']]], - ['less_5fequal_25',['less_equal',['../group__ops.html#ga0d49e0c7011d0573c369c13c8f045a09',1,'mlx::core']]], - ['lessequal_26',['LessEqual',['../struct_less_equal.html',1,'LessEqual'],['../structmlx_1_1core_1_1detail_1_1_less_equal.html',1,'mlx::core::detail::LessEqual'],['../classmlx_1_1core_1_1_less_equal.html',1,'mlx::core::LessEqual'],['../classmlx_1_1core_1_1_less_equal.html#a52492a43224d47e7851beec646c27bbc',1,'mlx::core::LessEqual::LessEqual()']]], - ['lessthan_27',['LessThan',['../struct_less_than.html',1,'']]], - ['lib_5fname_28',['lib_name',['../classmlx_1_1core_1_1_compiled.html#ae5c16cb91ac31b97e7652cc526c07439',1,'mlx::core::Compiled']]], - ['limits_29',['Limits',['../struct_limits.html',1,'']]], - ['limits_3c_20bfloat16_5ft_20_3e_30',['Limits< bfloat16_t >',['../struct_limits_3_01bfloat16__t_01_4.html',1,'']]], - ['limits_3c_20bool_20_3e_31',['Limits< bool >',['../struct_limits_3_01bool_01_4.html',1,'']]], - ['limits_3c_20complex64_5ft_20_3e_32',['Limits< complex64_t >',['../struct_limits_3_01complex64__t_01_4.html',1,'']]], - ['limits_3c_20float_20_3e_33',['Limits< float >',['../struct_limits_3_01float_01_4.html',1,'']]], - ['limits_3c_20half_20_3e_34',['Limits< half >',['../struct_limits_3_01half_01_4.html',1,'']]], - ['limits_3c_20int16_5ft_20_3e_35',['Limits< int16_t >',['../struct_limits_3_01int16__t_01_4.html',1,'']]], - ['limits_3c_20int32_5ft_20_3e_36',['Limits< int32_t >',['../struct_limits_3_01int32__t_01_4.html',1,'']]], - ['limits_3c_20int64_5ft_20_3e_37',['Limits< int64_t >',['../struct_limits_3_01int64__t_01_4.html',1,'']]], - ['limits_3c_20int8_5ft_20_3e_38',['Limits< int8_t >',['../struct_limits_3_01int8__t_01_4.html',1,'']]], - ['limits_3c_20uint16_5ft_20_3e_39',['Limits< uint16_t >',['../struct_limits_3_01uint16__t_01_4.html',1,'']]], - ['limits_3c_20uint32_5ft_20_3e_40',['Limits< uint32_t >',['../struct_limits_3_01uint32__t_01_4.html',1,'']]], - ['limits_3c_20uint64_5ft_20_3e_41',['Limits< uint64_t >',['../struct_limits_3_01uint64__t_01_4.html',1,'']]], - ['limits_3c_20uint8_5ft_20_3e_42',['Limits< uint8_t >',['../struct_limits_3_01uint8__t_01_4.html',1,'']]], - ['linalg_2eh_43',['linalg.h',['../linalg_8h.html',1,'']]], - ['linspace_44',['linspace',['../group__ops.html#ga968bcabed902311dcfbd903b0fb886ec',1,'mlx::core']]], - ['load_45',['Load',['../classmlx_1_1core_1_1_load.html',1,'mlx::core::Load'],['../classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a',1,'mlx::core::Load::Load()']]], - ['load_46',['load',['../struct_read_writer.html#a120eaf4b5f32e80972a18d14e82a2d75',1,'ReadWriter::load()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa5426c6beabfb3ee41b58f01b3392a96',1,'mlx::steel::MMATile::load(const threadgroup U *src)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa9e484d8cae936503898d5b772c573f9',1,'mlx::steel::MMATile::load(const device U *src, const int ld)'],['../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_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()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3a4af67813908109da08ce7352f82da',1,'mlx::steel::MMATile::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()'],['../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)']]], - ['loader_5fa_5ft_57',['loader_a_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa8a04ed74d2259f99b337d4662c64d83',1,'mlx::steel::GEMMKernel']]], - ['loader_5fb_5ft_58',['loader_b_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa98f32278b5fd98c93ae5483c3596395',1,'mlx::steel::GEMMKernel']]], - ['loader_5fchannel_5fl_2eh_59',['loader_channel_l.h',['../loader__channel__l_8h.html',1,'']]], - ['loader_5fchannel_5fn_2eh_60',['loader_channel_n.h',['../loader__channel__n_8h.html',1,'']]], - ['loader_5fgeneral_2eh_61',['loader_general.h',['../loader__general_8h.html',1,'']]], - ['loc_62',['loc',['../structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1',1,'mlx::core::ContiguousIterator']]], - ['location_63',['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()']]], - ['log_64',['Log',['../struct_log.html',1,'Log'],['../structmlx_1_1core_1_1detail_1_1_log.html',1,'mlx::core::detail::Log'],['../classmlx_1_1core_1_1_log.html',1,'mlx::core::Log'],['../classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9',1,'mlx::core::Log::Log()']]], - ['log_65',['log',['../namespacemetal.html#a423a9f4f2fc7ef5ec7eda061277b51b6',1,'metal::log()'],['../namespacemetal_1_1fast.html#aef942e7f9e5c2e58c58644ab1bdd58d1',1,'metal::fast::log()'],['../namespacemetal_1_1precise.html#a341c2b8c27d1bed860f85f8b355023d4',1,'metal::precise::log()'],['../group__ops.html#ga6fb22d4926133573e430fcc92f4eef31',1,'mlx::core::log()']]], - ['log10_66',['Log10',['../struct_log10.html',1,'Log10'],['../structmlx_1_1core_1_1detail_1_1_log10.html',1,'mlx::core::detail::Log10']]], - ['log10_67',['log10',['../namespacemetal.html#a042b98827baa910e9d726227cec55a80',1,'metal::log10()'],['../namespacemetal_1_1fast.html#a0d1150cf2deee5100a7ea2988b3bb39e',1,'metal::fast::log10()'],['../namespacemetal_1_1precise.html#a44239067e8e9248b1574353f98e94d72',1,'metal::precise::log10()'],['../group__ops.html#ga1fdcc7fc8819caf2e6f1c327ed4e9b9e',1,'mlx::core::log10()']]], - ['log1p_68',['Log1p',['../struct_log1p.html',1,'Log1p'],['../structmlx_1_1core_1_1detail_1_1_log1p.html',1,'mlx::core::detail::Log1p'],['../classmlx_1_1core_1_1_log1p.html',1,'mlx::core::Log1p'],['../classmlx_1_1core_1_1_log1p.html#ab0d6eb90c6f98775fce56f3446ff127a',1,'mlx::core::Log1p::Log1p()']]], - ['log1p_69',['log1p',['../backend_2metal_2kernels_2utils_8h.html#a27c03f2f90ab56db2e4d59559a3d2e9a',1,'log1p(float x): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a3501b665c8837eabf9789ea27a7d6946',1,'log1p(bfloat16_t x): utils.h'],['../group__ops.html#ga20a1f4270c35b0fa544f5105a87a1604',1,'mlx::core::log1p()']]], - ['log2_70',['Log2',['../struct_log2.html',1,'Log2'],['../structmlx_1_1core_1_1detail_1_1_log2.html',1,'mlx::core::detail::Log2']]], - ['log2_71',['log2',['../namespacemetal.html#ae894dd5fc13799f120b55cab6267c89c',1,'metal::log2()'],['../namespacemetal_1_1fast.html#a986ef245dd433ae62af864f5cbb07118',1,'metal::fast::log2()'],['../namespacemetal_1_1precise.html#a632dbbdcc1a465cf4739a14306147573',1,'metal::precise::log2()'],['../group__ops.html#ga144228d7222d15af3a135b8b0f3fa21b',1,'mlx::core::log2()']]], - ['logaddexp_72',['LogAddExp',['../struct_log_add_exp.html',1,'LogAddExp'],['../structmlx_1_1core_1_1detail_1_1_log_add_exp.html',1,'mlx::core::detail::LogAddExp'],['../classmlx_1_1core_1_1_log_add_exp.html',1,'mlx::core::LogAddExp'],['../classmlx_1_1core_1_1_log_add_exp.html#ad8938ca90ccf1a3259973fc68902975a',1,'mlx::core::LogAddExp::LogAddExp()']]], - ['logaddexp_73',['logaddexp',['../group__ops.html#gaf985df6609c6bd75a14a844655d89eaa',1,'mlx::core']]], - ['logical_5fand_74',['logical_and',['../group__ops.html#ga768977cda8d68cf23f464a6af9907876',1,'mlx::core']]], - ['logical_5fnot_75',['logical_not',['../group__ops.html#gabca78d34ce93f0de2814e62225bb2a53',1,'mlx::core']]], - ['logical_5for_76',['logical_or',['../group__ops.html#ga23768728e4dd070c917fbb0ed0d0c2ec',1,'mlx::core']]], - ['logicaland_77',['LogicalAnd',['../struct_logical_and.html',1,'LogicalAnd'],['../structmlx_1_1core_1_1detail_1_1_logical_and.html',1,'mlx::core::detail::LogicalAnd'],['../classmlx_1_1core_1_1_logical_and.html',1,'mlx::core::LogicalAnd'],['../classmlx_1_1core_1_1_logical_and.html#aaf2cab8ffcf6606b8babfef60fc06fb3',1,'mlx::core::LogicalAnd::LogicalAnd()']]], - ['logicalnot_78',['LogicalNot',['../struct_logical_not.html',1,'LogicalNot'],['../structmlx_1_1core_1_1detail_1_1_logical_not.html',1,'mlx::core::detail::LogicalNot'],['../classmlx_1_1core_1_1_logical_not.html',1,'mlx::core::LogicalNot'],['../classmlx_1_1core_1_1_logical_not.html#a6f5850b4c78b83d5e2c0d37437fc79b7',1,'mlx::core::LogicalNot::LogicalNot()']]], - ['logicalor_79',['LogicalOr',['../struct_logical_or.html',1,'LogicalOr'],['../structmlx_1_1core_1_1detail_1_1_logical_or.html',1,'mlx::core::detail::LogicalOr'],['../classmlx_1_1core_1_1_logical_or.html',1,'mlx::core::LogicalOr'],['../classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918',1,'mlx::core::LogicalOr::LogicalOr()']]], - ['logsumexp_80',['logsumexp',['../group__ops.html#gacff4eb57c085d571e722083680267ac5',1,'mlx::core::logsumexp(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga59be50b4e92f1dc20b53460cefa3910d',1,'mlx::core::logsumexp(const array &a, StreamOrDevice s={})'],['../group__ops.html#gae3969c7bd24c4f3ab97831df28239689',1,'mlx::core::logsumexp(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gafef5cb2159c16a60a95470cc823bdd44',1,'mlx::core::logsumexp(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['loopalignment_81',['LoopAlignment',['../structmlx_1_1steel_1_1_loop_alignment.html',1,'mlx::steel']]], - ['looped_5felem_5fto_5floc_82',['looped_elem_to_loc',['../structlooped__elem__to__loc.html',1,'']]], - ['looped_5felem_5fto_5floc_3c_200_2c_20offset_5ft_20_3e_83',['looped_elem_to_loc< 0, offset_t >',['../structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html',1,'']]], - ['looped_5felem_5fto_5floc_3c_201_2c_20offset_5ft_20_3e_84',['looped_elem_to_loc< 1, offset_t >',['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html',1,'']]], - ['lowest_85',['lowest',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116',1,'metal::_numeric_limits_impl< bfloat16_t >']]] + ['layout_8',['layout',['../structmlx_1_1steel_1_1_layout2_d.html#a6beedf1677ee1b192fb48c83a29ac8a1',1,'mlx::steel::Layout2D']]], + ['layout2d_9',['Layout2D',['../structmlx_1_1steel_1_1_layout2_d.html',1,'mlx::steel']]], + ['lda_10',['lda',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#afec42b532ffcad32bbffd494526bef03',1,'mlx::steel::GEMMParams::lda'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a6fac3c4a7c35af7b46b53f9662f882c6',1,'mlx::steel::GEMMSpiltKParams::lda']]], + ['ldb_11',['ldb',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a6032a081ab707c14b5f28069faa7cf62',1,'mlx::steel::GEMMParams::ldb'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a7f6f511854ccc98fa573bb560776ebed',1,'mlx::steel::GEMMSpiltKParams::ldb']]], + ['ldc_12',['ldc',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a888730efa5c5c8ae7ed771c3084d583c',1,'mlx::steel::GEMMSpiltKParams::ldc'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a801e2245a36632160975a784b762a4e6',1,'mlx::steel::GEMMAddMMParams::ldc']]], + ['ldd_13',['ldd',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a6e8ae14e3f97c499ad9c39358a1855ab',1,'mlx::steel::GEMMParams']]], + ['ldexp_14',['ldexp',['../namespacemetal.html#a3deed001738b6f03accd3c2195586c2b',1,'metal::ldexp()'],['../namespacemetal_1_1fast.html#adb045765987e76c7ad4b511fab0c867e',1,'metal::fast::ldexp()'],['../namespacemetal_1_1precise.html#aa0462827a08a9f475fdaeb104c98b6ab',1,'metal::precise::ldexp()']]], + ['left_5fshift_15',['left_shift',['../group__ops.html#ga89682bf78491761e062d4ee7bef0c829',1,'mlx::core']]], + ['leftshift_16',['LeftShift',['../struct_left_shift.html',1,'LeftShift'],['../structmlx_1_1core_1_1detail_1_1_left_shift.html',1,'mlx::core::detail::LeftShift'],['../classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da986b39e75cbe29fcda1d7bf7942a65a0',1,'mlx::core::BitwiseBinary::LeftShift']]], + ['length_17',['length',['../classpocketfft_1_1detail_1_1pocketfft__c.html#a1fd1a2f9b3ae5ee9f00b9ca6946eb16d',1,'pocketfft::detail::pocketfft_c::length()'],['../classpocketfft_1_1detail_1_1pocketfft__r.html#a83222fdbf81a7c6d560e0841cdfca8c6',1,'pocketfft::detail::pocketfft_r::length()'],['../classpocketfft_1_1detail_1_1_t__dct1.html#ac7a04c91d507bd8f173d2266bb5bb168',1,'pocketfft::detail::T_dct1::length()'],['../classpocketfft_1_1detail_1_1_t__dst1.html#ab205d901650e38b592ff860b7978fa3e',1,'pocketfft::detail::T_dst1::length()'],['../classpocketfft_1_1detail_1_1_t__dcst23.html#a6dab012b487ff98d11b8a9418653a478',1,'pocketfft::detail::T_dcst23::length()'],['../classpocketfft_1_1detail_1_1_t__dcst4.html#af25bf28a7ccd4690ca9934e3aa79c12f',1,'pocketfft::detail::T_dcst4::length()']]], + ['length_5fin_18',['length_in',['../classpocketfft_1_1detail_1_1multi__iter.html#a5318b79d934cddf109dff7bf96a330c8',1,'pocketfft::detail::multi_iter']]], + ['length_5fout_19',['length_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a93cd515d07cd479138a35da9df66bd41',1,'pocketfft::detail::multi_iter']]], + ['less_20',['Less',['../struct_less.html',1,'Less'],['../structmlx_1_1core_1_1detail_1_1_less.html',1,'mlx::core::detail::Less'],['../classmlx_1_1core_1_1_less.html',1,'mlx::core::Less'],['../classmlx_1_1core_1_1_less.html#aa55c5cfbab0ac30e1b72c080fe9525d7',1,'mlx::core::Less::Less()']]], + ['less_21',['less',['../group__ops.html#ga9142b8d717699a8abfa2a7398891ff8a',1,'mlx::core']]], + ['less_5fequal_22',['less_equal',['../group__ops.html#ga0d49e0c7011d0573c369c13c8f045a09',1,'mlx::core']]], + ['lessequal_23',['LessEqual',['../struct_less_equal.html',1,'LessEqual'],['../structmlx_1_1core_1_1detail_1_1_less_equal.html',1,'mlx::core::detail::LessEqual'],['../classmlx_1_1core_1_1_less_equal.html',1,'mlx::core::LessEqual'],['../classmlx_1_1core_1_1_less_equal.html#a52492a43224d47e7851beec646c27bbc',1,'mlx::core::LessEqual::LessEqual()']]], + ['lessthan_24',['LessThan',['../struct_less_than.html',1,'']]], + ['lib_5fname_25',['lib_name',['../classmlx_1_1core_1_1_compiled.html#ae5c16cb91ac31b97e7652cc526c07439',1,'mlx::core::Compiled']]], + ['limits_26',['Limits',['../struct_limits.html',1,'']]], + ['limits_3c_20bfloat16_5ft_20_3e_27',['Limits< bfloat16_t >',['../struct_limits_3_01bfloat16__t_01_4.html',1,'']]], + ['limits_3c_20bool_20_3e_28',['Limits< bool >',['../struct_limits_3_01bool_01_4.html',1,'']]], + ['limits_3c_20complex64_5ft_20_3e_29',['Limits< complex64_t >',['../struct_limits_3_01complex64__t_01_4.html',1,'']]], + ['limits_3c_20float_20_3e_30',['Limits< float >',['../struct_limits_3_01float_01_4.html',1,'']]], + ['limits_3c_20half_20_3e_31',['Limits< half >',['../struct_limits_3_01half_01_4.html',1,'']]], + ['limits_3c_20int16_5ft_20_3e_32',['Limits< int16_t >',['../struct_limits_3_01int16__t_01_4.html',1,'']]], + ['limits_3c_20int32_5ft_20_3e_33',['Limits< int32_t >',['../struct_limits_3_01int32__t_01_4.html',1,'']]], + ['limits_3c_20int64_5ft_20_3e_34',['Limits< int64_t >',['../struct_limits_3_01int64__t_01_4.html',1,'']]], + ['limits_3c_20int8_5ft_20_3e_35',['Limits< int8_t >',['../struct_limits_3_01int8__t_01_4.html',1,'']]], + ['limits_3c_20uint16_5ft_20_3e_36',['Limits< uint16_t >',['../struct_limits_3_01uint16__t_01_4.html',1,'']]], + ['limits_3c_20uint32_5ft_20_3e_37',['Limits< uint32_t >',['../struct_limits_3_01uint32__t_01_4.html',1,'']]], + ['limits_3c_20uint64_5ft_20_3e_38',['Limits< uint64_t >',['../struct_limits_3_01uint64__t_01_4.html',1,'']]], + ['limits_3c_20uint8_5ft_20_3e_39',['Limits< uint8_t >',['../struct_limits_3_01uint8__t_01_4.html',1,'']]], + ['linalg_2eh_40',['linalg.h',['../linalg_8h.html',1,'']]], + ['linspace_41',['linspace',['../group__ops.html#ga968bcabed902311dcfbd903b0fb886ec',1,'mlx::core']]], + ['load_42',['Load',['../classmlx_1_1core_1_1_load.html',1,'mlx::core::Load'],['../classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a',1,'mlx::core::Load::Load()']]], + ['load_43',['load',['../struct_read_writer.html#a120eaf4b5f32e80972a18d14e82a2d75',1,'ReadWriter::load()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa5426c6beabfb3ee41b58f01b3392a96',1,'mlx::steel::MMATile::load(const threadgroup U *src)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa9e484d8cae936503898d5b772c573f9',1,'mlx::steel::MMATile::load(const device U *src, const int ld)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa5426c6beabfb3ee41b58f01b3392a96',1,'mlx::steel::MMATile::load(const threadgroup U *src)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa9e484d8cae936503898d5b772c573f9',1,'mlx::steel::MMATile::load(const device U *src, const int ld)'],['../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_2eh_44',['load.h',['../backend_2common_2load_8h.html',1,'(Global Namespace)'],['../io_2load_8h.html',1,'(Global Namespace)']]], + ['load_5fgguf_45',['load_gguf',['../namespacemlx_1_1core.html#a2aa12b351ce559deb14cda0a5292c2ce',1,'mlx::core']]], + ['load_5fpadded_46',['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_47',['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()'],['../structmlx_1_1steel_1_1_block_loader_t.html#ac2d95e35ba39e0984e6f1e58ca935f7d',1,'mlx::steel::BlockLoaderT::load_safe()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3a4af67813908109da08ce7352f82da',1,'mlx::steel::MMATile::load_safe()'],['../structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d',1,'mlx::steel::BlockLoader::load_safe()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3a4af67813908109da08ce7352f82da',1,'mlx::steel::MMATile::load_safe()'],['../scan_8h.html#ae8eb101e538b85f8a4bcf451489ae0ac',1,'load_safe(): scan.h']]], + ['load_5fsafetensors_48',['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_49',['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_50',['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_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27',1,'mlx::steel::BlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_block_loader_t.html#acb743f32146fdc7986264b7beb35fb38',1,'mlx::steel::BlockLoaderT::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_51',['load_vector',['../quantized_8h.html#a8dbace41de9e1e21dd59d016db11b3e9',1,'quantized.h']]], + ['load_5fvector_5fsafe_52',['load_vector_safe',['../quantized_8h.html#aa69e143d646fad332c1a53e8c9b337b7',1,'quantized.h']]], + ['loader_2eh_53',['loader.h',['../attn_2loader_8h.html',1,'(Global Namespace)'],['../conv_2loader_8h.html',1,'(Global Namespace)'],['../gemm_2loader_8h.html',1,'(Global Namespace)']]], + ['loader_5fa_5ft_54',['loader_a_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a98b6ec692580510081e2aa887a61944b',1,'mlx::steel::GEMMKernel']]], + ['loader_5fb_5ft_55',['loader_b_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1a115d5af0fb6e260165adba2e377635',1,'mlx::steel::GEMMKernel']]], + ['loader_5fchannel_5fl_2eh_56',['loader_channel_l.h',['../loader__channel__l_8h.html',1,'']]], + ['loader_5fchannel_5fn_2eh_57',['loader_channel_n.h',['../loader__channel__n_8h.html',1,'']]], + ['loader_5fgeneral_2eh_58',['loader_general.h',['../loader__general_8h.html',1,'']]], + ['loc_59',['loc',['../structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1',1,'mlx::core::ContiguousIterator']]], + ['location_60',['location',['../struct_looped_elem_to_loc.html#aba051a428ad0934a9c6d04d4d3ee6e0e',1,'LoopedElemToLoc::location()'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a66b84b12f6c1494e5908989ed2849a9f',1,'LoopedElemToLoc< 1, OffsetT, true >::location()'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a89d9ec4dc2f2f0d77e27aa0c05f261ef',1,'LoopedElemToLoc< 1, OffsetT, false >::location()']]], + ['log_61',['Log',['../struct_log.html',1,'Log'],['../structmlx_1_1core_1_1detail_1_1_log.html',1,'mlx::core::detail::Log'],['../classmlx_1_1core_1_1_log.html',1,'mlx::core::Log'],['../classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9',1,'mlx::core::Log::Log()']]], + ['log_62',['log',['../namespacemetal.html#a423a9f4f2fc7ef5ec7eda061277b51b6',1,'metal::log()'],['../namespacemetal_1_1fast.html#aef942e7f9e5c2e58c58644ab1bdd58d1',1,'metal::fast::log()'],['../namespacemetal_1_1precise.html#a341c2b8c27d1bed860f85f8b355023d4',1,'metal::precise::log()'],['../group__ops.html#ga6fb22d4926133573e430fcc92f4eef31',1,'mlx::core::log()']]], + ['log10_63',['Log10',['../struct_log10.html',1,'Log10'],['../structmlx_1_1core_1_1detail_1_1_log10.html',1,'mlx::core::detail::Log10']]], + ['log10_64',['log10',['../namespacemetal.html#a042b98827baa910e9d726227cec55a80',1,'metal::log10()'],['../namespacemetal_1_1fast.html#a0d1150cf2deee5100a7ea2988b3bb39e',1,'metal::fast::log10()'],['../namespacemetal_1_1precise.html#a44239067e8e9248b1574353f98e94d72',1,'metal::precise::log10()'],['../group__ops.html#ga1fdcc7fc8819caf2e6f1c327ed4e9b9e',1,'mlx::core::log10()']]], + ['log1p_65',['Log1p',['../struct_log1p.html',1,'Log1p'],['../structmlx_1_1core_1_1detail_1_1_log1p.html',1,'mlx::core::detail::Log1p'],['../classmlx_1_1core_1_1_log1p.html',1,'mlx::core::Log1p'],['../classmlx_1_1core_1_1_log1p.html#ab0d6eb90c6f98775fce56f3446ff127a',1,'mlx::core::Log1p::Log1p()']]], + ['log1p_66',['log1p',['../backend_2metal_2kernels_2utils_8h.html#a27c03f2f90ab56db2e4d59559a3d2e9a',1,'log1p(float x): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a3501b665c8837eabf9789ea27a7d6946',1,'log1p(bfloat16_t x): utils.h'],['../group__ops.html#ga20a1f4270c35b0fa544f5105a87a1604',1,'mlx::core::log1p()']]], + ['log2_67',['Log2',['../struct_log2.html',1,'Log2'],['../structmlx_1_1core_1_1detail_1_1_log2.html',1,'mlx::core::detail::Log2']]], + ['log2_68',['log2',['../namespacemetal.html#ae894dd5fc13799f120b55cab6267c89c',1,'metal::log2()'],['../namespacemetal_1_1fast.html#a986ef245dd433ae62af864f5cbb07118',1,'metal::fast::log2()'],['../namespacemetal_1_1precise.html#a632dbbdcc1a465cf4739a14306147573',1,'metal::precise::log2()'],['../group__ops.html#ga144228d7222d15af3a135b8b0f3fa21b',1,'mlx::core::log2()']]], + ['logaddexp_69',['LogAddExp',['../struct_log_add_exp.html',1,'LogAddExp'],['../structmlx_1_1core_1_1detail_1_1_log_add_exp.html',1,'mlx::core::detail::LogAddExp'],['../classmlx_1_1core_1_1_log_add_exp.html',1,'mlx::core::LogAddExp'],['../classmlx_1_1core_1_1_log_add_exp.html#ad8938ca90ccf1a3259973fc68902975a',1,'mlx::core::LogAddExp::LogAddExp()']]], + ['logaddexp_70',['logaddexp',['../group__ops.html#gaf985df6609c6bd75a14a844655d89eaa',1,'mlx::core']]], + ['logical_5fand_71',['logical_and',['../group__ops.html#ga768977cda8d68cf23f464a6af9907876',1,'mlx::core']]], + ['logical_5fnot_72',['logical_not',['../group__ops.html#gabca78d34ce93f0de2814e62225bb2a53',1,'mlx::core']]], + ['logical_5for_73',['logical_or',['../group__ops.html#ga23768728e4dd070c917fbb0ed0d0c2ec',1,'mlx::core']]], + ['logicaland_74',['LogicalAnd',['../struct_logical_and.html',1,'LogicalAnd'],['../structmlx_1_1core_1_1detail_1_1_logical_and.html',1,'mlx::core::detail::LogicalAnd'],['../classmlx_1_1core_1_1_logical_and.html',1,'mlx::core::LogicalAnd'],['../classmlx_1_1core_1_1_logical_and.html#aaf2cab8ffcf6606b8babfef60fc06fb3',1,'mlx::core::LogicalAnd::LogicalAnd()']]], + ['logicalnot_75',['LogicalNot',['../struct_logical_not.html',1,'LogicalNot'],['../structmlx_1_1core_1_1detail_1_1_logical_not.html',1,'mlx::core::detail::LogicalNot'],['../classmlx_1_1core_1_1_logical_not.html',1,'mlx::core::LogicalNot'],['../classmlx_1_1core_1_1_logical_not.html#a6f5850b4c78b83d5e2c0d37437fc79b7',1,'mlx::core::LogicalNot::LogicalNot()']]], + ['logicalor_76',['LogicalOr',['../struct_logical_or.html',1,'LogicalOr'],['../structmlx_1_1core_1_1detail_1_1_logical_or.html',1,'mlx::core::detail::LogicalOr'],['../classmlx_1_1core_1_1_logical_or.html',1,'mlx::core::LogicalOr'],['../classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918',1,'mlx::core::LogicalOr::LogicalOr()']]], + ['logsumexp_77',['logsumexp',['../group__ops.html#gacff4eb57c085d571e722083680267ac5',1,'mlx::core::logsumexp(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga59be50b4e92f1dc20b53460cefa3910d',1,'mlx::core::logsumexp(const array &a, StreamOrDevice s={})'],['../group__ops.html#gae3969c7bd24c4f3ab97831df28239689',1,'mlx::core::logsumexp(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gafef5cb2159c16a60a95470cc823bdd44',1,'mlx::core::logsumexp(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['loopalignment_78',['LoopAlignment',['../structmlx_1_1steel_1_1_loop_alignment.html',1,'mlx::steel']]], + ['loopedelemtoloc_79',['LoopedElemToLoc',['../struct_looped_elem_to_loc.html',1,'LoopedElemToLoc< DIM, OffsetT, General >'],['../struct_looped_elem_to_loc.html#a5653be1c990722a4a215be27efe5648b',1,'LoopedElemToLoc::LoopedElemToLoc()'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#abf536c7162d36af7367e390789944c86',1,'LoopedElemToLoc< 1, OffsetT, true >::LoopedElemToLoc()'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a0e21977d9f23b6994773e8e4f3ee70de',1,'LoopedElemToLoc< 1, OffsetT, false >::LoopedElemToLoc()']]], + ['loopedelemtoloc_3c_201_2c_20offsett_2c_20false_20_3e_80',['LoopedElemToLoc< 1, OffsetT, false >',['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html',1,'']]], + ['loopedelemtoloc_3c_201_2c_20offsett_2c_20true_20_3e_81',['LoopedElemToLoc< 1, OffsetT, true >',['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html',1,'']]], + ['lowest_82',['lowest',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116',1,'metal::_numeric_limits_impl< bfloat16_t >']]] ]; diff --git a/docs/build/html/search/all_d.js b/docs/build/html/search/all_d.js index b1b018f5..63018b94 100644 --- a/docs/build/html/search/all_d.js +++ b/docs/build/html/search/all_d.js @@ -1,6 +1,6 @@ var searchData= [ - ['m_0',['M',['../struct_m_l_x_fast_attention_params.html#a5cd3ede5f41d5fdf8177cab3f059f4d8',1,'MLXFastAttentionParams::M'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a2117fc93662d5177c8f3e7c2dbb9e2db',1,'mlx::steel::ImplicitGemmConv2DParams::M'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a85b20a4c4558cc78d76fcbd045a9c694',1,'mlx::steel::GEMMParams::M'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a8bab0cf8a20d2abefe294a7505917e7e',1,'mlx::steel::GEMMSpiltKParams::M']]], + ['m_0',['M',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a2117fc93662d5177c8f3e7c2dbb9e2db',1,'mlx::steel::ImplicitGemmConv2DParams::M'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a85b20a4c4558cc78d76fcbd045a9c694',1,'mlx::steel::GEMMParams::M'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a8bab0cf8a20d2abefe294a7505917e7e',1,'mlx::steel::GEMMSpiltKParams::M']]], ['make_5farrays_1',['make_arrays',['../classmlx_1_1core_1_1array.html#a1173db4e23f5a8230911cb8fba45d5e6',1,'mlx::core::array']]], ['make_5fcontiguous_5fstrides_2',['make_contiguous_strides',['../namespacemlx_1_1core.html#a085379297e21d57f5b3aa38ae1c26070',1,'mlx::core']]], ['make_5fstring_3',['make_string',['../namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27',1,'mlx::core']]], @@ -12,8 +12,8 @@ var searchData= ['mask_5fh_9',['mask_h',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a0b892c1a7edb9ed20c076d8945855c19',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], ['mask_5ft_10',['mask_t',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a270ab3da7c98a12525a59952742cc97d',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], ['mask_5fw_11',['mask_w',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a19ddba7259c3c2c02ed90f3f635557be',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], - ['mat_5fat_12',['mat_at',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a323a4f38cd0693bf333832bb4258b28e',1,'mlx::steel::MMATile']]], - ['mat_5ftype_13',['mat_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a72054f003c695b90a4fe5101e19cbaa9',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mat_type'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a28306efc1a903b80219c8bb16dc5b190',1,'mlx::steel::MMATile::mat_type']]], + ['mat_5fat_12',['mat_at',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a323a4f38cd0693bf333832bb4258b28e',1,'mlx::steel::MMATile::mat_at(const short i, const short j)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a323a4f38cd0693bf333832bb4258b28e',1,'mlx::steel::MMATile::mat_at(const short i, const short j)']]], + ['mat_5ftype_13',['mat_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mat_type'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1eeb197c9bdf4db42892a39cdb9bd73a',1,'mlx::steel::MMATile::mat_type']]], ['matmul_14',['Matmul',['../classmlx_1_1core_1_1_matmul.html',1,'mlx::core::Matmul'],['../classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7',1,'mlx::core::Matmul::Matmul()']]], ['matmul_15',['matmul',['../group__ops.html#ga753d59f5a9f5f2362865ee83b4dced2a',1,'mlx::core']]], ['matmul_2eh_16',['matmul.h',['../matmul_8h.html',1,'']]], @@ -23,91 +23,94 @@ var searchData= ['max_5fdigits10_20',['max_digits10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a8d3905e6f158379a0c52682266e8d0e2',1,'metal::_numeric_limits_impl< bfloat16_t >']]], ['max_5fexponent_21',['max_exponent',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61bb136f819fa392c50bdf3c38f3aad2',1,'metal::_numeric_limits_impl< bfloat16_t >']]], ['max_5fexponent10_22',['max_exponent10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a76bfb2deb0e0afc011f77bf5a6d0ed94',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['max_5foutput_5fsize_23',['MAX_OUTPUT_SIZE',['../backend_2metal_2kernels_2fft_8h.html#a28d683cf067736d76f867f30c066317e',1,'fft.h']]], - ['max_5fradix_24',['MAX_RADIX',['../backend_2metal_2kernels_2fft_8h.html#a7b6e56afa21f022c5e754b000955735a',1,'MAX_RADIX: fft.h'],['../readwrite_8h.html#a7b6e56afa21f022c5e754b000955735a',1,'MAX_RADIX: readwrite.h']]], - ['max_5freduce_5fspecialized_5fdims_25',['MAX_REDUCE_SPECIALIZED_DIMS',['../defines_8h.html#a15629f1b81a2b6f1cca26d07a2734623',1,'defines.h']]], - ['max_5fthreads_26',['max_threads',['../namespacepocketfft_1_1detail_1_1threading.html#a2d5c0729f0b66cf061918baea4337d70',1,'pocketfft::detail::threading']]], - ['maximum_27',['Maximum',['../struct_maximum.html',1,'Maximum'],['../structmlx_1_1core_1_1detail_1_1_maximum.html',1,'mlx::core::detail::Maximum'],['../classmlx_1_1core_1_1_maximum.html',1,'mlx::core::Maximum'],['../classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816',1,'mlx::core::Maximum::Maximum()']]], - ['maximum_28',['maximum',['../group__ops.html#ga7ade2ea305e2e4219c3609443fb5db8d',1,'mlx::core']]], - ['maybeinsertbarrier_29',['maybeInsertBarrier',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991',1,'mlx::core::metal::CommandEncoder']]], - ['mb_5fblock_5fmerge_30',['mb_block_merge',['../sort_8h.html#ab381cd57f344bc7304ab580bfdc78807',1,'sort.h']]], - ['mb_5fblock_5fpartition_31',['mb_block_partition',['../sort_8h.html#a32cbe4163b8b0f5cb2c97b256119a4b2',1,'sort.h']]], - ['mb_5fblock_5fsort_32',['mb_block_sort',['../sort_8h.html#aa48ff1aff1e9dc1301b6781aa0721d6b',1,'sort.h']]], - ['mean_33',['mean',['../group__ops.html#gade46e768fd46b8b640eb16f26abeecef',1,'mlx::core::mean(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga52b59fdd8e8430538e564f5bbcfa31e6',1,'mlx::core::mean(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga066161f3d3e395a1d76c638cb680d444',1,'mlx::core::mean(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga45fba73eab0e3b6e128ed3ce2f43a5da',1,'mlx::core::mean(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['median3_34',['median3',['../namespacemetal.html#aa3ff49457ce3c93fc1c0897fd1525157',1,'metal::median3()'],['../namespacemetal_1_1fast.html#a742b55f1e4369921ee7f60d70185bfbc',1,'metal::fast::median3()'],['../namespacemetal_1_1precise.html#a14555ff99c4388493fec48e070144ae2',1,'metal::precise::median3()']]], - ['merge_5fpartition_35',['merge_partition',['../struct_block_merge_sort.html#ab2300cbecb23f3433bad888924c831ca',1,'BlockMergeSort::merge_partition()'],['../struct_kernel_multi_block_merge_sort.html#ab15895b4233aba0e279cc44a07a201fe',1,'KernelMultiBlockMergeSort::merge_partition()']]], - ['merge_5fstep_36',['merge_step',['../struct_block_merge_sort.html#ab65f190edf1851b37c39ad49ce99a43c',1,'BlockMergeSort']]], - ['meshgrid_37',['meshgrid',['../group__ops.html#ga577c911618575314de63d1060656a26e',1,'mlx::core']]], - ['metal_38',['metal',['../namespacemetal.html',1,'']]], - ['metal_2eh_39',['metal.h',['../metal_8h.html',1,'']]], - ['metal_3a_3afast_40',['fast',['../namespacemetal_1_1fast.html',1,'metal']]], - ['metal_3a_3aprecise_41',['precise',['../namespacemetal_1_1precise.html',1,'metal']]], - ['metal_5fimpl_2eh_42',['metal_impl.h',['../metal__impl_8h.html',1,'']]], - ['metal_5fkernel_43',['metal_kernel',['../namespacemlx_1_1core_1_1fast.html#ab16436b465dc10ce472193d541d8426e',1,'mlx::core::fast']]], - ['metalallocator_44',['MetalAllocator',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html',1,'mlx::core::metal']]], - ['metalkernelfunction_45',['MetalKernelFunction',['../namespacemlx_1_1core_1_1fast.html#a0e8c2c4ea7a946568c8fe5b4810417e0',1,'mlx::core::fast']]], - ['min_46',['Min',['../struct_min.html',1,'Min< U >'],['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abb4560980e5d01aed14175ce8f6fc924a4f685dcd48e6614d6bb2ccda4f2686ef',1,'mlx::core::distributed::AllReduce::Min'],['../classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a0d3d1f5c94725bdc42fa692e2c074418',1,'mlx::core::Reduce::Min'],['../classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a7d2ee8f14f2e70a9d47170fecc6da898',1,'mlx::core::Scan::Min'],['../classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613cad914e4c3475ce9858f2de4bf35dcfdbf',1,'mlx::core::Scatter::Min']]], - ['min_47',['min',['../struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e',1,'Limits::min'],['../struct_limits_3_01uint8__t_01_4.html#a408bd5a337e7292f06e63da81193629a',1,'Limits< uint8_t >::min'],['../struct_limits_3_01uint16__t_01_4.html#ae173984c3be8b6750f27daed581805fe',1,'Limits< uint16_t >::min'],['../struct_limits_3_01uint32__t_01_4.html#ab0c3975e02053b234c7b606ababa66e1',1,'Limits< uint32_t >::min'],['../struct_limits_3_01uint64__t_01_4.html#a80627f39e951398283942cefa48f4dd0',1,'Limits< uint64_t >::min'],['../struct_limits_3_01int8__t_01_4.html#a7a809307d2bba80382f0645d277eaa4b',1,'Limits< int8_t >::min'],['../struct_limits_3_01int16__t_01_4.html#adca7139647801e223c35b0abc7da5240',1,'Limits< int16_t >::min'],['../struct_limits_3_01int32__t_01_4.html#af336a1b22a8ed6a83a4cfb5bf8869771',1,'Limits< int32_t >::min'],['../struct_limits_3_01int64__t_01_4.html#a1c90fb96af515badaccaa835b08f7428',1,'Limits< int64_t >::min'],['../struct_limits_3_01half_01_4.html#aca7b036c257878bf1b80912fb5d4516d',1,'Limits< half >::min'],['../struct_limits_3_01float_01_4.html#a3225e334d372ee86128c89a440d8648f',1,'Limits< float >::min'],['../struct_limits_3_01bfloat16__t_01_4.html#a2fd1811b9f615b2b897904bc27d1cb49',1,'Limits< bfloat16_t >::min'],['../struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc',1,'Limits< bool >::min'],['../struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14',1,'Limits< complex64_t >::min'],['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f',1,'metal::_numeric_limits_impl< bfloat16_t >::min()'],['../namespacemetal.html#a6653b28c9473087141eddce39878d4d3',1,'metal::min()'],['../namespacemetal_1_1fast.html#a3e958e56a4712687c381a0b64d123e61',1,'metal::fast::min()'],['../namespacemetal_1_1precise.html#afed0da2f7df3505b5dffa2389c3cb36e',1,'metal::precise::min()'],['../group__ops.html#gab27599802617a4c8f9964ab5f4ffee12',1,'mlx::core::min(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga0140b91e9cdfc3fef0da8e332f65a9e8',1,'mlx::core::min(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga6efb83cd46436678c8f8c4af15cc00f5',1,'mlx::core::min(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga36fa315eef677f4143868f552cd26d03',1,'mlx::core::min(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['min3_48',['min3',['../namespacemetal.html#a005510c8c0f964ce2b8aad3ba76a7a3f',1,'metal::min3()'],['../namespacemetal_1_1fast.html#a606a4c1b34ce05ea89ca5af81724036f',1,'metal::fast::min3()'],['../namespacemetal_1_1precise.html#a4d37ce31c3549ca4772a4ee29798e231',1,'metal::precise::min3()']]], - ['min_5fexponent_49',['min_exponent',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a13829f8c7a7c0efdc8946eff5d3c9470',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['min_5fexponent10_50',['min_exponent10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aeaed172780720e06b8731cef3177e277',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['minimum_51',['Minimum',['../struct_minimum.html',1,'Minimum'],['../structmlx_1_1core_1_1detail_1_1_minimum.html',1,'mlx::core::detail::Minimum'],['../classmlx_1_1core_1_1_minimum.html',1,'mlx::core::Minimum'],['../classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5',1,'mlx::core::Minimum::Minimum()']]], - ['minimum_52',['minimum',['../group__ops.html#ga49ba00c090f81f331c91b0c97040bce0',1,'mlx::core']]], - ['mlx_53',['mlx',['../namespacemlx.html',1,'']]], - ['mlx_2eh_54',['mlx.h',['../mlx_8h.html',1,'']]], - ['mlx_3a_3acore_55',['core',['../namespacemlx_1_1core.html',1,'mlx']]], - ['mlx_3a_3acore_3a_3aallocator_56',['allocator',['../namespacemlx_1_1core_1_1allocator.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3adetail_57',['detail',['../namespacemlx_1_1core_1_1detail.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3adistributed_58',['distributed',['../namespacemlx_1_1core_1_1distributed.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3adistributed_3a_3adetail_59',['detail',['../namespacemlx_1_1core_1_1distributed_1_1detail.html',1,'mlx::core::distributed']]], - ['mlx_3a_3acore_3a_3afast_60',['fast',['../namespacemlx_1_1core_1_1fast.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3afft_61',['fft',['../namespacemlx_1_1core_1_1fft.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3aio_62',['io',['../namespacemlx_1_1core_1_1io.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3alinalg_63',['linalg',['../namespacemlx_1_1core_1_1linalg.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3ametal_64',['metal',['../namespacemlx_1_1core_1_1metal.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3arandom_65',['random',['../namespacemlx_1_1core_1_1random.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3ascheduler_66',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html',1,'mlx::core']]], - ['mlx_3a_3asteel_67',['steel',['../namespacemlx_1_1steel.html',1,'mlx']]], - ['mlx_5fatomic_68',['mlx_atomic',['../structmlx__atomic.html',1,'']]], - ['mlx_5fatomic_3c_20t_2c_20enable_5fif_5ft_3c_20is_5fmetal_5fatomic_3c_20t_20_3e_20_3e_20_3e_69',['mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >',['../structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html',1,'']]], - ['mlx_5fatomic_5fcompare_5fexchange_5fweak_5fexplicit_70',['mlx_atomic_compare_exchange_weak_explicit',['../atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f',1,'mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread T *expected, T val, size_t offset): atomic.h'],['../atomic_8h.html#aa8f47b2e9b95d4b00ad51f08b070deb5',1,'mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread uint *expected, uint val, size_t offset): atomic.h']]], - ['mlx_5fatomic_5ffetch_5fadd_5fexplicit_71',['mlx_atomic_fetch_add_explicit',['../atomic_8h.html#aad448d9e06e001700b65ca8317216a3b',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fand_5fexplicit_72',['mlx_atomic_fetch_and_explicit',['../atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmax_5fexplicit_73',['mlx_atomic_fetch_max_explicit',['../atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmax_5fexplicit_3c_20float_20_3e_74',['mlx_atomic_fetch_max_explicit< float >',['../atomic_8h.html#a1dce2abfa16417122c4d2bf261129ae4',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmin_5fexplicit_75',['mlx_atomic_fetch_min_explicit',['../atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmin_5fexplicit_3c_20float_20_3e_76',['mlx_atomic_fetch_min_explicit< float >',['../atomic_8h.html#ab7d1dc49f319f239b7ee0b7c72976dd0',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmul_5fexplicit_77',['mlx_atomic_fetch_mul_explicit',['../atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5for_5fexplicit_78',['mlx_atomic_fetch_or_explicit',['../atomic_8h.html#ab7391f197001471e4788312bdb6ab37a',1,'atomic.h']]], - ['mlx_5fatomic_5fload_5fexplicit_79',['mlx_atomic_load_explicit',['../atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99',1,'atomic.h']]], - ['mlx_5fatomic_5fstore_5fexplicit_80',['mlx_atomic_store_explicit',['../atomic_8h.html#a0ae453140b0819a4c02f265334de98c0',1,'atomic.h']]], - ['mlx_5flapack_5ffunc_81',['MLX_LAPACK_FUNC',['../lapack_8h.html#ae22db9704827bf013a0a61f21a47464b',1,'lapack.h']]], - ['mlx_5fmtl_5fconst_82',['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_83',['MLX_MTL_LOOP_UNROLL',['../sort_8h.html#ad34b622323cebef136669fedd7229515',1,'sort.h']]], - ['mlx_5fmtl_5fpragma_5funroll_84',['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']]], - ['mlxconvparams_85',['MLXConvParams',['../struct_m_l_x_conv_params.html',1,'']]], - ['mlxconvparams_3c_202_20_3e_86',['MLXConvParams< 2 >',['../struct_m_l_x_conv_params.html',1,'']]], - ['mlxfastattentionparams_87',['MLXFastAttentionParams',['../struct_m_l_x_fast_attention_params.html',1,'']]], - ['mlxscaleddotproductattentionparams_88',['MLXScaledDotProductAttentionParams',['../struct_m_l_x_scaled_dot_product_attention_params.html',1,'']]], - ['mma_89',['mma',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a6a2c2a6d5e767d52c41b42a9d36086b0',1,'mlx::steel::BlockMMA::mma()']]], - ['mma_2eh_90',['mma.h',['../mma_8h.html',1,'']]], - ['mma_5ft_91',['mma_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#add8c6a31011a4895667c2a94a5af3782',1,'mlx::steel::GEMMKernel']]], - ['mmafrag_5facc_5ft_92',['MMAFrag_acc_t',['../structmlx_1_1steel_1_1_block_m_m_a.html#ae2c42cb6d0dde785859164c195f4d13c',1,'mlx::steel::BlockMMA']]], - ['mmafrag_5ft_93',['MMAFrag_t',['../structmlx_1_1steel_1_1_m_m_a_tile.html#abe33de70e34300745bad9aa822fd0382',1,'mlx::steel::MMATile']]], - ['mmatile_94',['MMATile',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3fb310dd08ec23c334511f7b316d1b6',1,'mlx::steel::MMATile::MMATile()']]], - ['mmatile_3c_20float_2c_201_2c_20tn_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_95',['MMATile< float, 1, TN, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], - ['mmatile_3c_20float_2c_20tm_2c_201_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_96',['MMATile< float, TM, 1, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], - ['mmatile_3c_20float_2c_20tm_2c_20tn_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_97',['MMATile< float, TM, TN, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], - ['move_5fshared_5fbuffer_98',['move_shared_buffer',['../classmlx_1_1core_1_1array.html#acce00db63e0f3d80f797b02397ade836',1,'mlx::core::array::move_shared_buffer(array other, const std::vector< size_t > &strides, Flags flags, size_t data_size, size_t offset=0)'],['../classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78',1,'mlx::core::array::move_shared_buffer(array other)']]], - ['moveaxis_99',['moveaxis',['../group__ops.html#ga24067d10a842db2c9d509ea48135a2c3',1,'mlx::core']]], - ['mpinplace_100',['MPINPLACE',['../namespacepocketfft_1_1detail.html#af5eedf3cdfc83c0a30807092c39a9ce2',1,'pocketfft::detail']]], - ['mtl_5fconst_101',['MTL_CONST',['../defines_8h.html#a767ed9f2604de22b259cee02c4ce1d22',1,'defines.h']]], - ['mtl_5fdevice_102',['mtl_device',['../classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653',1,'mlx::core::metal::Device']]], - ['mtl_5fresidency_5fset_103',['mtl_residency_set',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#ac4bfe5ef5e2eaebc458a1ed1953d15e9',1,'mlx::core::metal::ResidencySet']]], - ['mtlfclist_104',['MTLFCList',['../namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54',1,'mlx::core::metal']]], - ['mtx_105',['mtx',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a70410c9e612f871663929f1e8441a976',1,'mlx::core::scheduler::StreamThread']]], - ['multi_5fiter_106',['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_107',['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_108',['multiply',['../group__ops.html#gaf57392e641640b5d06e4c99518391c38',1,'mlx::core']]], - ['multivariate_5fnormal_109',['multivariate_normal',['../namespacemlx_1_1core_1_1random.html#a8c37da3c1c0c561cad7499d6d9db81fb',1,'mlx::core::random']]] + ['max_5fops_5fper_5fbuffer_23',['max_ops_per_buffer',['../namespacemlx_1_1core_1_1env.html#aedbf4e739553024c33dd0094dd9107aa',1,'mlx::core::env']]], + ['max_5foutput_5fsize_24',['MAX_OUTPUT_SIZE',['../backend_2metal_2kernels_2fft_8h.html#a28d683cf067736d76f867f30c066317e',1,'fft.h']]], + ['max_5fradix_25',['MAX_RADIX',['../backend_2metal_2kernels_2fft_8h.html#a7b6e56afa21f022c5e754b000955735a',1,'MAX_RADIX: fft.h'],['../readwrite_8h.html#a7b6e56afa21f022c5e754b000955735a',1,'MAX_RADIX: readwrite.h']]], + ['max_5freduce_5fspecialized_5fdims_26',['MAX_REDUCE_SPECIALIZED_DIMS',['../defines_8h.html#a15629f1b81a2b6f1cca26d07a2734623',1,'defines.h']]], + ['max_5fthreads_27',['max_threads',['../namespacepocketfft_1_1detail_1_1threading.html#a2d5c0729f0b66cf061918baea4337d70',1,'pocketfft::detail::threading']]], + ['maximum_28',['Maximum',['../struct_maximum.html',1,'Maximum'],['../structmlx_1_1core_1_1detail_1_1_maximum.html',1,'mlx::core::detail::Maximum'],['../classmlx_1_1core_1_1_maximum.html',1,'mlx::core::Maximum'],['../classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816',1,'mlx::core::Maximum::Maximum()']]], + ['maximum_29',['maximum',['../group__ops.html#ga7ade2ea305e2e4219c3609443fb5db8d',1,'mlx::core']]], + ['maxop_30',['MaxOp',['../struct_max_op.html',1,'']]], + ['maybeinsertbarrier_31',['maybeInsertBarrier',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991',1,'mlx::core::metal::CommandEncoder']]], + ['mb_5fblock_5fmerge_32',['mb_block_merge',['../sort_8h.html#ab381cd57f344bc7304ab580bfdc78807',1,'sort.h']]], + ['mb_5fblock_5fpartition_33',['mb_block_partition',['../sort_8h.html#a32cbe4163b8b0f5cb2c97b256119a4b2',1,'sort.h']]], + ['mb_5fblock_5fsort_34',['mb_block_sort',['../sort_8h.html#aa48ff1aff1e9dc1301b6781aa0721d6b',1,'sort.h']]], + ['mean_35',['mean',['../group__ops.html#gade46e768fd46b8b640eb16f26abeecef',1,'mlx::core::mean(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga52b59fdd8e8430538e564f5bbcfa31e6',1,'mlx::core::mean(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga066161f3d3e395a1d76c638cb680d444',1,'mlx::core::mean(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga45fba73eab0e3b6e128ed3ce2f43a5da',1,'mlx::core::mean(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['median3_36',['median3',['../namespacemetal.html#aa3ff49457ce3c93fc1c0897fd1525157',1,'metal::median3()'],['../namespacemetal_1_1fast.html#a742b55f1e4369921ee7f60d70185bfbc',1,'metal::fast::median3()'],['../namespacemetal_1_1precise.html#a14555ff99c4388493fec48e070144ae2',1,'metal::precise::median3()']]], + ['merge_5fpartition_37',['merge_partition',['../struct_block_merge_sort.html#ab2300cbecb23f3433bad888924c831ca',1,'BlockMergeSort::merge_partition()'],['../struct_kernel_multi_block_merge_sort.html#ab15895b4233aba0e279cc44a07a201fe',1,'KernelMultiBlockMergeSort::merge_partition()']]], + ['merge_5fstep_38',['merge_step',['../struct_block_merge_sort.html#ab65f190edf1851b37c39ad49ce99a43c',1,'BlockMergeSort']]], + ['meshgrid_39',['meshgrid',['../group__ops.html#ga577c911618575314de63d1060656a26e',1,'mlx::core']]], + ['metal_40',['metal',['../namespacemetal.html',1,'']]], + ['metal_2eh_41',['metal.h',['../metal_8h.html',1,'']]], + ['metal_3a_3afast_42',['fast',['../namespacemetal_1_1fast.html',1,'metal']]], + ['metal_3a_3aprecise_43',['precise',['../namespacemetal_1_1precise.html',1,'metal']]], + ['metal_5fimpl_2eh_44',['metal_impl.h',['../metal__impl_8h.html',1,'']]], + ['metal_5fkernel_45',['metal_kernel',['../namespacemlx_1_1core_1_1fast.html#ab16436b465dc10ce472193d541d8426e',1,'mlx::core::fast']]], + ['metalallocator_46',['MetalAllocator',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html',1,'mlx::core::metal']]], + ['metalkernelfunction_47',['MetalKernelFunction',['../namespacemlx_1_1core_1_1fast.html#a0e8c2c4ea7a946568c8fe5b4810417e0',1,'mlx::core::fast']]], + ['min_48',['Min',['../struct_min.html',1,'Min< U >'],['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abb4560980e5d01aed14175ce8f6fc924a4f685dcd48e6614d6bb2ccda4f2686ef',1,'mlx::core::distributed::AllReduce::Min'],['../classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a0d3d1f5c94725bdc42fa692e2c074418',1,'mlx::core::Reduce::Min'],['../classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a7d2ee8f14f2e70a9d47170fecc6da898',1,'mlx::core::Scan::Min'],['../classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613cad914e4c3475ce9858f2de4bf35dcfdbf',1,'mlx::core::Scatter::Min']]], + ['min_49',['min',['../struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e',1,'Limits::min'],['../struct_limits_3_01uint8__t_01_4.html#a408bd5a337e7292f06e63da81193629a',1,'Limits< uint8_t >::min'],['../struct_limits_3_01uint16__t_01_4.html#ae173984c3be8b6750f27daed581805fe',1,'Limits< uint16_t >::min'],['../struct_limits_3_01uint32__t_01_4.html#ab0c3975e02053b234c7b606ababa66e1',1,'Limits< uint32_t >::min'],['../struct_limits_3_01uint64__t_01_4.html#a80627f39e951398283942cefa48f4dd0',1,'Limits< uint64_t >::min'],['../struct_limits_3_01int8__t_01_4.html#a7a809307d2bba80382f0645d277eaa4b',1,'Limits< int8_t >::min'],['../struct_limits_3_01int16__t_01_4.html#adca7139647801e223c35b0abc7da5240',1,'Limits< int16_t >::min'],['../struct_limits_3_01int32__t_01_4.html#af336a1b22a8ed6a83a4cfb5bf8869771',1,'Limits< int32_t >::min'],['../struct_limits_3_01int64__t_01_4.html#a1c90fb96af515badaccaa835b08f7428',1,'Limits< int64_t >::min'],['../struct_limits_3_01half_01_4.html#aca7b036c257878bf1b80912fb5d4516d',1,'Limits< half >::min'],['../struct_limits_3_01float_01_4.html#a3225e334d372ee86128c89a440d8648f',1,'Limits< float >::min'],['../struct_limits_3_01bfloat16__t_01_4.html#a2fd1811b9f615b2b897904bc27d1cb49',1,'Limits< bfloat16_t >::min'],['../struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc',1,'Limits< bool >::min'],['../struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14',1,'Limits< complex64_t >::min'],['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f',1,'metal::_numeric_limits_impl< bfloat16_t >::min()'],['../namespacemetal.html#a6653b28c9473087141eddce39878d4d3',1,'metal::min()'],['../namespacemetal_1_1fast.html#a3e958e56a4712687c381a0b64d123e61',1,'metal::fast::min()'],['../namespacemetal_1_1precise.html#afed0da2f7df3505b5dffa2389c3cb36e',1,'metal::precise::min()'],['../group__ops.html#gab27599802617a4c8f9964ab5f4ffee12',1,'mlx::core::min(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga0140b91e9cdfc3fef0da8e332f65a9e8',1,'mlx::core::min(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga6efb83cd46436678c8f8c4af15cc00f5',1,'mlx::core::min(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga36fa315eef677f4143868f552cd26d03',1,'mlx::core::min(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['min3_50',['min3',['../namespacemetal.html#a005510c8c0f964ce2b8aad3ba76a7a3f',1,'metal::min3()'],['../namespacemetal_1_1fast.html#a606a4c1b34ce05ea89ca5af81724036f',1,'metal::fast::min3()'],['../namespacemetal_1_1precise.html#a4d37ce31c3549ca4772a4ee29798e231',1,'metal::precise::min3()']]], + ['min_5fexponent_51',['min_exponent',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a13829f8c7a7c0efdc8946eff5d3c9470',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['min_5fexponent10_52',['min_exponent10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aeaed172780720e06b8731cef3177e277',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['minimum_53',['Minimum',['../struct_minimum.html',1,'Minimum'],['../structmlx_1_1core_1_1detail_1_1_minimum.html',1,'mlx::core::detail::Minimum'],['../classmlx_1_1core_1_1_minimum.html',1,'mlx::core::Minimum'],['../classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5',1,'mlx::core::Minimum::Minimum()']]], + ['minimum_54',['minimum',['../group__ops.html#ga49ba00c090f81f331c91b0c97040bce0',1,'mlx::core']]], + ['mlx_55',['mlx',['../namespacemlx.html',1,'']]], + ['mlx_2eh_56',['mlx.h',['../mlx_8h.html',1,'']]], + ['mlx_3a_3acore_57',['core',['../namespacemlx_1_1core.html',1,'mlx']]], + ['mlx_3a_3acore_3a_3aallocator_58',['allocator',['../namespacemlx_1_1core_1_1allocator.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3adetail_59',['detail',['../namespacemlx_1_1core_1_1detail.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3adistributed_60',['distributed',['../namespacemlx_1_1core_1_1distributed.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3adistributed_3a_3adetail_61',['detail',['../namespacemlx_1_1core_1_1distributed_1_1detail.html',1,'mlx::core::distributed']]], + ['mlx_3a_3acore_3a_3aenv_62',['env',['../namespacemlx_1_1core_1_1env.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3afast_63',['fast',['../namespacemlx_1_1core_1_1fast.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3afft_64',['fft',['../namespacemlx_1_1core_1_1fft.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3aio_65',['io',['../namespacemlx_1_1core_1_1io.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3alinalg_66',['linalg',['../namespacemlx_1_1core_1_1linalg.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3ametal_67',['metal',['../namespacemlx_1_1core_1_1metal.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3arandom_68',['random',['../namespacemlx_1_1core_1_1random.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3ascheduler_69',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html',1,'mlx::core']]], + ['mlx_3a_3asteel_70',['steel',['../namespacemlx_1_1steel.html',1,'mlx']]], + ['mlx_5fatomic_71',['mlx_atomic',['../structmlx__atomic.html',1,'']]], + ['mlx_5fatomic_3c_20t_2c_20enable_5fif_5ft_3c_20is_5fmetal_5fatomic_3c_20t_20_3e_20_3e_20_3e_72',['mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >',['../structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html',1,'']]], + ['mlx_5fatomic_5fcompare_5fexchange_5fweak_5fexplicit_73',['mlx_atomic_compare_exchange_weak_explicit',['../atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f',1,'mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread T *expected, T val, size_t offset): atomic.h'],['../atomic_8h.html#aa8f47b2e9b95d4b00ad51f08b070deb5',1,'mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread uint *expected, uint val, size_t offset): atomic.h']]], + ['mlx_5fatomic_5ffetch_5fadd_5fexplicit_74',['mlx_atomic_fetch_add_explicit',['../atomic_8h.html#aad448d9e06e001700b65ca8317216a3b',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fand_5fexplicit_75',['mlx_atomic_fetch_and_explicit',['../atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmax_5fexplicit_76',['mlx_atomic_fetch_max_explicit',['../atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmax_5fexplicit_3c_20float_20_3e_77',['mlx_atomic_fetch_max_explicit< float >',['../atomic_8h.html#a1dce2abfa16417122c4d2bf261129ae4',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmin_5fexplicit_78',['mlx_atomic_fetch_min_explicit',['../atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmin_5fexplicit_3c_20float_20_3e_79',['mlx_atomic_fetch_min_explicit< float >',['../atomic_8h.html#ab7d1dc49f319f239b7ee0b7c72976dd0',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmul_5fexplicit_80',['mlx_atomic_fetch_mul_explicit',['../atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5for_5fexplicit_81',['mlx_atomic_fetch_or_explicit',['../atomic_8h.html#ab7391f197001471e4788312bdb6ab37a',1,'atomic.h']]], + ['mlx_5fatomic_5fload_5fexplicit_82',['mlx_atomic_load_explicit',['../atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99',1,'atomic.h']]], + ['mlx_5fatomic_5fstore_5fexplicit_83',['mlx_atomic_store_explicit',['../atomic_8h.html#a0ae453140b0819a4c02f265334de98c0',1,'atomic.h']]], + ['mlx_5flapack_5ffunc_84',['MLX_LAPACK_FUNC',['../lapack_8h.html#ae22db9704827bf013a0a61f21a47464b',1,'lapack.h']]], + ['mlx_5fmtl_5fconst_85',['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_86',['MLX_MTL_LOOP_UNROLL',['../sort_8h.html#ad34b622323cebef136669fedd7229515',1,'sort.h']]], + ['mlx_5fmtl_5fpragma_5funroll_87',['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']]], + ['mlxconvparams_88',['MLXConvParams',['../struct_m_l_x_conv_params.html',1,'']]], + ['mlxconvparams_3c_202_20_3e_89',['MLXConvParams< 2 >',['../struct_m_l_x_conv_params.html',1,'']]], + ['mma_90',['mma',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a6a2c2a6d5e767d52c41b42a9d36086b0',1,'mlx::steel::BlockMMA::mma()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a6a2c2a6d5e767d52c41b42a9d36086b0',1,'mlx::steel::BlockMMA::mma()']]], + ['mma_2eh_91',['mma.h',['../attn_2mma_8h.html',1,'(Global Namespace)'],['../gemm_2mma_8h.html',1,'(Global Namespace)']]], + ['mma_5ft_92',['mma_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ae52eb09c9478cd4f199662346ac0c83e',1,'mlx::steel::GEMMKernel']]], + ['mmafrag_5facc_5ft_93',['MMAFrag_acc_t',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8231b0e3475077c1381eb8f5daf62e35',1,'mlx::steel::BlockMMA']]], + ['mmafrag_5ft_94',['MMAFrag_t',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a6dadcd666afb3759a11094e754560dd4',1,'mlx::steel::MMATile']]], + ['mmatile_95',['MMATile',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3fb310dd08ec23c334511f7b316d1b6',1,'mlx::steel::MMATile::MMATile() thread'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3fb310dd08ec23c334511f7b316d1b6',1,'mlx::steel::MMATile::MMATile() thread']]], + ['mmatile_3c_20float_2c_201_2c_20tn_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_96',['MMATile< float, 1, TN, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], + ['mmatile_3c_20float_2c_20tm_2c_201_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_97',['MMATile< float, TM, 1, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], + ['mmatile_3c_20float_2c_20tm_2c_20tn_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_98',['MMATile< float, TM, TN, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], + ['move_5for_5fcopy_99',['move_or_copy',['../namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2',1,'mlx::core::move_or_copy(const array &in, array &out)'],['../namespacemlx_1_1core.html#aae1e770954edf1f9a35d19e0de4d857a',1,'mlx::core::move_or_copy(const array &in, array &out, const std::vector< size_t > &strides, array::Flags flags, size_t data_size, size_t offset=0)']]], + ['move_5fshared_5fbuffer_100',['move_shared_buffer',['../classmlx_1_1core_1_1array.html#acce00db63e0f3d80f797b02397ade836',1,'mlx::core::array::move_shared_buffer(array other, const std::vector< size_t > &strides, Flags flags, size_t data_size, size_t offset=0)'],['../classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78',1,'mlx::core::array::move_shared_buffer(array other)']]], + ['moveaxis_101',['moveaxis',['../group__ops.html#ga24067d10a842db2c9d509ea48135a2c3',1,'mlx::core']]], + ['mpinplace_102',['MPINPLACE',['../namespacepocketfft_1_1detail.html#af5eedf3cdfc83c0a30807092c39a9ce2',1,'pocketfft::detail']]], + ['mtl_5fconst_103',['MTL_CONST',['../defines_8h.html#a767ed9f2604de22b259cee02c4ce1d22',1,'defines.h']]], + ['mtl_5fdevice_104',['mtl_device',['../classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653',1,'mlx::core::metal::Device']]], + ['mtl_5fresidency_5fset_105',['mtl_residency_set',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#ac4bfe5ef5e2eaebc458a1ed1953d15e9',1,'mlx::core::metal::ResidencySet']]], + ['mtlfclist_106',['MTLFCList',['../namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54',1,'mlx::core::metal']]], + ['mtx_107',['mtx',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a70410c9e612f871663929f1e8441a976',1,'mlx::core::scheduler::StreamThread']]], + ['mulop_108',['MulOp',['../struct_mul_op.html',1,'']]], + ['multi_5fiter_109',['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_110',['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_111',['multiply',['../group__ops.html#gaf57392e641640b5d06e4c99518391c38',1,'mlx::core']]], + ['multivariate_5fnormal_112',['multivariate_normal',['../namespacemlx_1_1core_1_1random.html#a8c37da3c1c0c561cad7499d6d9db81fb',1,'mlx::core::random']]] ]; diff --git a/docs/build/html/search/all_e.js b/docs/build/html/search/all_e.js index 4beb98b3..908443b7 100644 --- a/docs/build/html/search/all_e.js +++ b/docs/build/html/search/all_e.js @@ -1,30 +1,30 @@ var searchData= [ - ['n_0',['N',['../struct_m_l_x_fast_attention_params.html#ab42c792a80388002e34992cbd837a167',1,'MLXFastAttentionParams::N'],['../struct_m_l_x_conv_params.html#ae6b7054dc3cffa8e6aedeb29fa7da932',1,'MLXConvParams::N'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a213f5ea4018120d8b61ab82754aaba83',1,'mlx::steel::ImplicitGemmConv2DParams::N'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a174626ab98515d89923b2841a664b9a1',1,'mlx::steel::GEMMParams::N'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a1103e79fb8962812b9a3c9d5c902ff86',1,'mlx::steel::GEMMSpiltKParams::N']]], + ['n_0',['N',['../struct_m_l_x_conv_params.html#ae6b7054dc3cffa8e6aedeb29fa7da932',1,'MLXConvParams::N'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a213f5ea4018120d8b61ab82754aaba83',1,'mlx::steel::ImplicitGemmConv2DParams::N'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a174626ab98515d89923b2841a664b9a1',1,'mlx::steel::GEMMParams::N'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a1103e79fb8962812b9a3c9d5c902ff86',1,'mlx::steel::GEMMSpiltKParams::N']]], ['n_1',['n',['../struct_read_writer.html#a655346c9ebfc33a69da3f1c1d4238dfb',1,'ReadWriter']]], ['n_5factive_5ftasks_2',['n_active_tasks',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a3c9fa21442974acba3409d49bb033131',1,'mlx::core::scheduler::Scheduler::n_active_tasks()'],['../namespacemlx_1_1core_1_1scheduler.html#a9bf641981df5fc16b0fb0dbacc0c3afd',1,'mlx::core::scheduler::n_active_tasks()']]], ['n_5fchannels_3',['n_channels',['../structmlx_1_1steel_1_1_channel_helper.html#aa476bd0fcb38494c268547fc9820fc0a',1,'mlx::steel::ChannelHelper::n_channels'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#a06c2fb9c93660e8f6916228cd77f9494',1,'mlx::steel::ChannelHelper< 1 >::n_channels'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#ac66ff37bc2cf78d96667192a6cca73b5',1,'mlx::steel::ChannelHelper< 2 >::n_channels'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#a071c015713b7bab09930661165517eff',1,'mlx::steel::ChannelHelper< 3 >::n_channels'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#a167b00a84adf93b60e3d7a943d5eb977',1,'mlx::steel::ChannelHelper< 4 >::n_channels']]], - ['n_5fkv_5fheads_4',['N_KV_HEADS',['../struct_m_l_x_scaled_dot_product_attention_params.html#a68a292b9986c20560aca88394f82e9f7',1,'MLXScaledDotProductAttentionParams']]], - ['n_5fper_5fblock_5',['N_PER_BLOCK',['../struct_kernel_merge_sort.html#a959aaf5bfb70796a525fed318f7ae8ab',1,'KernelMergeSort::N_PER_BLOCK'],['../struct_kernel_multi_block_merge_sort.html#ae5113ca5852d11999ae932439af95a5c',1,'KernelMultiBlockMergeSort::N_PER_BLOCK']]], - ['n_5fq_5fheads_6',['N_Q_HEADS',['../struct_m_l_x_scaled_dot_product_attention_params.html#a1a63d2e7ad712b4ba26219c784c95177',1,'MLXScaledDotProductAttentionParams']]], - ['n_5freads_7',['n_reads',['../struct_quantized_block_loader.html#a6213479f7a6d9314d8879f8856b0b6fb',1,'QuantizedBlockLoader']]], - ['n_5frows_8',['n_rows',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a097c48a23e1bd7d8cf3e9d531397602f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a3ec8a92c9e6643c1d5bf8af278026fe8',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a593ec140370d53f8c968f6240116d38b',1,'mlx::steel::Conv2DWeightBlockLoader::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a8b6c0936c9ad2766242664f034d1115f',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae905e56c1129606e93dbbcd7baed8f0f',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#abff29c5d96645d9113314c9a997dd7a8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aaebb6da2cac9961f5edf52d16c18de7d',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::n_rows'],['../structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5',1,'mlx::steel::BlockLoader::n_rows']]], - ['names_9',['names',['../structmlx_1_1core_1_1_node_namer.html#a57823f9a2cdc60b2f06f857b36019277',1,'mlx::core::NodeNamer']]], - ['nan_5fto_5fnum_10',['nan_to_num',['../group__ops.html#gab1467c6a9e675152e768afd6dcfb61de',1,'mlx::core']]], - ['nanequal_11',['NaNEqual',['../structmlx_1_1core_1_1detail_1_1_na_n_equal.html',1,'mlx::core::detail::NaNEqual'],['../struct_na_n_equal.html',1,'NaNEqual']]], - ['nbytes_12',['nbytes',['../classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05',1,'mlx::core::array']]], - ['nd_5floop_13',['nd_loop',['../namespacemlx_1_1core.html#a9a9254ce9975ec247a2718bc02d6f201',1,'mlx::core']]], - ['ndarr_14',['ndarr',['../classpocketfft_1_1detail_1_1ndarr.html',1,'pocketfft::detail::ndarr< T >'],['../classpocketfft_1_1detail_1_1ndarr.html#a8f0037a172d96cb1ad915a5069175fa2',1,'pocketfft::detail::ndarr::ndarr()']]], - ['ndim_15',['ndim',['../struct_indices.html#a7dec359e91d0eb2b64e5461b54308313',1,'Indices::ndim'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#ae605df33f449872e3da9777d97008051',1,'mlx::core::fast::CustomKernelShapeInfo::ndim'],['../classpocketfft_1_1detail_1_1arr__info.html#ac608c8af2a59a28a0012e308be7ee414',1,'pocketfft::detail::arr_info::ndim()'],['../classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f',1,'mlx::core::array::ndim()']]], - ['needs_5ftgp_5freduction_16',['needs_tgp_reduction',['../struct_g_e_m_v_kernel.html#ae8113fddf6fb637acfd12efd978b704c',1,'GEMVKernel::needs_tgp_reduction'],['../struct_g_e_m_v_t_kernel.html#a67be7ec69c3791f02e97ccdb00ae0e03',1,'GEMVTKernel::needs_tgp_reduction']]], - ['negative_17',['Negative',['../structmlx_1_1core_1_1detail_1_1_negative.html',1,'mlx::core::detail::Negative'],['../classmlx_1_1core_1_1_negative.html',1,'mlx::core::Negative'],['../struct_negative.html',1,'Negative'],['../classmlx_1_1core_1_1_negative.html#aa3b73395d9fa5b7215dca488bc0d3c70',1,'mlx::core::Negative::Negative()']]], - ['negative_18',['negative',['../group__ops.html#ga95d9a9425533b5ed1707eb00184dffc6',1,'mlx::core']]], - ['new_5fqueue_19',['new_queue',['../classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67',1,'mlx::core::metal::Device']]], - ['new_5fscoped_5fmemory_5fpool_20',['new_scoped_memory_pool',['../namespacemlx_1_1core_1_1metal.html#a46583a1aba89449fa72e6cb3a7090981',1,'mlx::core::metal']]], - ['new_5fstream_21',['new_stream',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a157c8da85fa1bddb8eacf8515a3cc879',1,'mlx::core::scheduler::Scheduler::new_stream()'],['../namespacemlx_1_1core_1_1metal.html#a8b4188f9a090a1da42d62b8a369bf106',1,'mlx::core::metal::new_stream()'],['../namespacemlx_1_1core.html#a6f7c63a9be10337b3b96d527e1db3c2f',1,'mlx::core::new_stream()']]], - ['next_22',['next',['../struct_quantized_block_loader.html#a674138ef7c43cc45586ea9f8fd6f6bd9',1,'QuantizedBlockLoader::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a3b71f379ff9baf39830c92f4f1ecde52',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a78d2b0098311a278be8394edbd5fc731',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#aae56c19bb562219770fec38e5666c6ce',1,'mlx::steel::Conv2DWeightBlockLoader::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#af9ce1a767266664bea131a5437002c80',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a30b10bebde7f08b89d03bdd9ea0f48da',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3e5ee68ed0ee43f7e979dd4222f76a8c',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a11743cb1c108f42ccdc6e59204a5b3e8',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::next()'],['../structmlx_1_1steel_1_1_block_loader.html#a6af21428f0e7c17b48ddedf4dd20a1e8',1,'mlx::steel::BlockLoader::next()'],['../structlooped__elem__to__loc.html#a05558dabba889ee0d80ed4b567d901ca',1,'looped_elem_to_loc::next(const constant int *shape, const constant size_t *strides)'],['../structlooped__elem__to__loc.html#add610f331ef8d7d2d1917050890f82b2',1,'looped_elem_to_loc::next(int n, const constant int *shape, const constant size_t *strides)'],['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html#a96cf2987c04210c9197e5237e425c4b4',1,'looped_elem_to_loc< 1, offset_t >::next(const constant int *, const constant size_t *strides)'],['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html#af2984b35f7d7300d4812e7872b3c8851',1,'looped_elem_to_loc< 1, offset_t >::next(int n, const constant int *, const constant size_t *strides)'],['../structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html#aa1e9e1009c16befb9a730835836436e0',1,'looped_elem_to_loc< 0, offset_t >::next(const constant int *, const constant size_t *)'],['../structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html#a1064cdfdcef779b5628ce5357a6fe4f0',1,'looped_elem_to_loc< 0, offset_t >::next(int, const constant int *, const constant size_t *)'],['../classmlx_1_1core_1_1random_1_1_key_sequence.html#a4193c5eac3ef093a740d5305b25d3e18',1,'mlx::core::random::KeySequence::next()'],['../backend_2metal_2allocator_8h.html#ae704ab07eac590091daa5fc4aec7bddb',1,'next: allocator.h']]], - ['next_5fpower_5fof_5f2_23',['next_power_of_2',['../namespacemlx_1_1core.html#a685c0530e338aabc622325685846ce93',1,'mlx::core']]], - ['nextafter_24',['nextafter',['../namespacemetal.html#a9547fd7b09164931986f6db4813bd72d',1,'metal::nextafter()'],['../namespacemetal_1_1fast.html#a4583e8be04fc0bd475b97b0934604f23',1,'metal::fast::nextafter()'],['../namespacemetal_1_1precise.html#ad012ceeb55b77f1533749b351331e026',1,'metal::precise::nextafter()']]], + ['n_5fper_5fblock_4',['N_PER_BLOCK',['../struct_kernel_merge_sort.html#a959aaf5bfb70796a525fed318f7ae8ab',1,'KernelMergeSort::N_PER_BLOCK'],['../struct_kernel_multi_block_merge_sort.html#ae5113ca5852d11999ae932439af95a5c',1,'KernelMultiBlockMergeSort::N_PER_BLOCK']]], + ['n_5freads_5',['n_reads',['../struct_quantized_block_loader.html#a6213479f7a6d9314d8879f8856b0b6fb',1,'QuantizedBlockLoader']]], + ['n_5frows_6',['n_rows',['../structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5',1,'mlx::steel::BlockLoader::n_rows'],['../structmlx_1_1steel_1_1_block_loader_t.html#a0ccc7caa93e6e709981a1a08159d41dc',1,'mlx::steel::BlockLoaderT::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a097c48a23e1bd7d8cf3e9d531397602f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a3ec8a92c9e6643c1d5bf8af278026fe8',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a593ec140370d53f8c968f6240116d38b',1,'mlx::steel::Conv2DWeightBlockLoader::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a8b6c0936c9ad2766242664f034d1115f',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae905e56c1129606e93dbbcd7baed8f0f',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#abff29c5d96645d9113314c9a997dd7a8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aaebb6da2cac9961f5edf52d16c18de7d',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::n_rows']]], + ['names_7',['names',['../structmlx_1_1core_1_1_node_namer.html#a57823f9a2cdc60b2f06f857b36019277',1,'mlx::core::NodeNamer']]], + ['nan_5fto_5fnum_8',['nan_to_num',['../group__ops.html#gab1467c6a9e675152e768afd6dcfb61de',1,'mlx::core']]], + ['nanequal_9',['NaNEqual',['../structmlx_1_1core_1_1detail_1_1_na_n_equal.html',1,'mlx::core::detail::NaNEqual'],['../struct_na_n_equal.html',1,'NaNEqual']]], + ['nbytes_10',['nbytes',['../classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05',1,'mlx::core::array']]], + ['nd_5floop_11',['nd_loop',['../namespacemlx_1_1core.html#a9a9254ce9975ec247a2718bc02d6f201',1,'mlx::core']]], + ['ndarr_12',['ndarr',['../classpocketfft_1_1detail_1_1ndarr.html',1,'pocketfft::detail::ndarr< T >'],['../classpocketfft_1_1detail_1_1ndarr.html#a8f0037a172d96cb1ad915a5069175fa2',1,'pocketfft::detail::ndarr::ndarr()']]], + ['ndim_13',['ndim',['../struct_indices.html#a7dec359e91d0eb2b64e5461b54308313',1,'Indices::ndim'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#ae605df33f449872e3da9777d97008051',1,'mlx::core::fast::CustomKernelShapeInfo::ndim'],['../classpocketfft_1_1detail_1_1arr__info.html#ac608c8af2a59a28a0012e308be7ee414',1,'pocketfft::detail::arr_info::ndim()'],['../classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f',1,'mlx::core::array::ndim()']]], + ['needs_5ftgp_5freduction_14',['needs_tgp_reduction',['../struct_g_e_m_v_kernel.html#ae8113fddf6fb637acfd12efd978b704c',1,'GEMVKernel::needs_tgp_reduction'],['../struct_g_e_m_v_t_kernel.html#a67be7ec69c3791f02e97ccdb00ae0e03',1,'GEMVTKernel::needs_tgp_reduction']]], + ['negative_15',['Negative',['../structmlx_1_1core_1_1detail_1_1_negative.html',1,'mlx::core::detail::Negative'],['../classmlx_1_1core_1_1_negative.html',1,'mlx::core::Negative'],['../struct_negative.html',1,'Negative'],['../classmlx_1_1core_1_1_negative.html#aa3b73395d9fa5b7215dca488bc0d3c70',1,'mlx::core::Negative::Negative()']]], + ['negative_16',['negative',['../group__ops.html#ga95d9a9425533b5ed1707eb00184dffc6',1,'mlx::core']]], + ['new_5fqueue_17',['new_queue',['../classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67',1,'mlx::core::metal::Device']]], + ['new_5fscoped_5fmemory_5fpool_18',['new_scoped_memory_pool',['../namespacemlx_1_1core_1_1metal.html#a46583a1aba89449fa72e6cb3a7090981',1,'mlx::core::metal']]], + ['new_5fstream_19',['new_stream',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a157c8da85fa1bddb8eacf8515a3cc879',1,'mlx::core::scheduler::Scheduler::new_stream()'],['../namespacemlx_1_1core_1_1metal.html#a8b4188f9a090a1da42d62b8a369bf106',1,'mlx::core::metal::new_stream()'],['../namespacemlx_1_1core.html#a6f7c63a9be10337b3b96d527e1db3c2f',1,'mlx::core::new_stream()']]], + ['next_20',['next',['../struct_quantized_block_loader.html#a674138ef7c43cc45586ea9f8fd6f6bd9',1,'QuantizedBlockLoader::next()'],['../structmlx_1_1steel_1_1_block_loader.html#a6af21428f0e7c17b48ddedf4dd20a1e8',1,'mlx::steel::BlockLoader::next()'],['../structmlx_1_1steel_1_1_block_loader_t.html#a6008ef45ff980dbe1119da0630f6c697',1,'mlx::steel::BlockLoaderT::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a3b71f379ff9baf39830c92f4f1ecde52',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a78d2b0098311a278be8394edbd5fc731',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#aae56c19bb562219770fec38e5666c6ce',1,'mlx::steel::Conv2DWeightBlockLoader::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#af9ce1a767266664bea131a5437002c80',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a30b10bebde7f08b89d03bdd9ea0f48da',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3e5ee68ed0ee43f7e979dd4222f76a8c',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a11743cb1c108f42ccdc6e59204a5b3e8',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::next()'],['../structmlx_1_1steel_1_1_block_loader.html#a6af21428f0e7c17b48ddedf4dd20a1e8',1,'mlx::steel::BlockLoader::next()'],['../struct_looped_elem_to_loc.html#a54c743940bf96350f3be42bba5d28205',1,'LoopedElemToLoc::next(const constant int *shape, const constant size_t *strides)'],['../struct_looped_elem_to_loc.html#a7da7bd04e79ba86f71c535b5a6ec1a2d',1,'LoopedElemToLoc::next(int n, const constant int *shape, const constant size_t *strides)'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#af5a7c0cddeb52da88fa1140f44aec45c',1,'LoopedElemToLoc< 1, OffsetT, true >::next(const constant int *shape, const constant size_t *strides)'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a8fe55b3a2fa8cd35af568085faed785d',1,'LoopedElemToLoc< 1, OffsetT, true >::next(int n, const constant int *shape, const constant size_t *strides)'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a03f3ca7a60bb85e36d7eba75e0e08b15',1,'LoopedElemToLoc< 1, OffsetT, false >::next(const constant int *, const constant size_t *strides)'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af8f2b29946324756c09951b69e170dd8',1,'LoopedElemToLoc< 1, OffsetT, false >::next(int n, const constant int *, const constant size_t *strides)'],['../classmlx_1_1core_1_1random_1_1_key_sequence.html#a4193c5eac3ef093a740d5305b25d3e18',1,'mlx::core::random::KeySequence::next()'],['../backend_2metal_2allocator_8h.html#ae704ab07eac590091daa5fc4aec7bddb',1,'next: allocator.h']]], + ['next_5fpower_5fof_5f2_21',['next_power_of_2',['../namespacemlx_1_1core.html#a685c0530e338aabc622325685846ce93',1,'mlx::core']]], + ['nextafter_22',['nextafter',['../namespacemetal.html#a9547fd7b09164931986f6db4813bd72d',1,'metal::nextafter()'],['../namespacemetal_1_1fast.html#a4583e8be04fc0bd475b97b0934604f23',1,'metal::fast::nextafter()'],['../namespacemetal_1_1precise.html#ad012ceeb55b77f1533749b351331e026',1,'metal::precise::nextafter()']]], + ['nk_23',['NK',['../structmlx_1_1steel_1_1_attn_params.html#a68a66e3fafa922dcfd1ab1f6bdc2375e',1,'mlx::steel::AttnParams']]], + ['nk_5faligned_24',['NK_aligned',['../structmlx_1_1steel_1_1_attn_params.html#aaf953954274794cfcb4e35e82d681b58',1,'mlx::steel::AttnParams']]], ['no_5ffuse_25',['no_fuse',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4ada8df7fd43da6073fec4fe5666b03dbb',1,'mlx::core']]], ['no_5fsimplify_26',['no_simplify',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4a8e5611dfddbae6e68624c59aa3e4e3e2',1,'mlx::core']]], ['nodenamer_27',['NodeNamer',['../structmlx_1_1core_1_1_node_namer.html',1,'mlx::core']]], @@ -37,8 +37,10 @@ var searchData= ['notequal_34',['NotEqual',['../structmlx_1_1core_1_1detail_1_1_not_equal.html',1,'mlx::core::detail::NotEqual'],['../classmlx_1_1core_1_1_not_equal.html',1,'mlx::core::NotEqual'],['../struct_not_equal.html',1,'NotEqual'],['../classmlx_1_1core_1_1_not_equal.html#ac568397bd17b5d9f25ad1a0ebadedbb9',1,'mlx::core::NotEqual::NotEqual()']]], ['notify_5fnew_5ftask_35',['notify_new_task',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#ae8aa34a9be8bc73508dd500000421173',1,'mlx::core::scheduler::Scheduler::notify_new_task()'],['../namespacemlx_1_1core_1_1scheduler.html#a6b7289e33cef665178fe614aac75c1b2',1,'mlx::core::scheduler::notify_new_task()']]], ['notify_5ftask_5fcompletion_36',['notify_task_completion',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#abbb2b1c2f8bae2b9c7cc51db65f18a3b',1,'mlx::core::scheduler::Scheduler::notify_task_completion()'],['../namespacemlx_1_1core_1_1scheduler.html#a1d06ffdbab36790b78deb6e34adc737f',1,'mlx::core::scheduler::notify_task_completion()']]], - ['num_5fthreads_37',['num_threads',['../namespacepocketfft_1_1detail_1_1threading.html#af5432c2e25aed679a73fe7b29534c833',1,'pocketfft::detail::threading']]], - ['number_38',['number',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df',1,'mlx::core::Dtype::number'],['../namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d',1,'mlx::core::number']]], - ['number_5fof_5felements_39',['number_of_elements',['../group__ops.html#ga6d5f5f72362488b956cdc4615ef6c636',1,'mlx::core']]], - ['numberofelements_40',['NumberOfElements',['../classmlx_1_1core_1_1_number_of_elements.html',1,'mlx::core::NumberOfElements'],['../classmlx_1_1core_1_1_number_of_elements.html#ac64d7c40ae29d687f8b7d2fa33e13b06',1,'mlx::core::NumberOfElements::NumberOfElements()']]] + ['nq_37',['NQ',['../structmlx_1_1steel_1_1_attn_params.html#a48575afc94ab9ff74deaba61464e57a1',1,'mlx::steel::AttnParams']]], + ['nq_5faligned_38',['NQ_aligned',['../structmlx_1_1steel_1_1_attn_params.html#a4cfd2ccb0fd7eb81c2a781a0614fdcbe',1,'mlx::steel::AttnParams']]], + ['num_5fthreads_39',['num_threads',['../namespacepocketfft_1_1detail_1_1threading.html#af5432c2e25aed679a73fe7b29534c833',1,'pocketfft::detail::threading']]], + ['number_40',['number',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df',1,'mlx::core::Dtype::number'],['../namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d',1,'mlx::core::number']]], + ['number_5fof_5felements_41',['number_of_elements',['../group__ops.html#ga6d5f5f72362488b956cdc4615ef6c636',1,'mlx::core']]], + ['numberofelements_42',['NumberOfElements',['../classmlx_1_1core_1_1_number_of_elements.html',1,'mlx::core::NumberOfElements'],['../classmlx_1_1core_1_1_number_of_elements.html#ac64d7c40ae29d687f8b7d2fa33e13b06',1,'mlx::core::NumberOfElements::NumberOfElements()']]] ]; diff --git a/docs/build/html/search/all_f.js b/docs/build/html/search/all_f.js index b03a5aee..68df8ad4 100644 --- a/docs/build/html/search/all_f.js +++ b/docs/build/html/search/all_f.js @@ -1,44 +1,44 @@ var searchData= [ ['o_0',['O',['../struct_m_l_x_conv_params.html#ad55ff586d30072d8154865f9dfe92d97',1,'MLXConvParams']]], - ['offset_1',['offset',['../structlooped__elem__to__loc.html#a11ef1389c9224e9117fd6374d740e0e0',1,'looped_elem_to_loc::offset'],['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html#a7aebc0b0656e3a55d0dbca27a57d600e',1,'looped_elem_to_loc< 1, offset_t >::offset']]], - ['offset_5fneg_5fidx_2',['offset_neg_idx',['../kernels_2indexing_8h.html#ab41167dc537c06fbdb4df100972393df',1,'indexing.h']]], - ['ofs_3',['ofs',['../classpocketfft_1_1detail_1_1simple__iter.html#ab59481ad9c8f04addb907c3ebb89f8fa',1,'pocketfft::detail::simple_iter::ofs()'],['../classpocketfft_1_1detail_1_1rev__iter.html#a78c3b4ad19edf9d20cab40ad109e9dd1',1,'pocketfft::detail::rev_iter::ofs()']]], - ['ones_4',['ones',['../group__ops.html#ga54eeed455321a54c8e72e16552a978f2',1,'mlx::core::ones(const std::vector< int > &shape, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga6cf4b5e8580e4436302c519d05897dab',1,'mlx::core::ones(const std::vector< int > &shape, StreamOrDevice s={})']]], - ['ones_5flike_5',['ones_like',['../group__ops.html#ga94f8d3b1906fee99da9cbe39f7be7d42',1,'mlx::core']]], - ['oofs_6',['oofs',['../classpocketfft_1_1detail_1_1multi__iter.html#aae63e67caac095d474ddd32daa5ffa34',1,'pocketfft::detail::multi_iter::oofs(size_t i) const'],['../classpocketfft_1_1detail_1_1multi__iter.html#a9236047e7419e5d21379cbf95eb3a78e',1,'pocketfft::detail::multi_iter::oofs(size_t j, size_t i) const']]], - ['op_7',['Op',['../classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23d',1,'mlx::core::BitwiseBinary']]], - ['op_8',['op',['../structmlx_1_1core_1_1_default_strided_reduce.html#ac871f55a7ddd205574974cb4492a240b',1,'mlx::core::DefaultStridedReduce::op'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#a1928f07db988715cc177999e386f4830',1,'mlx::core::DefaultContiguousReduce::op'],['../common_2binary_8h.html#a70228731d29946574b238d21fb4b360c',1,'op: binary.h']]], - ['operations_9',['Core array operations',['../group__ops.html',1,'']]], - ['operator_20bool_10',['operator bool',['../struct___no_mask.html#ad3723c1e70e46beefd283ce6317416cb',1,'_NoMask::operator bool()'],['../struct___no_mask.html#aafbf8a3201e1cc1abf74dd1f1b7272cd',1,'_NoMask::operator bool() const threadgroup'],['../struct___no_mask.html#a73e9612a619885cbc97cbd8f40df71e7',1,'_NoMask::operator bool() const device'],['../struct___no_mask.html#a4bf336d472bc677028250f76b9cdc08c',1,'_NoMask::operator bool() const constant'],['../struct___no_mask.html#ad3723c1e70e46beefd283ce6317416cb',1,'_NoMask::operator bool()'],['../struct___no_mask.html#aafbf8a3201e1cc1abf74dd1f1b7272cd',1,'_NoMask::operator bool() const threadgroup'],['../struct___no_mask.html#a73e9612a619885cbc97cbd8f40df71e7',1,'_NoMask::operator bool() const device'],['../struct___no_mask.html#a4bf336d472bc677028250f76b9cdc08c',1,'_NoMask::operator bool() const constant']]], - ['operator_20dtype_11',['operator Dtype',['../structmlx_1_1core_1_1_type_to_dtype.html#aefdd0fd6a5bbf0197a3996ccd4adea13',1,'mlx::core::TypeToDtype']]], - ['operator_20float_12',['operator float',['../structmlx_1_1core_1_1___m_l_x___b_float16.html#aaae72e5340ce91325f1925be36ba46cb',1,'mlx::core::_MLX_BFloat16::operator float()'],['../structmlx_1_1core_1_1complex128__t.html#a3e2faf180c0b785646a0e4296f709a5e',1,'mlx::core::complex128_t::operator float()'],['../structmlx_1_1core_1_1complex64__t.html#a90d224dd37308345086bb9cc882ef6fc',1,'mlx::core::complex64_t::operator float()'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a363de5054f3673bddc90293fc3c9bb99',1,'mlx::core::_MLX_Float16::operator float()']]], - ['operator_20t_13',['operator T',['../struct___m_l_x___b_float16.html#aa7dfefdf0d15e102d2b8258c9ab01836',1,'_MLX_BFloat16::operator T() const thread'],['../struct___m_l_x___b_float16.html#a2546a8afa77e14ed5b3c5da79a281260',1,'_MLX_BFloat16::operator T() const threadgroup'],['../struct___m_l_x___b_float16.html#a1d523f87740fcb852db6ab57896c245a',1,'_MLX_BFloat16::operator T() const device'],['../struct___m_l_x___b_float16.html#a95acd29283024d7093a0bc58c9468a0a',1,'_MLX_BFloat16::operator T() const constant'],['../structcomplex64__t.html#a70e9b16031eeaff3baa601f400023fcd',1,'complex64_t::operator T() const thread'],['../structcomplex64__t.html#a4f3beea7ab6001189b782a74d1746b67',1,'complex64_t::operator T() const threadgroup'],['../structcomplex64__t.html#a9f4f7eca89ffe6c8d126a4145df6d9f2',1,'complex64_t::operator T() const device'],['../structcomplex64__t.html#ac33e2e5263fec76a4fb4418c6e1d8d14',1,'complex64_t::operator T() const constant']]], - ['operator_20val_14',['operator Val',['../structmlx_1_1core_1_1_dtype.html#a3b3bc059be5836476da3cb88a4f5e9fd',1,'mlx::core::Dtype']]], - ['operator_20value_5ftype_15',['operator value_type',['../structmlx_1_1steel_1_1integral__constant.html#a0c11203bed44a6a2c387b365134dcd64',1,'mlx::steel::integral_constant']]], - ['operator_21_3d_16',['operator!=',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a971aa511ab2e7ae1caae09556643a0bd',1,'mlx::core::array::ArrayIterator::operator!='],['../backend_2metal_2kernels_2bf16_8h.html#afc6e4fc5589bbf30f978f34868dd4e55',1,'operator!=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a6baa722c22d66c7510786bb275cb8cc2',1,'operator!=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa8d9f01582a0a9f01a666d110c74db2a',1,'operator!=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa504a474ab6e00ebe2b1b7ed2f7d1ffb',1,'operator!=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abf5f3040227f021a5b84cf2eda248b2f',1,'operator!=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a347c9bbf816bad2e9e5e91aa448f8b65',1,'operator!=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a33ea086b561c652f25833a5e1ded34dd',1,'operator!=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2bbdcece13148826d3fe33af727bb79b',1,'operator!=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aeb1efa47c5f22cc0b35d49ccce73c406',1,'operator!=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa6b99cde403405df1865c989e4ce845a',1,'operator!=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a204d13a881ae8d337f6efbb98673790c',1,'operator!=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3602117b4c61d5cd4fd72fb8e5f68bd6',1,'operator!=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2721c088adfc9d73cde442d6badd2a6c',1,'operator!=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aa4364eda56525cf7576ff00e550175e6',1,'mlx::steel::operator!=()'],['../namespacemlx_1_1core.html#a94d00a1b7f8a4717ab3f26f45e4da655',1,'mlx::core::operator!=(const Device &lhs, const Device &rhs)'],['../group__ops.html#ga0ac483d85f23252ca8757e9926d5a3c5',1,'mlx::core::operator!=(const array &a, const array &b)'],['../group__ops.html#ga3fecba9f3cb9a19afd8ca492cf509ce0',1,'mlx::core::operator!=(T a, const array &b)'],['../group__ops.html#gaebbf1cfde388c7480159a03c92c9a385',1,'mlx::core::operator!=(const array &a, T b)'],['../namespacemlx_1_1core.html#a164f109bc19c927b2b3bcc47a5021419',1,'mlx::core::operator!=(const Stream &lhs, const Stream &rhs)'],['../namespacemlx_1_1core.html#ad2f9e1c230ec35d5c406dd616e8f4dea',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af5899b4d5644682cb0ac2a488f630d55',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a72ac8edd190601d7a46782582cedecd8',1,'mlx::core::operator!=(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a8084162ba2dd3f9b89195d2bebc3fbb0',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a514263e63f6825b490203ca586864687',1,'mlx::core::operator!=(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a1c482bb3d9f9d4c62dee5865892c1f96',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a0030fe7ad09837c670cdfb7d51279519',1,'mlx::core::operator!=(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ade3791bc723b8f10fbab22eadb0f705a',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ad78c664f242cd36247c13868547e3dd4',1,'mlx::core::operator!=(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab0743a1a1dcb92d40f41ca42d36f242c',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ae7a0f810e546a166c7d05849b5d41f30',1,'mlx::core::operator!=(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a676a40637a563f013c725d24fa33fdc8',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a9fcb662b1561e4136bac0106cfb63b6c',1,'mlx::core::operator!=(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abcca7fd43590c4347e0f5df8f134030c',1,'mlx::core::operator!=(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af3ede3688a2e3b3ba8cb2da180ffe151',1,'mlx::core::operator!=(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a54f48469fabd1414bef5097bcded0002',1,'mlx::core::operator!=(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af8c648e892cbc6973de535aa17dc2cfe',1,'mlx::core::operator!=(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#abc855e1c0584b64d7d995e33211361ab',1,'mlx::core::operator!=(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad3684d660d18a54505c759ab286bd936',1,'mlx::core::operator!=(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a8afdda14b14262ab5ce0a00c7745d7e8',1,'mlx::core::operator!=(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7ccc479be236f2bf3f7725729c5ba201',1,'mlx::core::operator!=(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a26a721b8111fce3a1dec9bf724034cd4',1,'mlx::core::operator!=(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad5f8c221a53a89e8095aa39fd1f61867',1,'mlx::core::operator!=(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a017b52ecf30b33da4aa8da35ccc43220',1,'mlx::core::operator!=(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a43c10ca5fb05ee7d0ee63ba56f8a08a3',1,'mlx::core::operator!=(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a81284b6ac737f91a8d1ffbbbbf938fe5',1,'mlx::core::operator!=(uint64_t lhs, _MLX_Float16 rhs)']]], - ['operator_25_17',['operator%',['../backend_2metal_2kernels_2complex_8h.html#aaf53122a07c8eca858b5a8e38ae280e0',1,'operator%(): complex.h'],['../group__ops.html#gab3bfbf82b1e4de7b00bbcf1a2255fbde',1,'mlx::core::operator%(const array &a, const array &b)'],['../group__ops.html#ga50817666f0b82afcbf4a123486af9908',1,'mlx::core::operator%(T a, const array &b)'],['../group__ops.html#ga46c01daa07433542a477d216e13a8480',1,'mlx::core::operator%(const array &a, T b)'],['../namespacemlx_1_1core.html#a8723d145dd49021bfcb8e6c99e1c91a5',1,'mlx::core::operator%(complex64_t a, complex64_t b)']]], - ['operator_26_18',['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_19',['operator&&',['../namespacemlx_1_1steel.html#a6353bf11881842e25c46b56f92b7044f',1,'mlx::steel::operator&&()'],['../group__ops.html#gaee1d774bb0843601d7a0a4257d616ae3',1,'mlx::core::operator&&(const array &a, const array &b)']]], - ['operator_26_3d_20',['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_21',['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_22',['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'],['../namespacemlx_1_1steel.html#aa0c2d29950926ae579adf6337fbea64b',1,'mlx::steel::operator*()'],['../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_23',['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_24',['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'],['../namespacemlx_1_1steel.html#a12ff4f38aa8474bf76770c7b8e3e18cb',1,'mlx::steel::operator+()'],['../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)']]], - ['operator_2b_2b_25',['operator++',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a3efe69356a84d0d4438f033992fcbd9d',1,'mlx::core::array::ArrayIterator']]], - ['operator_2b_3d_26',['operator+=',['../structpocketfft_1_1detail_1_1cmplx.html#ad4e69dcd89bdb7764c9c5807168f911e',1,'pocketfft::detail::cmplx::operator+=(const cmplx &other)'],['../structpocketfft_1_1detail_1_1cmplx.html#affa618d8850a7c232793b7c61db6d184',1,'pocketfft::detail::cmplx::operator+=(const cmplx< T2 > &other)'],['../backend_2metal_2kernels_2bf16_8h.html#ab04f480aea9fbba0895068c7558dd400',1,'operator+=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a251780ac4592cc2b1a543e417ff57770',1,'operator+=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a24381d991c2d570aa953694f396a69b5',1,'operator+=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7595740d4cc12924905d6bd1b99ee4da',1,'operator+=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac1498acb8c3623b5f412f70ab6a6528b',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abce5ab327110c164f054b43ed47f79a0',1,'operator+=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae0c70198e236ffe1a98f79987c686419',1,'operator+=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a13b3338935440ae51ecc4a356093efc5',1,'operator+=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5a0cb8544b4ebd2906ba8e7f2868e8de',1,'operator+=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7b134429ea0c8493800ff8b465410f9c',1,'operator+=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4154f90ab7857ca856f9e15fe1bf5acf',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab9ae6a51e2027b02cac9966e05f3ba68',1,'operator+=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab93ce536eb7998bee00de4af868e31a9',1,'operator+=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad0ae9e2b4874f991a2c853e1c1fe735d',1,'operator+=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a194a6670cc25ade35a24b566f31af785',1,'operator+=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3d0d689516c99003659c5d026847bd2e',1,'operator+=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a007f58508b98bb79e5c323ed0dec89b6',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa7198e580e2a83c1fd01a4b6fdf86a80',1,'operator+=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a15573fefd880adefbba079b1c1bd8082',1,'operator+=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a104cf94cb9e359d1b6ef92ced2ce0c27',1,'operator+=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa04cfcb52191fd23205a1a3572b46ae0',1,'operator+=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad684bc2ae1a2a627cd3e4a4c641e2d77',1,'operator+=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad1e28448e35f4934075b397c34ba3d66',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8ad16afd7f1711de83c0cec5af868f76',1,'operator+=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac45e9ca0c7155caebe3d0f7261518077',1,'operator+=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3c62ac679d6aa515144d40ebafe4a188',1,'operator+=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9ff5ab3aef1057fa083b53a65c8aba03',1,'operator+=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae74bb0a3c12cd1a23f3d29ce307d6fb1',1,'operator+=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac188bd19f236b098d603b0d8acd08921',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aef9fa600d107b509f2e3df7d6b080e01',1,'operator+=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af5713afb3a62967a02c3c20661951ee4',1,'operator+=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7f1b84352a3ed6171444a43da1fc7e92',1,'operator+=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af1983edd26245e6e51c6e47354095e32',1,'operator+=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8cd55d1a579540eb450e12a8a8a950be',1,'operator+=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a588ef0f7e03f306758524d378278976f',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a74751abec7086f85f4f26ced44f1ca1f',1,'operator+=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4dd3cf0e5aa116ff330352a50c18cde7',1,'operator+=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afb9a0e18c0e40c77e6143fb7d84ebfba',1,'operator+=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adf0cfd9a608a6fb3d57933e32e7d81d2',1,'operator+=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4bd92db6c8b9b5dc96332c7ae3eff8c7',1,'operator+=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5d628a5bc4fa755610392f47a523a1f1',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7c790442f77f2437b482c4a55e224fc3',1,'operator+=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a77bab4481b41be50297b257e95058706',1,'operator+=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7816a97d16b1d2f8a90227bb1da2f6ac',1,'operator+=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac244d140c6149726ea44174d3e836ca3',1,'operator+=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af802541c4c65ee4442acd495de4d27fe',1,'operator+=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac06eb2fea47a09a8a8abdaa1aa9b4603',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5263b2463fecdc97f9521d00bffea059',1,'operator+=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a24ca436ab299a710263d65302532dd3b',1,'operator+=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aee1bdf0ab2e445293708b476e8cfde3b',1,'operator+=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a190e27077f0fba642a86f5c8f488bcc2',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a9f2c9d2f21fbf9fbbacd940c6967c9d1',1,'mlx::core::operator+=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a0b1b3c48afc0a785282e43435bba8418',1,'mlx::core::operator+=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a7b763db8194e6fcb1b87eab143dfa47a',1,'mlx::core::operator+=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a827167f6a1ae55428fd218ddd51ec3b6',1,'mlx::core::operator+=(float &lhs, _MLX_Float16 rhs)']]], - ['operator_2d_27',['operator-',['../structpocketfft_1_1detail_1_1cmplx.html#a460da5db36d1c72fb1ed3496fd3abde4',1,'pocketfft::detail::cmplx::operator-()'],['../backend_2metal_2kernels_2bf16_8h.html#a6aedc8d6d0980134ac69b96f22d9a855',1,'operator-(_MLX_BFloat16 x): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a333f67614dbf8027439a7e124052cb85',1,'operator-(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a891aa4bf46c20a26a55061736aba25f1',1,'operator-(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7ad7ff44a3200853711869f7a577d931',1,'operator-(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af69ef8f1d8ecae0e6f755bf1c46cf075',1,'operator-(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5bd875a54b79b2dcedf674807c3e53c5',1,'operator-(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab02f8646b47806e1d2038f248df03f06',1,'operator-(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab27b26182c7c6e08af37e6d511fd9253',1,'operator-(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5868c85c988ec3432cf86d7df40e464d',1,'operator-(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad03ef47e6cc7521bbfb45740dee20f88',1,'operator-(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab789f8a400512ff27e36b3373170f0c5',1,'operator-(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7f601b22ecc480132d82ad782e5363bf',1,'operator-(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a152366ab4e2ccc867e919af6c74ced91',1,'operator-(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a42bead8ef0beb9f3452128d64cd4df9d',1,'operator-(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#a226cfd54d49f02e35c5aab3139c7596b',1,'operator-(complex64_t x): complex.h'],['../backend_2metal_2kernels_2complex_8h.html#af5608264cf920688607059b4e8cd3117',1,'operator-(complex64_t a, complex64_t b): complex.h'],['../namespacemlx_1_1steel.html#aca8ef21c16984ccb329b3bd0c1e4be48',1,'mlx::steel::operator-()'],['../group__ops.html#gade2eea48989f4caaf36e89f7bd2a8816',1,'mlx::core::operator-(const array &a)'],['../group__ops.html#ga0c7f3cb36d4ca516c7a33142f88b9181',1,'mlx::core::operator-(const array &a, const array &b)'],['../group__ops.html#gae68d3d0691ba951501218e98439f3465',1,'mlx::core::operator-(T a, const array &b)'],['../group__ops.html#gaf5e5d882c51ad0a0ea315c274d5439b2',1,'mlx::core::operator-(const array &a, T b)'],['../namespacemlx_1_1core.html#a622ce842fe44e4b6a95e03242341b459',1,'mlx::core::operator-(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af32a99d930d49e9b178472d7a65531ab',1,'mlx::core::operator-(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a3555a2b31fc0925850d3240e85e03ec5',1,'mlx::core::operator-(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a46080889fd9e5c3f9916508e97dff5ad',1,'mlx::core::operator-(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a9ca27fd1e512c8ed126342e565da12ae',1,'mlx::core::operator-(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a3803f8d36558d32bb7dd6e580ea683b4',1,'mlx::core::operator-(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#af5d865528989ca66b3d357e5ce4e0300',1,'mlx::core::operator-(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#afb784b960f55aeb4edd7f567fa74d443',1,'mlx::core::operator-(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a29cbacf4b399c24728fb0808fad498f9',1,'mlx::core::operator-(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aececc0e451237aa6c0d1a2c3d828c86e',1,'mlx::core::operator-(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a383a26cc2689c98fd6c4435ade8dc669',1,'mlx::core::operator-(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad6311ef8df59bdfb212b5cf8169246b2',1,'mlx::core::operator-(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a23b7329bc1c93c8ac0a1f576565fefb0',1,'mlx::core::operator-(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad8d650bf63998abd716ee0ca28e1cbb9',1,'mlx::core::operator-(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a7339b33201254e9119d99d3a728ded72',1,'mlx::core::operator-(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a064318b7a16e5cb6d0a6407501b5c7dc',1,'mlx::core::operator-(_MLX_BFloat16 lhs)'],['../namespacemlx_1_1core.html#a7bae3ff296d9a60ff3c7e448f7fbc6bd',1,'mlx::core::operator-(const complex64_t &v)'],['../namespacemlx_1_1core.html#afb5069ecebdfd9d388c26f83df12c93c',1,'mlx::core::operator-(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a8d126e3f3fa9f8c1c1ae1b09f94df487',1,'mlx::core::operator-(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ad04f1ccd2cd7c487a2f2aaa055939f64',1,'mlx::core::operator-(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a15eb2ea76508ff823fa0591e811d0b7d',1,'mlx::core::operator-(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a96d9577db38d6809d022893e32feeda1',1,'mlx::core::operator-(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a5d9c02765c1672930757416411567bf2',1,'mlx::core::operator-(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a6105d3b5266666b7c6bb9469285a9ec3',1,'mlx::core::operator-(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a777aa772dfb205b25d26f3180d98a2f6',1,'mlx::core::operator-(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a085eb092f4ada47f8169de62886cff90',1,'mlx::core::operator-(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab25e5d211e2c8785b45c3a81a6282e2b',1,'mlx::core::operator-(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#abf5d09561a81b0f0b32d59d77e32e16f',1,'mlx::core::operator-(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4ce6867dbb4d1631d1870dac14022dbb',1,'mlx::core::operator-(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a8a049e646e0442064cfe9e202d7047c5',1,'mlx::core::operator-(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a78e2a1cfc65453185bcca13bd4f523cf',1,'mlx::core::operator-(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#af143cf68673e06390d4bb2ec2892bd22',1,'mlx::core::operator-(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a46d502dfe0b027955950d4e716c2eb26',1,'mlx::core::operator-(_MLX_Float16 lhs)'],['../namespacemlx_1_1core.html#a2631e78c6f0a602f6754ac577ec75f83',1,'mlx::core::operator-(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a73d79cbd75d543d0837b8a51bf103f9e',1,'mlx::core::operator-(bfloat16_t lhs, float16_t rhs)']]], - ['operator_2d_3d_28',['operator-=',['../structpocketfft_1_1detail_1_1cmplx.html#a12441ff423274bd1b54245933d69ad7e',1,'pocketfft::detail::cmplx::operator-=()'],['../backend_2metal_2kernels_2bf16_8h.html#ab225043bd02bb423930bc98aae9c2bca',1,'operator-=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac2f1e1f2365cfa531b1519aa9ff67695',1,'operator-=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a513501355a5912a1263fd8b10864142b',1,'operator-=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab4f4ecd62c3d8b3363d02019573dc9f1',1,'operator-=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a92d1348f201d78fcd474f75d5b23ef68',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3eefe9a7f5fb226335ea687012f32d5c',1,'operator-=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aef62c7e3e494b6a511a7833c0d942a60',1,'operator-=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad30726cc8b69fd300d33c2a46e123c28',1,'operator-=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8859b5b8dc241e4f58243c85d2630cc8',1,'operator-=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7003e1e5881e3d106257f22b6a3e59fe',1,'operator-=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3165e37d393be50c2cfa9ddcba153684',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a76f5bd895b7214cbc3cea3440992718a',1,'operator-=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7167343d90eb70e5a0d5fa9ec5398e94',1,'operator-=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9b31c363ebc93d592b6fa0e27b00335a',1,'operator-=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a967a1d7b5664f616e5b6f2d257367f0c',1,'operator-=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aff19193e1b2cee29a8737318e95cc74a',1,'operator-=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aede0cc4179507b739849948f1a2fed4b',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7e1a6056f9c96f3c89fe204dbf103be5',1,'operator-=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9d06cceea5c179bcc608452188bd7d6a',1,'operator-=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0aa9ffe056f49fda181bbacbd60556ea',1,'operator-=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ada5685d99c2d6708d1c4ef826d68e879',1,'operator-=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a726cecf778b8584b6f7c37db1b064576',1,'operator-=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3816a35f8468156d59c239256c12dcf3',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa332fae098e7c6dc23b98bc0026f1070',1,'operator-=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afb3cd302e0b78902c62111dce4494fe8',1,'operator-=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abb884888f14086cc674657677cb4b8bc',1,'operator-=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a38bb89f925eca4f9c042f6ee7a2c0193',1,'operator-=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac30c580713f354916088a7dc049ae4cd',1,'operator-=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a715c824ee8c87e0256114a85624d9949',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7bc91aaaf476a37063264d1d53d862cc',1,'operator-=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab155f418f15cabd86ff942c6f9472ddb',1,'operator-=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aaa66dc6d7b2c5efbfaa97ca9c7872bd8',1,'operator-=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a696978d9401e09200045b2d8aad045c2',1,'operator-=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae998d8f423a9fb73405cfbd4b836bc72',1,'operator-=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a279d09ab8542f1c1a8dc8173b65946b6',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a491dadfae957cd7cc0c36188d910f6f6',1,'operator-=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9a837c3b9c4e42f53d7cd1ed0d266e2f',1,'operator-=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acf7af2284269544064b68e807064bba4',1,'operator-=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a28d297705e29009197418546ef435393',1,'operator-=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a948579a4d9ba276523190b03b09578fb',1,'operator-=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5a4b98a0a11db5b77cf9168df37c8bc7',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a31a3d8f2ff8038f7e0d717845c039808',1,'operator-=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1dac193d9f1c8c0eb4473441895f8c58',1,'operator-=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad2817d53fdd4b112babfb6f0b38c8f39',1,'operator-=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa705d87cf4b78e9d7c6b07dd0c66cac6',1,'operator-=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a542affc376726840647a6e93acf2c1a7',1,'operator-=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#add18cfe4c0d38e95c6dff6bab3e7a932',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab1de7e7e7304ff3598925d2e69134764',1,'operator-=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0d3fb52437c677c5d0f1a3642384b15c',1,'operator-=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adda64cae388baac1f138b06dc8595237',1,'operator-=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af20874a61c6c3f4c3fd045a96e806644',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a8b8a55690df46d97fcfc2a60120783af',1,'mlx::core::operator-=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#ab03949b1f60fa035ce454a894cd73ae9',1,'mlx::core::operator-=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#adaf70bbfb3667df0d08fd3c99896e20a',1,'mlx::core::operator-=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a321c98e5a78621d3c9a3895f707f2f1c',1,'mlx::core::operator-=(float &lhs, _MLX_Float16 rhs)']]], - ['operator_2d_3e_29',['operator->',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#aac45ab0630ea32cf7d15c7ba3e229966',1,'mlx::core::metal::CommandEncoder']]], - ['operator_2f_30',['operator/',['../backend_2metal_2kernels_2bf16_8h.html#a9f16a44e1c9836ca57edc1d7b93b5d7c',1,'operator/(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aacaedf12f862c76457133336dd6fc446',1,'operator/(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a584a513596de20663dad951a5b81695e',1,'operator/(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad8f7b11669736fbd6ed2e28211d877d4',1,'operator/(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a59515695ebc48844345fa5120511aed1',1,'operator/(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8c8ac6736440fdca366ebdefe2a12b9f',1,'operator/(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad6859b04680d0d26d75fd6c4dd74ee24',1,'operator/(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4720cc79ab2b8e39952ea9ef20e51250',1,'operator/(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a72d10ec0e62949247da129eb3a83fb9b',1,'operator/(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad6399ba2b8708899739b4cdbb44add8d',1,'operator/(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a998b1ba877a606aedf722ab46b290403',1,'operator/(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa3277ae33976c70f7bd937ddff027b72',1,'operator/(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa708a970a200822c99c0489f389469fa',1,'operator/(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#ae6a708f67d6fd9b0962aa8877cec6d35',1,'operator/(complex64_t a, complex64_t b): complex.h'],['../namespacemlx_1_1steel.html#a6bde717aca2051499f73a3eee199bfdd',1,'mlx::steel::operator/()'],['../group__ops.html#gaeedf77f722b394429f1a7f6c367883bf',1,'mlx::core::operator/(const array &a, const array &b)'],['../group__ops.html#ga7366ec7f453be2a4dc449f0faa1bf554',1,'mlx::core::operator/(double a, const array &b)'],['../group__ops.html#gadfb324ae9b4feb2c7ea0ac6ade639f38',1,'mlx::core::operator/(const array &a, double b)'],['../namespacemlx_1_1core.html#a7573ac3b93ddecd69e9c88a26fc84ba9',1,'mlx::core::operator/(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a40e868dad70401d9aa9ee9c32235c315',1,'mlx::core::operator/(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a7587c28fbd2023b134e5fc12bb0dde23',1,'mlx::core::operator/(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a92cdd377c408becf4cf83c1ee9b7085d',1,'mlx::core::operator/(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aef89566301cb133d98c8e7bdd2b7bec6',1,'mlx::core::operator/(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a94e7b51185590492b46916685641276f',1,'mlx::core::operator/(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a04584788c08180835219d0ea1e2b97b1',1,'mlx::core::operator/(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad5af96e2ff09d207eb1e1980fe3e7c2d',1,'mlx::core::operator/(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ac2217bf760038cd011781158923149ed',1,'mlx::core::operator/(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aea414c04bddc4b9b609262e97398f1b4',1,'mlx::core::operator/(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a27fe23230cd082c0363b9451b731ce6b',1,'mlx::core::operator/(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abdd9bb8fb4411e5924f3eb7ef1bb52f8',1,'mlx::core::operator/(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a50bae338a7353f8b0ed3441071bb0cf6',1,'mlx::core::operator/(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aab26a3284dd3ac7d47c8b5b3a3290ce3',1,'mlx::core::operator/(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a749f48db01de38f259a0c6750a97fa77',1,'mlx::core::operator/(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a32a6a08a2a4652975b0a1bd1fcf3eafd',1,'mlx::core::operator/(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4b66fb38ddc5cc0c2489583d5c499602',1,'mlx::core::operator/(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a45726f1905b709cf8253e6efa046027b',1,'mlx::core::operator/(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#afd4170c1e364384f30e6bae341146fa6',1,'mlx::core::operator/(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aef85739d150b9d5609973da8a3f1086a',1,'mlx::core::operator/(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af52a941f8ed9b25eec91402c7b9e281f',1,'mlx::core::operator/(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a477cade78296bc85894170f62db68870',1,'mlx::core::operator/(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a22f5a2257e11423fc2fe18e2dce91590',1,'mlx::core::operator/(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a640d3574dfe6ad934c720ae8bdd78bfa',1,'mlx::core::operator/(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a6f65d8fd0cdddc96fc01f6af95804873',1,'mlx::core::operator/(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a517019d42d4e426b7b98e1c719bb47ce',1,'mlx::core::operator/(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a0beb7a223c542015a4eff4aed814a9dd',1,'mlx::core::operator/(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#abc9b1bd5018d46514bc19d23db2e5063',1,'mlx::core::operator/(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af22937df654ddbd6e398ef12764d18c0',1,'mlx::core::operator/(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a775aed5f49b530c57e71cbac81404d45',1,'mlx::core::operator/(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a97efcd96d6be666e5608034ae77289ef',1,'mlx::core::operator/(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a899851f85dbddd96f9d36319b82542a0',1,'mlx::core::operator/(bfloat16_t lhs, float16_t rhs)']]], - ['operator_2f_3d_31',['operator/=',['../backend_2metal_2kernels_2bf16_8h.html#a5aa3b8c68a2b58d41ea33eaabbf83095',1,'operator/=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a90a1c5130db515db48624d8587edbb91',1,'operator/=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a65f30a2dc199134e35bc7c5d431b2263',1,'operator/=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7172d84db640e6c49dff0d08dd64b53e',1,'operator/=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acf7cb9927bf09022088401923f2e1916',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a86b2a001cbec0d3a8d762a3c7ff47b0b',1,'operator/=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a744f72ba83522fe3cc2a49a007b42543',1,'operator/=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a77c678665b34df7652dcde053ca73185',1,'operator/=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae0614b6b199d8a65ae95d4621b118b82',1,'operator/=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa846fde89c7d2d18b18ef180a8a9c8a3',1,'operator/=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08e778be18e4a291c108fcc528b981d3',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a6b9e49ad9ea256d2d0220c0d81552602',1,'operator/=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab933bc3cdf9adfea10ab9dba5292c812',1,'operator/=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a25e7c5d2ecf3375756d59074f333858f',1,'operator/=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4ae4a80fde67eea9a0a37b2803946544',1,'operator/=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a912393b7208fa45bd1e87f30b218b68b',1,'operator/=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a18963246f2b640874bef6dca7049f64d',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0e2c2c2cb50b3a55ff213f18978aca35',1,'operator/=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a64f1136b17006f168ef837e17240814f',1,'operator/=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae46d75b8046d557452d74513f1106710',1,'operator/=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08d2460e259b9106d90d889481ad60d5',1,'operator/=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0f7fd418408806ef498745c6fdb2c062',1,'operator/=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac703495cb370b52526a5a2d36ae26038',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4ca11d43174baf0a729f93b35eabcbea',1,'operator/=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9f835a0a80c411580c97b65fdc5bdfd3',1,'operator/=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a17f47ec9cff60f8e1b3477a2793b7ac0',1,'operator/=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5be23e296bbed3a885586a6424b1666e',1,'operator/=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afba39221eb54e272aae79910b3cd7ef5',1,'operator/=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac057d95a2bf087575584aa6f9a2c6bf5',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab986ae2cec780a1f494b7b4468b7ba11',1,'operator/=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a44522c2304c6396bbe6b9d32000f4b6f',1,'operator/=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aef8e7e499ea9d432aa743d83c076f945',1,'operator/=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3a0a3edbf1ba2314551454059c3f422b',1,'operator/=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acb9f0aef9fbdfde8a4f46e33b0d6c52f',1,'operator/=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a303dfcc81ffd355f866f863d7d9f0fa5',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a359edd4bcb8776861ceb26a3005624c0',1,'operator/=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adc9f32cc6f40768df4285fba2e4783c7',1,'operator/=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae71f66d814a03f6377c9d86cf0a2b5d7',1,'operator/=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad0125b6baba3065a87a174ec27aa9a61',1,'operator/=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5cc74ad3e522d7104e6e2117751151ad',1,'operator/=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab3b594321fb42b0c2da99954d1e0976c',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4a0023e2fd08875156cd6ef747fbb5cd',1,'operator/=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4358ee606e66ba2081fcf94f9c3b5915',1,'operator/=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad1e7ef6f065695d4b1d017547b60ef62',1,'operator/=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a284dfc702f0f67b9c233b87162eeabdd',1,'operator/=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab8f211ea896fc5190004f3ad6ad8932f',1,'operator/=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7e1bcf3bc06cbcbc304c0cdf729802bc',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abbe42648a46092137b303ccd08f7df86',1,'operator/=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af1a12a1efb618a57da6dd41ae18cb53c',1,'operator/=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a94686039356dfa9aa45608a8b0562fdc',1,'operator/=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa251d6483d3b099d1b5311fbe6f0bce2',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a045ff27257cb6d8ab7a94771ba5a17e6',1,'mlx::core::operator/=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a58112951a56a0f9f8c90b60fe74f9508',1,'mlx::core::operator/=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae736defc89a04fbaf7627ad2695bb838',1,'mlx::core::operator/=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#ab1f260710251256ef737dd59be9e143c',1,'mlx::core::operator/=(float &lhs, _MLX_Float16 rhs)']]], - ['operator_3c_32',['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'],['../namespacemlx_1_1steel.html#adb5f24b57d98214fc215a06475f21412',1,'mlx::steel::operator<()'],['../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)']]], + ['o_5fstrides_1',['O_strides',['../structmlx_1_1steel_1_1_attn_params.html#a33dc7fc22d2604a73af9f94eeea45bb4',1,'mlx::steel::AttnParams']]], + ['offset_2',['offset',['../struct_looped_elem_to_loc.html#acdffe540c383a67417604b6080704791',1,'LoopedElemToLoc::offset'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b',1,'LoopedElemToLoc< 1, OffsetT, true >::offset'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af792b1fd4e8286f97b9b863c127a2d9a',1,'LoopedElemToLoc< 1, OffsetT, false >::offset']]], + ['offset_5fneg_5fidx_3',['offset_neg_idx',['../kernels_2indexing_8h.html#a58a65ea6215999cd4ccb4fe757cc2dc8',1,'indexing.h']]], + ['ofs_4',['ofs',['../classpocketfft_1_1detail_1_1simple__iter.html#ab59481ad9c8f04addb907c3ebb89f8fa',1,'pocketfft::detail::simple_iter::ofs()'],['../classpocketfft_1_1detail_1_1rev__iter.html#a78c3b4ad19edf9d20cab40ad109e9dd1',1,'pocketfft::detail::rev_iter::ofs()']]], + ['ones_5',['ones',['../group__ops.html#ga54eeed455321a54c8e72e16552a978f2',1,'mlx::core::ones(const std::vector< int > &shape, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga6cf4b5e8580e4436302c519d05897dab',1,'mlx::core::ones(const std::vector< int > &shape, StreamOrDevice s={})']]], + ['ones_5flike_6',['ones_like',['../group__ops.html#ga94f8d3b1906fee99da9cbe39f7be7d42',1,'mlx::core']]], + ['oofs_7',['oofs',['../classpocketfft_1_1detail_1_1multi__iter.html#aae63e67caac095d474ddd32daa5ffa34',1,'pocketfft::detail::multi_iter::oofs(size_t i) const'],['../classpocketfft_1_1detail_1_1multi__iter.html#a9236047e7419e5d21379cbf95eb3a78e',1,'pocketfft::detail::multi_iter::oofs(size_t j, size_t i) const']]], + ['op_8',['Op',['../classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23d',1,'mlx::core::BitwiseBinary']]], + ['op_9',['op',['../structmlx_1_1core_1_1_default_strided_reduce.html#ac871f55a7ddd205574974cb4492a240b',1,'mlx::core::DefaultStridedReduce::op'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#a1928f07db988715cc177999e386f4830',1,'mlx::core::DefaultContiguousReduce::op'],['../common_2binary_8h.html#a70228731d29946574b238d21fb4b360c',1,'op: binary.h']]], + ['operations_10',['Core array operations',['../group__ops.html',1,'']]], + ['operator_20bool_11',['operator bool',['../struct___no_mask.html#ad3723c1e70e46beefd283ce6317416cb',1,'_NoMask::operator bool()'],['../struct___no_mask.html#aafbf8a3201e1cc1abf74dd1f1b7272cd',1,'_NoMask::operator bool() const threadgroup'],['../struct___no_mask.html#a73e9612a619885cbc97cbd8f40df71e7',1,'_NoMask::operator bool() const device'],['../struct___no_mask.html#a4bf336d472bc677028250f76b9cdc08c',1,'_NoMask::operator bool() const constant'],['../struct___no_mask.html#ad3723c1e70e46beefd283ce6317416cb',1,'_NoMask::operator bool()'],['../struct___no_mask.html#aafbf8a3201e1cc1abf74dd1f1b7272cd',1,'_NoMask::operator bool() const threadgroup'],['../struct___no_mask.html#a73e9612a619885cbc97cbd8f40df71e7',1,'_NoMask::operator bool() const device'],['../struct___no_mask.html#a4bf336d472bc677028250f76b9cdc08c',1,'_NoMask::operator bool() const constant']]], + ['operator_20dtype_12',['operator Dtype',['../structmlx_1_1core_1_1_type_to_dtype.html#aefdd0fd6a5bbf0197a3996ccd4adea13',1,'mlx::core::TypeToDtype']]], + ['operator_20float_13',['operator float',['../structmlx_1_1core_1_1___m_l_x___b_float16.html#aaae72e5340ce91325f1925be36ba46cb',1,'mlx::core::_MLX_BFloat16::operator float()'],['../structmlx_1_1core_1_1complex128__t.html#a3e2faf180c0b785646a0e4296f709a5e',1,'mlx::core::complex128_t::operator float()'],['../structmlx_1_1core_1_1complex64__t.html#a90d224dd37308345086bb9cc882ef6fc',1,'mlx::core::complex64_t::operator float()'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a363de5054f3673bddc90293fc3c9bb99',1,'mlx::core::_MLX_Float16::operator float()']]], + ['operator_20t_14',['operator T',['../structcomplex64__t.html#a70e9b16031eeaff3baa601f400023fcd',1,'complex64_t::operator T() const thread'],['../structcomplex64__t.html#a4f3beea7ab6001189b782a74d1746b67',1,'complex64_t::operator T() const threadgroup'],['../structcomplex64__t.html#a9f4f7eca89ffe6c8d126a4145df6d9f2',1,'complex64_t::operator T() const device'],['../structcomplex64__t.html#ac33e2e5263fec76a4fb4418c6e1d8d14',1,'complex64_t::operator T() const constant'],['../struct___m_l_x___b_float16.html#aa7dfefdf0d15e102d2b8258c9ab01836',1,'_MLX_BFloat16::operator T() const thread'],['../struct___m_l_x___b_float16.html#a2546a8afa77e14ed5b3c5da79a281260',1,'_MLX_BFloat16::operator T() const threadgroup'],['../struct___m_l_x___b_float16.html#a1d523f87740fcb852db6ab57896c245a',1,'_MLX_BFloat16::operator T() const device'],['../struct___m_l_x___b_float16.html#a95acd29283024d7093a0bc58c9468a0a',1,'_MLX_BFloat16::operator T() const constant']]], + ['operator_20val_15',['operator Val',['../structmlx_1_1core_1_1_dtype.html#a3b3bc059be5836476da3cb88a4f5e9fd',1,'mlx::core::Dtype']]], + ['operator_20value_5ftype_16',['operator value_type',['../structmlx_1_1steel_1_1integral__constant.html#a0c11203bed44a6a2c387b365134dcd64',1,'mlx::steel::integral_constant']]], + ['operator_21_3d_17',['operator!=',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a971aa511ab2e7ae1caae09556643a0bd',1,'mlx::core::array::ArrayIterator::operator!='],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afc6e4fc5589bbf30f978f34868dd4e55',1,'operator!=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6baa722c22d66c7510786bb275cb8cc2',1,'operator!=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa8d9f01582a0a9f01a666d110c74db2a',1,'operator!=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa504a474ab6e00ebe2b1b7ed2f7d1ffb',1,'operator!=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abf5f3040227f021a5b84cf2eda248b2f',1,'operator!=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a347c9bbf816bad2e9e5e91aa448f8b65',1,'operator!=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a33ea086b561c652f25833a5e1ded34dd',1,'operator!=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2bbdcece13148826d3fe33af727bb79b',1,'operator!=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeb1efa47c5f22cc0b35d49ccce73c406',1,'operator!=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa6b99cde403405df1865c989e4ce845a',1,'operator!=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a204d13a881ae8d337f6efbb98673790c',1,'operator!=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3602117b4c61d5cd4fd72fb8e5f68bd6',1,'operator!=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2721c088adfc9d73cde442d6badd2a6c',1,'operator!=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aa4364eda56525cf7576ff00e550175e6',1,'mlx::steel::operator!=()'],['../namespacemlx_1_1core.html#a94d00a1b7f8a4717ab3f26f45e4da655',1,'mlx::core::operator!=(const Device &lhs, const Device &rhs)'],['../group__ops.html#ga0ac483d85f23252ca8757e9926d5a3c5',1,'mlx::core::operator!=(const array &a, const array &b)'],['../group__ops.html#ga3fecba9f3cb9a19afd8ca492cf509ce0',1,'mlx::core::operator!=(T a, const array &b)'],['../group__ops.html#gaebbf1cfde388c7480159a03c92c9a385',1,'mlx::core::operator!=(const array &a, T b)'],['../namespacemlx_1_1core.html#a164f109bc19c927b2b3bcc47a5021419',1,'mlx::core::operator!=(const Stream &lhs, const Stream &rhs)'],['../namespacemlx_1_1core.html#ad2f9e1c230ec35d5c406dd616e8f4dea',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af5899b4d5644682cb0ac2a488f630d55',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a72ac8edd190601d7a46782582cedecd8',1,'mlx::core::operator!=(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a8084162ba2dd3f9b89195d2bebc3fbb0',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a514263e63f6825b490203ca586864687',1,'mlx::core::operator!=(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a1c482bb3d9f9d4c62dee5865892c1f96',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a0030fe7ad09837c670cdfb7d51279519',1,'mlx::core::operator!=(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ade3791bc723b8f10fbab22eadb0f705a',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ad78c664f242cd36247c13868547e3dd4',1,'mlx::core::operator!=(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab0743a1a1dcb92d40f41ca42d36f242c',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ae7a0f810e546a166c7d05849b5d41f30',1,'mlx::core::operator!=(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a676a40637a563f013c725d24fa33fdc8',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a9fcb662b1561e4136bac0106cfb63b6c',1,'mlx::core::operator!=(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abcca7fd43590c4347e0f5df8f134030c',1,'mlx::core::operator!=(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af3ede3688a2e3b3ba8cb2da180ffe151',1,'mlx::core::operator!=(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a54f48469fabd1414bef5097bcded0002',1,'mlx::core::operator!=(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af8c648e892cbc6973de535aa17dc2cfe',1,'mlx::core::operator!=(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#abc855e1c0584b64d7d995e33211361ab',1,'mlx::core::operator!=(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad3684d660d18a54505c759ab286bd936',1,'mlx::core::operator!=(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a8afdda14b14262ab5ce0a00c7745d7e8',1,'mlx::core::operator!=(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7ccc479be236f2bf3f7725729c5ba201',1,'mlx::core::operator!=(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a26a721b8111fce3a1dec9bf724034cd4',1,'mlx::core::operator!=(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad5f8c221a53a89e8095aa39fd1f61867',1,'mlx::core::operator!=(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a017b52ecf30b33da4aa8da35ccc43220',1,'mlx::core::operator!=(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a43c10ca5fb05ee7d0ee63ba56f8a08a3',1,'mlx::core::operator!=(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a81284b6ac737f91a8d1ffbbbbf938fe5',1,'mlx::core::operator!=(uint64_t lhs, _MLX_Float16 rhs)']]], + ['operator_25_18',['operator%',['../backend_2metal_2kernels_2complex_8h.html#aaf53122a07c8eca858b5a8e38ae280e0',1,'operator%(): complex.h'],['../group__ops.html#gab3bfbf82b1e4de7b00bbcf1a2255fbde',1,'mlx::core::operator%(const array &a, const array &b)'],['../group__ops.html#ga50817666f0b82afcbf4a123486af9908',1,'mlx::core::operator%(T a, const array &b)'],['../group__ops.html#ga46c01daa07433542a477d216e13a8480',1,'mlx::core::operator%(const array &a, T b)'],['../namespacemlx_1_1core.html#a8723d145dd49021bfcb8e6c99e1c91a5',1,'mlx::core::operator%(complex64_t a, complex64_t b)']]], + ['operator_26_19',['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_20',['operator&&',['../namespacemlx_1_1steel.html#a6353bf11881842e25c46b56f92b7044f',1,'mlx::steel::operator&&()'],['../group__ops.html#gaee1d774bb0843601d7a0a4257d616ae3',1,'mlx::core::operator&&(const array &a, const array &b)']]], + ['operator_26_3d_21',['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_22',['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_23',['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_2complex_8h.html#a681d4fb076973f58f7dac894ec62a385',1,'operator*(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8f06316063fc91747533105f256b55b5',1,'operator*(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7b3bce3f6f17089d87e13e91f580a581',1,'operator*(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a54ae7216b82c5cea362f6b83e1df3a9b',1,'operator*(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a852689073c17596de4fb545bc046b380',1,'operator*(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a168300bbd04d8e97c5e4218cb14ae378',1,'operator*(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6278bd2e0e2805090b33ef666bf7f6bb',1,'operator*(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aecf703522d9ce32dfeefe1e6e903db06',1,'operator*(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7cd44d27fa9a4f13df39894c34fdb348',1,'operator*(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee64dc1890abb6d1035361cb8c751f96',1,'operator*(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1a559ab88dbbb4fd2c7509d2c94e55b',1,'operator*(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a495ae2d9be5d97c4c6448fc4e50a03e1',1,'operator*(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a87ab4b7a502430da664ccb8abd383058',1,'operator*(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5f997839cf49c24ab594a0dff486a7bc',1,'operator*(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aa0c2d29950926ae579adf6337fbea64b',1,'mlx::steel::operator*()'],['../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_24',['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_2metal__3__0_2bf16_8h.html#a7232b0a0e193b3c6172d6fc2578bf419',1,'operator*=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ade65ebca11e38d56408c512df89b99f4',1,'operator*=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af4348ce3425dd99d069e8fdf06e25a3c',1,'operator*=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2c3c5f793b3d957d7295d7f1faabebee',1,'operator*=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac66657077d55e94197b52b63acb50b7d',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a383165ea838cc3feeee4d9cf54aa77cc',1,'operator*=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab706af260b61f735b28464877d02137c',1,'operator*=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a979374b1dd4e0eaf602326fa901336d1',1,'operator*=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac815eec2c1b15a47b1c6ea6790e77d24',1,'operator*=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8110fae7bcc34a0de5927546b24aa935',1,'operator*=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae4acef3e7ae7dfe359422503f894e885',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc268cdbc30500f3009f5de2b2f0f67a',1,'operator*=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a81f65b04a87a25c7eb1a751d1be9fa55',1,'operator*=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08c1f916302eb9d48c93f8b7260538fe',1,'operator*=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc8e82b8f593b12c6d405e2250ab0f62',1,'operator*=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4611728172afea51860a77fdb06cafa0',1,'operator*=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0b8736e2ae24758b6e24ea72668df5b4',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad920df9579603f0b0ee2689eba330617',1,'operator*=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae97ab6c3ddcc2754b24f86319a5398be',1,'operator*=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3ff4ff59f411010ac8502cfabda4bd6f',1,'operator*=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abd3d82e2dec1847e97eb8fc3bab2985a',1,'operator*=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a738078eb7d5ff94ff48156a555d763a5',1,'operator*=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a435f2f4256aadb1b57fd62bb7f733cf7',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0e4377b120d6305335d296e031ee5b30',1,'operator*=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a917354f77eac26189da8a2f610a00074',1,'operator*=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af725f935bfa0405e5ff17ede3ac47283',1,'operator*=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7c56980c234a04260b8b19298085e526',1,'operator*=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab840ff9de0cdd0e9afffb8baa2a850a3',1,'operator*=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a73416a7415f3fe31525e33419e5e8aab',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a16978f4b16d954ef4d4cf0f32f6c0b94',1,'operator*=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a99aa4cc110d1c7aa3b4c8c5cbf9235b7',1,'operator*=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2179abbc91ce8763e96e39e1917bfa6e',1,'operator*=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab070ea4676d10a10ff3e9379a4068a57',1,'operator*=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0197e039d4c65bf49649a6f250c2d436',1,'operator*=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad3565cc6fd1e088d052b1108aa065851',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a711693988c437c2fb4d7da505982fe21',1,'operator*=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeff4c28986f98c23de1df17043edb0f5',1,'operator*=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7dbf0c75df4817cb4ef8b60c417a89d0',1,'operator*=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a323a80492cd17a49e2c3dd18f8c8b5cc',1,'operator*=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adb465776d3868bda0525d632ffc4d129',1,'operator*=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a12a98d71d670b409b8065e0d61672d55',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5d00eb2ec2b0e15b2753d100694c45ae',1,'operator*=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1a2a683ff40490226eb1371fb905023d',1,'operator*=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4126fb7ed5bbb27a2332c543cf56a337',1,'operator*=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab092d9790ef20fc0386707530aee89db',1,'operator*=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abff1fd2439e31e6e64a3d2fdee3c7821',1,'operator*=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a625dcb133f1f953f263e6200399866c6',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08b6071245513e1726ec68e3b63edc53',1,'operator*=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a13aa79165ec87710e977f33fe0361e91',1,'operator*=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3796dcf819adb1ef8152f57ba63ff6b1',1,'operator*=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_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_25',['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_2complex_8h.html#ad6af5c6c5ed4898b49758618e5aee189',1,'operator+(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a09c1a797eb7f43742578680899932f50',1,'operator+(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a551b970f73bb4a3b287653021d000b60',1,'operator+(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a43a225e7e548bb041f3a5d844faaf0da',1,'operator+(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8b6c3fd9d068a2159084359df8b9b449',1,'operator+(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0a5bfe15d95ba540795f4c25ebfa4f07',1,'operator+(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa415ce182fe7582d885fe633fc3527ce',1,'operator+(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a62f891b7dbba0000749cf338f594bedb',1,'operator+(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab43932322f81bf322aa1b0deeee9a987',1,'operator+(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acd15d46ea5827a2a39898ccbb8352eb8',1,'operator+(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a006763fae6e0577fc168ec9446f0f747',1,'operator+(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a12a47e8ac0be788edff57ae0a96d7830',1,'operator+(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af87dfa2122e9c76042dc41fb7f338a87',1,'operator+(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af2737d09c887ee8cd43fdeabceddbe82',1,'operator+(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#a12ff4f38aa8474bf76770c7b8e3e18cb',1,'mlx::steel::operator+()'],['../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)']]], + ['operator_2b_2b_26',['operator++',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a3efe69356a84d0d4438f033992fcbd9d',1,'mlx::core::array::ArrayIterator']]], + ['operator_2b_3d_27',['operator+=',['../structpocketfft_1_1detail_1_1cmplx.html#ad4e69dcd89bdb7764c9c5807168f911e',1,'pocketfft::detail::cmplx::operator+=(const cmplx &other)'],['../structpocketfft_1_1detail_1_1cmplx.html#affa618d8850a7c232793b7c61db6d184',1,'pocketfft::detail::cmplx::operator+=(const cmplx< T2 > &other)'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab04f480aea9fbba0895068c7558dd400',1,'operator+=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a251780ac4592cc2b1a543e417ff57770',1,'operator+=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24381d991c2d570aa953694f396a69b5',1,'operator+=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7595740d4cc12924905d6bd1b99ee4da',1,'operator+=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac1498acb8c3623b5f412f70ab6a6528b',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abce5ab327110c164f054b43ed47f79a0',1,'operator+=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae0c70198e236ffe1a98f79987c686419',1,'operator+=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a13b3338935440ae51ecc4a356093efc5',1,'operator+=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a0cb8544b4ebd2906ba8e7f2868e8de',1,'operator+=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7b134429ea0c8493800ff8b465410f9c',1,'operator+=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4154f90ab7857ca856f9e15fe1bf5acf',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab9ae6a51e2027b02cac9966e05f3ba68',1,'operator+=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab93ce536eb7998bee00de4af868e31a9',1,'operator+=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad0ae9e2b4874f991a2c853e1c1fe735d',1,'operator+=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a194a6670cc25ade35a24b566f31af785',1,'operator+=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3d0d689516c99003659c5d026847bd2e',1,'operator+=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a007f58508b98bb79e5c323ed0dec89b6',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa7198e580e2a83c1fd01a4b6fdf86a80',1,'operator+=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a15573fefd880adefbba079b1c1bd8082',1,'operator+=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a104cf94cb9e359d1b6ef92ced2ce0c27',1,'operator+=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa04cfcb52191fd23205a1a3572b46ae0',1,'operator+=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad684bc2ae1a2a627cd3e4a4c641e2d77',1,'operator+=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1e28448e35f4934075b397c34ba3d66',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8ad16afd7f1711de83c0cec5af868f76',1,'operator+=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac45e9ca0c7155caebe3d0f7261518077',1,'operator+=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3c62ac679d6aa515144d40ebafe4a188',1,'operator+=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9ff5ab3aef1057fa083b53a65c8aba03',1,'operator+=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae74bb0a3c12cd1a23f3d29ce307d6fb1',1,'operator+=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac188bd19f236b098d603b0d8acd08921',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef9fa600d107b509f2e3df7d6b080e01',1,'operator+=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af5713afb3a62967a02c3c20661951ee4',1,'operator+=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7f1b84352a3ed6171444a43da1fc7e92',1,'operator+=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af1983edd26245e6e51c6e47354095e32',1,'operator+=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8cd55d1a579540eb450e12a8a8a950be',1,'operator+=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a588ef0f7e03f306758524d378278976f',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a74751abec7086f85f4f26ced44f1ca1f',1,'operator+=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4dd3cf0e5aa116ff330352a50c18cde7',1,'operator+=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afb9a0e18c0e40c77e6143fb7d84ebfba',1,'operator+=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adf0cfd9a608a6fb3d57933e32e7d81d2',1,'operator+=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4bd92db6c8b9b5dc96332c7ae3eff8c7',1,'operator+=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5d628a5bc4fa755610392f47a523a1f1',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7c790442f77f2437b482c4a55e224fc3',1,'operator+=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a77bab4481b41be50297b257e95058706',1,'operator+=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7816a97d16b1d2f8a90227bb1da2f6ac',1,'operator+=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac244d140c6149726ea44174d3e836ca3',1,'operator+=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af802541c4c65ee4442acd495de4d27fe',1,'operator+=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac06eb2fea47a09a8a8abdaa1aa9b4603',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5263b2463fecdc97f9521d00bffea059',1,'operator+=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24ca436ab299a710263d65302532dd3b',1,'operator+=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee1bdf0ab2e445293708b476e8cfde3b',1,'operator+=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a190e27077f0fba642a86f5c8f488bcc2',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a9f2c9d2f21fbf9fbbacd940c6967c9d1',1,'mlx::core::operator+=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a0b1b3c48afc0a785282e43435bba8418',1,'mlx::core::operator+=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a7b763db8194e6fcb1b87eab143dfa47a',1,'mlx::core::operator+=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a827167f6a1ae55428fd218ddd51ec3b6',1,'mlx::core::operator+=(float &lhs, _MLX_Float16 rhs)']]], + ['operator_2d_28',['operator-',['../structpocketfft_1_1detail_1_1cmplx.html#a460da5db36d1c72fb1ed3496fd3abde4',1,'pocketfft::detail::cmplx::operator-()'],['../backend_2metal_2kernels_2complex_8h.html#a226cfd54d49f02e35c5aab3139c7596b',1,'operator-(complex64_t x): complex.h'],['../backend_2metal_2kernels_2complex_8h.html#af5608264cf920688607059b4e8cd3117',1,'operator-(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6aedc8d6d0980134ac69b96f22d9a855',1,'operator-(_MLX_BFloat16 x): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a333f67614dbf8027439a7e124052cb85',1,'operator-(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a891aa4bf46c20a26a55061736aba25f1',1,'operator-(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7ad7ff44a3200853711869f7a577d931',1,'operator-(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af69ef8f1d8ecae0e6f755bf1c46cf075',1,'operator-(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5bd875a54b79b2dcedf674807c3e53c5',1,'operator-(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab02f8646b47806e1d2038f248df03f06',1,'operator-(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab27b26182c7c6e08af37e6d511fd9253',1,'operator-(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5868c85c988ec3432cf86d7df40e464d',1,'operator-(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad03ef47e6cc7521bbfb45740dee20f88',1,'operator-(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab789f8a400512ff27e36b3373170f0c5',1,'operator-(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7f601b22ecc480132d82ad782e5363bf',1,'operator-(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a152366ab4e2ccc867e919af6c74ced91',1,'operator-(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a42bead8ef0beb9f3452128d64cd4df9d',1,'operator-(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aca8ef21c16984ccb329b3bd0c1e4be48',1,'mlx::steel::operator-()'],['../group__ops.html#gade2eea48989f4caaf36e89f7bd2a8816',1,'mlx::core::operator-(const array &a)'],['../group__ops.html#ga0c7f3cb36d4ca516c7a33142f88b9181',1,'mlx::core::operator-(const array &a, const array &b)'],['../group__ops.html#gae68d3d0691ba951501218e98439f3465',1,'mlx::core::operator-(T a, const array &b)'],['../group__ops.html#gaf5e5d882c51ad0a0ea315c274d5439b2',1,'mlx::core::operator-(const array &a, T b)'],['../namespacemlx_1_1core.html#a622ce842fe44e4b6a95e03242341b459',1,'mlx::core::operator-(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af32a99d930d49e9b178472d7a65531ab',1,'mlx::core::operator-(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a3555a2b31fc0925850d3240e85e03ec5',1,'mlx::core::operator-(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a46080889fd9e5c3f9916508e97dff5ad',1,'mlx::core::operator-(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a9ca27fd1e512c8ed126342e565da12ae',1,'mlx::core::operator-(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a3803f8d36558d32bb7dd6e580ea683b4',1,'mlx::core::operator-(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#af5d865528989ca66b3d357e5ce4e0300',1,'mlx::core::operator-(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#afb784b960f55aeb4edd7f567fa74d443',1,'mlx::core::operator-(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a29cbacf4b399c24728fb0808fad498f9',1,'mlx::core::operator-(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aececc0e451237aa6c0d1a2c3d828c86e',1,'mlx::core::operator-(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a383a26cc2689c98fd6c4435ade8dc669',1,'mlx::core::operator-(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad6311ef8df59bdfb212b5cf8169246b2',1,'mlx::core::operator-(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a23b7329bc1c93c8ac0a1f576565fefb0',1,'mlx::core::operator-(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad8d650bf63998abd716ee0ca28e1cbb9',1,'mlx::core::operator-(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a7339b33201254e9119d99d3a728ded72',1,'mlx::core::operator-(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a064318b7a16e5cb6d0a6407501b5c7dc',1,'mlx::core::operator-(_MLX_BFloat16 lhs)'],['../namespacemlx_1_1core.html#a7bae3ff296d9a60ff3c7e448f7fbc6bd',1,'mlx::core::operator-(const complex64_t &v)'],['../namespacemlx_1_1core.html#afb5069ecebdfd9d388c26f83df12c93c',1,'mlx::core::operator-(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a8d126e3f3fa9f8c1c1ae1b09f94df487',1,'mlx::core::operator-(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ad04f1ccd2cd7c487a2f2aaa055939f64',1,'mlx::core::operator-(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a15eb2ea76508ff823fa0591e811d0b7d',1,'mlx::core::operator-(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a96d9577db38d6809d022893e32feeda1',1,'mlx::core::operator-(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a5d9c02765c1672930757416411567bf2',1,'mlx::core::operator-(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a6105d3b5266666b7c6bb9469285a9ec3',1,'mlx::core::operator-(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a777aa772dfb205b25d26f3180d98a2f6',1,'mlx::core::operator-(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a085eb092f4ada47f8169de62886cff90',1,'mlx::core::operator-(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab25e5d211e2c8785b45c3a81a6282e2b',1,'mlx::core::operator-(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#abf5d09561a81b0f0b32d59d77e32e16f',1,'mlx::core::operator-(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4ce6867dbb4d1631d1870dac14022dbb',1,'mlx::core::operator-(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a8a049e646e0442064cfe9e202d7047c5',1,'mlx::core::operator-(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a78e2a1cfc65453185bcca13bd4f523cf',1,'mlx::core::operator-(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#af143cf68673e06390d4bb2ec2892bd22',1,'mlx::core::operator-(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a46d502dfe0b027955950d4e716c2eb26',1,'mlx::core::operator-(_MLX_Float16 lhs)'],['../namespacemlx_1_1core.html#a2631e78c6f0a602f6754ac577ec75f83',1,'mlx::core::operator-(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a73d79cbd75d543d0837b8a51bf103f9e',1,'mlx::core::operator-(bfloat16_t lhs, float16_t rhs)']]], + ['operator_2d_3d_29',['operator-=',['../structpocketfft_1_1detail_1_1cmplx.html#a12441ff423274bd1b54245933d69ad7e',1,'pocketfft::detail::cmplx::operator-=()'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab225043bd02bb423930bc98aae9c2bca',1,'operator-=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac2f1e1f2365cfa531b1519aa9ff67695',1,'operator-=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a513501355a5912a1263fd8b10864142b',1,'operator-=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab4f4ecd62c3d8b3363d02019573dc9f1',1,'operator-=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a92d1348f201d78fcd474f75d5b23ef68',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3eefe9a7f5fb226335ea687012f32d5c',1,'operator-=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef62c7e3e494b6a511a7833c0d942a60',1,'operator-=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad30726cc8b69fd300d33c2a46e123c28',1,'operator-=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8859b5b8dc241e4f58243c85d2630cc8',1,'operator-=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7003e1e5881e3d106257f22b6a3e59fe',1,'operator-=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3165e37d393be50c2cfa9ddcba153684',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a76f5bd895b7214cbc3cea3440992718a',1,'operator-=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7167343d90eb70e5a0d5fa9ec5398e94',1,'operator-=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9b31c363ebc93d592b6fa0e27b00335a',1,'operator-=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a967a1d7b5664f616e5b6f2d257367f0c',1,'operator-=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aff19193e1b2cee29a8737318e95cc74a',1,'operator-=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aede0cc4179507b739849948f1a2fed4b',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e1a6056f9c96f3c89fe204dbf103be5',1,'operator-=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9d06cceea5c179bcc608452188bd7d6a',1,'operator-=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0aa9ffe056f49fda181bbacbd60556ea',1,'operator-=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ada5685d99c2d6708d1c4ef826d68e879',1,'operator-=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a726cecf778b8584b6f7c37db1b064576',1,'operator-=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3816a35f8468156d59c239256c12dcf3',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa332fae098e7c6dc23b98bc0026f1070',1,'operator-=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afb3cd302e0b78902c62111dce4494fe8',1,'operator-=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abb884888f14086cc674657677cb4b8bc',1,'operator-=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a38bb89f925eca4f9c042f6ee7a2c0193',1,'operator-=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac30c580713f354916088a7dc049ae4cd',1,'operator-=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a715c824ee8c87e0256114a85624d9949',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7bc91aaaf476a37063264d1d53d862cc',1,'operator-=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab155f418f15cabd86ff942c6f9472ddb',1,'operator-=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aaa66dc6d7b2c5efbfaa97ca9c7872bd8',1,'operator-=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a696978d9401e09200045b2d8aad045c2',1,'operator-=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae998d8f423a9fb73405cfbd4b836bc72',1,'operator-=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a279d09ab8542f1c1a8dc8173b65946b6',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a491dadfae957cd7cc0c36188d910f6f6',1,'operator-=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9a837c3b9c4e42f53d7cd1ed0d266e2f',1,'operator-=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acf7af2284269544064b68e807064bba4',1,'operator-=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a28d297705e29009197418546ef435393',1,'operator-=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a948579a4d9ba276523190b03b09578fb',1,'operator-=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a4b98a0a11db5b77cf9168df37c8bc7',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31a3d8f2ff8038f7e0d717845c039808',1,'operator-=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1dac193d9f1c8c0eb4473441895f8c58',1,'operator-=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad2817d53fdd4b112babfb6f0b38c8f39',1,'operator-=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa705d87cf4b78e9d7c6b07dd0c66cac6',1,'operator-=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a542affc376726840647a6e93acf2c1a7',1,'operator-=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#add18cfe4c0d38e95c6dff6bab3e7a932',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab1de7e7e7304ff3598925d2e69134764',1,'operator-=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0d3fb52437c677c5d0f1a3642384b15c',1,'operator-=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adda64cae388baac1f138b06dc8595237',1,'operator-=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af20874a61c6c3f4c3fd045a96e806644',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a8b8a55690df46d97fcfc2a60120783af',1,'mlx::core::operator-=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#ab03949b1f60fa035ce454a894cd73ae9',1,'mlx::core::operator-=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#adaf70bbfb3667df0d08fd3c99896e20a',1,'mlx::core::operator-=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a321c98e5a78621d3c9a3895f707f2f1c',1,'mlx::core::operator-=(float &lhs, _MLX_Float16 rhs)']]], + ['operator_2f_30',['operator/',['../backend_2metal_2kernels_2complex_8h.html#ae6a708f67d6fd9b0962aa8877cec6d35',1,'operator/(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9f16a44e1c9836ca57edc1d7b93b5d7c',1,'operator/(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aacaedf12f862c76457133336dd6fc446',1,'operator/(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a584a513596de20663dad951a5b81695e',1,'operator/(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad8f7b11669736fbd6ed2e28211d877d4',1,'operator/(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a59515695ebc48844345fa5120511aed1',1,'operator/(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8c8ac6736440fdca366ebdefe2a12b9f',1,'operator/(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad6859b04680d0d26d75fd6c4dd74ee24',1,'operator/(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4720cc79ab2b8e39952ea9ef20e51250',1,'operator/(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a72d10ec0e62949247da129eb3a83fb9b',1,'operator/(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad6399ba2b8708899739b4cdbb44add8d',1,'operator/(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a998b1ba877a606aedf722ab46b290403',1,'operator/(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa3277ae33976c70f7bd937ddff027b72',1,'operator/(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa708a970a200822c99c0489f389469fa',1,'operator/(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#a6bde717aca2051499f73a3eee199bfdd',1,'mlx::steel::operator/()'],['../group__ops.html#gaeedf77f722b394429f1a7f6c367883bf',1,'mlx::core::operator/(const array &a, const array &b)'],['../group__ops.html#ga7366ec7f453be2a4dc449f0faa1bf554',1,'mlx::core::operator/(double a, const array &b)'],['../group__ops.html#gadfb324ae9b4feb2c7ea0ac6ade639f38',1,'mlx::core::operator/(const array &a, double b)'],['../namespacemlx_1_1core.html#a7573ac3b93ddecd69e9c88a26fc84ba9',1,'mlx::core::operator/(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a40e868dad70401d9aa9ee9c32235c315',1,'mlx::core::operator/(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a7587c28fbd2023b134e5fc12bb0dde23',1,'mlx::core::operator/(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a92cdd377c408becf4cf83c1ee9b7085d',1,'mlx::core::operator/(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aef89566301cb133d98c8e7bdd2b7bec6',1,'mlx::core::operator/(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a94e7b51185590492b46916685641276f',1,'mlx::core::operator/(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a04584788c08180835219d0ea1e2b97b1',1,'mlx::core::operator/(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad5af96e2ff09d207eb1e1980fe3e7c2d',1,'mlx::core::operator/(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ac2217bf760038cd011781158923149ed',1,'mlx::core::operator/(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aea414c04bddc4b9b609262e97398f1b4',1,'mlx::core::operator/(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a27fe23230cd082c0363b9451b731ce6b',1,'mlx::core::operator/(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abdd9bb8fb4411e5924f3eb7ef1bb52f8',1,'mlx::core::operator/(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a50bae338a7353f8b0ed3441071bb0cf6',1,'mlx::core::operator/(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aab26a3284dd3ac7d47c8b5b3a3290ce3',1,'mlx::core::operator/(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a749f48db01de38f259a0c6750a97fa77',1,'mlx::core::operator/(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a32a6a08a2a4652975b0a1bd1fcf3eafd',1,'mlx::core::operator/(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4b66fb38ddc5cc0c2489583d5c499602',1,'mlx::core::operator/(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a45726f1905b709cf8253e6efa046027b',1,'mlx::core::operator/(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#afd4170c1e364384f30e6bae341146fa6',1,'mlx::core::operator/(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aef85739d150b9d5609973da8a3f1086a',1,'mlx::core::operator/(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af52a941f8ed9b25eec91402c7b9e281f',1,'mlx::core::operator/(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a477cade78296bc85894170f62db68870',1,'mlx::core::operator/(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a22f5a2257e11423fc2fe18e2dce91590',1,'mlx::core::operator/(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a640d3574dfe6ad934c720ae8bdd78bfa',1,'mlx::core::operator/(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a6f65d8fd0cdddc96fc01f6af95804873',1,'mlx::core::operator/(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a517019d42d4e426b7b98e1c719bb47ce',1,'mlx::core::operator/(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a0beb7a223c542015a4eff4aed814a9dd',1,'mlx::core::operator/(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#abc9b1bd5018d46514bc19d23db2e5063',1,'mlx::core::operator/(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af22937df654ddbd6e398ef12764d18c0',1,'mlx::core::operator/(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a775aed5f49b530c57e71cbac81404d45',1,'mlx::core::operator/(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a97efcd96d6be666e5608034ae77289ef',1,'mlx::core::operator/(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a899851f85dbddd96f9d36319b82542a0',1,'mlx::core::operator/(bfloat16_t lhs, float16_t rhs)']]], + ['operator_2f_3d_31',['operator/=',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5aa3b8c68a2b58d41ea33eaabbf83095',1,'operator/=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a90a1c5130db515db48624d8587edbb91',1,'operator/=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a65f30a2dc199134e35bc7c5d431b2263',1,'operator/=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7172d84db640e6c49dff0d08dd64b53e',1,'operator/=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acf7cb9927bf09022088401923f2e1916',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a86b2a001cbec0d3a8d762a3c7ff47b0b',1,'operator/=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a744f72ba83522fe3cc2a49a007b42543',1,'operator/=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a77c678665b34df7652dcde053ca73185',1,'operator/=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae0614b6b199d8a65ae95d4621b118b82',1,'operator/=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa846fde89c7d2d18b18ef180a8a9c8a3',1,'operator/=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08e778be18e4a291c108fcc528b981d3',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6b9e49ad9ea256d2d0220c0d81552602',1,'operator/=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab933bc3cdf9adfea10ab9dba5292c812',1,'operator/=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a25e7c5d2ecf3375756d59074f333858f',1,'operator/=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ae4a80fde67eea9a0a37b2803946544',1,'operator/=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a912393b7208fa45bd1e87f30b218b68b',1,'operator/=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a18963246f2b640874bef6dca7049f64d',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0e2c2c2cb50b3a55ff213f18978aca35',1,'operator/=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a64f1136b17006f168ef837e17240814f',1,'operator/=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae46d75b8046d557452d74513f1106710',1,'operator/=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08d2460e259b9106d90d889481ad60d5',1,'operator/=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f7fd418408806ef498745c6fdb2c062',1,'operator/=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac703495cb370b52526a5a2d36ae26038',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ca11d43174baf0a729f93b35eabcbea',1,'operator/=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9f835a0a80c411580c97b65fdc5bdfd3',1,'operator/=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a17f47ec9cff60f8e1b3477a2793b7ac0',1,'operator/=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5be23e296bbed3a885586a6424b1666e',1,'operator/=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afba39221eb54e272aae79910b3cd7ef5',1,'operator/=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac057d95a2bf087575584aa6f9a2c6bf5',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab986ae2cec780a1f494b7b4468b7ba11',1,'operator/=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a44522c2304c6396bbe6b9d32000f4b6f',1,'operator/=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef8e7e499ea9d432aa743d83c076f945',1,'operator/=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3a0a3edbf1ba2314551454059c3f422b',1,'operator/=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acb9f0aef9fbdfde8a4f46e33b0d6c52f',1,'operator/=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a303dfcc81ffd355f866f863d7d9f0fa5',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a359edd4bcb8776861ceb26a3005624c0',1,'operator/=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc9f32cc6f40768df4285fba2e4783c7',1,'operator/=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae71f66d814a03f6377c9d86cf0a2b5d7',1,'operator/=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad0125b6baba3065a87a174ec27aa9a61',1,'operator/=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5cc74ad3e522d7104e6e2117751151ad',1,'operator/=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab3b594321fb42b0c2da99954d1e0976c',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4a0023e2fd08875156cd6ef747fbb5cd',1,'operator/=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4358ee606e66ba2081fcf94f9c3b5915',1,'operator/=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1e7ef6f065695d4b1d017547b60ef62',1,'operator/=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a284dfc702f0f67b9c233b87162eeabdd',1,'operator/=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab8f211ea896fc5190004f3ad6ad8932f',1,'operator/=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e1bcf3bc06cbcbc304c0cdf729802bc',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abbe42648a46092137b303ccd08f7df86',1,'operator/=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af1a12a1efb618a57da6dd41ae18cb53c',1,'operator/=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a94686039356dfa9aa45608a8b0562fdc',1,'operator/=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa251d6483d3b099d1b5311fbe6f0bce2',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a045ff27257cb6d8ab7a94771ba5a17e6',1,'mlx::core::operator/=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a58112951a56a0f9f8c90b60fe74f9508',1,'mlx::core::operator/=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae736defc89a04fbaf7627ad2695bb838',1,'mlx::core::operator/=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#ab1f260710251256ef737dd59be9e143c',1,'mlx::core::operator/=(float &lhs, _MLX_Float16 rhs)']]], + ['operator_3c_32',['operator<',['../backend_2metal_2kernels_2complex_8h.html#a67674e32596a9dae2258bb8e0e6a2058',1,'operator<(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9ef6a57b7185e9ca49e255fec1a44e25',1,'operator<(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aab02c65bc38ea66335b2192ead4095a8',1,'operator<(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae91686513e284bcc9635833744bbdda1',1,'operator<(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2486f3b5de85b0d57f458d8f21f82b42',1,'operator<(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a435a2aec4c777b4b184ff5d24992e8a1',1,'operator<(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abdd04257e6a73883b5f56f1186d0e906',1,'operator<(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a69984aaa05ae1d4fccccf7f57e8ecb4a',1,'operator<(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a501cc01d5bf15d9f03aa28545f9624ea',1,'operator<(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1b029e4ca72125a5f9471f582c819705',1,'operator<(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0736a76f56578d26ba1422dc8b744a18',1,'operator<(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24b1fa8998c892f90f8dde7c34fb10a5',1,'operator<(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af80ff2020ec2c4b406c5fdae3fe55e63',1,'operator<(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac03f6eefb836373d37dc280b0d813d78',1,'operator<(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#adb5f24b57d98214fc215a06475f21412',1,'mlx::steel::operator<()'],['../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_33',['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_34',['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'],['../namespacemlx_1_1steel.html#a6cc3bab5e7f6e7c719c82afa90ad2827',1,'mlx::steel::operator<=()'],['../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_3c_3d_34',['operator<=',['../backend_2metal_2kernels_2complex_8h.html#aee04c9a63c6716a99a027418354debb0',1,'operator<=(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af469c58cffeab488c681f4b33f02cd05',1,'operator<=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a81eae168dfafd299c2b94e3e8558cf',1,'operator<=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f486bf02c6ad5b9b6a96d3450f03e47',1,'operator<=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acba9efe192d22b7781b4622103c7a944',1,'operator<=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aff100489cc40ad276c2d5d67a9df67db',1,'operator<=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7eac96f64ca42991caf819c8e8c8d2bc',1,'operator<=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a88c11cd37600de5480570da3d2ae5732',1,'operator<=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08c7d12a0d16565fbf052dba2db8b22d',1,'operator<=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2b9de9624c0a507b4ead85f898ad9daf',1,'operator<=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a28f8d21c5eef047c701cf690ce9c2ef0',1,'operator<=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a14b56c687053ee2432398a25663c068f',1,'operator<=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f360806708b95a3be400af0b8871b57',1,'operator<=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a80d288f22cadfdf5e904410349e616a1',1,'operator<=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#a6cc3bab5e7f6e7c719c82afa90ad2827',1,'mlx::steel::operator<=()'],['../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_35',['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_36',['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_1steel.html#abcc797f27e87e857b41c1a8d33ee2c78',1,'mlx::steel::operator==()'],['../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_37',['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'],['../namespacemlx_1_1steel.html#a7512eadda6160e4c9d9e6aa4049fac20',1,'mlx::steel::operator>()'],['../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_38',['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'],['../namespacemlx_1_1steel.html#aa3c95c60cf69603705bb4636de547bcb',1,'mlx::steel::operator>=()'],['../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)']]], + ['operator_3d_3d_36',['operator==',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a1afd6d2a19a2b0d712063f221ab4eba7',1,'mlx::core::array::ArrayIterator::operator=='],['../backend_2metal_2kernels_2complex_8h.html#abfc19f03616441245dfc7726b278f190',1,'operator==(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a49a13b06a325ed3cca4004b6a0cde065',1,'operator==(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0aa3bfcfab53700488e5f386e6de60d5',1,'operator==(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3936148781ab1c4f33f58d12c116f370',1,'operator==(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae753526b669fba27771089dc809abd66',1,'operator==(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a05a4f197a71d0f16879032f44492bb79',1,'operator==(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae86f5917847b1ec9f313996250f2e0be',1,'operator==(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aab74ec4d33a64b92b908717d500f1ecf',1,'operator==(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac30a2c1fa6f172af903fdeb6a8632606',1,'operator==(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab4e9ad547aa23daa351075e0ecc58fa2',1,'operator==(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa5fa1a8f2b39c3508fe38205469756d1',1,'operator==(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeadc1f36c6bdc219294ce9341d80afa5',1,'operator==(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3ae2091ada1e39e857fbc53c97bdb79f',1,'operator==(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac7b4d295f3c7b1e09964f24f306422da',1,'operator==(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#abcc797f27e87e857b41c1a8d33ee2c78',1,'mlx::steel::operator==()'],['../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_37',['operator>',['../backend_2metal_2kernels_2complex_8h.html#a032a8d3eec2384c9f03066f7fd945995',1,'operator>(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae394c0a10e47d1d047854a888402eb57',1,'operator>(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab9cd098786d2f4c855c42e4a6f30ab3e',1,'operator>(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a55600f3b9859e2891e0e0b5690867b72',1,'operator>(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afd7cdb8ed2a9820efe9cf322c06f188c',1,'operator>(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31bbdbe0b62b90a4d6ea4bb0a7db586b',1,'operator>(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a68125e66f74eaffe5ea9267638ce870d',1,'operator>(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac89eb6b29edad8cca63727ab97171c29',1,'operator>(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a74e477567c9477c2cf0684f81ef4498f',1,'operator>(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2d37130b6fd79b425f5ba92b65e36bed',1,'operator>(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a41d55d167e9dc63bf29d15e0ff004869',1,'operator>(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa95f9ebfdab3c5f524775651362ce914',1,'operator>(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2826bd301bb5393473ccd363f2052c0d',1,'operator>(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a62a512d0edd894759c69f724b970fbdb',1,'operator>(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#a7512eadda6160e4c9d9e6aa4049fac20',1,'mlx::steel::operator>()'],['../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_38',['operator>=',['../backend_2metal_2kernels_2complex_8h.html#aafbd686c180398c98b33d7643f893a46',1,'operator>=(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a430dd11fbf4c6f39bc1506ab43b2341f',1,'operator>=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a64f6787a96386246f83a8981d274150e',1,'operator>=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1a788f82212afad30e4c2ee40f1c313c',1,'operator>=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae88617c4a012c5dc12781a349a28c886',1,'operator>=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a467a88531150a4d9d30fce07c49c126e',1,'operator>=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9e21c5ea9dd724dc2ca8c54ad908f09c',1,'operator>=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2f6286d222e2176bcbdc824c5d598100',1,'operator>=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abec53064aa96265385ecc57de5fbc74c',1,'operator>=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac766839f8f9e4863e8e18418c342c875',1,'operator>=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2807fa6862b0f9689c81199b1e695ed8',1,'operator>=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee3ae0d0d1f941463b06eca0bf041b2b',1,'operator>=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a523eda93c809733368e2b45382d2add6',1,'operator>=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1f4e90909ac1c7280f4c7d1977c55fb7',1,'operator>=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aa3c95c60cf69603705bb4636de547bcb',1,'mlx::steel::operator>=()'],['../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)']]], ['operator_3e_3e_39',['operator>>',['../group__ops.html#ga498b61f7e8f056ae00297fa0dc17303a',1,'mlx::core']]], ['operator_5b_5d_40',['operator[]',['../classpocketfft_1_1detail_1_1arr.html#aea0bd899b19e03f54dfd6c188727061a',1,'pocketfft::detail::arr::operator[](size_t idx)'],['../classpocketfft_1_1detail_1_1arr.html#a99c54f96bc79c7cdd8925c1663462842',1,'pocketfft::detail::arr::operator[](size_t idx) const'],['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a71b02f67c47b24adb296eafd2c7a3598',1,'pocketfft::detail::sincos_2pibyn::operator[]()'],['../classpocketfft_1_1detail_1_1cndarr.html#ae4852d1fe936a5d61832b507816c7054',1,'pocketfft::detail::cndarr::operator[]()'],['../classpocketfft_1_1detail_1_1ndarr.html#a2b2c4e205e8b5c32c9fe55dfd7b8c8d8',1,'pocketfft::detail::ndarr::operator[]()']]], ['operator_5e_41',['operator^',['../group__ops.html#gac3a6fe18694e84b3d63458e9553ac181',1,'mlx::core::operator^(const array &a, const array &b)'],['../namespacemlx_1_1core.html#ae36ea40b8477bfa12d41aae8245225c9',1,'mlx::core::operator^(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a03fc96696f5c6d9411841889d05f4670',1,'mlx::core::operator^(_MLX_BFloat16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a55130edf926366db0d6207989e609b7c',1,'mlx::core::operator^(uint16_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0b75198f364d742a1c25dd13e398f2c2',1,'mlx::core::operator^(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7f205f1b10b23180a23bf2be4bb726b1',1,'mlx::core::operator^(_MLX_Float16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a9edfe65f3c6da583c7b109290ec94b22',1,'mlx::core::operator^(uint16_t lhs, _MLX_Float16 rhs)']]], @@ -54,7 +54,7 @@ var searchData= ['out_5fof_5fbounds_51',['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_52',['out_strides',['../struct_m_l_x_conv_params.html#a0c8b2cfc26859a2af9d39a2cfcc3aea6',1,'MLXConvParams']]], ['outer_53',['outer',['../group__ops.html#ga866af24e10db2797e1c5a5986dbf6c0d',1,'mlx::core']]], - ['output_5fshapes_54',['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()']]], + ['output_5fshapes_54',['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_contiguous.html#a1a53623d7c591ba6567ac1533fbc2b7c',1,'mlx::core::Contiguous::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_55',['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_56',['overwrite_descriptor',['../classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387',1,'mlx::core::array']]] ]; diff --git a/docs/build/html/search/classes_1.js b/docs/build/html/search/classes_1.js index f2ad7365..1a29858f 100644 --- a/docs/build/html/search/classes_1.js +++ b/docs/build/html/search/classes_1.js @@ -31,5 +31,6 @@ var searchData= ['array_28',['array',['../classmlx_1_1core_1_1array.html',1,'mlx::core']]], ['arrayiterator_29',['ArrayIterator',['../structmlx_1_1core_1_1array_1_1_array_iterator.html',1,'mlx::core::array']]], ['asstrided_30',['AsStrided',['../classmlx_1_1core_1_1_as_strided.html',1,'mlx::core']]], - ['astype_31',['AsType',['../classmlx_1_1core_1_1_as_type.html',1,'mlx::core']]] + ['astype_31',['AsType',['../classmlx_1_1core_1_1_as_type.html',1,'mlx::core']]], + ['attnparams_32',['AttnParams',['../structmlx_1_1steel_1_1_attn_params.html',1,'mlx::steel']]] ]; diff --git a/docs/build/html/search/classes_12.js b/docs/build/html/search/classes_12.js index d3f29cb2..e06ca618 100644 --- a/docs/build/html/search/classes_12.js +++ b/docs/build/html/search/classes_12.js @@ -7,24 +7,27 @@ var searchData= ['scheduler_4',['Scheduler',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html',1,'mlx::core::scheduler']]], ['select_5',['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']]], ['send_6',['Send',['../classmlx_1_1core_1_1distributed_1_1_send.html',1,'mlx::core::distributed']]], - ['sigmoid_7',['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']]], - ['sign_8',['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']]], - ['simple_5fiter_9',['simple_iter',['../classpocketfft_1_1detail_1_1simple__iter.html',1,'pocketfft::detail']]], - ['sin_10',['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']]], - ['sincos_5f2pibyn_11',['sincos_2pibyn',['../classpocketfft_1_1detail_1_1sincos__2pibyn.html',1,'pocketfft::detail']]], - ['sinh_12',['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']]], - ['slice_13',['Slice',['../classmlx_1_1core_1_1_slice.html',1,'mlx::core']]], - ['sliceupdate_14',['SliceUpdate',['../classmlx_1_1core_1_1_slice_update.html',1,'mlx::core']]], - ['softmax_15',['Softmax',['../classmlx_1_1core_1_1_softmax.html',1,'mlx::core']]], - ['sort_16',['Sort',['../classmlx_1_1core_1_1_sort.html',1,'mlx::core']]], - ['split_17',['Split',['../classmlx_1_1core_1_1_split.html',1,'mlx::core']]], - ['sqrt_18',['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']]], - ['square_19',['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']]], - ['stopgradient_20',['StopGradient',['../classmlx_1_1core_1_1_stop_gradient.html',1,'mlx::core']]], - ['stream_21',['Stream',['../structmlx_1_1core_1_1_stream.html',1,'mlx::core']]], - ['streamcontext_22',['StreamContext',['../structmlx_1_1core_1_1_stream_context.html',1,'mlx::core']]], - ['streamthread_23',['StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html',1,'mlx::core::scheduler']]], - ['subtract_24',['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']]], - ['sum_25',['Sum',['../struct_sum.html',1,'']]], - ['svd_26',['SVD',['../classmlx_1_1core_1_1_s_v_d.html',1,'mlx::core']]] + ['shape2d_7',['Shape2D',['../structmlx_1_1steel_1_1_shape2_d.html',1,'mlx::steel']]], + ['sigmoid_8',['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']]], + ['sign_9',['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']]], + ['simple_5fiter_10',['simple_iter',['../classpocketfft_1_1detail_1_1simple__iter.html',1,'pocketfft::detail']]], + ['sin_11',['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']]], + ['sincos_5f2pibyn_12',['sincos_2pibyn',['../classpocketfft_1_1detail_1_1sincos__2pibyn.html',1,'pocketfft::detail']]], + ['sinh_13',['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']]], + ['slice_14',['Slice',['../classmlx_1_1core_1_1_slice.html',1,'mlx::core']]], + ['sliceupdate_15',['SliceUpdate',['../classmlx_1_1core_1_1_slice_update.html',1,'mlx::core']]], + ['softmax_16',['Softmax',['../classmlx_1_1core_1_1_softmax.html',1,'mlx::core']]], + ['sort_17',['Sort',['../classmlx_1_1core_1_1_sort.html',1,'mlx::core']]], + ['split_18',['Split',['../classmlx_1_1core_1_1_split.html',1,'mlx::core']]], + ['sqrt_19',['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']]], + ['square_20',['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']]], + ['stopgradient_21',['StopGradient',['../classmlx_1_1core_1_1_stop_gradient.html',1,'mlx::core']]], + ['stream_22',['Stream',['../structmlx_1_1core_1_1_stream.html',1,'mlx::core']]], + ['streamcontext_23',['StreamContext',['../structmlx_1_1core_1_1_stream_context.html',1,'mlx::core']]], + ['streamthread_24',['StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html',1,'mlx::core::scheduler']]], + ['subop_25',['SubOp',['../struct_sub_op.html',1,'']]], + ['subtract_26',['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']]], + ['sum_27',['Sum',['../struct_sum.html',1,'']]], + ['sumop_28',['SumOp',['../struct_sum_op.html',1,'']]], + ['svd_29',['SVD',['../classmlx_1_1core_1_1_s_v_d.html',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/classes_13.js b/docs/build/html/search/classes_13.js index a256f73b..5de3436b 100644 --- a/docs/build/html/search/classes_13.js +++ b/docs/build/html/search/classes_13.js @@ -12,6 +12,7 @@ var searchData= ['transformadd_9',['TransformAdd',['../structmlx_1_1steel_1_1_transform_add.html',1,'mlx::steel']]], ['transformaxpby_10',['TransformAxpby',['../structmlx_1_1steel_1_1_transform_axpby.html',1,'mlx::steel']]], ['transformnone_11',['TransformNone',['../structmlx_1_1steel_1_1_transform_none.html',1,'mlx::steel']]], - ['transpose_12',['Transpose',['../classmlx_1_1core_1_1_transpose.html',1,'mlx::core']]], - ['typetodtype_13',['TypeToDtype',['../structmlx_1_1core_1_1_type_to_dtype.html',1,'mlx::core']]] + ['transformscale_12',['TransformScale',['../struct_transform_scale.html',1,'']]], + ['transpose_13',['Transpose',['../classmlx_1_1core_1_1_transpose.html',1,'mlx::core']]], + ['typetodtype_14',['TypeToDtype',['../structmlx_1_1core_1_1_type_to_dtype.html',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/classes_2.js b/docs/build/html/search/classes_2.js index 61d4233f..d6904d06 100644 --- a/docs/build/html/search/classes_2.js +++ b/docs/build/html/search/classes_2.js @@ -8,11 +8,12 @@ var searchData= ['bitwiseor_5',['BitwiseOr',['../struct_bitwise_or.html',1,'BitwiseOr'],['../structmlx_1_1core_1_1detail_1_1_bitwise_or.html',1,'mlx::core::detail::BitwiseOr']]], ['bitwisexor_6',['BitwiseXor',['../struct_bitwise_xor.html',1,'BitwiseXor'],['../structmlx_1_1core_1_1detail_1_1_bitwise_xor.html',1,'mlx::core::detail::BitwiseXor']]], ['blockloader_7',['BlockLoader',['../structmlx_1_1steel_1_1_block_loader.html',1,'mlx::steel']]], - ['blockmaskedmm_8',['BlockMaskedMM',['../classmlx_1_1core_1_1_block_masked_m_m.html',1,'mlx::core']]], - ['blockmergesort_9',['BlockMergeSort',['../struct_block_merge_sort.html',1,'']]], - ['blockmma_10',['BlockMMA',['../structmlx_1_1steel_1_1_block_m_m_a.html',1,'mlx::steel']]], - ['blockswizzle_11',['BlockSwizzle',['../structmlx_1_1steel_1_1_block_swizzle.html',1,'mlx::steel']]], - ['bool4_5for_5fuint_12',['bool4_or_uint',['../unionbool4__or__uint.html',1,'']]], - ['broadcast_13',['Broadcast',['../classmlx_1_1core_1_1_broadcast.html',1,'mlx::core']]], - ['buffer_14',['Buffer',['../classmlx_1_1core_1_1allocator_1_1_buffer.html',1,'mlx::core::allocator']]] + ['blockloadert_8',['BlockLoaderT',['../structmlx_1_1steel_1_1_block_loader_t.html',1,'mlx::steel']]], + ['blockmaskedmm_9',['BlockMaskedMM',['../classmlx_1_1core_1_1_block_masked_m_m.html',1,'mlx::core']]], + ['blockmergesort_10',['BlockMergeSort',['../struct_block_merge_sort.html',1,'']]], + ['blockmma_11',['BlockMMA',['../structmlx_1_1steel_1_1_block_m_m_a.html',1,'mlx::steel']]], + ['blockswizzle_12',['BlockSwizzle',['../structmlx_1_1steel_1_1_block_swizzle.html',1,'mlx::steel']]], + ['bool4_5for_5fuint_13',['bool4_or_uint',['../unionbool4__or__uint.html',1,'']]], + ['broadcast_14',['Broadcast',['../classmlx_1_1core_1_1_broadcast.html',1,'mlx::core']]], + ['buffer_15',['Buffer',['../classmlx_1_1core_1_1allocator_1_1_buffer.html',1,'mlx::core::allocator']]] ]; diff --git a/docs/build/html/search/classes_3.js b/docs/build/html/search/classes_3.js index 102a5244..1dbd6b01 100644 --- a/docs/build/html/search/classes_3.js +++ b/docs/build/html/search/classes_3.js @@ -22,27 +22,29 @@ var searchData= ['concurrent_5fqueue_3c_20std_3a_3afunction_3c_20void_28_29_3e_20_3e_19',['concurrent_queue< std::function< void()> >',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html',1,'pocketfft::detail::threading']]], ['concurrentcontext_20',['ConcurrentContext',['../structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html',1,'mlx::core::metal::CommandEncoder']]], ['conjugate_21',['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']]], - ['contiguousiterator_22',['ContiguousIterator',['../structmlx_1_1core_1_1_contiguous_iterator.html',1,'mlx::core']]], - ['conv2dgeneralbaseinfo_23',['Conv2DGeneralBaseInfo',['../structmlx_1_1steel_1_1_conv2_d_general_base_info.html',1,'mlx::steel']]], - ['conv2dgeneraljumpparams_24',['Conv2DGeneralJumpParams',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html',1,'mlx::steel']]], - ['conv2dinputblockloadergeneral_25',['Conv2DInputBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html',1,'mlx::steel']]], - ['conv2dinputblockloaderlargefilter_26',['Conv2DInputBlockLoaderLargeFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html',1,'mlx::steel']]], - ['conv2dinputblockloadersmallchannels_27',['Conv2DInputBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html',1,'mlx::steel']]], - ['conv2dinputblockloadersmallfilter_28',['Conv2DInputBlockLoaderSmallFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html',1,'mlx::steel']]], - ['conv2dweightblockloader_29',['Conv2DWeightBlockLoader',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html',1,'mlx::steel']]], - ['conv2dweightblockloadergeneral_30',['Conv2DWeightBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html',1,'mlx::steel']]], - ['conv2dweightblockloadersmallchannels_31',['Conv2DWeightBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html',1,'mlx::steel']]], - ['convolution_32',['Convolution',['../classmlx_1_1core_1_1_convolution.html',1,'mlx::core']]], - ['copy_33',['Copy',['../classmlx_1_1core_1_1_copy.html',1,'mlx::core']]], - ['cos_34',['Cos',['../struct_cos.html',1,'Cos'],['../classmlx_1_1core_1_1_cos.html',1,'mlx::core::Cos'],['../structmlx_1_1core_1_1detail_1_1_cos.html',1,'mlx::core::detail::Cos']]], - ['cosh_35',['Cosh',['../struct_cosh.html',1,'Cosh'],['../classmlx_1_1core_1_1_cosh.html',1,'mlx::core::Cosh'],['../structmlx_1_1core_1_1detail_1_1_cosh.html',1,'mlx::core::detail::Cosh']]], - ['cummax_36',['CumMax',['../struct_cum_max.html',1,'']]], - ['cummin_37',['CumMin',['../struct_cum_min.html',1,'']]], - ['cumprod_38',['CumProd',['../struct_cum_prod.html',1,'']]], - ['cumprod_3c_20bool_20_3e_39',['CumProd< bool >',['../struct_cum_prod_3_01bool_01_4.html',1,'']]], - ['cumsum_40',['CumSum',['../struct_cum_sum.html',1,'']]], - ['custom_41',['Custom',['../classmlx_1_1core_1_1fast_1_1_custom.html',1,'mlx::core::fast']]], - ['customkernel_42',['CustomKernel',['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html',1,'mlx::core::fast']]], - ['customkernelshapeinfo_43',['CustomKernelShapeInfo',['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html',1,'mlx::core::fast']]], - ['customtransforms_44',['CustomTransforms',['../classmlx_1_1core_1_1_custom_transforms.html',1,'mlx::core']]] + ['contiguous_22',['Contiguous',['../classmlx_1_1core_1_1_contiguous.html',1,'mlx::core']]], + ['contiguousiterator_23',['ContiguousIterator',['../structmlx_1_1core_1_1_contiguous_iterator.html',1,'mlx::core']]], + ['conv2dgeneralbaseinfo_24',['Conv2DGeneralBaseInfo',['../structmlx_1_1steel_1_1_conv2_d_general_base_info.html',1,'mlx::steel']]], + ['conv2dgeneraljumpparams_25',['Conv2DGeneralJumpParams',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html',1,'mlx::steel']]], + ['conv2dinputblockloadergeneral_26',['Conv2DInputBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html',1,'mlx::steel']]], + ['conv2dinputblockloaderlargefilter_27',['Conv2DInputBlockLoaderLargeFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html',1,'mlx::steel']]], + ['conv2dinputblockloadersmallchannels_28',['Conv2DInputBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html',1,'mlx::steel']]], + ['conv2dinputblockloadersmallfilter_29',['Conv2DInputBlockLoaderSmallFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html',1,'mlx::steel']]], + ['conv2dweightblockloader_30',['Conv2DWeightBlockLoader',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html',1,'mlx::steel']]], + ['conv2dweightblockloadergeneral_31',['Conv2DWeightBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html',1,'mlx::steel']]], + ['conv2dweightblockloadersmallchannels_32',['Conv2DWeightBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html',1,'mlx::steel']]], + ['convolution_33',['Convolution',['../classmlx_1_1core_1_1_convolution.html',1,'mlx::core']]], + ['copy_34',['Copy',['../classmlx_1_1core_1_1_copy.html',1,'mlx::core']]], + ['cos_35',['Cos',['../struct_cos.html',1,'Cos'],['../classmlx_1_1core_1_1_cos.html',1,'mlx::core::Cos'],['../structmlx_1_1core_1_1detail_1_1_cos.html',1,'mlx::core::detail::Cos']]], + ['cosh_36',['Cosh',['../struct_cosh.html',1,'Cosh'],['../classmlx_1_1core_1_1_cosh.html',1,'mlx::core::Cosh'],['../structmlx_1_1core_1_1detail_1_1_cosh.html',1,'mlx::core::detail::Cosh']]], + ['cshape_37',['CShape',['../structmlx_1_1steel_1_1_c_shape.html',1,'mlx::steel']]], + ['cummax_38',['CumMax',['../struct_cum_max.html',1,'']]], + ['cummin_39',['CumMin',['../struct_cum_min.html',1,'']]], + ['cumprod_40',['CumProd',['../struct_cum_prod.html',1,'']]], + ['cumprod_3c_20bool_20_3e_41',['CumProd< bool >',['../struct_cum_prod_3_01bool_01_4.html',1,'']]], + ['cumsum_42',['CumSum',['../struct_cum_sum.html',1,'']]], + ['custom_43',['Custom',['../classmlx_1_1core_1_1fast_1_1_custom.html',1,'mlx::core::fast']]], + ['customkernel_44',['CustomKernel',['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html',1,'mlx::core::fast']]], + ['customkernelshapeinfo_45',['CustomKernelShapeInfo',['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html',1,'mlx::core::fast']]], + ['customtransforms_46',['CustomTransforms',['../classmlx_1_1core_1_1_custom_transforms.html',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/classes_4.js b/docs/build/html/search/classes_4.js index 27b04fa5..5f3a1df7 100644 --- a/docs/build/html/search/classes_4.js +++ b/docs/build/html/search/classes_4.js @@ -9,5 +9,6 @@ var searchData= ['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']]] + ['divop_9',['DivOp',['../struct_div_op.html',1,'']]], + ['dtype_10',['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 bc95defd..e98deee5 100644 --- a/docs/build/html/search/classes_5.js +++ b/docs/build/html/search/classes_5.js @@ -10,5 +10,6 @@ var searchData= ['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']]] + ['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']]], + ['expsubop_11',['ExpSubOp',['../struct_exp_sub_op.html',1,'']]] ]; diff --git a/docs/build/html/search/classes_b.js b/docs/build/html/search/classes_b.js index 07d520fd..0a104128 100644 --- a/docs/build/html/search/classes_b.js +++ b/docs/build/html/search/classes_b.js @@ -3,35 +3,36 @@ var searchData= ['latch_0',['latch',['../classpocketfft_1_1detail_1_1threading_1_1latch.html',1,'pocketfft::detail::threading']]], ['layernorm_1',['LayerNorm',['../classmlx_1_1core_1_1fast_1_1_layer_norm.html',1,'mlx::core::fast']]], ['layernormvjp_2',['LayerNormVJP',['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html',1,'mlx::core::fast']]], - ['leftshift_3',['LeftShift',['../struct_left_shift.html',1,'LeftShift'],['../structmlx_1_1core_1_1detail_1_1_left_shift.html',1,'mlx::core::detail::LeftShift']]], - ['less_4',['Less',['../struct_less.html',1,'Less'],['../structmlx_1_1core_1_1detail_1_1_less.html',1,'mlx::core::detail::Less'],['../classmlx_1_1core_1_1_less.html',1,'mlx::core::Less']]], - ['lessequal_5',['LessEqual',['../struct_less_equal.html',1,'LessEqual'],['../structmlx_1_1core_1_1detail_1_1_less_equal.html',1,'mlx::core::detail::LessEqual'],['../classmlx_1_1core_1_1_less_equal.html',1,'mlx::core::LessEqual']]], - ['lessthan_6',['LessThan',['../struct_less_than.html',1,'']]], - ['limits_7',['Limits',['../struct_limits.html',1,'']]], - ['limits_3c_20bfloat16_5ft_20_3e_8',['Limits< bfloat16_t >',['../struct_limits_3_01bfloat16__t_01_4.html',1,'']]], - ['limits_3c_20bool_20_3e_9',['Limits< bool >',['../struct_limits_3_01bool_01_4.html',1,'']]], - ['limits_3c_20complex64_5ft_20_3e_10',['Limits< complex64_t >',['../struct_limits_3_01complex64__t_01_4.html',1,'']]], - ['limits_3c_20float_20_3e_11',['Limits< float >',['../struct_limits_3_01float_01_4.html',1,'']]], - ['limits_3c_20half_20_3e_12',['Limits< half >',['../struct_limits_3_01half_01_4.html',1,'']]], - ['limits_3c_20int16_5ft_20_3e_13',['Limits< int16_t >',['../struct_limits_3_01int16__t_01_4.html',1,'']]], - ['limits_3c_20int32_5ft_20_3e_14',['Limits< int32_t >',['../struct_limits_3_01int32__t_01_4.html',1,'']]], - ['limits_3c_20int64_5ft_20_3e_15',['Limits< int64_t >',['../struct_limits_3_01int64__t_01_4.html',1,'']]], - ['limits_3c_20int8_5ft_20_3e_16',['Limits< int8_t >',['../struct_limits_3_01int8__t_01_4.html',1,'']]], - ['limits_3c_20uint16_5ft_20_3e_17',['Limits< uint16_t >',['../struct_limits_3_01uint16__t_01_4.html',1,'']]], - ['limits_3c_20uint32_5ft_20_3e_18',['Limits< uint32_t >',['../struct_limits_3_01uint32__t_01_4.html',1,'']]], - ['limits_3c_20uint64_5ft_20_3e_19',['Limits< uint64_t >',['../struct_limits_3_01uint64__t_01_4.html',1,'']]], - ['limits_3c_20uint8_5ft_20_3e_20',['Limits< uint8_t >',['../struct_limits_3_01uint8__t_01_4.html',1,'']]], - ['load_21',['Load',['../classmlx_1_1core_1_1_load.html',1,'mlx::core']]], - ['log_22',['Log',['../struct_log.html',1,'Log'],['../structmlx_1_1core_1_1detail_1_1_log.html',1,'mlx::core::detail::Log'],['../classmlx_1_1core_1_1_log.html',1,'mlx::core::Log']]], - ['log10_23',['Log10',['../struct_log10.html',1,'Log10'],['../structmlx_1_1core_1_1detail_1_1_log10.html',1,'mlx::core::detail::Log10']]], - ['log1p_24',['Log1p',['../struct_log1p.html',1,'Log1p'],['../structmlx_1_1core_1_1detail_1_1_log1p.html',1,'mlx::core::detail::Log1p'],['../classmlx_1_1core_1_1_log1p.html',1,'mlx::core::Log1p']]], - ['log2_25',['Log2',['../struct_log2.html',1,'Log2'],['../structmlx_1_1core_1_1detail_1_1_log2.html',1,'mlx::core::detail::Log2']]], - ['logaddexp_26',['LogAddExp',['../struct_log_add_exp.html',1,'LogAddExp'],['../structmlx_1_1core_1_1detail_1_1_log_add_exp.html',1,'mlx::core::detail::LogAddExp'],['../classmlx_1_1core_1_1_log_add_exp.html',1,'mlx::core::LogAddExp']]], - ['logicaland_27',['LogicalAnd',['../struct_logical_and.html',1,'LogicalAnd'],['../structmlx_1_1core_1_1detail_1_1_logical_and.html',1,'mlx::core::detail::LogicalAnd'],['../classmlx_1_1core_1_1_logical_and.html',1,'mlx::core::LogicalAnd']]], - ['logicalnot_28',['LogicalNot',['../struct_logical_not.html',1,'LogicalNot'],['../structmlx_1_1core_1_1detail_1_1_logical_not.html',1,'mlx::core::detail::LogicalNot'],['../classmlx_1_1core_1_1_logical_not.html',1,'mlx::core::LogicalNot']]], - ['logicalor_29',['LogicalOr',['../struct_logical_or.html',1,'LogicalOr'],['../structmlx_1_1core_1_1detail_1_1_logical_or.html',1,'mlx::core::detail::LogicalOr'],['../classmlx_1_1core_1_1_logical_or.html',1,'mlx::core::LogicalOr']]], - ['loopalignment_30',['LoopAlignment',['../structmlx_1_1steel_1_1_loop_alignment.html',1,'mlx::steel']]], - ['looped_5felem_5fto_5floc_31',['looped_elem_to_loc',['../structlooped__elem__to__loc.html',1,'']]], - ['looped_5felem_5fto_5floc_3c_200_2c_20offset_5ft_20_3e_32',['looped_elem_to_loc< 0, offset_t >',['../structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html',1,'']]], - ['looped_5felem_5fto_5floc_3c_201_2c_20offset_5ft_20_3e_33',['looped_elem_to_loc< 1, offset_t >',['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html',1,'']]] + ['layout2d_3',['Layout2D',['../structmlx_1_1steel_1_1_layout2_d.html',1,'mlx::steel']]], + ['leftshift_4',['LeftShift',['../struct_left_shift.html',1,'LeftShift'],['../structmlx_1_1core_1_1detail_1_1_left_shift.html',1,'mlx::core::detail::LeftShift']]], + ['less_5',['Less',['../struct_less.html',1,'Less'],['../structmlx_1_1core_1_1detail_1_1_less.html',1,'mlx::core::detail::Less'],['../classmlx_1_1core_1_1_less.html',1,'mlx::core::Less']]], + ['lessequal_6',['LessEqual',['../struct_less_equal.html',1,'LessEqual'],['../structmlx_1_1core_1_1detail_1_1_less_equal.html',1,'mlx::core::detail::LessEqual'],['../classmlx_1_1core_1_1_less_equal.html',1,'mlx::core::LessEqual']]], + ['lessthan_7',['LessThan',['../struct_less_than.html',1,'']]], + ['limits_8',['Limits',['../struct_limits.html',1,'']]], + ['limits_3c_20bfloat16_5ft_20_3e_9',['Limits< bfloat16_t >',['../struct_limits_3_01bfloat16__t_01_4.html',1,'']]], + ['limits_3c_20bool_20_3e_10',['Limits< bool >',['../struct_limits_3_01bool_01_4.html',1,'']]], + ['limits_3c_20complex64_5ft_20_3e_11',['Limits< complex64_t >',['../struct_limits_3_01complex64__t_01_4.html',1,'']]], + ['limits_3c_20float_20_3e_12',['Limits< float >',['../struct_limits_3_01float_01_4.html',1,'']]], + ['limits_3c_20half_20_3e_13',['Limits< half >',['../struct_limits_3_01half_01_4.html',1,'']]], + ['limits_3c_20int16_5ft_20_3e_14',['Limits< int16_t >',['../struct_limits_3_01int16__t_01_4.html',1,'']]], + ['limits_3c_20int32_5ft_20_3e_15',['Limits< int32_t >',['../struct_limits_3_01int32__t_01_4.html',1,'']]], + ['limits_3c_20int64_5ft_20_3e_16',['Limits< int64_t >',['../struct_limits_3_01int64__t_01_4.html',1,'']]], + ['limits_3c_20int8_5ft_20_3e_17',['Limits< int8_t >',['../struct_limits_3_01int8__t_01_4.html',1,'']]], + ['limits_3c_20uint16_5ft_20_3e_18',['Limits< uint16_t >',['../struct_limits_3_01uint16__t_01_4.html',1,'']]], + ['limits_3c_20uint32_5ft_20_3e_19',['Limits< uint32_t >',['../struct_limits_3_01uint32__t_01_4.html',1,'']]], + ['limits_3c_20uint64_5ft_20_3e_20',['Limits< uint64_t >',['../struct_limits_3_01uint64__t_01_4.html',1,'']]], + ['limits_3c_20uint8_5ft_20_3e_21',['Limits< uint8_t >',['../struct_limits_3_01uint8__t_01_4.html',1,'']]], + ['load_22',['Load',['../classmlx_1_1core_1_1_load.html',1,'mlx::core']]], + ['log_23',['Log',['../struct_log.html',1,'Log'],['../structmlx_1_1core_1_1detail_1_1_log.html',1,'mlx::core::detail::Log'],['../classmlx_1_1core_1_1_log.html',1,'mlx::core::Log']]], + ['log10_24',['Log10',['../struct_log10.html',1,'Log10'],['../structmlx_1_1core_1_1detail_1_1_log10.html',1,'mlx::core::detail::Log10']]], + ['log1p_25',['Log1p',['../struct_log1p.html',1,'Log1p'],['../structmlx_1_1core_1_1detail_1_1_log1p.html',1,'mlx::core::detail::Log1p'],['../classmlx_1_1core_1_1_log1p.html',1,'mlx::core::Log1p']]], + ['log2_26',['Log2',['../struct_log2.html',1,'Log2'],['../structmlx_1_1core_1_1detail_1_1_log2.html',1,'mlx::core::detail::Log2']]], + ['logaddexp_27',['LogAddExp',['../struct_log_add_exp.html',1,'LogAddExp'],['../structmlx_1_1core_1_1detail_1_1_log_add_exp.html',1,'mlx::core::detail::LogAddExp'],['../classmlx_1_1core_1_1_log_add_exp.html',1,'mlx::core::LogAddExp']]], + ['logicaland_28',['LogicalAnd',['../struct_logical_and.html',1,'LogicalAnd'],['../structmlx_1_1core_1_1detail_1_1_logical_and.html',1,'mlx::core::detail::LogicalAnd'],['../classmlx_1_1core_1_1_logical_and.html',1,'mlx::core::LogicalAnd']]], + ['logicalnot_29',['LogicalNot',['../struct_logical_not.html',1,'LogicalNot'],['../structmlx_1_1core_1_1detail_1_1_logical_not.html',1,'mlx::core::detail::LogicalNot'],['../classmlx_1_1core_1_1_logical_not.html',1,'mlx::core::LogicalNot']]], + ['logicalor_30',['LogicalOr',['../struct_logical_or.html',1,'LogicalOr'],['../structmlx_1_1core_1_1detail_1_1_logical_or.html',1,'mlx::core::detail::LogicalOr'],['../classmlx_1_1core_1_1_logical_or.html',1,'mlx::core::LogicalOr']]], + ['loopalignment_31',['LoopAlignment',['../structmlx_1_1steel_1_1_loop_alignment.html',1,'mlx::steel']]], + ['loopedelemtoloc_32',['LoopedElemToLoc',['../struct_looped_elem_to_loc.html',1,'']]], + ['loopedelemtoloc_3c_201_2c_20offsett_2c_20false_20_3e_33',['LoopedElemToLoc< 1, OffsetT, false >',['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html',1,'']]], + ['loopedelemtoloc_3c_201_2c_20offsett_2c_20true_20_3e_34',['LoopedElemToLoc< 1, OffsetT, true >',['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html',1,'']]] ]; diff --git a/docs/build/html/search/classes_c.js b/docs/build/html/search/classes_c.js index 4fa74563..e52c9fe3 100644 --- a/docs/build/html/search/classes_c.js +++ b/docs/build/html/search/classes_c.js @@ -4,19 +4,19 @@ var searchData= ['matmul_1',['Matmul',['../classmlx_1_1core_1_1_matmul.html',1,'mlx::core']]], ['max_2',['Max',['../struct_max.html',1,'']]], ['maximum_3',['Maximum',['../struct_maximum.html',1,'Maximum'],['../structmlx_1_1core_1_1detail_1_1_maximum.html',1,'mlx::core::detail::Maximum'],['../classmlx_1_1core_1_1_maximum.html',1,'mlx::core::Maximum']]], - ['metalallocator_4',['MetalAllocator',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html',1,'mlx::core::metal']]], - ['min_5',['Min',['../struct_min.html',1,'']]], - ['minimum_6',['Minimum',['../struct_minimum.html',1,'Minimum'],['../structmlx_1_1core_1_1detail_1_1_minimum.html',1,'mlx::core::detail::Minimum'],['../classmlx_1_1core_1_1_minimum.html',1,'mlx::core::Minimum']]], - ['mlx_5fatomic_7',['mlx_atomic',['../structmlx__atomic.html',1,'']]], - ['mlx_5fatomic_3c_20t_2c_20enable_5fif_5ft_3c_20is_5fmetal_5fatomic_3c_20t_20_3e_20_3e_20_3e_8',['mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >',['../structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html',1,'']]], - ['mlxconvparams_9',['MLXConvParams',['../struct_m_l_x_conv_params.html',1,'']]], - ['mlxconvparams_3c_202_20_3e_10',['MLXConvParams< 2 >',['../struct_m_l_x_conv_params.html',1,'']]], - ['mlxfastattentionparams_11',['MLXFastAttentionParams',['../struct_m_l_x_fast_attention_params.html',1,'']]], - ['mlxscaleddotproductattentionparams_12',['MLXScaledDotProductAttentionParams',['../struct_m_l_x_scaled_dot_product_attention_params.html',1,'']]], - ['mmatile_13',['MMATile',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], - ['mmatile_3c_20float_2c_201_2c_20tn_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_14',['MMATile< float, 1, TN, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], - ['mmatile_3c_20float_2c_20tm_2c_201_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_15',['MMATile< float, TM, 1, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], - ['mmatile_3c_20float_2c_20tm_2c_20tn_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_16',['MMATile< float, TM, TN, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], + ['maxop_4',['MaxOp',['../struct_max_op.html',1,'']]], + ['metalallocator_5',['MetalAllocator',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html',1,'mlx::core::metal']]], + ['min_6',['Min',['../struct_min.html',1,'']]], + ['minimum_7',['Minimum',['../struct_minimum.html',1,'Minimum'],['../structmlx_1_1core_1_1detail_1_1_minimum.html',1,'mlx::core::detail::Minimum'],['../classmlx_1_1core_1_1_minimum.html',1,'mlx::core::Minimum']]], + ['mlx_5fatomic_8',['mlx_atomic',['../structmlx__atomic.html',1,'']]], + ['mlx_5fatomic_3c_20t_2c_20enable_5fif_5ft_3c_20is_5fmetal_5fatomic_3c_20t_20_3e_20_3e_20_3e_9',['mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >',['../structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html',1,'']]], + ['mlxconvparams_10',['MLXConvParams',['../struct_m_l_x_conv_params.html',1,'']]], + ['mlxconvparams_3c_202_20_3e_11',['MLXConvParams< 2 >',['../struct_m_l_x_conv_params.html',1,'']]], + ['mmatile_12',['MMATile',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], + ['mmatile_3c_20float_2c_201_2c_20tn_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_13',['MMATile< float, 1, TN, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], + ['mmatile_3c_20float_2c_20tm_2c_201_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_14',['MMATile< float, TM, 1, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], + ['mmatile_3c_20float_2c_20tm_2c_20tn_2c_20mlx_3a_3asteel_3a_3abasemmafrag_20_3e_15',['MMATile< float, TM, TN, mlx::steel::BaseMMAFrag >',['../structmlx_1_1steel_1_1_m_m_a_tile.html',1,'mlx::steel']]], + ['mulop_16',['MulOp',['../struct_mul_op.html',1,'']]], ['multi_5fiter_17',['multi_iter',['../classpocketfft_1_1detail_1_1multi__iter.html',1,'pocketfft::detail']]], ['multiply_18',['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']]] ]; diff --git a/docs/build/html/search/defines_2.js b/docs/build/html/search/defines_2.js index 51c520bf..03e79577 100644 --- a/docs/build/html/search/defines_2.js +++ b/docs/build/html/search/defines_2.js @@ -1,13 +1,12 @@ var searchData= [ - ['bfloat16_5fto_5fuint16_0',['bfloat16_to_uint16',['../bf16__math_8h.html#a51cfdd4502e755310f6f3456f039bea7',1,'bf16_math.h']]], - ['bfloat_5fbinop_1',['bfloat_binop',['../backend_2metal_2kernels_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707',1,'bfloat_binop: bf16.h'],['../types_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707',1,'bfloat_binop: bf16.h']]], - ['bfloat_5fbinop_5fbase_2',['bfloat_binop_base',['../backend_2metal_2kernels_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70',1,'bfloat_binop_base: bf16.h'],['../types_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70',1,'bfloat_binop_base: bf16.h']]], - ['bfloat_5fbinop_5fhelper_3',['bfloat_binop_helper',['../backend_2metal_2kernels_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594',1,'bfloat_binop_helper: bf16.h'],['../types_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594',1,'bfloat_binop_helper: bf16.h']]], - ['bfloat_5fbitop_4',['bfloat_bitop',['../types_2bf16_8h.html#aac9ba86d4bf05bcda1936494f9b9b4d3',1,'bf16.h']]], - ['bfloat_5fcompop_5',['bfloat_compop',['../backend_2metal_2kernels_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239',1,'bfloat_compop: bf16.h'],['../types_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239',1,'bfloat_compop: bf16.h']]], - ['bfloat_5finplace_5fbitop_6',['bfloat_inplace_bitop',['../types_2bf16_8h.html#af13b46bc58e6e6f675ae47aabec37711',1,'bf16.h']]], - ['bfloat_5finplace_5fop_7',['bfloat_inplace_op',['../backend_2metal_2kernels_2bf16_8h.html#a4ac82467fbc674e990090f482b9c1e5c',1,'bfloat_inplace_op: bf16.h'],['../types_2bf16_8h.html#aee905053f51f76e0c1af94199714d514',1,'bfloat_inplace_op: bf16.h']]], - ['bfloat_5finplace_5fop_5faddr_5fspace_5fhelper_8',['bfloat_inplace_op_addr_space_helper',['../backend_2metal_2kernels_2bf16_8h.html#af30a2cbd2c3415516203b83bd21872f8',1,'bfloat_inplace_op_addr_space_helper: bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1457da931c28fa4e2500daa4e6441e8b',1,'bfloat_inplace_op_addr_space_helper: bf16.h']]], - ['bfloat_5finplace_5fop_5fhelper_9',['bfloat_inplace_op_helper',['../backend_2metal_2kernels_2bf16_8h.html#a2846fd11b5e19b435e9f7ef0998c9b1d',1,'bfloat_inplace_op_helper: bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afe5988aa8147be2bafda6a5b7792fe15',1,'bfloat_inplace_op_helper: bf16.h']]] + ['bfloat_5fbinop_0',['bfloat_binop',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707',1,'bfloat_binop: bf16.h'],['../types_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707',1,'bfloat_binop: bf16.h']]], + ['bfloat_5fbinop_5fbase_1',['bfloat_binop_base',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70',1,'bfloat_binop_base: bf16.h'],['../types_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70',1,'bfloat_binop_base: bf16.h']]], + ['bfloat_5fbinop_5fhelper_2',['bfloat_binop_helper',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594',1,'bfloat_binop_helper: bf16.h'],['../types_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594',1,'bfloat_binop_helper: bf16.h']]], + ['bfloat_5fbitop_3',['bfloat_bitop',['../types_2bf16_8h.html#aac9ba86d4bf05bcda1936494f9b9b4d3',1,'bf16.h']]], + ['bfloat_5fcompop_4',['bfloat_compop',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239',1,'bfloat_compop: bf16.h'],['../types_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239',1,'bfloat_compop: bf16.h']]], + ['bfloat_5finplace_5fbitop_5',['bfloat_inplace_bitop',['../types_2bf16_8h.html#af13b46bc58e6e6f675ae47aabec37711',1,'bf16.h']]], + ['bfloat_5finplace_5fop_6',['bfloat_inplace_op',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ac82467fbc674e990090f482b9c1e5c',1,'bfloat_inplace_op: bf16.h'],['../types_2bf16_8h.html#aee905053f51f76e0c1af94199714d514',1,'bfloat_inplace_op: bf16.h']]], + ['bfloat_5finplace_5fop_5faddr_5fspace_5fhelper_7',['bfloat_inplace_op_addr_space_helper',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af30a2cbd2c3415516203b83bd21872f8',1,'bfloat_inplace_op_addr_space_helper: bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1457da931c28fa4e2500daa4e6441e8b',1,'bfloat_inplace_op_addr_space_helper: bf16.h']]], + ['bfloat_5finplace_5fop_5fhelper_8',['bfloat_inplace_op_helper',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2846fd11b5e19b435e9f7ef0998c9b1d',1,'bfloat_inplace_op_helper: bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afe5988aa8147be2bafda6a5b7792fe15',1,'bfloat_inplace_op_helper: bf16.h']]] ]; diff --git a/docs/build/html/search/defines_8.js b/docs/build/html/search/defines_8.js index 09218ba2..9e2f63e4 100644 --- a/docs/build/html/search/defines_8.js +++ b/docs/build/html/search/defines_8.js @@ -1,10 +1,6 @@ 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_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']]], - ['mtl_5fconst_6',['MTL_CONST',['../defines_8h.html#a767ed9f2604de22b259cee02c4ce1d22',1,'defines.h']]] + ['jit_5felse_0',['jit_else',['../backend_2metal_2kernels_2jit_2bf16_8h.html#a4b2f08732045407adc7ee181e39e5ae3',1,'bf16.h']]], + ['jit_5fendif_1',['jit_endif',['../backend_2metal_2kernels_2jit_2bf16_8h.html#a5049b44a1fffcb837e0c470ae4cafc56',1,'bf16.h']]], + ['jit_5fif_2',['jit_if',['../backend_2metal_2kernels_2jit_2bf16_8h.html#aaf5bb88c2349054a6c4c2aefee63d3d2',1,'bf16.h']]] ]; diff --git a/docs/build/html/search/defines_9.js b/docs/build/html/search/defines_9.js index 5aca25ab..09218ba2 100644 --- a/docs/build/html/search/defines_9.js +++ b/docs/build/html/search/defines_9.js @@ -1,22 +1,10 @@ var searchData= [ - ['pocketfft_5fcache_5fsize_0',['POCKETFFT_CACHE_SIZE',['../pocketfft_8h.html#a9e604bcf20603d70b62b233d3f306714',1,'pocketfft.h']]], - ['pocketfft_5fno_5fvectors_1',['POCKETFFT_NO_VECTORS',['../pocketfft_8h.html#aa9cdaed0819c48f97fcd19f05c289160',1,'pocketfft.h']]], - ['pocketfft_5fnoinline_2',['POCKETFFT_NOINLINE',['../pocketfft_8h.html#a7020984e0ca1d6e565629ca6e7c1a7e0',1,'pocketfft.h']]], - ['pocketfft_5fpartstep11_3',['POCKETFFT_PARTSTEP11',['../pocketfft_8h.html#a1793d0d00f2e13101eb5ad0719c40817',1,'pocketfft.h']]], - ['pocketfft_5fpartstep11a_4',['POCKETFFT_PARTSTEP11a',['../pocketfft_8h.html#ac35e1aa5ae84d655256b7a0afd9051c2',1,'pocketfft.h']]], - ['pocketfft_5fpartstep11a0_5',['POCKETFFT_PARTSTEP11a0',['../pocketfft_8h.html#ab2df44457945ab625fb38a777a46af1b',1,'pocketfft.h']]], - ['pocketfft_5fpartstep3a_6',['POCKETFFT_PARTSTEP3a',['../pocketfft_8h.html#ac112b26e5130636ac1d91c2f0af45e0b',1,'pocketfft.h']]], - ['pocketfft_5fpartstep3b_7',['POCKETFFT_PARTSTEP3b',['../pocketfft_8h.html#a41e646e5535a3a1c6e0d0e67122382f5',1,'pocketfft.h']]], - ['pocketfft_5fpartstep5a_8',['POCKETFFT_PARTSTEP5a',['../pocketfft_8h.html#a078bc2bd38ab0ffb15b981878c9de03c',1,'pocketfft.h']]], - ['pocketfft_5fpartstep5b_9',['POCKETFFT_PARTSTEP5b',['../pocketfft_8h.html#ab8a5da142555e059c5e9c618f75b46fa',1,'pocketfft.h']]], - ['pocketfft_5fpartstep7_10',['POCKETFFT_PARTSTEP7',['../pocketfft_8h.html#af7de1f82911a973d8446cf3f40ff3044',1,'pocketfft.h']]], - ['pocketfft_5fpartstep7a_11',['POCKETFFT_PARTSTEP7a',['../pocketfft_8h.html#a2b27f6e1f0ee131765186870517255c6',1,'pocketfft.h']]], - ['pocketfft_5fpartstep7a0_12',['POCKETFFT_PARTSTEP7a0',['../pocketfft_8h.html#a9c2fc2de74a031c38e9d8a21249ae1cd',1,'pocketfft.h']]], - ['pocketfft_5fprep11_13',['POCKETFFT_PREP11',['../pocketfft_8h.html#a536d2ea61479d4b074bf52ce09fdbc3a',1,'pocketfft.h']]], - ['pocketfft_5fprep3_14',['POCKETFFT_PREP3',['../pocketfft_8h.html#ae2fd9d433c417f0768fe1b58145b2e59',1,'pocketfft.h']]], - ['pocketfft_5fprep5_15',['POCKETFFT_PREP5',['../pocketfft_8h.html#a73077c26d2a82754db2a9c48bc0e11a6',1,'pocketfft.h']]], - ['pocketfft_5fprep7_16',['POCKETFFT_PREP7',['../pocketfft_8h.html#ae7c4d0cda5b3824f84eac54addabd6ec',1,'pocketfft.h']]], - ['pocketfft_5frearrange_17',['POCKETFFT_REARRANGE',['../pocketfft_8h.html#acffdf2e1ab84f36a7a097e1b8b87a9f9',1,'pocketfft.h']]], - ['pocketfft_5frestrict_18',['POCKETFFT_RESTRICT',['../pocketfft_8h.html#abbe177c4872821b32d76d5ce08d6ce82',1,'pocketfft.h']]] + ['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_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']]], + ['mtl_5fconst_6',['MTL_CONST',['../defines_8h.html#a767ed9f2604de22b259cee02c4ce1d22',1,'defines.h']]] ]; diff --git a/docs/build/html/search/defines_a.js b/docs/build/html/search/defines_a.js index b1a537ec..5aca25ab 100644 --- a/docs/build/html/search/defines_a.js +++ b/docs/build/html/search/defines_a.js @@ -1,4 +1,22 @@ var searchData= [ - ['radix_5fstep_0',['RADIX_STEP',['../backend_2metal_2kernels_2fft_8h.html#a794032d3a9acff0e31c77c69d0007f10',1,'fft.h']]] + ['pocketfft_5fcache_5fsize_0',['POCKETFFT_CACHE_SIZE',['../pocketfft_8h.html#a9e604bcf20603d70b62b233d3f306714',1,'pocketfft.h']]], + ['pocketfft_5fno_5fvectors_1',['POCKETFFT_NO_VECTORS',['../pocketfft_8h.html#aa9cdaed0819c48f97fcd19f05c289160',1,'pocketfft.h']]], + ['pocketfft_5fnoinline_2',['POCKETFFT_NOINLINE',['../pocketfft_8h.html#a7020984e0ca1d6e565629ca6e7c1a7e0',1,'pocketfft.h']]], + ['pocketfft_5fpartstep11_3',['POCKETFFT_PARTSTEP11',['../pocketfft_8h.html#a1793d0d00f2e13101eb5ad0719c40817',1,'pocketfft.h']]], + ['pocketfft_5fpartstep11a_4',['POCKETFFT_PARTSTEP11a',['../pocketfft_8h.html#ac35e1aa5ae84d655256b7a0afd9051c2',1,'pocketfft.h']]], + ['pocketfft_5fpartstep11a0_5',['POCKETFFT_PARTSTEP11a0',['../pocketfft_8h.html#ab2df44457945ab625fb38a777a46af1b',1,'pocketfft.h']]], + ['pocketfft_5fpartstep3a_6',['POCKETFFT_PARTSTEP3a',['../pocketfft_8h.html#ac112b26e5130636ac1d91c2f0af45e0b',1,'pocketfft.h']]], + ['pocketfft_5fpartstep3b_7',['POCKETFFT_PARTSTEP3b',['../pocketfft_8h.html#a41e646e5535a3a1c6e0d0e67122382f5',1,'pocketfft.h']]], + ['pocketfft_5fpartstep5a_8',['POCKETFFT_PARTSTEP5a',['../pocketfft_8h.html#a078bc2bd38ab0ffb15b981878c9de03c',1,'pocketfft.h']]], + ['pocketfft_5fpartstep5b_9',['POCKETFFT_PARTSTEP5b',['../pocketfft_8h.html#ab8a5da142555e059c5e9c618f75b46fa',1,'pocketfft.h']]], + ['pocketfft_5fpartstep7_10',['POCKETFFT_PARTSTEP7',['../pocketfft_8h.html#af7de1f82911a973d8446cf3f40ff3044',1,'pocketfft.h']]], + ['pocketfft_5fpartstep7a_11',['POCKETFFT_PARTSTEP7a',['../pocketfft_8h.html#a2b27f6e1f0ee131765186870517255c6',1,'pocketfft.h']]], + ['pocketfft_5fpartstep7a0_12',['POCKETFFT_PARTSTEP7a0',['../pocketfft_8h.html#a9c2fc2de74a031c38e9d8a21249ae1cd',1,'pocketfft.h']]], + ['pocketfft_5fprep11_13',['POCKETFFT_PREP11',['../pocketfft_8h.html#a536d2ea61479d4b074bf52ce09fdbc3a',1,'pocketfft.h']]], + ['pocketfft_5fprep3_14',['POCKETFFT_PREP3',['../pocketfft_8h.html#ae2fd9d433c417f0768fe1b58145b2e59',1,'pocketfft.h']]], + ['pocketfft_5fprep5_15',['POCKETFFT_PREP5',['../pocketfft_8h.html#a73077c26d2a82754db2a9c48bc0e11a6',1,'pocketfft.h']]], + ['pocketfft_5fprep7_16',['POCKETFFT_PREP7',['../pocketfft_8h.html#ae7c4d0cda5b3824f84eac54addabd6ec',1,'pocketfft.h']]], + ['pocketfft_5frearrange_17',['POCKETFFT_REARRANGE',['../pocketfft_8h.html#acffdf2e1ab84f36a7a097e1b8b87a9f9',1,'pocketfft.h']]], + ['pocketfft_5frestrict_18',['POCKETFFT_RESTRICT',['../pocketfft_8h.html#abbe177c4872821b32d76d5ce08d6ce82',1,'pocketfft.h']]] ]; diff --git a/docs/build/html/search/defines_b.js b/docs/build/html/search/defines_b.js index 3a705c84..b1a537ec 100644 --- a/docs/build/html/search/defines_b.js +++ b/docs/build/html/search/defines_b.js @@ -1,5 +1,4 @@ var searchData= [ - ['steel_5fconst_0',['STEEL_CONST',['../steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b',1,'defines.h']]], - ['steel_5fpragma_5funroll_1',['STEEL_PRAGMA_UNROLL',['../steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6',1,'defines.h']]] + ['radix_5fstep_0',['RADIX_STEP',['../backend_2metal_2kernels_2fft_8h.html#a794032d3a9acff0e31c77c69d0007f10',1,'fft.h']]] ]; diff --git a/docs/build/html/search/defines_c.js b/docs/build/html/search/defines_c.js index 822e6ecf..3a705c84 100644 --- a/docs/build/html/search/defines_c.js +++ b/docs/build/html/search/defines_c.js @@ -1,4 +1,5 @@ var searchData= [ - ['uint16_5fto_5fbfloat16_0',['uint16_to_bfloat16',['../bf16__math_8h.html#a030d871474c0e7d907fccffcc8c047e0',1,'bf16_math.h']]] + ['steel_5fconst_0',['STEEL_CONST',['../steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b',1,'defines.h']]], + ['steel_5fpragma_5funroll_1',['STEEL_PRAGMA_UNROLL',['../steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6',1,'defines.h']]] ]; diff --git a/docs/build/html/search/files_0.js b/docs/build/html/search/files_0.js index 257073d8..8570df32 100644 --- a/docs/build/html/search/files_0.js +++ b/docs/build/html/search/files_0.js @@ -3,5 +3,6 @@ var searchData= ['allocator_2eh_0',['allocator.h',['../allocator_8h.html',1,'(Global Namespace)'],['../backend_2metal_2allocator_8h.html',1,'(Global Namespace)']]], ['arange_2eh_1',['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)']]], ['array_2eh_2',['array.h',['../array_8h.html',1,'']]], - ['atomic_2eh_3',['atomic.h',['../atomic_8h.html',1,'']]] + ['atomic_2eh_3',['atomic.h',['../atomic_8h.html',1,'']]], + ['attn_2eh_4',['attn.h',['../attn_8h.html',1,'']]] ]; diff --git a/docs/build/html/search/files_1.js b/docs/build/html/search/files_1.js index 7a407299..af8aecb9 100644 --- a/docs/build/html/search/files_1.js +++ b/docs/build/html/search/files_1.js @@ -1,6 +1,6 @@ var searchData= [ - ['bf16_2eh_0',['bf16.h',['../backend_2metal_2kernels_2bf16_8h.html',1,'(Global Namespace)'],['../types_2bf16_8h.html',1,'(Global Namespace)']]], + ['bf16_2eh_0',['bf16.h',['../backend_2metal_2kernels_2jit_2bf16_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2metal__3__1_2bf16_8h.html',1,'(Global Namespace)'],['../types_2bf16_8h.html',1,'(Global Namespace)']]], ['bf16_5fmath_2eh_1',['bf16_math.h',['../bf16__math_8h.html',1,'']]], ['binary_2eh_2',['binary.h',['../common_2binary_8h.html',1,'(Global Namespace)'],['../metal_2binary_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2binary_8h.html',1,'(Global Namespace)']]], ['binary_5fops_2eh_3',['binary_ops.h',['../binary__ops_8h.html',1,'']]], diff --git a/docs/build/html/search/files_10.js b/docs/build/html/search/files_10.js index 103b9ebd..01964bcf 100644 --- a/docs/build/html/search/files_10.js +++ b/docs/build/html/search/files_10.js @@ -1,13 +1,13 @@ 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',['../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,'']]], - ['slicing_2eh_5',['slicing.h',['../common_2slicing_8h.html',1,'(Global Namespace)'],['../metal_2slicing_8h.html',1,'(Global Namespace)']]], - ['softmax_2eh_6',['softmax.h',['../jit_2softmax_8h.html',1,'(Global Namespace)'],['../kernels_2softmax_8h.html',1,'(Global Namespace)']]], - ['sort_2eh_7',['sort.h',['../sort_8h.html',1,'']]], + ['scan_2eh_0',['scan.h',['../scan_8h.html',1,'']]], + ['scatter_2eh_1',['scatter.h',['../scatter_8h.html',1,'']]], + ['scheduler_2eh_2',['scheduler.h',['../scheduler_8h.html',1,'']]], + ['sdpa_5fvector_2eh_3',['sdpa_vector.h',['../sdpa__vector_8h.html',1,'']]], + ['slicing_2eh_4',['slicing.h',['../common_2slicing_8h.html',1,'(Global Namespace)'],['../metal_2slicing_8h.html',1,'(Global Namespace)']]], + ['softmax_2eh_5',['softmax.h',['../jit_2softmax_8h.html',1,'(Global Namespace)'],['../kernels_2softmax_8h.html',1,'(Global Namespace)']]], + ['sort_2eh_6',['sort.h',['../sort_8h.html',1,'']]], + ['steel_5fattention_2eh_7',['steel_attention.h',['../steel__attention_8h.html',1,'']]], ['steel_5fconv_2eh_8',['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_2eh_9',['steel_conv_general.h',['../steel__conv__general_8h.html',1,'']]], ['steel_5fgemm_2eh_10',['steel_gemm.h',['../steel__gemm_8h.html',1,'']]], diff --git a/docs/build/html/search/files_11.js b/docs/build/html/search/files_11.js index 6f77b5ab..b7521b55 100644 --- a/docs/build/html/search/files_11.js +++ b/docs/build/html/search/files_11.js @@ -4,7 +4,7 @@ var searchData= ['ternary_5fops_2eh_1',['ternary_ops.h',['../ternary__ops_8h.html',1,'']]], ['threadpool_2eh_2',['threadpool.h',['../threadpool_8h.html',1,'']]], ['threefry_2eh_3',['threefry.h',['../threefry_8h.html',1,'']]], - ['transforms_2eh_4',['transforms.h',['../backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html',1,'(Global Namespace)'],['../transforms_8h.html',1,'(Global Namespace)']]], + ['transforms_2eh_4',['transforms.h',['../backend_2metal_2kernels_2steel_2attn_2transforms_8h.html',1,'(Global Namespace)'],['../backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html',1,'(Global Namespace)'],['../transforms_8h.html',1,'(Global Namespace)']]], ['transforms_5fimpl_2eh_5',['transforms_impl.h',['../transforms__impl_8h.html',1,'']]], ['type_5ftraits_2eh_6',['type_traits.h',['../type__traits_8h.html',1,'']]] ]; diff --git a/docs/build/html/search/files_a.js b/docs/build/html/search/files_a.js index 599d21df..a0282c4c 100644 --- a/docs/build/html/search/files_a.js +++ b/docs/build/html/search/files_a.js @@ -3,7 +3,7 @@ var searchData= ['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)']]], + ['loader_2eh_3',['loader.h',['../attn_2loader_8h.html',1,'(Global Namespace)'],['../conv_2loader_8h.html',1,'(Global Namespace)'],['../gemm_2loader_8h.html',1,'(Global Namespace)']]], ['loader_5fchannel_5fl_2eh_4',['loader_channel_l.h',['../loader__channel__l_8h.html',1,'']]], ['loader_5fchannel_5fn_2eh_5',['loader_channel_n.h',['../loader__channel__n_8h.html',1,'']]], ['loader_5fgeneral_2eh_6',['loader_general.h',['../loader__general_8h.html',1,'']]] diff --git a/docs/build/html/search/files_b.js b/docs/build/html/search/files_b.js index e87b8227..d836b920 100644 --- a/docs/build/html/search/files_b.js +++ b/docs/build/html/search/files_b.js @@ -4,5 +4,5 @@ var searchData= ['metal_2eh_1',['metal.h',['../metal_8h.html',1,'']]], ['metal_5fimpl_2eh_2',['metal_impl.h',['../metal__impl_8h.html',1,'']]], ['mlx_2eh_3',['mlx.h',['../mlx_8h.html',1,'']]], - ['mma_2eh_4',['mma.h',['../mma_8h.html',1,'']]] + ['mma_2eh_4',['mma.h',['../attn_2mma_8h.html',1,'(Global Namespace)'],['../gemm_2mma_8h.html',1,'(Global Namespace)']]] ]; diff --git a/docs/build/html/search/files_d.js b/docs/build/html/search/files_d.js index 506b3e16..0ea2bf8f 100644 --- a/docs/build/html/search/files_d.js +++ b/docs/build/html/search/files_d.js @@ -1,6 +1,6 @@ var searchData= [ - ['params_2eh_0',['params.h',['../conv_2params_8h.html',1,'(Global Namespace)'],['../gemm_2params_8h.html',1,'(Global Namespace)']]], + ['params_2eh_0',['params.h',['../attn_2params_8h.html',1,'(Global Namespace)'],['../conv_2params_8h.html',1,'(Global Namespace)'],['../gemm_2params_8h.html',1,'(Global Namespace)']]], ['pocketfft_2eh_1',['pocketfft.h',['../pocketfft_8h.html',1,'']]], ['primitives_2eh_2',['primitives.h',['../distributed_2primitives_8h.html',1,'(Global Namespace)'],['../primitives_8h.html',1,'(Global Namespace)']]] ]; diff --git a/docs/build/html/search/functions_1.js b/docs/build/html/search/functions_1.js index b4193ba2..51915fc8 100644 --- a/docs/build/html/search/functions_1.js +++ b/docs/build/html/search/functions_1.js @@ -13,71 +13,71 @@ var searchData= ['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#a3ab0fd997d9a35782106ff083a72e098',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']]] + ['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()']]], + ['affinequantize_14',['AffineQuantize',['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473',1,'mlx::core::fast::AffineQuantize']]], + ['aligned_5falloc_15',['aligned_alloc',['../namespacepocketfft_1_1detail.html#ae397445c61400f47a8fe3f8e1b6d0b76',1,'pocketfft::detail']]], + ['aligned_5fallocator_16',['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_17',['aligned_dealloc',['../namespacepocketfft_1_1detail.html#aec7820e36a33e0a8bb83aa03b04b81e8',1,'pocketfft::detail']]], + ['all_18',['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_19',['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_20',['all_reduce',['../reduce__all_8h.html#a9086a585eda5a887160ee24baae0a7b8',1,'reduce_all.h']]], + ['all_5freduce_5fdispatch_21',['all_reduce_dispatch',['../namespacemlx_1_1core.html#a3ab0fd997d9a35782106ff083a72e098',1,'mlx::core']]], + ['all_5fsum_22',['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_23',['allclose',['../group__ops.html#gaf0cd4257de7542daf9faf5e605e31020',1,'mlx::core']]], + ['allgather_24',['AllGather',['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#af4b10a5b61f160fb64353057c185b661',1,'mlx::core::distributed::AllGather']]], + ['alloc_5ftmp_25',['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_26',['allocate',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a4f785747b898980756af9e5515363826',1,'pocketfft::detail::threading::aligned_allocator']]], + ['allocator_27',['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_28',['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_29',['AllReduce',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a2d1ea56cbf72a316680ea90aa6da1c2d',1,'mlx::core::distributed::AllReduce']]], + ['any_30',['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_31',['apply',['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply()'],['../struct_transform_scale.html#a9dd329422e5b8da43486cdce17132e16',1,'TransformScale::apply()'],['../struct_max_op.html#ab3d3c3040017a13c170e7bdd1ffac46e',1,'MaxOp::apply()'],['../struct_sum_op.html#aa9563a98cbbe1b1921ade0c63ab38b4d',1,'SumOp::apply()'],['../struct_mul_op.html#a1b93d804653d92fc7e46747de9e9c756',1,'MulOp::apply()'],['../struct_sub_op.html#ad211f879a212ed0e98136217ca8e4143',1,'SubOp::apply()'],['../struct_exp_sub_op.html#a00e457a01cb38f959dfd789455e7f334',1,'ExpSubOp::apply()'],['../struct_div_op.html#a1b8df47142dc6ea15315ce3a310f9221',1,'DivOp::apply()'],['../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'],['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply()'],['../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_32',['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)'],['../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_33',['apply_epilogue_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA::apply_epilogue_safe(const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const BinaryEpilogue &epilogue_op)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA::apply_epilogue_safe(const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const BinaryEpilogue &epilogue_op)']]], + ['apply_5finplace_5fop_34',['apply_inplace_op',['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader::apply_inplace_op()'],['../structmlx_1_1steel_1_1_block_loader_t.html#a2b136fad00dc54300e68aa6b905eff97',1,'mlx::steel::BlockLoaderT::apply_inplace_op()'],['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader::apply_inplace_op()']]], + ['arange_35',['Arange',['../classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574',1,'mlx::core::Arange']]], + ['arange_36',['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_37',['ArcCos',['../classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9',1,'mlx::core::ArcCos']]], + ['arccos_38',['arccos',['../group__ops.html#ga08bec7cb10c84466487b507fc5bf9776',1,'mlx::core']]], + ['arccosh_39',['ArcCosh',['../classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71',1,'mlx::core::ArcCosh']]], + ['arccosh_40',['arccosh',['../group__ops.html#gaafafcfcebdf7248679c8543d0c0497e5',1,'mlx::core']]], + ['arcsin_41',['ArcSin',['../classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013',1,'mlx::core::ArcSin']]], + ['arcsin_42',['arcsin',['../group__ops.html#ga8770e8c8f23f13343911f4c9d6e1c619',1,'mlx::core']]], + ['arcsinh_43',['ArcSinh',['../classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20',1,'mlx::core::ArcSinh']]], + ['arcsinh_44',['arcsinh',['../group__ops.html#gac62e2cedc49ef2c90dd8584000317450',1,'mlx::core']]], + ['arctan_45',['ArcTan',['../classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44',1,'mlx::core::ArcTan']]], + ['arctan_46',['arctan',['../group__ops.html#gaa041f3f070e68f4946db07516b7d092e',1,'mlx::core']]], + ['arctan2_47',['ArcTan2',['../classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a',1,'mlx::core::ArcTan2']]], + ['arctan2_48',['arctan2',['../group__ops.html#ga6caba9c92b5989123501f909cc7da354',1,'mlx::core']]], + ['arctanh_49',['ArcTanh',['../classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358',1,'mlx::core::ArcTanh']]], + ['arctanh_50',['arctanh',['../group__ops.html#gab46a35925a04c5a9d2ec7898ee55358e',1,'mlx::core']]], + ['argmax_51',['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_52',['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_53',['ArgPartition',['../classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df',1,'mlx::core::ArgPartition']]], + ['argpartition_54',['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_55',['ArgReduce',['../classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03',1,'mlx::core::ArgReduce']]], + ['argsort_56',['ArgSort',['../classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0',1,'mlx::core::ArgSort']]], + ['argsort_57',['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_58',['argument_encoder',['../classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881',1,'mlx::core::metal::Device']]], + ['arr_59',['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_60',['arr_info',['../classpocketfft_1_1detail_1_1arr__info.html#a0dbddb7d86ca306159fc9ef9a453b21e',1,'pocketfft::detail::arr_info']]], + ['array_61',['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_62',['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_63',['ArrayIterator',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ad3afcb24c6db7642bbc06835f7f3e27a',1,'mlx::core::array::ArrayIterator']]], + ['as_5fstrided_64',['as_strided',['../group__ops.html#ga8de80ecef30fc560003d40f61a38b99d',1,'mlx::core']]], + ['asin_65',['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_66',['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_67',['AsStrided',['../classmlx_1_1core_1_1_as_strided.html#a80c0547f72ed53374eafc57d57b5d4af',1,'mlx::core::AsStrided']]], + ['astype_68',['AsType',['../classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47',1,'mlx::core::AsType']]], + ['astype_69',['astype',['../group__ops.html#ga0e58c24fc5668e5a521e5b45e8370a62',1,'mlx::core']]], + ['async_5feval_70',['async_eval',['../namespacemlx_1_1core.html#a15dda19aa7fa1fc5fca35df5cf963297',1,'mlx::core']]], + ['atan_71',['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_72',['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_73',['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_74',['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_75',['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_76',['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_77',['atomic_update',['../struct_none.html#aecbce7c97e8b1d5dc4afd2e788c24e06',1,'None']]], + ['attach_5fevent_78',['attach_event',['../classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da',1,'mlx::core::array']]], + ['attention_79',['attention',['../steel__attention_8h.html#a5423b2a414f5e3c14166d568dedfbd33',1,'steel_attention.h']]] ]; diff --git a/docs/build/html/search/functions_10.js b/docs/build/html/search/functions_10.js index 33c9ec6d..2bbadabe 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()'],['../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_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_contiguous.html#aca8a4ba9a58cc10f063e6b082fa2fc23',1,'mlx::core::Contiguous::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 f0719364..592d7f95 100644 --- a/docs/build/html/search/functions_11.js +++ b/docs/build/html/search/functions_11.js @@ -18,7 +18,7 @@ var searchData= ['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']]], + ['quantizedblockloader_18',['QuantizedBlockLoader',['../struct_quantized_block_loader.html#a60713ce7498aa683cbb2a0f19ab16589',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']]], diff --git a/docs/build/html/search/functions_12.js b/docs/build/html/search/functions_12.js index a859e8b3..99c84c46 100644 --- a/docs/build/html/search/functions_12.js +++ b/docs/build/html/search/functions_12.js @@ -73,10 +73,12 @@ var searchData= ['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()']]] + ['row_5fbin_5fop_73',['row_bin_op',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a318c4279bdc7b39b7919f108b1cd8010',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::row_bin_op()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a3d0d5b9c7962658cc6d5afbbbb2f19e2',1,'mlx::steel::MMATile::row_bin_op()']]], + ['row_5freduce_74',['row_reduce',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a51d662e4cff88b5ad17d7c44bb6b6970',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::row_reduce()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa0ad5cb750ace934bf230385d8bd9f88',1,'mlx::steel::MMATile::row_reduce()']]], + ['row_5freduce_5fgeneral_5fdispatch_75',['row_reduce_general_dispatch',['../namespacemlx_1_1core.html#ab1eeca8ec6fa31819ee108fa6ed2c41b',1,'mlx::core']]], + ['row_5freduce_5flooped_76',['row_reduce_looped',['../reduce__row_8h.html#afba85f5a1c935c124ef52e986d4b2c49',1,'reduce_row.h']]], + ['row_5freduce_5fsimple_77',['row_reduce_simple',['../reduce__row_8h.html#aef628dfccdb1361da5546f8b17c510bf',1,'reduce_row.h']]], + ['row_5freduce_5fsmall_78',['row_reduce_small',['../reduce__row_8h.html#aeb49e89f1163cb3093770bb710df9f5e',1,'reduce_row.h']]], + ['rsqrt_79',['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_80',['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(const device T *A, const device T *B, device U *D, const constant GEMMParams *params, threadgroup T *As, threadgroup T *Bs, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5',1,'mlx::steel::GEMMKernel::run(const device T *A, const device T *B, device U *D, const constant GEMMParams *params, threadgroup T *As, threadgroup T *Bs, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)']]] ]; diff --git a/docs/build/html/search/functions_13.js b/docs/build/html/search/functions_13.js index 5342f627..d6e60eb7 100644 --- a/docs/build/html/search/functions_13.js +++ b/docs/build/html/search/functions_13.js @@ -11,131 +11,136 @@ var searchData= ['scatter_8',['Scatter',['../classmlx_1_1core_1_1_scatter.html#ac9b3eff67389ef9aa820753379ffeaa3',1,'mlx::core::Scatter']]], ['scatter_9',['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_5fadd_10',['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_11',['scatter_impl',['../scatter_8h.html#ad1ce39d0b6d733a95e739121fcc61bd1',1,'scatter.h']]], + ['scatter_5fimpl_11',['scatter_impl',['../scatter_8h.html#a0df7206d4519defb48a6275afc12f87c',1,'scatter.h']]], ['scatter_5fmax_12',['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_13',['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_14',['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={})']]], ['scheduler_15',['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_16',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html#ae856e468c2f7c8f8ec672522cc13730b',1,'mlx::core::scheduler']]], ['sdpa_5fvector_17',['sdpa_vector',['../sdpa__vector_8h.html#a4bf36f16e16c1c62d9b243573568e5ae',1,'sdpa_vector.h']]], - ['seed_18',['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_19',['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_20',['Select',['../classmlx_1_1core_1_1_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9',1,'mlx::core::Select']]], - ['send_21',['Send',['../classmlx_1_1core_1_1distributed_1_1_send.html#a2481dd876b14d4a13ac466cbca9c4eac',1,'mlx::core::distributed::Send']]], - ['send_22',['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_23',['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_24',['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_25',['set_compile_mode',['../namespacemlx_1_1core.html#a49445a55f976c4397f25ea18e1e92bef',1,'mlx::core']]], - ['set_5fdata_26',['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_27',['set_default_device',['../namespacemlx_1_1core.html#a312a2de41367fe52caeaf8c0f596a120',1,'mlx::core']]], - ['set_5fdefault_5fstream_28',['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_29',['set_input_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4',1,'mlx::core::metal::CommandEncoder']]], - ['set_5fmemory_5flimit_30',['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_31',['set_output_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522',1,'mlx::core::metal::CommandEncoder']]], - ['set_5fresidency_5fset_32',['set_residency_set',['../classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f',1,'mlx::core::metal::Device']]], - ['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)']]], - ['set_5fwired_5flimit_38',['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_39',['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_40',['shapes_without_reduction_axes',['../namespacemlx_1_1core.html#a44c3ea6db6553c3f6552b9ba64a69494',1,'mlx::core']]], - ['shared_5fbuffer_5fslice_41',['shared_buffer_slice',['../namespacemlx_1_1core.html#aea2a6a4eddfd4cfac89d20786059de2a',1,'mlx::core']]], - ['shutdown_42',['shutdown',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a0c7c29290fde806031c497f24c4ad411',1,'pocketfft::detail::threading::thread_pool']]], - ['siblings_43',['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_44',['Sigmoid',['../classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b',1,'mlx::core::Sigmoid']]], - ['sigmoid_45',['sigmoid',['../group__ops.html#ga708abf8f79609cd6831db7c38cafac0e',1,'mlx::core']]], - ['sign_46',['Sign',['../classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763',1,'mlx::core::Sign']]], - ['sign_47',['sign',['../group__ops.html#ga20f1a1a8c0cd6206485f9363f3915faa',1,'mlx::core']]], - ['signal_48',['signal',['../classmlx_1_1core_1_1_event.html#a65a858445506a61be5889ae0e3651b89',1,'mlx::core::Event']]], - ['signaling_5fnan_49',['signaling_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['simd_5fbroadcast_50',['simd_broadcast',['../namespacemetal.html#a498f1e85107eb5f01ba4435977f8efe0',1,'metal']]], - ['simd_5fexclusive_5fscan_51',['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_52',['simd_max',['../namespacemetal.html#a048cad0aca52cb737ebf103e76bd1c49',1,'metal']]], - ['simd_5fmin_53',['simd_min',['../namespacemetal.html#ae9e2a23e00724ba2d7868bc4112b386b',1,'metal']]], - ['simd_5fprefix_5fexclusive_5fproduct_54',['simd_prefix_exclusive_product',['../namespacemetal.html#a5ca40242390b632f737e29636829b2e4',1,'metal']]], - ['simd_5fprefix_5fexclusive_5fsum_55',['simd_prefix_exclusive_sum',['../namespacemetal.html#abfbb70c7471f28bf7ff36a612ad014b2',1,'metal']]], - ['simd_5fprefix_5finclusive_5fproduct_56',['simd_prefix_inclusive_product',['../namespacemetal.html#a6ca6a7e1996228fa536e969e9e45c446',1,'metal']]], - ['simd_5fprefix_5finclusive_5fsum_57',['simd_prefix_inclusive_sum',['../namespacemetal.html#a567acb18199ac0107712eb8cb8aeb8e9',1,'metal']]], - ['simd_5fproduct_58',['simd_product',['../namespacemetal.html#ac6e883a04e2265a9790d7db76059e1b4',1,'metal']]], - ['simd_5fscan_59',['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_60',['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_61',['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_62',['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_63',['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_64',['simd_shuffle_rotate_down',['../namespacemetal.html#a4bb203647a421032db47e73cd649841b',1,'metal']]], - ['simd_5fshuffle_5frotate_5fup_65',['simd_shuffle_rotate_up',['../namespacemetal.html#a729b22077d6c944491a6027c18ea80c9',1,'metal']]], - ['simd_5fshuffle_5fup_66',['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_67',['simd_shuffle_xor',['../namespacemetal.html#a5017efc9605e069cfb507137cd1a1852',1,'metal']]], - ['simd_5fsum_68',['simd_sum',['../namespacemetal.html#a85181e37a00cb4a4217f1bb25389bce5',1,'metal']]], - ['simd_5fxor_69',['simd_xor',['../namespacemetal.html#a1308decbf2d5c33d34d6be523ea1c30f',1,'metal']]], - ['simple_5fiter_70',['simple_iter',['../classpocketfft_1_1detail_1_1simple__iter.html#a1e455c615825bebd5f1f62665027b398',1,'pocketfft::detail::simple_iter']]], - ['sin_71',['Sin',['../classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea',1,'mlx::core::Sin']]], - ['sin_72',['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_73',['sincos_2pibyn',['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a88518f2182d854c557edacd4ab8cbc40',1,'pocketfft::detail::sincos_2pibyn']]], - ['sinh_74',['Sinh',['../classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96',1,'mlx::core::Sinh']]], - ['sinh_75',['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_76',['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_77',['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_78',['size_of',['../namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95',1,'mlx::core']]], - ['slice_79',['Slice',['../classmlx_1_1core_1_1_slice.html#a8a38feb7bb6b72bdeebb83f053e2fd7f',1,'mlx::core::Slice']]], - ['slice_80',['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_81',['slice_gpu',['../namespacemlx_1_1core.html#a59048c5ff114c101a496bf33f62e3de9',1,'mlx::core']]], - ['slice_5fupdate_82',['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_83',['SliceUpdate',['../classmlx_1_1core_1_1_slice_update.html#aa30a7f22f557c56e1a2b5fcf44488990',1,'mlx::core::SliceUpdate']]], - ['softmax_84',['Softmax',['../classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb',1,'mlx::core::Softmax']]], - ['softmax_85',['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_86',['softmax_exp',['../kernels_2softmax_8h.html#a440d4031ee5e86159a4dd715e44a438b',1,'softmax.h']]], - ['softmax_5flooped_87',['softmax_looped',['../kernels_2softmax_8h.html#a8c47b0924ebfeebcca25f3dd17373276',1,'softmax.h']]], - ['softmax_5fsingle_5frow_88',['softmax_single_row',['../kernels_2softmax_8h.html#a815fe70f879f318e5d6e99acf043f52b',1,'softmax.h']]], - ['sort_89',['Sort',['../classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44',1,'mlx::core::Sort']]], - ['sort_90',['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_91',['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_92',['Split',['../classmlx_1_1core_1_1_split.html#a897c746ecfdff5119cc5ae3f20499385',1,'mlx::core::Split']]], - ['split_93',['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_94',['Sqrt',['../classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29',1,'mlx::core::Sqrt']]], - ['sqrt_95',['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_96',['Square',['../classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4',1,'mlx::core::Square']]], - ['square_97',['square',['../group__ops.html#ga1234e4c39cfa79f19d4bdb5b8ea4d45e',1,'mlx::core']]], - ['squeeze_98',['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_99',['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_100',['start_capture',['../namespacemlx_1_1core_1_1metal.html#aa47cb5651bf3b65c46ab216b7e504d77',1,'mlx::core::metal']]], - ['start_5fconcurrent_101',['start_concurrent',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034',1,'mlx::core::metal::CommandEncoder']]], - ['status_102',['status',['../classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad',1,'mlx::core::array']]], - ['std_103',['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_104',['steel_conv',['../namespacemlx_1_1core_1_1metal.html#a92f1e559b1121d545746f81ff86eaca1',1,'mlx::core::metal']]], - ['steel_5fconv_5fgeneral_105',['steel_conv_general',['../namespacemlx_1_1core_1_1metal.html#a02edb6a90bdf30f4c9f0d6c25b0267b5',1,'mlx::core::metal']]], - ['steel_5fgemm_5ffused_106',['steel_gemm_fused',['../namespacemlx_1_1core_1_1metal.html#a17764366deed71c160fb26091400a803',1,'mlx::core::metal']]], - ['steel_5fgemm_5fmasked_107',['steel_gemm_masked',['../namespacemlx_1_1core_1_1metal.html#a962272ca73d26c08f76f706a128fd71f',1,'mlx::core::metal']]], - ['steel_5fgemm_5fsplitk_108',['steel_gemm_splitk',['../namespacemlx_1_1core_1_1metal.html#ad0dfd40ba7c09755711ceb731e57a5ac',1,'mlx::core::metal']]], - ['steel_5fmatmul_109',['steel_matmul',['../namespacemlx_1_1core.html#ab43a7633794498e1c6775cca829eb886',1,'mlx::core']]], - ['steel_5fmatmul_5fregular_110',['steel_matmul_regular',['../namespacemlx_1_1core.html#a227588758ccc9ee869dba147e830bb74',1,'mlx::core']]], - ['step_111',['step',['../structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef',1,'mlx::core::ContiguousIterator']]], - ['stop_5fcapture_112',['stop_capture',['../namespacemlx_1_1core_1_1metal.html#ac90714424e36fb01e04550de69b8314f',1,'mlx::core::metal']]], - ['stop_5fgradient_113',['stop_gradient',['../group__ops.html#ga36bc28f1deb2fe668ca9ae1e447b6b1f',1,'mlx::core']]], - ['stopgradient_114',['StopGradient',['../classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f',1,'mlx::core::StopGradient']]], - ['store_115',['store',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a2aadaa3239cb3af0c2ee8af9b88c8a98',1,'mlx::steel::MMATile::store(threadgroup U *dst) const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a752f708e4fe5ef37fdd902dae153179f',1,'mlx::steel::MMATile::store(device U *dst, const int ld) const']]], - ['store_5fresult_116',['store_result',['../structmlx_1_1steel_1_1_block_m_m_a.html#a0461451ffb5041b6a916ea17ed34288b',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd)'],['../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#a081ba538d30d1d02498a7f341e6bd611',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)'],['../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']]], - ['store_5fsafe_118',['store_safe',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a57703f522c7409dbe2c0a68bb7acc2ba',1,'mlx::steel::MMATile::store_safe()']]], - ['stream_119',['Stream',['../structmlx_1_1core_1_1_stream.html#a7f0815ff4886da74cbbff5f93d82dd3e',1,'mlx::core::Stream']]], - ['stream_120',['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_121',['StreamContext',['../structmlx_1_1core_1_1_stream_context.html#a89d803151e9d7dce29382aa83d5c6ef1',1,'mlx::core::StreamContext']]], - ['streamthread_122',['StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#ac528109a11abcb82e6e221c5efa4493c',1,'mlx::core::scheduler::StreamThread']]], - ['stride_123',['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_124',['stride_in',['../classpocketfft_1_1detail_1_1multi__iter.html#ac947f03b1cfcb63436a7e61ff020a88c',1,'pocketfft::detail::multi_iter']]], - ['stride_5fout_125',['stride_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a81d71a13bf0b85e556fbb9834167ecc7',1,'pocketfft::detail::multi_iter']]], - ['strided_5freduce_5fgeneral_5fdispatch_126',['strided_reduce_general_dispatch',['../namespacemlx_1_1core.html#aa0332c64ee9965f05026c30a0b778000',1,'mlx::core']]], - ['strided_5fscan_127',['strided_scan',['../scan_8h.html#a7abb6ffb6c3b96b88c2a63cd4cc2f7ae',1,'scan.h']]], - ['strides_128',['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_129',['submit',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a8698d49e8f406cdb88006aac6a91f9a4',1,'pocketfft::detail::threading::thread_pool']]], - ['subtract_130',['Subtract',['../classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c',1,'mlx::core::Subtract']]], - ['subtract_131',['subtract',['../group__ops.html#ga196c240d3d0fcbb4713802c485e15133',1,'mlx::core']]], - ['sum_132',['sum',['../namespacemlx_1_1steel.html#ab4a6ddea4beb7c447cf5b69b9d46cc3b',1,'mlx::steel::sum(T x)'],['../namespacemlx_1_1steel.html#acd6e194d37b617d7a5818bc384a97fe4',1,'mlx::steel::sum(T x, Us... us)'],['../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_133',['SVD',['../classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1',1,'mlx::core::SVD']]], - ['svd_134',['svd',['../namespacemlx_1_1core_1_1linalg.html#a64364b880e99914cf47bf756fa8dbaf0',1,'mlx::core::linalg']]], - ['swapaxes_135',['swapaxes',['../group__ops.html#gabc46eed81ab6c6247903e4ec0c4ec1fb',1,'mlx::core']]], - ['swizzle_136',['swizzle',['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle']]], - ['synchronize_137',['synchronize',['../namespacemlx_1_1core.html#a14287949d82ffefad0306cef5eb5f9e4',1,'mlx::core::synchronize()'],['../namespacemlx_1_1core.html#a6648a71937b055e5ff513d98056c2fb5',1,'mlx::core::synchronize(Stream)']]] + ['sdpa_5fvector_5f2pass_5f1_18',['sdpa_vector_2pass_1',['../sdpa__vector_8h.html#ae070ec482c79c5b3bd19dd03ea42ec74',1,'sdpa_vector.h']]], + ['sdpa_5fvector_5f2pass_5f2_19',['sdpa_vector_2pass_2',['../sdpa__vector_8h.html#a1368cf3618a4e03dbf743b3463205efe',1,'sdpa_vector.h']]], + ['seed_20',['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_21',['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_22',['Select',['../classmlx_1_1core_1_1_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9',1,'mlx::core::Select']]], + ['send_23',['Send',['../classmlx_1_1core_1_1distributed_1_1_send.html#a2481dd876b14d4a13ac466cbca9c4eac',1,'mlx::core::distributed::Send']]], + ['send_24',['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_25',['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_5fbytes_26',['set_bytes',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9c343f791812a45c6c03a5c9f27f74d5',1,'mlx::core::metal::CommandEncoder::set_bytes(const T *v, int n, int idx)'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#abc52d18ea87d213c47fd26062c829849',1,'mlx::core::metal::CommandEncoder::set_bytes(const T &v, int idx)']]], + ['set_5fcache_5flimit_27',['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_28',['set_compile_mode',['../namespacemlx_1_1core.html#a49445a55f976c4397f25ea18e1e92bef',1,'mlx::core']]], + ['set_5fcompute_5fpipeline_5fstate_29',['set_compute_pipeline_state',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef',1,'mlx::core::metal::CommandEncoder']]], + ['set_5fdata_30',['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_31',['set_default_device',['../namespacemlx_1_1core.html#a312a2de41367fe52caeaf8c0f596a120',1,'mlx::core']]], + ['set_5fdefault_5fstream_32',['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_33',['set_input_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4',1,'mlx::core::metal::CommandEncoder']]], + ['set_5fmemory_5flimit_34',['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_35',['set_output_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522',1,'mlx::core::metal::CommandEncoder']]], + ['set_5fresidency_5fset_36',['set_residency_set',['../classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f',1,'mlx::core::metal::Device']]], + ['set_5fsiblings_37',['set_siblings',['../classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1',1,'mlx::core::array']]], + ['set_5fstatus_38',['set_status',['../classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c',1,'mlx::core::array']]], + ['set_5ftracer_39',['set_tracer',['../classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8',1,'mlx::core::array']]], + ['set_5fvalue_40',['set_value',['../classmlx_1_1core_1_1_event.html#a0d077b11f4b28f882b42440b7ac6d40d',1,'mlx::core::Event']]], + ['set_5fvector_5fbytes_41',['set_vector_bytes',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b',1,'mlx::core::metal::CommandEncoder::set_vector_bytes(const std::vector< T > &vec, size_t nelems, int idx)'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115',1,'mlx::core::metal::CommandEncoder::set_vector_bytes(const std::vector< T > &vec, int idx)']]], + ['set_5fwired_5flimit_42',['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_43',['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']]], + ['shape2d_44',['Shape2D',['../structmlx_1_1steel_1_1_shape2_d.html#a070ce70eb6d84361c7f313159c438a5c',1,'mlx::steel::Shape2D']]], + ['shapes_5fwithout_5freduction_5faxes_45',['shapes_without_reduction_axes',['../namespacemlx_1_1core.html#a44c3ea6db6553c3f6552b9ba64a69494',1,'mlx::core']]], + ['shared_5fbuffer_5fslice_46',['shared_buffer_slice',['../namespacemlx_1_1core.html#aea2a6a4eddfd4cfac89d20786059de2a',1,'mlx::core']]], + ['shutdown_47',['shutdown',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a0c7c29290fde806031c497f24c4ad411',1,'pocketfft::detail::threading::thread_pool']]], + ['siblings_48',['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_49',['Sigmoid',['../classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b',1,'mlx::core::Sigmoid']]], + ['sigmoid_50',['sigmoid',['../group__ops.html#ga708abf8f79609cd6831db7c38cafac0e',1,'mlx::core']]], + ['sign_51',['Sign',['../classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763',1,'mlx::core::Sign']]], + ['sign_52',['sign',['../group__ops.html#ga20f1a1a8c0cd6206485f9363f3915faa',1,'mlx::core']]], + ['signal_53',['signal',['../classmlx_1_1core_1_1_event.html#a65a858445506a61be5889ae0e3651b89',1,'mlx::core::Event']]], + ['signaling_5fnan_54',['signaling_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['simd_5fbroadcast_55',['simd_broadcast',['../namespacemetal.html#a498f1e85107eb5f01ba4435977f8efe0',1,'metal']]], + ['simd_5fexclusive_5fscan_56',['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_57',['simd_max',['../namespacemetal.html#a048cad0aca52cb737ebf103e76bd1c49',1,'metal']]], + ['simd_5fmin_58',['simd_min',['../namespacemetal.html#ae9e2a23e00724ba2d7868bc4112b386b',1,'metal']]], + ['simd_5fprefix_5fexclusive_5fproduct_59',['simd_prefix_exclusive_product',['../namespacemetal.html#a5ca40242390b632f737e29636829b2e4',1,'metal']]], + ['simd_5fprefix_5fexclusive_5fsum_60',['simd_prefix_exclusive_sum',['../namespacemetal.html#abfbb70c7471f28bf7ff36a612ad014b2',1,'metal']]], + ['simd_5fprefix_5finclusive_5fproduct_61',['simd_prefix_inclusive_product',['../namespacemetal.html#a6ca6a7e1996228fa536e969e9e45c446',1,'metal']]], + ['simd_5fprefix_5finclusive_5fsum_62',['simd_prefix_inclusive_sum',['../namespacemetal.html#a567acb18199ac0107712eb8cb8aeb8e9',1,'metal']]], + ['simd_5fproduct_63',['simd_product',['../namespacemetal.html#ac6e883a04e2265a9790d7db76059e1b4',1,'metal']]], + ['simd_5fscan_64',['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_65',['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_66',['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_67',['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_68',['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_69',['simd_shuffle_rotate_down',['../namespacemetal.html#a4bb203647a421032db47e73cd649841b',1,'metal']]], + ['simd_5fshuffle_5frotate_5fup_70',['simd_shuffle_rotate_up',['../namespacemetal.html#a729b22077d6c944491a6027c18ea80c9',1,'metal']]], + ['simd_5fshuffle_5fup_71',['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_72',['simd_shuffle_xor',['../namespacemetal.html#a5017efc9605e069cfb507137cd1a1852',1,'metal']]], + ['simd_5fsum_73',['simd_sum',['../namespacemetal.html#a85181e37a00cb4a4217f1bb25389bce5',1,'metal']]], + ['simd_5fxor_74',['simd_xor',['../namespacemetal.html#a1308decbf2d5c33d34d6be523ea1c30f',1,'metal']]], + ['simple_5fiter_75',['simple_iter',['../classpocketfft_1_1detail_1_1simple__iter.html#a1e455c615825bebd5f1f62665027b398',1,'pocketfft::detail::simple_iter']]], + ['sin_76',['Sin',['../classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea',1,'mlx::core::Sin']]], + ['sin_77',['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_78',['sincos_2pibyn',['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a88518f2182d854c557edacd4ab8cbc40',1,'pocketfft::detail::sincos_2pibyn']]], + ['sinh_79',['Sinh',['../classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96',1,'mlx::core::Sinh']]], + ['sinh_80',['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_81',['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_82',['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_83',['size_of',['../namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95',1,'mlx::core']]], + ['slice_84',['Slice',['../classmlx_1_1core_1_1_slice.html#a8a38feb7bb6b72bdeebb83f053e2fd7f',1,'mlx::core::Slice']]], + ['slice_85',['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_86',['slice_gpu',['../namespacemlx_1_1core.html#a59048c5ff114c101a496bf33f62e3de9',1,'mlx::core']]], + ['slice_5fupdate_87',['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_88',['SliceUpdate',['../classmlx_1_1core_1_1_slice_update.html#aa30a7f22f557c56e1a2b5fcf44488990',1,'mlx::core::SliceUpdate']]], + ['softmax_89',['Softmax',['../classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb',1,'mlx::core::Softmax']]], + ['softmax_90',['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_91',['softmax_exp',['../kernels_2softmax_8h.html#a440d4031ee5e86159a4dd715e44a438b',1,'softmax.h']]], + ['softmax_5flooped_92',['softmax_looped',['../kernels_2softmax_8h.html#a8c47b0924ebfeebcca25f3dd17373276',1,'softmax.h']]], + ['softmax_5fsingle_5frow_93',['softmax_single_row',['../kernels_2softmax_8h.html#a815fe70f879f318e5d6e99acf043f52b',1,'softmax.h']]], + ['sort_94',['Sort',['../classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44',1,'mlx::core::Sort']]], + ['sort_95',['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_96',['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_97',['Split',['../classmlx_1_1core_1_1_split.html#a897c746ecfdff5119cc5ae3f20499385',1,'mlx::core::Split']]], + ['split_98',['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_99',['Sqrt',['../classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29',1,'mlx::core::Sqrt']]], + ['sqrt_100',['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_101',['Square',['../classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4',1,'mlx::core::Square']]], + ['square_102',['square',['../group__ops.html#ga1234e4c39cfa79f19d4bdb5b8ea4d45e',1,'mlx::core']]], + ['squeeze_103',['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_104',['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_105',['start_capture',['../namespacemlx_1_1core_1_1metal.html#aa47cb5651bf3b65c46ab216b7e504d77',1,'mlx::core::metal']]], + ['start_5fconcurrent_106',['start_concurrent',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034',1,'mlx::core::metal::CommandEncoder']]], + ['status_107',['status',['../classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad',1,'mlx::core::array']]], + ['std_108',['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_109',['steel_conv',['../namespacemlx_1_1core_1_1metal.html#a92f1e559b1121d545746f81ff86eaca1',1,'mlx::core::metal']]], + ['steel_5fconv_5fgeneral_110',['steel_conv_general',['../namespacemlx_1_1core_1_1metal.html#a02edb6a90bdf30f4c9f0d6c25b0267b5',1,'mlx::core::metal']]], + ['steel_5fgemm_5ffused_111',['steel_gemm_fused',['../namespacemlx_1_1core_1_1metal.html#a17764366deed71c160fb26091400a803',1,'mlx::core::metal']]], + ['steel_5fgemm_5fmasked_112',['steel_gemm_masked',['../namespacemlx_1_1core_1_1metal.html#a962272ca73d26c08f76f706a128fd71f',1,'mlx::core::metal']]], + ['steel_5fgemm_5fsplitk_113',['steel_gemm_splitk',['../namespacemlx_1_1core_1_1metal.html#ad0dfd40ba7c09755711ceb731e57a5ac',1,'mlx::core::metal']]], + ['steel_5fmatmul_114',['steel_matmul',['../namespacemlx_1_1core.html#ab43a7633794498e1c6775cca829eb886',1,'mlx::core']]], + ['steel_5fmatmul_5fregular_115',['steel_matmul_regular',['../namespacemlx_1_1core.html#a227588758ccc9ee869dba147e830bb74',1,'mlx::core']]], + ['step_116',['step',['../structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef',1,'mlx::core::ContiguousIterator']]], + ['stop_5fcapture_117',['stop_capture',['../namespacemlx_1_1core_1_1metal.html#ac90714424e36fb01e04550de69b8314f',1,'mlx::core::metal']]], + ['stop_5fgradient_118',['stop_gradient',['../group__ops.html#ga36bc28f1deb2fe668ca9ae1e447b6b1f',1,'mlx::core']]], + ['stopgradient_119',['StopGradient',['../classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f',1,'mlx::core::StopGradient']]], + ['store_120',['store',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a2aadaa3239cb3af0c2ee8af9b88c8a98',1,'mlx::steel::MMATile::store(threadgroup U *dst) const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a752f708e4fe5ef37fdd902dae153179f',1,'mlx::steel::MMATile::store(device U *dst, const int ld) const'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a2aadaa3239cb3af0c2ee8af9b88c8a98',1,'mlx::steel::MMATile::store(threadgroup U *dst) const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a752f708e4fe5ef37fdd902dae153179f',1,'mlx::steel::MMATile::store(device U *dst, const int ld) const']]], + ['store_5fresult_121',['store_result',['../structmlx_1_1steel_1_1_block_m_m_a.html#a0461451ffb5041b6a916ea17ed34288b',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd)'],['../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'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a0461451ffb5041b6a916ea17ed34288b',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd)'],['../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_122',['store_result_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a081ba538d30d1d02498a7f341e6bd611',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)'],['../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'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a081ba538d30d1d02498a7f341e6bd611',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)'],['../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']]], + ['store_5fsafe_123',['store_safe',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a57703f522c7409dbe2c0a68bb7acc2ba',1,'mlx::steel::MMATile::store_safe()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::store_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a57703f522c7409dbe2c0a68bb7acc2ba',1,'mlx::steel::MMATile::store_safe()']]], + ['stream_124',['Stream',['../structmlx_1_1core_1_1_stream.html#a7f0815ff4886da74cbbff5f93d82dd3e',1,'mlx::core::Stream']]], + ['stream_125',['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_126',['StreamContext',['../structmlx_1_1core_1_1_stream_context.html#a89d803151e9d7dce29382aa83d5c6ef1',1,'mlx::core::StreamContext']]], + ['streamthread_127',['StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#ac528109a11abcb82e6e221c5efa4493c',1,'mlx::core::scheduler::StreamThread']]], + ['stride_128',['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_129',['stride_in',['../classpocketfft_1_1detail_1_1multi__iter.html#ac947f03b1cfcb63436a7e61ff020a88c',1,'pocketfft::detail::multi_iter']]], + ['stride_5fout_130',['stride_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a81d71a13bf0b85e556fbb9834167ecc7',1,'pocketfft::detail::multi_iter']]], + ['strided_5freduce_5fgeneral_5fdispatch_131',['strided_reduce_general_dispatch',['../namespacemlx_1_1core.html#aa0332c64ee9965f05026c30a0b778000',1,'mlx::core']]], + ['strided_5fscan_132',['strided_scan',['../scan_8h.html#a7abb6ffb6c3b96b88c2a63cd4cc2f7ae',1,'scan.h']]], + ['strides_133',['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_134',['submit',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a8698d49e8f406cdb88006aac6a91f9a4',1,'pocketfft::detail::threading::thread_pool']]], + ['subtract_135',['Subtract',['../classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c',1,'mlx::core::Subtract']]], + ['subtract_136',['subtract',['../group__ops.html#ga196c240d3d0fcbb4713802c485e15133',1,'mlx::core']]], + ['sum_137',['sum',['../namespacemlx_1_1steel.html#ab4a6ddea4beb7c447cf5b69b9d46cc3b',1,'mlx::steel::sum(T x)'],['../namespacemlx_1_1steel.html#acd6e194d37b617d7a5818bc384a97fe4',1,'mlx::steel::sum(T x, Us... us)'],['../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_138',['SVD',['../classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1',1,'mlx::core::SVD']]], + ['svd_139',['svd',['../namespacemlx_1_1core_1_1linalg.html#a64364b880e99914cf47bf756fa8dbaf0',1,'mlx::core::linalg']]], + ['swapaxes_140',['swapaxes',['../group__ops.html#gabc46eed81ab6c6247903e4ec0c4ec1fb',1,'mlx::core']]], + ['swizzle_141',['swizzle',['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle::swizzle(uint3 tid, const int swizzle_log)'],['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle::swizzle(uint3 tid, const int swizzle_log)']]], + ['synchronize_142',['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_14.js b/docs/build/html/search/functions_14.js index 132353d8..884f5242 100644 --- a/docs/build/html/search/functions_14.js +++ b/docs/build/html/search/functions_14.js @@ -14,10 +14,10 @@ var searchData= ['tell_11',['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()']]], ['tensordot_12',['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_13',['ternary',['../namespacemlx_1_1core_1_1metal.html#a2d1c92ba6897c0a7a428fed63279b61f',1,'mlx::core::metal']]], - ['ternary_5fg_14',['ternary_g',['../metal_2kernels_2ternary_8h.html#adf8b5989de971e43829875dc0097cdfb',1,'ternary.h']]], + ['ternary_5fg_14',['ternary_g',['../metal_2kernels_2ternary_8h.html#ab2051fd944c2e24c57d5b4af54894d72',1,'ternary.h']]], ['ternary_5fg_5fnd1_15',['ternary_g_nd1',['../metal_2kernels_2ternary_8h.html#a1bd5918559850f3f80e3adee2391fe6a',1,'ternary.h']]], - ['ternary_5fg_5fnd2_16',['ternary_g_nd2',['../metal_2kernels_2ternary_8h.html#afdf0d9d0cb21fcb3f176500785076af8',1,'ternary.h']]], - ['ternary_5fg_5fnd3_17',['ternary_g_nd3',['../metal_2kernels_2ternary_8h.html#a113df0c8a841b0e986900d580644e047',1,'ternary.h']]], + ['ternary_5fg_5fnd2_16',['ternary_g_nd2',['../metal_2kernels_2ternary_8h.html#adec9ca8a8bf527cb15d70da5857af15d',1,'ternary.h']]], + ['ternary_5fg_5fnd3_17',['ternary_g_nd3',['../metal_2kernels_2ternary_8h.html#a046dcbf67cd2318d45355dc7516e3ff4',1,'ternary.h']]], ['ternary_5fop_5fgpu_18',['ternary_op_gpu',['../namespacemlx_1_1core.html#aa63e62b6d3906e4cac871d498515a1cd',1,'mlx::core']]], ['ternary_5fop_5fgpu_5finplace_19',['ternary_op_gpu_inplace',['../namespacemlx_1_1core.html#a37645c0adccb3eb46844115def1a68d7',1,'mlx::core']]], ['ternary_5fops_20',['ternary_ops',['../namespacemlx_1_1core_1_1metal.html#a11b593b07e9a33e5f78fe4695fb99ec9',1,'mlx::core::metal']]], @@ -39,16 +39,17 @@ var searchData= ['to_5fstream_36',['to_stream',['../namespacemlx_1_1core.html#a4734a596e57434492ddfe79f2cb9dbf9',1,'mlx::core']]], ['topk_37',['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_38',['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_39',['TransformAdd',['../structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae',1,'mlx::steel::TransformAdd']]], - ['transformaxpby_40',['TransformAxpby',['../structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9',1,'mlx::steel::TransformAxpby']]], - ['transpose_41',['Transpose',['../classmlx_1_1core_1_1_transpose.html#a1a9ba023584c61c7ac93d6dce536760a',1,'mlx::core::Transpose']]], - ['transpose_42',['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_43',['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_44',['tri_inv',['../namespacemlx_1_1core_1_1linalg.html#aba1994571326326717b5b5e38c2e0661',1,'mlx::core::linalg']]], - ['tril_45',['tril',['../group__ops.html#ga83e0bb45dc770cf014531d873b78c5a2',1,'mlx::core']]], - ['triu_46',['triu',['../group__ops.html#gaa9df5917876eeb0cb28b7fa81f880412',1,'mlx::core']]], - ['trunc_47',['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_48',['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_49',['try_pop',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#aa3807d46a126d229f9054c779105ea43',1,'pocketfft::detail::threading::concurrent_queue']]], - ['type_5fto_5fname_50',['type_to_name',['../namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae',1,'mlx::core']]] + ['transformadd_39',['TransformAdd',['../structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae',1,'mlx::steel::TransformAdd::TransformAdd(const float, const float)'],['../structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae',1,'mlx::steel::TransformAdd::TransformAdd(const float, const float)']]], + ['transformaxpby_40',['TransformAxpby',['../structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9',1,'mlx::steel::TransformAxpby::TransformAxpby(const float alpha_, const float beta_)'],['../structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9',1,'mlx::steel::TransformAxpby::TransformAxpby(const float alpha_, const float beta_)']]], + ['transformscale_41',['TransformScale',['../struct_transform_scale.html#ae109cf7c963ba13df96977e7563f7b70',1,'TransformScale']]], + ['transpose_42',['Transpose',['../classmlx_1_1core_1_1_transpose.html#a1a9ba023584c61c7ac93d6dce536760a',1,'mlx::core::Transpose']]], + ['transpose_43',['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_44',['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_45',['tri_inv',['../namespacemlx_1_1core_1_1linalg.html#aba1994571326326717b5b5e38c2e0661',1,'mlx::core::linalg']]], + ['tril_46',['tril',['../group__ops.html#ga83e0bb45dc770cf014531d873b78c5a2',1,'mlx::core']]], + ['triu_47',['triu',['../group__ops.html#gaa9df5917876eeb0cb28b7fa81f880412',1,'mlx::core']]], + ['trunc_48',['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_49',['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_50',['try_pop',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#aa3807d46a126d229f9054c779105ea43',1,'pocketfft::detail::threading::concurrent_queue']]], + ['type_5fto_5fname_51',['type_to_name',['../namespacemlx_1_1core.html#aef60e3a8d9c987c9c338b193673d2164',1,'mlx::core::type_to_name(const Dtype &t)'],['../namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae',1,'mlx::core::type_to_name(const array &a)']]] ]; diff --git a/docs/build/html/search/functions_15.js b/docs/build/html/search/functions_15.js index 3f6a191f..db9d76bd 100644 --- a/docs/build/html/search/functions_15.js +++ b/docs/build/html/search/functions_15.js @@ -1,14 +1,16 @@ var searchData= [ - ['unary_0',['unary',['../namespacemlx_1_1core_1_1metal.html#afac64fd56ac492d6baf6de7e8a00b039',1,'mlx::core::metal']]], - ['unary_5fg_1',['unary_g',['../metal_2kernels_2unary_8h.html#ac965f8d3ed62f8580dbfb645e83d4ae5',1,'unary.h']]], - ['unary_5fop_5fgpu_2',['unary_op_gpu',['../namespacemlx_1_1core.html#aba2b4accc059f30d4dca88db9f7a6e13',1,'mlx::core']]], - ['unary_5fop_5fgpu_5finplace_3',['unary_op_gpu_inplace',['../namespacemlx_1_1core.html#a668fde2bd280a88f63a68b68a343d375',1,'mlx::core']]], - ['unary_5fops_4',['unary_ops',['../namespacemlx_1_1core_1_1metal.html#a17b471fa52ea5f24ee63e081f46528f5',1,'mlx::core::metal']]], - ['unary_5fv_5',['unary_v',['../metal_2kernels_2unary_8h.html#a64e4f6737edddb72122e262977ee3014',1,'unary.h']]], - ['unary_5fv2_6',['unary_v2',['../metal_2kernels_2unary_8h.html#a7c7690f0df9d2acc60b63be58d9c7777',1,'unary.h']]], - ['unaryprimitive_7',['UnaryPrimitive',['../classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e',1,'mlx::core::UnaryPrimitive::UnaryPrimitive(Stream stream)'],['../classmlx_1_1core_1_1_unary_primitive.html#a9935cffc4f246d3d883bc3d26c5163f2',1,'mlx::core::UnaryPrimitive::UnaryPrimitive(const UnaryPrimitive &other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#a780281fb04e2daf1be630c124bd605e3',1,'mlx::core::UnaryPrimitive::UnaryPrimitive(UnaryPrimitive &&other)=delete']]], - ['uniform_8',['Uniform',['../classmlx_1_1core_1_1_uniform.html#a626aa1091aa77b4a32c02290106b85e1',1,'mlx::core::Uniform']]], - ['uniform_9',['uniform',['../namespacemlx_1_1core_1_1random.html#adaa626cf75ab891978954bd1eb79a38b',1,'mlx::core::random::uniform(const array &low, const array &high, const std::vector< int > &shape, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#ac0dd00f7e37377d621f9f5bfb5a3f8e4',1,'mlx::core::random::uniform(T low, U high, const std::vector< int > &shape, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a2922e133d9f82dcf925bae0a784cc4a7',1,'mlx::core::random::uniform(const std::vector< int > &shape, Dtype dtype, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a133d2855ff4d8daf41029cffdf43cdf9',1,'mlx::core::random::uniform(const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], - ['utils_10',['utils',['../namespacemlx_1_1core_1_1metal.html#a529dc6c2d4a37ba544b66b2c3cd792cc',1,'mlx::core::metal']]] + ['uint16_5fto_5fbfloat16_0',['uint16_to_bfloat16',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4',1,'uint16_to_bfloat16(const uint16_t x): bf16.h'],['../backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4',1,'uint16_to_bfloat16(const uint16_t x): bf16.h']]], + ['unary_1',['unary',['../namespacemlx_1_1core_1_1metal.html#afac64fd56ac492d6baf6de7e8a00b039',1,'mlx::core::metal']]], + ['unary_5fg_2',['unary_g',['../metal_2kernels_2unary_8h.html#ac2a85fee50af49620ff62c1a71e2575d',1,'unary.h']]], + ['unary_5fop_5fgpu_3',['unary_op_gpu',['../namespacemlx_1_1core.html#aba2b4accc059f30d4dca88db9f7a6e13',1,'mlx::core']]], + ['unary_5fop_5fgpu_5finplace_4',['unary_op_gpu_inplace',['../namespacemlx_1_1core.html#a668fde2bd280a88f63a68b68a343d375',1,'mlx::core']]], + ['unary_5fops_5',['unary_ops',['../namespacemlx_1_1core_1_1metal.html#a17b471fa52ea5f24ee63e081f46528f5',1,'mlx::core::metal']]], + ['unary_5fv_6',['unary_v',['../metal_2kernels_2unary_8h.html#a64e4f6737edddb72122e262977ee3014',1,'unary.h']]], + ['unary_5fv2_7',['unary_v2',['../metal_2kernels_2unary_8h.html#a7c7690f0df9d2acc60b63be58d9c7777',1,'unary.h']]], + ['unaryprimitive_8',['UnaryPrimitive',['../classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e',1,'mlx::core::UnaryPrimitive::UnaryPrimitive(Stream stream)'],['../classmlx_1_1core_1_1_unary_primitive.html#a9935cffc4f246d3d883bc3d26c5163f2',1,'mlx::core::UnaryPrimitive::UnaryPrimitive(const UnaryPrimitive &other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#a780281fb04e2daf1be630c124bd605e3',1,'mlx::core::UnaryPrimitive::UnaryPrimitive(UnaryPrimitive &&other)=delete']]], + ['uniform_9',['Uniform',['../classmlx_1_1core_1_1_uniform.html#a626aa1091aa77b4a32c02290106b85e1',1,'mlx::core::Uniform']]], + ['uniform_10',['uniform',['../namespacemlx_1_1core_1_1random.html#adaa626cf75ab891978954bd1eb79a38b',1,'mlx::core::random::uniform(const array &low, const array &high, const std::vector< int > &shape, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#ac0dd00f7e37377d621f9f5bfb5a3f8e4',1,'mlx::core::random::uniform(T low, U high, const std::vector< int > &shape, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a2922e133d9f82dcf925bae0a784cc4a7',1,'mlx::core::random::uniform(const std::vector< int > &shape, Dtype dtype, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a133d2855ff4d8daf41029cffdf43cdf9',1,'mlx::core::random::uniform(const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], + ['update_5ffence_11',['update_fence',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#aeef08f5f3c015578d40de756a6465aa2',1,'mlx::core::metal::CommandEncoder']]], + ['utils_12',['utils',['../namespacemlx_1_1core_1_1metal.html#a529dc6c2d4a37ba544b66b2c3cd792cc',1,'mlx::core::metal']]] ]; diff --git a/docs/build/html/search/functions_16.js b/docs/build/html/search/functions_16.js index 3642762f..48658abe 100644 --- a/docs/build/html/search/functions_16.js +++ b/docs/build/html/search/functions_16.js @@ -7,8 +7,8 @@ var searchData= ['var_4',['var',['../group__ops.html#ga7e133df686439588a8cd1fb10ce0c6e9',1,'mlx::core::var(const array &a, bool keepdims, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga7d7b38d118fa2613214078ef0f7d5a42',1,'mlx::core::var(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga78ddeb966cbe7a5b0aa17e1de43025f2',1,'mlx::core::var(const array &a, const std::vector< int > &axes, bool keepdims=false, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga4fbf3e3f98f2e4956faf87af320aa9d0',1,'mlx::core::var(const array &a, int axis, bool keepdims=false, int ddof=0, StreamOrDevice s={})']]], ['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()'],['../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={})']]], + ['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_contiguous.html#abf488f02057fd5852f38b2e8a600ad2a',1,'mlx::core::Contiguous::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_contiguous.html#a563221e90b15aa90bfae23d29c10e4ec',1,'mlx::core::Contiguous::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 7c63226f..67970a5d 100644 --- a/docs/build/html/search/functions_17.js +++ b/docs/build/html/search/functions_17.js @@ -1,11 +1,12 @@ var searchData= [ ['wait_0',['wait',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#af503189cc9247047fbdfc3ebf1daacc1',1,'pocketfft::detail::threading::latch::wait()'],['../classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e',1,'mlx::core::array::wait()'],['../classmlx_1_1core_1_1_event.html#a634afd918e6ed847f354531ba9f48252',1,'mlx::core::Event::wait()']]], - ['wait_5ffor_5fone_1',['wait_for_one',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a01c574bb388f10d67aaaaa541894d807',1,'mlx::core::scheduler::Scheduler::wait_for_one()'],['../namespacemlx_1_1core_1_1scheduler.html#a8cc4d5fd1f5ce722b377ead1863a2291',1,'mlx::core::scheduler::wait_for_one()']]], - ['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',['../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',['../scan_8h.html#a8010e7bdf7a72cbd35ce7cd7ecb08e32',1,'scan.h']]] + ['wait_5ffor_5ffence_1',['wait_for_fence',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefdadbff4e003dc6f77506840babc088',1,'mlx::core::metal::CommandEncoder']]], + ['wait_5ffor_5fone_2',['wait_for_one',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a01c574bb388f10d67aaaaa541894d807',1,'mlx::core::scheduler::Scheduler::wait_for_one()'],['../namespacemlx_1_1core_1_1scheduler.html#a8cc4d5fd1f5ce722b377ead1863a2291',1,'mlx::core::scheduler::wait_for_one()']]], + ['where_3',['where',['../group__ops.html#ga8a2056f8c9bb30914c40bcf509386491',1,'mlx::core']]], + ['write_4',['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_5',['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_6',['write_safe',['../scan_8h.html#ae86aef08e5ebc8790031eb51eefa754c',1,'scan.h']]], + ['write_5fstrided_7',['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_8',['write_unsafe',['../scan_8h.html#a8010e7bdf7a72cbd35ce7cd7ecb08e32',1,'scan.h']]] ]; diff --git a/docs/build/html/search/functions_2.js b/docs/build/html/search/functions_2.js index 10a541d6..afd8977e 100644 --- a/docs/build/html/search/functions_2.js +++ b/docs/build/html/search/functions_2.js @@ -2,48 +2,51 @@ var searchData= [ ['begin_0',['begin',['../classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914',1,'mlx::core::array']]], ['bernoulli_1',['bernoulli',['../namespacemlx_1_1core_1_1random.html#acb3f278fea2c4f06dea947d3bac2e9b7',1,'mlx::core::random::bernoulli(const array &p, const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#aaa49f6c2af5496822fa09435e54275cb',1,'mlx::core::random::bernoulli(const array &p, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#aa9e360f9cb7bd23221352ed9e31d83c2',1,'mlx::core::random::bernoulli(T p, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a37fcba120a1d246176db5256d3201cd4',1,'mlx::core::random::bernoulli(T p, const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#ad7eb4467e2f9d5f74a5607b29a935b6e',1,'mlx::core::random::bernoulli(const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], - ['bfloat_5fbits_5fto_5ffloat_2',['bfloat_bits_to_float',['../backend_2metal_2kernels_2bf16_8h.html#a3b33ae338dc4f223d0f3c748de07bad1',1,'bf16.h']]], - ['binary_3',['binary',['../namespacemlx_1_1core_1_1metal.html#a269d591ec02e2f7c0f7a718fbfa37f73',1,'mlx::core::metal']]], - ['binary_5fg_4',['binary_g',['../metal_2kernels_2binary_8h.html#a1f3f5d6bfbf3914f365790dd1434c10b',1,'binary_g(device const T *a, device const T *b, device U *c, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const int &ndim, uint3 index, uint3 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a6297badf47dece518bb4e67f02cffea8',1,'binary_g(device const T *a, device const T *b, device U *c, device U *d, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const int &ndim, uint3 index, uint3 grid_dim): binary_two.h']]], - ['binary_5fg_5fnd1_5',['binary_g_nd1',['../metal_2kernels_2binary_8h.html#a6808bfb006cb5473da087a2758d0d867',1,'binary_g_nd1(device const T *a, device const T *b, device U *c, constant const size_t &a_stride, constant const size_t &b_stride, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ad1fad37c168192b212a4294f4cf78133',1,'binary_g_nd1(device const T *a, device const T *b, device U *c, device U *d, constant const size_t &a_stride, constant const size_t &b_stride, uint index): binary_two.h']]], - ['binary_5fg_5fnd2_6',['binary_g_nd2',['../metal_2kernels_2binary_8h.html#a8cd5989852ec704c6fd132ae28f4fc14',1,'binary_g_nd2(device const T *a, device const T *b, device U *c, constant const size_t a_strides[2], constant const size_t b_strides[2], uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a03f7c15a1607576755abb65c542ae347',1,'binary_g_nd2(device const T *a, device const T *b, device U *c, device U *d, constant const size_t a_strides[2], constant const size_t b_strides[2], uint2 index, uint2 grid_dim): binary_two.h']]], - ['binary_5fg_5fnd3_7',['binary_g_nd3',['../metal_2kernels_2binary_8h.html#ac4979e60b993f7ffb602bcb91cd68bc9',1,'binary_g_nd3(device const T *a, device const T *b, device U *c, constant const size_t a_strides[3], constant const size_t b_strides[3], uint3 index, uint3 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a43e5943460996c43060d1f3aa1309ba6',1,'binary_g_nd3(device const T *a, device const T *b, device U *c, device U *d, constant const size_t a_strides[3], constant const size_t b_strides[3], uint3 index, uint3 grid_dim): binary_two.h']]], - ['binary_5fop_5fgpu_8',['binary_op_gpu',['../namespacemlx_1_1core.html#ad884f4a36308b5b4f8a5d990d2e086df',1,'mlx::core::binary_op_gpu(const std::vector< array > &inputs, std::vector< array > &outputs, const std::string &op, const Stream &s)'],['../namespacemlx_1_1core.html#a094876ea5a2a2445ab64efc8222da202',1,'mlx::core::binary_op_gpu(const std::vector< array > &inputs, array &out, const std::string &op, const Stream &s)']]], - ['binary_5fop_5fgpu_5finplace_9',['binary_op_gpu_inplace',['../namespacemlx_1_1core.html#a8616c0b7b0fc118a75400bc86404c367',1,'mlx::core::binary_op_gpu_inplace(const std::vector< array > &inputs, std::vector< array > &outputs, const std::string &op, const Stream &s)'],['../namespacemlx_1_1core.html#a7e6af6624e322e7ad60a3873a66e18a3',1,'mlx::core::binary_op_gpu_inplace(const std::vector< array > &inputs, array &out, const std::string &op, const Stream &s)']]], - ['binary_5fops_10',['binary_ops',['../namespacemlx_1_1core_1_1metal.html#a8db7f9cc781d4bfb08423a401665f322',1,'mlx::core::metal']]], - ['binary_5fss_11',['binary_ss',['../metal_2kernels_2binary_8h.html#a242b8b29a852c255467e50628c6dccf5',1,'binary_ss(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#af8a791ac7ca88d32cd8f4e9ac0f9ab4f',1,'binary_ss(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], - ['binary_5fsv_12',['binary_sv',['../metal_2kernels_2binary_8h.html#a4116c35f2e4632366d1611d5a95ba141',1,'binary_sv(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ab18c6ecf5065275c93701efd095c916c',1,'binary_sv(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], - ['binary_5fsv2_13',['binary_sv2',['../metal_2kernels_2binary_8h.html#aa8c48b1b21d8f5a181f5443de2346589',1,'binary_sv2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a08822ff98ea6f61a98b49a9e9a38b891',1,'binary_sv2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], - ['binary_5ftwo_14',['binary_two',['../namespacemlx_1_1core_1_1metal.html#aed047eec38b030ec5f29b9da54abf8cb',1,'mlx::core::metal']]], - ['binary_5fvs_15',['binary_vs',['../metal_2kernels_2binary_8h.html#a649851d133358dd5832a73b1061b3313',1,'binary_vs(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#a12dbda74fa460812177ccb9aeee6e1ca',1,'binary_vs(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], - ['binary_5fvs2_16',['binary_vs2',['../metal_2kernels_2binary_8h.html#a48bd82eb10f9c623ce7d28daec4fa512',1,'binary_vs2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a273d2f31691f2c64623c2a97eab344be',1,'binary_vs2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], - ['binary_5fvv_17',['binary_vv',['../metal_2kernels_2binary_8h.html#add6a9aeee3cb0ba909574f27fa9ecd5b',1,'binary_vv(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ab4324f594c007a6895540b77ad5d89d9',1,'binary_vv(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], - ['binary_5fvv2_18',['binary_vv2',['../metal_2kernels_2binary_8h.html#a19dbbf8fea68b64bdd25dc8d36865171',1,'binary_vv2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a12e80730e43dfaa4c79ce8d5f99edc50',1,'binary_vv2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], - ['bits_19',['bits',['../namespacemlx_1_1core_1_1random.html#abb895baa477f5a06b5f88e69245f1825',1,'mlx::core::random::bits(const std::vector< int > &shape, int width, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a548ffed4ba3107b89885ff850ffce5f4',1,'mlx::core::random::bits(const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], - ['bits_5fto_5fbfloat_20',['bits_to_bfloat',['../struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca',1,'_MLX_BFloat16']]], - ['bitwise_5fand_21',['bitwise_and',['../group__ops.html#ga752fd2707dabb05d0308ba3d55346ada',1,'mlx::core']]], - ['bitwise_5for_22',['bitwise_or',['../group__ops.html#ga8af4f22c08c11c4ffab7e3d45e0f3cd6',1,'mlx::core']]], - ['bitwise_5fxor_23',['bitwise_xor',['../group__ops.html#ga3188638fba3a60e264baf69956a1e08b',1,'mlx::core']]], - ['bitwisebinary_24',['BitwiseBinary',['../classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172',1,'mlx::core::BitwiseBinary']]], - ['block_5fmasked_5fgemm_25',['block_masked_gemm',['../steel__gemm__masked_8h.html#af805e998b2046ee30c2b4be813e3af97',1,'block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device out_mask_t *out_mask, const device op_mask_t *lhs_mask, const device op_mask_t *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_masked.h'],['../steel__gemm__masked_8h.html#a477932e2ae9d49366f7ede6db63f9cac',1,'block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device bool *out_mask, const device bool *lhs_mask, const device bool *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_masked.h']]], - ['block_5fmasked_5fmm_26',['block_masked_mm',['../group__ops.html#ga6b76c8ea46b19e6866af155fa5910be6',1,'mlx::core']]], - ['block_5fsort_27',['block_sort',['../struct_kernel_merge_sort.html#a56b644ec66f7fb5c01b280f124304be9',1,'KernelMergeSort::block_sort()'],['../struct_kernel_multi_block_merge_sort.html#a322ed2eac315a561e0fd90af2fd577eb',1,'KernelMultiBlockMergeSort::block_sort()'],['../sort_8h.html#a93f14092416169c4449141043ac45ffd',1,'block_sort(const device T *inp, device U *out, const constant int &size_sorted_axis, const constant int &in_stride_sorted_axis, const constant int &out_stride_sorted_axis, const constant int &in_stride_segment_axis, const constant int &out_stride_segment_axis, uint3 tid, uint3 lid): sort.h']]], - ['block_5fsort_5fnc_28',['block_sort_nc',['../sort_8h.html#a4ee3de195a6f9c33aa91ac52461808ad',1,'sort.h']]], - ['blockloader_29',['BlockLoader',['../structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335',1,'mlx::steel::BlockLoader']]], - ['blockmaskedmm_30',['BlockMaskedMM',['../classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477',1,'mlx::core::BlockMaskedMM']]], - ['blockmma_31',['BlockMMA',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8',1,'mlx::steel::BlockMMA']]], - ['bluestein_5ffft_32',['bluestein_fft',['../backend_2metal_2kernels_2fft_8h.html#a0abc609e9756475800e996775a96a87e',1,'fft.h']]], - ['broadcast_33',['Broadcast',['../classmlx_1_1core_1_1_broadcast.html#accbab8433c93e281608a268d11afaefb',1,'mlx::core::Broadcast']]], - ['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#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']]], - ['build_5flib_5fname_45',['build_lib_name',['../namespacemlx_1_1core.html#a3ef23f334cb9f68a2c50524bc67c913b',1,'mlx::core']]] + ['bfloat16_5fto_5fuint16_2',['bfloat16_to_uint16',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088',1,'bfloat16_to_uint16(const bfloat16_t x): bf16.h'],['../backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088',1,'bfloat16_to_uint16(const bfloat16_t x): bf16.h']]], + ['bfloat_5fbits_5fto_5ffloat_3',['bfloat_bits_to_float',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3b33ae338dc4f223d0f3c748de07bad1',1,'bf16.h']]], + ['bfs_5fmax_5fwidth_4',['bfs_max_width',['../namespacemlx_1_1core_1_1env.html#ac3266e1259a64c8b56bdc6c7029179f2',1,'mlx::core::env']]], + ['binary_5',['binary',['../namespacemlx_1_1core_1_1metal.html#a269d591ec02e2f7c0f7a718fbfa37f73',1,'mlx::core::metal']]], + ['binary_5fg_6',['binary_g',['../metal_2kernels_2binary_8h.html#ab1b49438a70f6c707c18afd5bce12bb3',1,'binary_g(device const T *a, device const T *b, device U *c, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const int &ndim, uint3 index, uint3 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#aaf6edb734cea627bca4f6540dc338fbd',1,'binary_g(device const T *a, device const T *b, device U *c, device U *d, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const int &ndim, uint3 index, uint3 grid_dim): binary_two.h']]], + ['binary_5fg_5fnd1_7',['binary_g_nd1',['../metal_2kernels_2binary_8h.html#a6808bfb006cb5473da087a2758d0d867',1,'binary_g_nd1(device const T *a, device const T *b, device U *c, constant const size_t &a_stride, constant const size_t &b_stride, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ad1fad37c168192b212a4294f4cf78133',1,'binary_g_nd1(device const T *a, device const T *b, device U *c, device U *d, constant const size_t &a_stride, constant const size_t &b_stride, uint index): binary_two.h']]], + ['binary_5fg_5fnd2_8',['binary_g_nd2',['../metal_2kernels_2binary_8h.html#a6cefcfee68bd62f3a6924df0cd53dd49',1,'binary_g_nd2(device const T *a, device const T *b, device U *c, constant const size_t a_strides[2], constant const size_t b_strides[2], uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a97b5613aff654d32c49225209a19bb95',1,'binary_g_nd2(device const T *a, device const T *b, device U *c, device U *d, constant const size_t a_strides[2], constant const size_t b_strides[2], uint2 index, uint2 grid_dim): binary_two.h']]], + ['binary_5fg_5fnd3_9',['binary_g_nd3',['../metal_2kernels_2binary_8h.html#abb15de8250f9a259de80618c6de46dfa',1,'binary_g_nd3(device const T *a, device const T *b, device U *c, constant const size_t a_strides[3], constant const size_t b_strides[3], uint3 index, uint3 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#aae07014f8dffa3649a5c7f4671e1268e',1,'binary_g_nd3(device const T *a, device const T *b, device U *c, device U *d, constant const size_t a_strides[3], constant const size_t b_strides[3], uint3 index, uint3 grid_dim): binary_two.h']]], + ['binary_5fop_5fgpu_10',['binary_op_gpu',['../namespacemlx_1_1core.html#ad884f4a36308b5b4f8a5d990d2e086df',1,'mlx::core::binary_op_gpu(const std::vector< array > &inputs, std::vector< array > &outputs, const std::string &op, const Stream &s)'],['../namespacemlx_1_1core.html#a094876ea5a2a2445ab64efc8222da202',1,'mlx::core::binary_op_gpu(const std::vector< array > &inputs, array &out, const std::string &op, const Stream &s)']]], + ['binary_5fop_5fgpu_5finplace_11',['binary_op_gpu_inplace',['../namespacemlx_1_1core.html#a8616c0b7b0fc118a75400bc86404c367',1,'mlx::core::binary_op_gpu_inplace(const std::vector< array > &inputs, std::vector< array > &outputs, const std::string &op, const Stream &s)'],['../namespacemlx_1_1core.html#a7e6af6624e322e7ad60a3873a66e18a3',1,'mlx::core::binary_op_gpu_inplace(const std::vector< array > &inputs, array &out, const std::string &op, const Stream &s)']]], + ['binary_5fops_12',['binary_ops',['../namespacemlx_1_1core_1_1metal.html#a8db7f9cc781d4bfb08423a401665f322',1,'mlx::core::metal']]], + ['binary_5fss_13',['binary_ss',['../metal_2kernels_2binary_8h.html#a242b8b29a852c255467e50628c6dccf5',1,'binary_ss(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#af8a791ac7ca88d32cd8f4e9ac0f9ab4f',1,'binary_ss(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], + ['binary_5fsv_14',['binary_sv',['../metal_2kernels_2binary_8h.html#a4116c35f2e4632366d1611d5a95ba141',1,'binary_sv(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ab18c6ecf5065275c93701efd095c916c',1,'binary_sv(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], + ['binary_5fsv2_15',['binary_sv2',['../metal_2kernels_2binary_8h.html#aa8c48b1b21d8f5a181f5443de2346589',1,'binary_sv2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a08822ff98ea6f61a98b49a9e9a38b891',1,'binary_sv2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], + ['binary_5ftwo_16',['binary_two',['../namespacemlx_1_1core_1_1metal.html#aed047eec38b030ec5f29b9da54abf8cb',1,'mlx::core::metal']]], + ['binary_5fvs_17',['binary_vs',['../metal_2kernels_2binary_8h.html#a649851d133358dd5832a73b1061b3313',1,'binary_vs(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#a12dbda74fa460812177ccb9aeee6e1ca',1,'binary_vs(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], + ['binary_5fvs2_18',['binary_vs2',['../metal_2kernels_2binary_8h.html#a48bd82eb10f9c623ce7d28daec4fa512',1,'binary_vs2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a273d2f31691f2c64623c2a97eab344be',1,'binary_vs2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], + ['binary_5fvv_19',['binary_vv',['../metal_2kernels_2binary_8h.html#add6a9aeee3cb0ba909574f27fa9ecd5b',1,'binary_vv(device const T *a, device const T *b, device U *c, uint index): binary.h'],['../metal_2kernels_2binary__two_8h.html#ab4324f594c007a6895540b77ad5d89d9',1,'binary_vv(device const T *a, device const T *b, device U *c, device U *d, uint index): binary_two.h']]], + ['binary_5fvv2_20',['binary_vv2',['../metal_2kernels_2binary_8h.html#a19dbbf8fea68b64bdd25dc8d36865171',1,'binary_vv2(device const T *a, device const T *b, device U *c, uint2 index, uint2 grid_dim): binary.h'],['../metal_2kernels_2binary__two_8h.html#a12e80730e43dfaa4c79ce8d5f99edc50',1,'binary_vv2(device const T *a, device const T *b, device U *c, device U *d, uint2 index, uint2 grid_dim): binary_two.h']]], + ['bits_21',['bits',['../namespacemlx_1_1core_1_1random.html#abb895baa477f5a06b5f88e69245f1825',1,'mlx::core::random::bits(const std::vector< int > &shape, int width, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a548ffed4ba3107b89885ff850ffce5f4',1,'mlx::core::random::bits(const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], + ['bits_5fto_5fbfloat_22',['bits_to_bfloat',['../struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca',1,'_MLX_BFloat16']]], + ['bitwise_5fand_23',['bitwise_and',['../group__ops.html#ga752fd2707dabb05d0308ba3d55346ada',1,'mlx::core']]], + ['bitwise_5for_24',['bitwise_or',['../group__ops.html#ga8af4f22c08c11c4ffab7e3d45e0f3cd6',1,'mlx::core']]], + ['bitwise_5fxor_25',['bitwise_xor',['../group__ops.html#ga3188638fba3a60e264baf69956a1e08b',1,'mlx::core']]], + ['bitwisebinary_26',['BitwiseBinary',['../classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172',1,'mlx::core::BitwiseBinary']]], + ['block_5fmasked_5fgemm_27',['block_masked_gemm',['../steel__gemm__masked_8h.html#af805e998b2046ee30c2b4be813e3af97',1,'block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device out_mask_t *out_mask, const device op_mask_t *lhs_mask, const device op_mask_t *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_masked.h'],['../steel__gemm__masked_8h.html#a477932e2ae9d49366f7ede6db63f9cac',1,'block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device bool *out_mask, const device bool *lhs_mask, const device bool *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid): steel_gemm_masked.h']]], + ['block_5fmasked_5fmm_28',['block_masked_mm',['../group__ops.html#ga6b76c8ea46b19e6866af155fa5910be6',1,'mlx::core']]], + ['block_5fsort_29',['block_sort',['../struct_kernel_merge_sort.html#a56b644ec66f7fb5c01b280f124304be9',1,'KernelMergeSort::block_sort()'],['../struct_kernel_multi_block_merge_sort.html#a322ed2eac315a561e0fd90af2fd577eb',1,'KernelMultiBlockMergeSort::block_sort()'],['../sort_8h.html#a93f14092416169c4449141043ac45ffd',1,'block_sort(const device T *inp, device U *out, const constant int &size_sorted_axis, const constant int &in_stride_sorted_axis, const constant int &out_stride_sorted_axis, const constant int &in_stride_segment_axis, const constant int &out_stride_segment_axis, uint3 tid, uint3 lid): sort.h']]], + ['block_5fsort_5fnc_30',['block_sort_nc',['../sort_8h.html#a4ee3de195a6f9c33aa91ac52461808ad',1,'sort.h']]], + ['blockloader_31',['BlockLoader',['../structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335',1,'mlx::steel::BlockLoader::BlockLoader(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)'],['../structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335',1,'mlx::steel::BlockLoader::BlockLoader(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)']]], + ['blockloadert_32',['BlockLoaderT',['../structmlx_1_1steel_1_1_block_loader_t.html#a076616a7c67ad1b847e0e6b046077ee2',1,'mlx::steel::BlockLoaderT']]], + ['blockmaskedmm_33',['BlockMaskedMM',['../classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477',1,'mlx::core::BlockMaskedMM']]], + ['blockmma_34',['BlockMMA',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8',1,'mlx::steel::BlockMMA::BlockMMA(ushort simd_group_id, ushort simd_lane_id)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8',1,'mlx::steel::BlockMMA::BlockMMA(ushort simd_group_id, ushort simd_lane_id)']]], + ['bluestein_5ffft_35',['bluestein_fft',['../backend_2metal_2kernels_2fft_8h.html#a0abc609e9756475800e996775a96a87e',1,'fft.h']]], + ['broadcast_36',['Broadcast',['../classmlx_1_1core_1_1_broadcast.html#accbab8433c93e281608a268d11afaefb',1,'mlx::core::Broadcast']]], + ['broadcast_5farrays_37',['broadcast_arrays',['../group__ops.html#gab783890428b596f715dc7dd2057eae99',1,'mlx::core']]], + ['broadcast_5fshapes_38',['broadcast_shapes',['../namespacemlx_1_1core.html#a075e07def338cd9d815182d0e6a656c0',1,'mlx::core']]], + ['broadcast_5fto_39',['broadcast_to',['../group__ops.html#gad256e86cc1a6e6b3832e392baa90318d',1,'mlx::core']]], + ['bs_5fqmm_5fn_40',['bs_qmm_n',['../quantized_8h.html#a1a66b061c46383952a0f067c3848971f',1,'quantized.h']]], + ['bs_5fqmm_5ft_41',['bs_qmm_t',['../quantized_8h.html#ab1ae143eba2afceb8df63f38b26f9a84',1,'quantized.h']]], + ['bs_5fqmv_42',['bs_qmv',['../quantized_8h.html#acf4c7fc77821a83b31aedfb48443d3ed',1,'quantized.h']]], + ['bs_5fqmv_5ffast_43',['bs_qmv_fast',['../quantized_8h.html#a530b720e123e59d73ea89a0a2d0946b7',1,'quantized.h']]], + ['bs_5fqvm_44',['bs_qvm',['../quantized_8h.html#a6d6e3c31e44f232e58ae9d605e1f4494',1,'quantized.h']]], + ['buffer_45',['Buffer',['../classmlx_1_1core_1_1allocator_1_1_buffer.html#ac4fc2cc6aa1368cfb74aff329d9a1300',1,'mlx::core::allocator::Buffer']]], + ['buffer_46',['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_47',['buffer_size',['../classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd',1,'mlx::core::array']]], + ['build_5flib_5fname_48',['build_lib_name',['../namespacemlx_1_1core.html#a3ef23f334cb9f68a2c50524bc67c913b',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/functions_3.js b/docs/build/html/search/functions_3.js index 2e834b06..b74b4a07 100644 --- a/docs/build/html/search/functions_3.js +++ b/docs/build/html/search/functions_3.js @@ -13,15 +13,15 @@ var searchData= ['cholesky_10',['Cholesky',['../classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab',1,'mlx::core::Cholesky']]], ['cholesky_11',['cholesky',['../namespacemlx_1_1core_1_1linalg.html#a46c8a4f806f0a97a4323e91189aa512b',1,'mlx::core::linalg']]], ['cholesky_5finv_12',['cholesky_inv',['../namespacemlx_1_1core_1_1linalg.html#aef0fe4894c5cf98792d59859c6d20511',1,'mlx::core::linalg']]], - ['clear_13',['clear',['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa97a98e423827a889c13a92217626ec7',1,'mlx::steel::MMATile']]], + ['clear_13',['clear',['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa97a98e423827a889c13a92217626ec7',1,'mlx::steel::MMATile::clear()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa97a98e423827a889c13a92217626ec7',1,'mlx::steel::MMATile::clear()']]], ['clear_5fcache_14',['clear_cache',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a447c1eb38c00d2e8e521675297f4a9b1',1,'mlx::core::metal::MetalAllocator::clear_cache()'],['../namespacemlx_1_1core_1_1metal.html#a22b3384ebd17f2fca198f81b9f1b6dc3',1,'mlx::core::metal::clear_cache()']]], ['clip_15',['clip',['../group__ops.html#ga157cd7c23f9b306fee2e1eb2b9bf1dd8',1,'mlx::core']]], ['cmplx_16',['cmplx',['../structpocketfft_1_1detail_1_1cmplx.html#a5b1ce506f1023f5254025ac81b831a2c',1,'pocketfft::detail::cmplx::cmplx()'],['../structpocketfft_1_1detail_1_1cmplx.html#a05491b4f1f22ca0bc49012f6a1c1710a',1,'pocketfft::detail::cmplx::cmplx(T r_, T i_)']]], ['cndarr_17',['cndarr',['../classpocketfft_1_1detail_1_1cndarr.html#abf73f1b4ddcfb27d7f85cfa441607129',1,'pocketfft::detail::cndarr']]], - ['col_5freduce_5f2pass_18',['col_reduce_2pass',['../reduce__col_8h.html#a0e92fc74eeaa8ee2ceb83bafc6eb1d7d',1,'reduce_col.h']]], - ['col_5freduce_5flongcolumn_19',['col_reduce_longcolumn',['../reduce__col_8h.html#a5b4f4c4c247ad341ff8d31dcbbbce0eb',1,'reduce_col.h']]], - ['col_5freduce_5flooped_20',['col_reduce_looped',['../reduce__col_8h.html#a11bfc6112ae2386ac03f5ea7b7d93385',1,'reduce_col.h']]], - ['col_5freduce_5fsmall_21',['col_reduce_small',['../reduce__col_8h.html#a7c378443a2b6f4d9210db8a21a9ac4f5',1,'reduce_col.h']]], + ['col_5freduce_5f2pass_18',['col_reduce_2pass',['../reduce__col_8h.html#a9a7be400d810700b47fc1a998032ce29',1,'reduce_col.h']]], + ['col_5freduce_5flongcolumn_19',['col_reduce_longcolumn',['../reduce__col_8h.html#aa3287cd98e97123b67b5d3920d984ca2',1,'reduce_col.h']]], + ['col_5freduce_5flooped_20',['col_reduce_looped',['../reduce__col_8h.html#ae8f9354e1c595142d05b33fe13988f02',1,'reduce_col.h']]], + ['col_5freduce_5fsmall_21',['col_reduce_small',['../reduce__col_8h.html#a82cd031d8014c02e61dc9a817ea6d4ec',1,'reduce_col.h']]], ['collapse_5fcontiguous_5fdims_22',['collapse_contiguous_dims',['../namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< std::vector< int64_t > > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#af2895f9b0083efd8221275eb8cadccbe',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< std::vector< size_t > > &strides, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a90e2b6edc0fe82230cb93f5ea39febb4',1,'mlx::core::collapse_contiguous_dims(const std::vector< array > &xs, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#ac813412cce77fc1340dcfefc6e099276',1,'mlx::core::collapse_contiguous_dims(Arrays &&... xs)'],['../namespacemlx_1_1core.html#aab3cc7f3808934ae0727b920eba231bd',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< int64_t > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a1e0cbcf109d32794ffc8efc7302ba9b0',1,'mlx::core::collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< size_t > &strides, size_t size_cap=std::numeric_limits< int32_t >::max())'],['../namespacemlx_1_1core.html#a4ee50bfb240512d0c0ce151dfe2c74ef',1,'mlx::core::collapse_contiguous_dims(const array &a, size_t size_cap=std::numeric_limits< int32_t >::max())']]], ['commandencoder_23',['CommandEncoder',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3',1,'mlx::core::metal::CommandEncoder::CommandEncoder(MTL::CommandBuffer *cbuf)'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14',1,'mlx::core::metal::CommandEncoder::CommandEncoder(const CommandEncoder &)=delete']]], ['commit_5fcommand_5fbuffer_24',['commit_command_buffer',['../classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c',1,'mlx::core::metal::Device']]], @@ -39,66 +39,68 @@ var searchData= ['complex_5fmul_5fconj_36',['complex_mul_conj',['../radix_8h.html#a0e2dfd3d1dda09f47ccc64eec35629f3',1,'radix.h']]], ['compute_5fstrided_5findices_37',['compute_strided_indices',['../struct_read_writer.html#a7c903fbb8b85a856ba5564d7df537cdf',1,'ReadWriter']]], ['concatenate_38',['Concatenate',['../classmlx_1_1core_1_1_concatenate.html#acff07853de2d31faeec7c4ca40ce0888',1,'mlx::core::Concatenate']]], - ['concatenate_39',['concatenate',['../group__ops.html#gabdc36fa65697d0361c8d67495de77129',1,'mlx::core::concatenate(const std::vector< array > &arrays, int axis, StreamOrDevice s={})'],['../group__ops.html#gaa95c34ca3a8877f2c50cb60e7fa312b8',1,'mlx::core::concatenate(const std::vector< array > &arrays, StreamOrDevice s={})']]], + ['concatenate_39',['concatenate',['../namespacemlx_1_1core.html#a76a2e310857f60f5ea6f1388d45b964d',1,'mlx::core::concatenate(std::string &acc, T first)'],['../namespacemlx_1_1core.html#aaf51544472fa87fa974686eacdd2a4a6',1,'mlx::core::concatenate(std::string &acc, T first, Args... args)'],['../group__ops.html#gabdc36fa65697d0361c8d67495de77129',1,'mlx::core::concatenate(const std::vector< array > &arrays, int axis, StreamOrDevice s={})'],['../group__ops.html#gaa95c34ca3a8877f2c50cb60e7fa312b8',1,'mlx::core::concatenate(const std::vector< array > &arrays, StreamOrDevice s={})']]], ['concatenate_5fgpu_40',['concatenate_gpu',['../namespacemlx_1_1core.html#a050299d0d366ca5c9d09d1004dcc3e7d',1,'mlx::core']]], ['concurrentcontext_41',['ConcurrentContext',['../structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174',1,'mlx::core::metal::CommandEncoder::ConcurrentContext']]], ['conj_42',['conj',['../namespacepocketfft_1_1detail.html#a66d79051d502046a9b9f103e744dbad3',1,'pocketfft::detail']]], ['conjugate_43',['Conjugate',['../classmlx_1_1core_1_1_conjugate.html#a627f9e6a8729fb3ffb3ca3228d007c87',1,'mlx::core::Conjugate']]], ['conjugate_44',['conjugate',['../group__ops.html#ga5b596906bf8cdc8d97ed6ddc9aeb4c23',1,'mlx::core']]], - ['contiguous_5fscan_45',['contiguous_scan',['../scan_8h.html#a60d279b9add7d56639bb209408f09d79',1,'scan.h']]], - ['contiguousiterator_46',['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_47',['conv',['../namespacemlx_1_1core_1_1metal.html#ab1704e853394c725668c06752ebb5c24',1,'mlx::core::metal']]], - ['conv1d_48',['conv1d',['../group__ops.html#ga30d47e08093c03a3676f235f9f559411',1,'mlx::core']]], - ['conv2d_49',['conv2d',['../group__ops.html#ga73b02833229678786e7f302d458d5a83',1,'mlx::core']]], - ['conv2dinputblockloadergeneral_50',['Conv2DInputBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1d83af561a483432bf8dcb42e734b23b',1,'mlx::steel::Conv2DInputBlockLoaderGeneral']]], - ['conv2dinputblockloaderlargefilter_51',['Conv2DInputBlockLoaderLargeFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a8755116a535539744e4947bc69f9c50f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter']]], - ['conv2dinputblockloadersmallchannels_52',['Conv2DInputBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#ab9fd3fdeab94470dde3326f1dd5c455a',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels']]], - ['conv2dinputblockloadersmallfilter_53',['Conv2DInputBlockLoaderSmallFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a0a2cbf57c51cd928722e3f06aafcf933',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], - ['conv2dweightblockloader_54',['Conv2DWeightBlockLoader',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a9a7dca3512b64cffb6eac305d795831c',1,'mlx::steel::Conv2DWeightBlockLoader']]], - ['conv2dweightblockloadergeneral_55',['Conv2DWeightBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#ad0550fabbdc9297559381a5b488e9af1',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], - ['conv2dweightblockloadersmallchannels_56',['Conv2DWeightBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae1806ea1c19713819dee83a38ab35fa6',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels']]], - ['conv3d_57',['conv3d',['../group__ops.html#ga6e9907d2f14dc4803e4306b3dbc4b3ca',1,'mlx::core']]], - ['conv_5fgeneral_58',['conv_general',['../group__ops.html#ga2236e5dfc7e52e28abf6c21675d0a51e',1,'mlx::core::conv_general(array input, array weight, std::vector< int > stride={}, std::vector< int > padding_lo={}, std::vector< int > padding_hi={}, std::vector< int > kernel_dilation={}, std::vector< int > input_dilation={}, int groups=1, bool flip=false, StreamOrDevice s={})'],['../group__ops.html#gab59f89942cd1efaadffe9e8762e3c99d',1,'mlx::core::conv_general(const array &input, const array &weight, std::vector< int > stride={}, std::vector< int > padding={}, std::vector< int > kernel_dilation={}, std::vector< int > input_dilation={}, int groups=1, bool flip=false, StreamOrDevice s={})']]], - ['conv_5ftranspose1d_59',['conv_transpose1d',['../group__ops.html#gaa30bf1adcd78d1c2595d07b215731714',1,'mlx::core']]], - ['conv_5ftranspose2d_60',['conv_transpose2d',['../group__ops.html#gaebb59971cb9bc45005dc1d398e4f0a3d',1,'mlx::core']]], - ['conv_5ftranspose3d_61',['conv_transpose3d',['../group__ops.html#ga8db814da631d9cd32a8d6563bf4ac530',1,'mlx::core']]], - ['convolution_62',['Convolution',['../classmlx_1_1core_1_1_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef',1,'mlx::core::Convolution']]], - ['copy_63',['Copy',['../classmlx_1_1core_1_1_copy.html#a6243e044af119105ffaaed7d405cd584',1,'mlx::core::Copy']]], - ['copy_64',['copy',['../namespacemlx_1_1core.html#a479648542a2bea151b947b18f0e79dd2',1,'mlx::core::copy()'],['../namespacemlx_1_1core_1_1metal.html#aa215e631e2680f04a591b88d91571719',1,'mlx::core::metal::copy()'],['../group__ops.html#gae306e93af12f774bd80bad6c231b09d6',1,'mlx::core::copy()']]], - ['copy_5fg_65',['copy_g',['../metal_2kernels_2copy_8h.html#a778ce2dbfbaa23b24bd5efbe68448c36',1,'copy.h']]], - ['copy_5fg_5fnd1_66',['copy_g_nd1',['../metal_2kernels_2copy_8h.html#aba4530a7db6a61ca36f50e4f5e58fb77',1,'copy.h']]], - ['copy_5fg_5fnd2_67',['copy_g_nd2',['../metal_2kernels_2copy_8h.html#aee678c7c31119f3e609685589f37490c',1,'copy.h']]], - ['copy_5fg_5fnd3_68',['copy_g_nd3',['../metal_2kernels_2copy_8h.html#a821f8f3f3891159a295c66fc25aed1ff',1,'copy.h']]], - ['copy_5fgg_69',['copy_gg',['../metal_2kernels_2copy_8h.html#a1e39c2683eeaf05955e7619fbd34aea5',1,'copy.h']]], - ['copy_5fgg_5fnd1_70',['copy_gg_nd1',['../metal_2kernels_2copy_8h.html#a3278d9c999718bee3ccbe2922f501bf1',1,'copy.h']]], - ['copy_5fgg_5fnd2_71',['copy_gg_nd2',['../metal_2kernels_2copy_8h.html#a3e2d3cc7f34f56170409b6735f51a950',1,'copy.h']]], - ['copy_5fgg_5fnd3_72',['copy_gg_nd3',['../metal_2kernels_2copy_8h.html#a59f43b5bffed936d7559ceb06a10aabd',1,'copy.h']]], - ['copy_5fgpu_73',['copy_gpu',['../namespacemlx_1_1core.html#addaa46a13ac2deb1d9ce621338320e0e',1,'mlx::core::copy_gpu(const array &src, array &out, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#a6a6f4e46c8fc44fdc74c50ace02bcf38',1,'mlx::core::copy_gpu(const array &src, array &out, CopyType ctype)']]], - ['copy_5fgpu_5finplace_74',['copy_gpu_inplace',['../namespacemlx_1_1core.html#a69e30f5d30a6d72ac0ffe4886f24b7ba',1,'mlx::core::copy_gpu_inplace(const array &in, array &out, const std::vector< int > &data_shape, const std::vector< stride_t > &i_strides, const std::vector< stride_t > &o_strides, int64_t i_offset, int64_t o_offset, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#a8e1ccb0ed9387b0a789311d9f8964803',1,'mlx::core::copy_gpu_inplace(const array &src, array &out, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#ae55b801b09ccf55cba96278163a9b1ef',1,'mlx::core::copy_gpu_inplace(const array &in, array &out, const std::vector< int64_t > &istride, int64_t ioffset, CopyType ctype, const Stream &s)']]], - ['copy_5fhartley_75',['copy_hartley',['../namespacepocketfft_1_1detail.html#abac3fcc8ce83800d228774f64c28d4c3',1,'pocketfft::detail::copy_hartley(const multi_iter< vlen > &it, const vtype_t< T > *src, ndarr< T > &dst)'],['../namespacepocketfft_1_1detail.html#ae7b44d2773d9d06a9787aff01d66b3ed',1,'pocketfft::detail::copy_hartley(const multi_iter< vlen > &it, const T *src, ndarr< T > &dst)']]], - ['copy_5finplace_76',['copy_inplace',['../namespacemlx_1_1core.html#a98495894a796b2cc6d022e7a03432c64',1,'mlx::core::copy_inplace(const array &src, array &dst, CopyType ctype)'],['../namespacemlx_1_1core.html#aad636e2d0b2f882cadd1b438f4daa9ed',1,'mlx::core::copy_inplace(const array &src, array &dst, const std::vector< int > &data_shape, const std::vector< stride_t > &i_strides, const std::vector< stride_t > &o_strides, int64_t i_offset, int64_t o_offset, CopyType ctype)']]], - ['copy_5finput_77',['copy_input',['../namespacepocketfft_1_1detail.html#aff05be3064743c1143b19318ab12ad4a',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< cmplx< T > > &src, cmplx< vtype_t< T > > *dst)'],['../namespacepocketfft_1_1detail.html#a30fc708f9d8f9cfa74194925c7863c0a',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< T > &src, vtype_t< T > *dst)'],['../namespacepocketfft_1_1detail.html#a3387bd35f237870e42b8461769e6aec4',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< T > &src, T *dst)']]], - ['copy_5foutput_78',['copy_output',['../namespacepocketfft_1_1detail.html#a1523a037300a8da05db210b802d9cb0e',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const cmplx< vtype_t< T > > *src, ndarr< cmplx< T > > &dst)'],['../namespacepocketfft_1_1detail.html#a21980853aca4d92ed06e3dcffe7ef660',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const vtype_t< T > *src, ndarr< T > &dst)'],['../namespacepocketfft_1_1detail.html#a310481c334e46674710ba794ad7403c0',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const T *src, ndarr< T > &dst)']]], - ['copy_5fs_79',['copy_s',['../metal_2kernels_2copy_8h.html#aef09f9b9475345b1bba121d037d222ea',1,'copy.h']]], - ['copy_5fs2_80',['copy_s2',['../metal_2kernels_2copy_8h.html#a8023e9335cc5334847a8d315042be3a3',1,'copy.h']]], - ['copy_5fshared_5fbuffer_81',['copy_shared_buffer',['../classmlx_1_1core_1_1array.html#a28df7a333d90a311c49bc4bce7a1ad6d',1,'mlx::core::array::copy_shared_buffer(const array &other, const std::vector< size_t > &strides, Flags flags, size_t data_size, size_t offset=0)'],['../classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29',1,'mlx::core::array::copy_shared_buffer(const array &other)']]], - ['copy_5fv_82',['copy_v',['../metal_2kernels_2copy_8h.html#ae26a13e0c8e6c15f7b10078e65970659',1,'copy.h']]], - ['copy_5fv2_83',['copy_v2',['../metal_2kernels_2copy_8h.html#aee14a5326f53d9b30b0b38e27d180ef3',1,'copy.h']]], - ['cos_84',['Cos',['../classmlx_1_1core_1_1_cos.html#a2acb9fcf0901462189c476756fd99995',1,'mlx::core::Cos']]], - ['cos_85',['cos',['../namespacepocketfft_1_1detail.html#a499c1e8b7d79a5272af024f46c63ff9d',1,'pocketfft::detail::cos()'],['../namespacemetal.html#a2fa4778a6fe2fa43253ea724e5a608a3',1,'metal::cos()'],['../namespacemetal_1_1fast.html#a75b6bb32fa3870eda46a7bfc9f481f88',1,'metal::fast::cos()'],['../namespacemetal_1_1precise.html#ac4941f62e7d8ab9d7cabbd967aa9f220',1,'metal::precise::cos()'],['../group__ops.html#ga39dfdf72b556012aa35ff27a94116e74',1,'mlx::core::cos()']]], - ['cosh_86',['Cosh',['../classmlx_1_1core_1_1_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1',1,'mlx::core::Cosh']]], - ['cosh_87',['cosh',['../namespacemetal.html#a8a68a88cc110830d057dbd71431b93c0',1,'metal::cosh()'],['../namespacemetal_1_1fast.html#a31544ad9de28012a4ddda86e3966a77e',1,'metal::fast::cosh()'],['../namespacemetal_1_1precise.html#a72d86d508300a9b58f4ccbbe70da4fbc',1,'metal::precise::cosh()'],['../group__ops.html#ga2181b71cda88007a3092be4795ff0715',1,'mlx::core::cosh()']]], - ['cospi_88',['cospi',['../namespacemetal.html#a5c2f37939ad705ddea4409d3bedb8ce1',1,'metal::cospi()'],['../namespacemetal_1_1fast.html#a9906b41f75319b384ffb570cc94d67ce',1,'metal::fast::cospi()'],['../namespacemetal_1_1precise.html#a2392b78bd196efdbbac65901c4ab20e7',1,'metal::precise::cospi()']]], - ['cost_5fguess_89',['cost_guess',['../structpocketfft_1_1detail_1_1util.html#ad3d874bc3fb0048df2270779a15d4bd0',1,'pocketfft::detail::util']]], - ['count_5fdown_90',['count_down',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#a81d6597189b40410e35f3cd653fd1342',1,'pocketfft::detail::threading::latch']]], - ['cross_91',['cross',['../namespacemlx_1_1core_1_1linalg.html#abcda3fbda45183c21e7f27aa0dde64e6',1,'mlx::core::linalg']]], - ['cummax_92',['cummax',['../group__ops.html#gaee37cac8476e8f8d666bcded5bc59143',1,'mlx::core']]], - ['cummin_93',['cummin',['../group__ops.html#ga19c1bf6929fe8d66b9cd408946aea6a8',1,'mlx::core']]], - ['cumprod_94',['cumprod',['../group__ops.html#ga0d71dfbc14ef3ed564b0c5ee26af680f',1,'mlx::core']]], - ['cumsum_95',['cumsum',['../group__ops.html#gaddc825a5c173e195ab0fda83ad630420',1,'mlx::core']]], - ['custom_96',['Custom',['../classmlx_1_1core_1_1fast_1_1_custom.html#a4186fea23f7156c38960426821fca313',1,'mlx::core::fast::Custom']]], - ['custom_5ffunction_97',['custom_function',['../namespacemlx_1_1core.html#a8d3ca5fbaecdb995660c24cde5aeebaf',1,'mlx::core']]], - ['custom_5fvjp_98',['custom_vjp',['../namespacemlx_1_1core.html#a9290596250fa308df4c69b44483bb8aa',1,'mlx::core']]], - ['customkernel_99',['CustomKernel',['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a954893e07f0d36715b4e1e414b6f2153',1,'mlx::core::fast::CustomKernel']]], - ['customtransforms_100',['CustomTransforms',['../classmlx_1_1core_1_1_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488',1,'mlx::core::CustomTransforms']]] + ['contiguous_45',['Contiguous',['../classmlx_1_1core_1_1_contiguous.html#a3e83f414c02ae0b92a50b6f8e402e1c0',1,'mlx::core::Contiguous']]], + ['contiguous_46',['contiguous',['../group__ops.html#ga8ab10aa6c41416d739791164a52b25d5',1,'mlx::core']]], + ['contiguous_5fscan_47',['contiguous_scan',['../scan_8h.html#a60d279b9add7d56639bb209408f09d79',1,'scan.h']]], + ['contiguousiterator_48',['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_49',['conv',['../namespacemlx_1_1core_1_1metal.html#ab1704e853394c725668c06752ebb5c24',1,'mlx::core::metal']]], + ['conv1d_50',['conv1d',['../group__ops.html#ga30d47e08093c03a3676f235f9f559411',1,'mlx::core']]], + ['conv2d_51',['conv2d',['../group__ops.html#ga73b02833229678786e7f302d458d5a83',1,'mlx::core']]], + ['conv2dinputblockloadergeneral_52',['Conv2DInputBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1d83af561a483432bf8dcb42e734b23b',1,'mlx::steel::Conv2DInputBlockLoaderGeneral']]], + ['conv2dinputblockloaderlargefilter_53',['Conv2DInputBlockLoaderLargeFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a8755116a535539744e4947bc69f9c50f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter']]], + ['conv2dinputblockloadersmallchannels_54',['Conv2DInputBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#ab9fd3fdeab94470dde3326f1dd5c455a',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels']]], + ['conv2dinputblockloadersmallfilter_55',['Conv2DInputBlockLoaderSmallFilter',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a0a2cbf57c51cd928722e3f06aafcf933',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], + ['conv2dweightblockloader_56',['Conv2DWeightBlockLoader',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a9a7dca3512b64cffb6eac305d795831c',1,'mlx::steel::Conv2DWeightBlockLoader']]], + ['conv2dweightblockloadergeneral_57',['Conv2DWeightBlockLoaderGeneral',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#ad0550fabbdc9297559381a5b488e9af1',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], + ['conv2dweightblockloadersmallchannels_58',['Conv2DWeightBlockLoaderSmallChannels',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae1806ea1c19713819dee83a38ab35fa6',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels']]], + ['conv3d_59',['conv3d',['../group__ops.html#ga6e9907d2f14dc4803e4306b3dbc4b3ca',1,'mlx::core']]], + ['conv_5fgeneral_60',['conv_general',['../group__ops.html#ga2236e5dfc7e52e28abf6c21675d0a51e',1,'mlx::core::conv_general(array input, array weight, std::vector< int > stride={}, std::vector< int > padding_lo={}, std::vector< int > padding_hi={}, std::vector< int > kernel_dilation={}, std::vector< int > input_dilation={}, int groups=1, bool flip=false, StreamOrDevice s={})'],['../group__ops.html#gab59f89942cd1efaadffe9e8762e3c99d',1,'mlx::core::conv_general(const array &input, const array &weight, std::vector< int > stride={}, std::vector< int > padding={}, std::vector< int > kernel_dilation={}, std::vector< int > input_dilation={}, int groups=1, bool flip=false, StreamOrDevice s={})']]], + ['conv_5ftranspose1d_61',['conv_transpose1d',['../group__ops.html#gaa30bf1adcd78d1c2595d07b215731714',1,'mlx::core']]], + ['conv_5ftranspose2d_62',['conv_transpose2d',['../group__ops.html#gaebb59971cb9bc45005dc1d398e4f0a3d',1,'mlx::core']]], + ['conv_5ftranspose3d_63',['conv_transpose3d',['../group__ops.html#ga8db814da631d9cd32a8d6563bf4ac530',1,'mlx::core']]], + ['convolution_64',['Convolution',['../classmlx_1_1core_1_1_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef',1,'mlx::core::Convolution']]], + ['copy_65',['Copy',['../classmlx_1_1core_1_1_copy.html#a6243e044af119105ffaaed7d405cd584',1,'mlx::core::Copy']]], + ['copy_66',['copy',['../namespacemlx_1_1core.html#a479648542a2bea151b947b18f0e79dd2',1,'mlx::core::copy()'],['../namespacemlx_1_1core_1_1metal.html#aa215e631e2680f04a591b88d91571719',1,'mlx::core::metal::copy()'],['../group__ops.html#gae306e93af12f774bd80bad6c231b09d6',1,'mlx::core::copy()']]], + ['copy_5fg_67',['copy_g',['../metal_2kernels_2copy_8h.html#a71e4103db4689d90ef6f9d5ba93604cf',1,'copy.h']]], + ['copy_5fg_5fnd1_68',['copy_g_nd1',['../metal_2kernels_2copy_8h.html#aba4530a7db6a61ca36f50e4f5e58fb77',1,'copy.h']]], + ['copy_5fg_5fnd2_69',['copy_g_nd2',['../metal_2kernels_2copy_8h.html#a39ec5b7b8351e4332b842982a2ee6260',1,'copy.h']]], + ['copy_5fg_5fnd3_70',['copy_g_nd3',['../metal_2kernels_2copy_8h.html#aab82689380897ff4716b5eafd6ef3ecc',1,'copy.h']]], + ['copy_5fgg_71',['copy_gg',['../metal_2kernels_2copy_8h.html#ade9a9eea9b8262a854a11721fe2bb9fa',1,'copy.h']]], + ['copy_5fgg_5fnd1_72',['copy_gg_nd1',['../metal_2kernels_2copy_8h.html#a3278d9c999718bee3ccbe2922f501bf1',1,'copy.h']]], + ['copy_5fgg_5fnd2_73',['copy_gg_nd2',['../metal_2kernels_2copy_8h.html#af0b06ac3a96852a64fa4274a94b58301',1,'copy.h']]], + ['copy_5fgg_5fnd3_74',['copy_gg_nd3',['../metal_2kernels_2copy_8h.html#a3f3836ad0b6545ec9b9e1864224f7a13',1,'copy.h']]], + ['copy_5fgpu_75',['copy_gpu',['../namespacemlx_1_1core.html#addaa46a13ac2deb1d9ce621338320e0e',1,'mlx::core::copy_gpu(const array &src, array &out, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#a6a6f4e46c8fc44fdc74c50ace02bcf38',1,'mlx::core::copy_gpu(const array &src, array &out, CopyType ctype)']]], + ['copy_5fgpu_5finplace_76',['copy_gpu_inplace',['../namespacemlx_1_1core.html#a69e30f5d30a6d72ac0ffe4886f24b7ba',1,'mlx::core::copy_gpu_inplace(const array &in, array &out, const std::vector< int > &data_shape, const std::vector< stride_t > &i_strides, const std::vector< stride_t > &o_strides, int64_t i_offset, int64_t o_offset, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#a8e1ccb0ed9387b0a789311d9f8964803',1,'mlx::core::copy_gpu_inplace(const array &src, array &out, CopyType ctype, const Stream &s)'],['../namespacemlx_1_1core.html#ae55b801b09ccf55cba96278163a9b1ef',1,'mlx::core::copy_gpu_inplace(const array &in, array &out, const std::vector< int64_t > &istride, int64_t ioffset, CopyType ctype, const Stream &s)']]], + ['copy_5fhartley_77',['copy_hartley',['../namespacepocketfft_1_1detail.html#abac3fcc8ce83800d228774f64c28d4c3',1,'pocketfft::detail::copy_hartley(const multi_iter< vlen > &it, const vtype_t< T > *src, ndarr< T > &dst)'],['../namespacepocketfft_1_1detail.html#ae7b44d2773d9d06a9787aff01d66b3ed',1,'pocketfft::detail::copy_hartley(const multi_iter< vlen > &it, const T *src, ndarr< T > &dst)']]], + ['copy_5finplace_78',['copy_inplace',['../namespacemlx_1_1core.html#a98495894a796b2cc6d022e7a03432c64',1,'mlx::core::copy_inplace(const array &src, array &dst, CopyType ctype)'],['../namespacemlx_1_1core.html#aad636e2d0b2f882cadd1b438f4daa9ed',1,'mlx::core::copy_inplace(const array &src, array &dst, const std::vector< int > &data_shape, const std::vector< stride_t > &i_strides, const std::vector< stride_t > &o_strides, int64_t i_offset, int64_t o_offset, CopyType ctype)']]], + ['copy_5finput_79',['copy_input',['../namespacepocketfft_1_1detail.html#aff05be3064743c1143b19318ab12ad4a',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< cmplx< T > > &src, cmplx< vtype_t< T > > *dst)'],['../namespacepocketfft_1_1detail.html#a30fc708f9d8f9cfa74194925c7863c0a',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< T > &src, vtype_t< T > *dst)'],['../namespacepocketfft_1_1detail.html#a3387bd35f237870e42b8461769e6aec4',1,'pocketfft::detail::copy_input(const multi_iter< vlen > &it, const cndarr< T > &src, T *dst)']]], + ['copy_5foutput_80',['copy_output',['../namespacepocketfft_1_1detail.html#a1523a037300a8da05db210b802d9cb0e',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const cmplx< vtype_t< T > > *src, ndarr< cmplx< T > > &dst)'],['../namespacepocketfft_1_1detail.html#a21980853aca4d92ed06e3dcffe7ef660',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const vtype_t< T > *src, ndarr< T > &dst)'],['../namespacepocketfft_1_1detail.html#a310481c334e46674710ba794ad7403c0',1,'pocketfft::detail::copy_output(const multi_iter< vlen > &it, const T *src, ndarr< T > &dst)']]], + ['copy_5fs_81',['copy_s',['../metal_2kernels_2copy_8h.html#aef09f9b9475345b1bba121d037d222ea',1,'copy.h']]], + ['copy_5fs2_82',['copy_s2',['../metal_2kernels_2copy_8h.html#a8023e9335cc5334847a8d315042be3a3',1,'copy.h']]], + ['copy_5fshared_5fbuffer_83',['copy_shared_buffer',['../classmlx_1_1core_1_1array.html#a28df7a333d90a311c49bc4bce7a1ad6d',1,'mlx::core::array::copy_shared_buffer(const array &other, const std::vector< size_t > &strides, Flags flags, size_t data_size, size_t offset=0)'],['../classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29',1,'mlx::core::array::copy_shared_buffer(const array &other)']]], + ['copy_5fv_84',['copy_v',['../metal_2kernels_2copy_8h.html#ae26a13e0c8e6c15f7b10078e65970659',1,'copy.h']]], + ['copy_5fv2_85',['copy_v2',['../metal_2kernels_2copy_8h.html#aee14a5326f53d9b30b0b38e27d180ef3',1,'copy.h']]], + ['cos_86',['Cos',['../classmlx_1_1core_1_1_cos.html#a2acb9fcf0901462189c476756fd99995',1,'mlx::core::Cos']]], + ['cos_87',['cos',['../namespacepocketfft_1_1detail.html#a499c1e8b7d79a5272af024f46c63ff9d',1,'pocketfft::detail::cos()'],['../namespacemetal.html#a2fa4778a6fe2fa43253ea724e5a608a3',1,'metal::cos()'],['../namespacemetal_1_1fast.html#a75b6bb32fa3870eda46a7bfc9f481f88',1,'metal::fast::cos()'],['../namespacemetal_1_1precise.html#ac4941f62e7d8ab9d7cabbd967aa9f220',1,'metal::precise::cos()'],['../group__ops.html#ga39dfdf72b556012aa35ff27a94116e74',1,'mlx::core::cos()']]], + ['cosh_88',['Cosh',['../classmlx_1_1core_1_1_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1',1,'mlx::core::Cosh']]], + ['cosh_89',['cosh',['../namespacemetal.html#a8a68a88cc110830d057dbd71431b93c0',1,'metal::cosh()'],['../namespacemetal_1_1fast.html#a31544ad9de28012a4ddda86e3966a77e',1,'metal::fast::cosh()'],['../namespacemetal_1_1precise.html#a72d86d508300a9b58f4ccbbe70da4fbc',1,'metal::precise::cosh()'],['../group__ops.html#ga2181b71cda88007a3092be4795ff0715',1,'mlx::core::cosh()']]], + ['cospi_90',['cospi',['../namespacemetal.html#a5c2f37939ad705ddea4409d3bedb8ce1',1,'metal::cospi()'],['../namespacemetal_1_1fast.html#a9906b41f75319b384ffb570cc94d67ce',1,'metal::fast::cospi()'],['../namespacemetal_1_1precise.html#a2392b78bd196efdbbac65901c4ab20e7',1,'metal::precise::cospi()']]], + ['cost_5fguess_91',['cost_guess',['../structpocketfft_1_1detail_1_1util.html#ad3d874bc3fb0048df2270779a15d4bd0',1,'pocketfft::detail::util']]], + ['count_5fdown_92',['count_down',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#a81d6597189b40410e35f3cd653fd1342',1,'pocketfft::detail::threading::latch']]], + ['cross_93',['cross',['../namespacemlx_1_1core_1_1linalg.html#abcda3fbda45183c21e7f27aa0dde64e6',1,'mlx::core::linalg']]], + ['cummax_94',['cummax',['../group__ops.html#gaee37cac8476e8f8d666bcded5bc59143',1,'mlx::core']]], + ['cummin_95',['cummin',['../group__ops.html#ga19c1bf6929fe8d66b9cd408946aea6a8',1,'mlx::core']]], + ['cumprod_96',['cumprod',['../group__ops.html#ga0d71dfbc14ef3ed564b0c5ee26af680f',1,'mlx::core']]], + ['cumsum_97',['cumsum',['../group__ops.html#gaddc825a5c173e195ab0fda83ad630420',1,'mlx::core']]], + ['custom_98',['Custom',['../classmlx_1_1core_1_1fast_1_1_custom.html#a4186fea23f7156c38960426821fca313',1,'mlx::core::fast::Custom']]], + ['custom_5ffunction_99',['custom_function',['../namespacemlx_1_1core.html#a8d3ca5fbaecdb995660c24cde5aeebaf',1,'mlx::core']]], + ['custom_5fvjp_100',['custom_vjp',['../namespacemlx_1_1core.html#a9290596250fa308df4c69b44483bb8aa',1,'mlx::core']]], + ['customkernel_101',['CustomKernel',['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a954893e07f0d36715b4e1e414b6f2153',1,'mlx::core::fast::CustomKernel']]], + ['customtransforms_102',['CustomTransforms',['../classmlx_1_1core_1_1_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488',1,'mlx::core::CustomTransforms']]] ]; diff --git a/docs/build/html/search/functions_4.js b/docs/build/html/search/functions_4.js index 8254b96c..97486378 100644 --- a/docs/build/html/search/functions_4.js +++ b/docs/build/html/search/functions_4.js @@ -28,8 +28,8 @@ var searchData= ['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']]], + ['dispatch_5fthreadgroups_28',['dispatch_threadgroups',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d',1,'mlx::core::metal::CommandEncoder']]], + ['dispatch_5fthreads_29',['dispatch_threads',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05',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()']]], diff --git a/docs/build/html/search/functions_5.js b/docs/build/html/search/functions_5.js index 88db2148..2552a4e7 100644 --- a/docs/build/html/search/functions_5.js +++ b/docs/build/html/search/functions_5.js @@ -5,14 +5,14 @@ var searchData= ['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_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#a22eaa505dbc7dd2a63a895f2e16712f5',1,'elem_to_loc(uint elem, constant const int *shape, constant const StrideT *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a4b53fb0679f67f9063deba94753d4185',1,'elem_to_loc(StrideT elem, constant const int *shape, constant const StrideT *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#aec82f4bf0e22b8d1b89ad654ad8d8753',1,'elem_to_loc(uint3 elem, constant const int *shape, constant const StrideT *strides, int ndim): utils.h']]], + ['elem_5fto_5floc_5f1_6',['elem_to_loc_1',['../backend_2metal_2kernels_2utils_8h.html#ac612d0ae30b8257198339debe04916a3',1,'utils.h']]], + ['elem_5fto_5floc_5f2_7',['elem_to_loc_2',['../backend_2metal_2kernels_2utils_8h.html#a43f33efc000962d6de881a3aab7458de',1,'utils.h']]], + ['elem_5fto_5floc_5f2_5fnd_8',['elem_to_loc_2_nd',['../backend_2metal_2kernels_2utils_8h.html#a66a2d7eec0262b12db16cd6c781ccf9a',1,'utils.h']]], + ['elem_5fto_5floc_5f3_9',['elem_to_loc_3',['../backend_2metal_2kernels_2utils_8h.html#a650f8ea8cf9f9519da9e301aad0308dc',1,'utils.h']]], + ['elem_5fto_5floc_5f3_5fnd_10',['elem_to_loc_3_nd',['../backend_2metal_2kernels_2utils_8h.html#a65d87b425e1f8ca19df97c15049f8733',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_12',['elems',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc',1,'mlx::steel::MMATile::elems()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1',1,'mlx::steel::MMATile::elems() const']]], + ['elems_12',['elems',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc',1,'mlx::steel::MMATile::elems()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1',1,'mlx::steel::MMATile::elems() const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc',1,'mlx::steel::MMATile::elems()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1',1,'mlx::steel::MMATile::elems() const']]], ['empty_13',['empty',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#a1269e5da40c3f5145c895cee3641879a',1,'pocketfft::detail::threading::concurrent_queue']]], ['enable_5fcompile_14',['enable_compile',['../namespacemlx_1_1core.html#a1983a2466bff3bae4d23cf34bd0946c9',1,'mlx::core']]], ['end_15',['end',['../classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4',1,'mlx::core::array']]], @@ -27,8 +27,8 @@ var searchData= ['erfinv_24',['ErfInv',['../classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478',1,'mlx::core::ErfInv']]], ['erfinv_25',['erfinv',['../erf_8h.html#a1846e0d683c7aff826bb32addcc3b885',1,'erfinv(): erf.h'],['../group__ops.html#ga76fb9062c64264e34d2e07013390557c',1,'mlx::core::erfinv()']]], ['eval_26',['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_27',['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_28',['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()']]], + ['eval_5fcpu_27',['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_contiguous.html#a742de24e6c0310cd85a606dec0cd8336',1,'mlx::core::Contiguous::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_28',['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_contiguous.html#a519cd16fd0c55b371ea7625fbb37c70f',1,'mlx::core::Contiguous::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_29',['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_30',['event',['../classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf',1,'mlx::core::array']]], ['exec_31',['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()']]], diff --git a/docs/build/html/search/functions_6.js b/docs/build/html/search/functions_6.js index fd72ead0..2cfc4370 100644 --- a/docs/build/html/search/functions_6.js +++ b/docs/build/html/search/functions_6.js @@ -15,7 +15,7 @@ var searchData= ['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']]], + ['float_5fto_5fbfloat_5fbits_15',['float_to_bfloat_bits',['../backend_2metal_2kernels_2metal__3__0_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']]], @@ -28,7 +28,7 @@ var searchData= ['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()']]], - ['frag_5fat_28',['frag_at',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4',1,'mlx::steel::MMATile::frag_at(const short i, const short j)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad476e1d9a12178fb35c207312339e485',1,'mlx::steel::MMATile::frag_at(const short i, const short j) const']]], + ['frag_5fat_28',['frag_at',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4',1,'mlx::steel::MMATile::frag_at(const short i, const short j)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad476e1d9a12178fb35c207312339e485',1,'mlx::steel::MMATile::frag_at(const short i, const short j) const'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4',1,'mlx::steel::MMATile::frag_at(const short i, const short j)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad476e1d9a12178fb35c207312339e485',1,'mlx::steel::MMATile::frag_at(const short i, const short j) const']]], ['free_29',['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_30',['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_31',['Full',['../classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6',1,'mlx::core::Full']]], diff --git a/docs/build/html/search/functions_7.js b/docs/build/html/search/functions_7.js index 91a1bdfb..ad5526ce 100644 --- a/docs/build/html/search/functions_7.js +++ b/docs/build/html/search/functions_7.js @@ -2,13 +2,13 @@ var searchData= [ ['gather_0',['Gather',['../classmlx_1_1core_1_1_gather.html#a5b5f47ceff1d43477c87be5116f261d0',1,'mlx::core::Gather']]], ['gather_1',['gather',['../namespacemlx_1_1core_1_1metal.html#a545de371fefba1feec2e70b7e9f4187c',1,'mlx::core::metal::gather()'],['../group__ops.html#gab6e7f655a9ff15350ca5379692f9d444',1,'mlx::core::gather(const array &a, const std::vector< array > &indices, const std::vector< int > &axes, const std::vector< int > &slice_sizes, StreamOrDevice s={})'],['../group__ops.html#gadb4337ca5d4f88fe9e7c083bc478158b',1,'mlx::core::gather(const array &a, const array &indices, int axis, const std::vector< int > &slice_sizes, StreamOrDevice s={})']]], - ['gather_5fimpl_2',['gather_impl',['../gather_8h.html#abdec470e1af0109563ddae3e85e6526c',1,'gather.h']]], + ['gather_5fimpl_2',['gather_impl',['../gather_8h.html#a767d7c5be6f2f649101f581449af5599',1,'gather.h']]], ['gather_5fmm_3',['gather_mm',['../group__ops.html#ga8d50480266d258cac40ff51bcb0fc6a7',1,'mlx::core']]], ['gather_5fqmm_4',['gather_qmm',['../group__ops.html#ga368a0dc0e5dfb76922e7aa55a95f12f0',1,'mlx::core']]], ['gathermm_5',['GatherMM',['../classmlx_1_1core_1_1_gather_m_m.html#afd9bbc08138181b80e2fb86536ff3f2a',1,'mlx::core::GatherMM']]], ['gatherqmm_6',['GatherQMM',['../classmlx_1_1core_1_1_gather_q_m_m.html#a60ed2ade7f10dd9c9314913a810f9360',1,'mlx::core::GatherQMM']]], ['gemm_7',['gemm',['../namespacemlx_1_1core_1_1metal.html#ac46fd23516a61fc56d997910e4144281',1,'mlx::core::metal::gemm()'],['../steel__gemm__fused_8h.html#aa40dd40b9a0bbf20c8911032ed0c3e6d',1,'gemm(): steel_gemm_fused.h']]], - ['gemm_5floop_8',['gemm_loop',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a756d7bbcc96e2919cd65eec4bc135780',1,'mlx::steel::GEMMKernel']]], + ['gemm_5floop_8',['gemm_loop',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a756d7bbcc96e2919cd65eec4bc135780',1,'mlx::steel::GEMMKernel::gemm_loop(threadgroup T *As, threadgroup T *Bs, const int gemm_k_iterations, thread loader_a_t &loader_a, thread loader_b_t &loader_b, thread mma_t &mma_op, thread const short &tgp_bm, thread const short &tgp_bn, thread const short &lbk, LoopAlignment< M_aligned, N_aligned, K_aligned_ > l={})'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a756d7bbcc96e2919cd65eec4bc135780',1,'mlx::steel::GEMMKernel::gemm_loop(threadgroup T *As, threadgroup T *Bs, const int gemm_k_iterations, thread loader_a_t &loader_a, thread loader_b_t &loader_b, thread mma_t &mma_op, thread const short &tgp_bm, thread const short &tgp_bn, thread const short &lbk, LoopAlignment< M_aligned, N_aligned, K_aligned_ > l={})']]], ['gemm_5fsplitk_9',['gemm_splitk',['../steel__gemm__splitk_8h.html#a3be6e095a0a026d3ecf57a3e67f76188',1,'steel_gemm_splitk.h']]], ['gemm_5fsplitk_5faccum_10',['gemm_splitk_accum',['../steel__gemm__splitk_8h.html#abeb921bf1dc7941125188ddd390b0907',1,'steel_gemm_splitk.h']]], ['gemm_5fsplitk_5faccum_5faxpby_11',['gemm_splitk_accum_axpby',['../steel__gemm__splitk_8h.html#acc33fdfaaf3eb3a0629b3d52c7043dc1',1,'steel_gemm_splitk.h']]], @@ -29,7 +29,7 @@ var searchData= ['get_5fcommand_5fbuffer_26',['get_command_buffer',['../classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210',1,'mlx::core::metal::Device']]], ['get_5fcommand_5fbuffer_5fops_27',['get_command_buffer_ops',['../classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8',1,'mlx::core::metal::Device']]], ['get_5fcommand_5fencoder_28',['get_command_encoder',['../classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6',1,'mlx::core::metal::Device']]], - ['get_5fcoord_29',['get_coord',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], + ['get_5fcoord_29',['get_coord',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::get_coord(ushort simd_lane_id)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::get_coord(ushort simd_lane_id)']]], ['get_5fcopy_5fkernel_30',['get_copy_kernel',['../namespacemlx_1_1core.html#a05a220cff45f12439fde775983c6df78',1,'mlx::core']]], ['get_5fdefault_5fstream_31',['get_default_stream',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a2366c7b888e433608e203752edc92282',1,'mlx::core::scheduler::Scheduler']]], ['get_5ffft_5fkernel_32',['get_fft_kernel',['../namespacemlx_1_1core.html#a1d4cffc3c78067b3d9a62d64f3fb686f',1,'mlx::core']]], @@ -44,8 +44,8 @@ var searchData= ['get_5fpool_41',['get_pool',['../namespacepocketfft_1_1detail_1_1threading.html#a7ec2b3f99232bd0f15f7b022c59d139a',1,'pocketfft::detail::threading']]], ['get_5fprimitive_5fstring_42',['get_primitive_string',['../namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60',1,'mlx::core']]], ['get_5fquantized_5fkernel_43',['get_quantized_kernel',['../namespacemlx_1_1core.html#aa3faeae5378bfaafe3ce3432a051e43e',1,'mlx::core']]], - ['get_5freduce_5finit_5fkernel_44',['get_reduce_init_kernel',['../namespacemlx_1_1core.html#a3bd386cb6db09f636963ce66ceaf8647',1,'mlx::core']]], - ['get_5freduce_5fkernel_45',['get_reduce_kernel',['../namespacemlx_1_1core.html#a7aa91fcfe8b9caa42d60a957f11bfe6b',1,'mlx::core']]], + ['get_5freduce_5finit_5fkernel_44',['get_reduce_init_kernel',['../namespacemlx_1_1core.html#ae0470605dc819efeb6510183619f0299',1,'mlx::core']]], + ['get_5freduce_5fkernel_45',['get_reduce_kernel',['../namespacemlx_1_1core.html#a1be32ba7d67137dde7ac191dfe83ff49',1,'mlx::core']]], ['get_5freduction_5fplan_46',['get_reduction_plan',['../namespacemlx_1_1core.html#ac97b5a6f009ca3d99854ce9512c20dba',1,'mlx::core']]], ['get_5fscan_5fkernel_47',['get_scan_kernel',['../namespacemlx_1_1core.html#aeefaff208444d3fa61ecc0946fe1de5f',1,'mlx::core']]], ['get_5fshape_48',['get_shape',['../namespacemlx_1_1core.html#aab0d8a256957984acc1e3615c65c898e',1,'mlx::core']]], @@ -62,16 +62,17 @@ var searchData= ['get_5ftwiddle_59',['get_twiddle',['../radix_8h.html#ac5cf950316b9445296ee9ecfc56a56bd',1,'radix.h']]], ['get_5ftype_5fstring_60',['get_type_string',['../namespacemlx_1_1core.html#af776fd91dd60594dcfebbafd17f19068',1,'mlx::core']]], ['get_5funary_5fkernel_61',['get_unary_kernel',['../namespacemlx_1_1core.html#afbb085188b563a54606d84f87a9bf5a6',1,'mlx::core']]], - ['gguf_5fload_5fquantized_62',['gguf_load_quantized',['../namespacemlx_1_1core.html#a65dd68163bdaef3631e3724327782498',1,'mlx::core']]], - ['good_63',['good',['../classmlx_1_1core_1_1io_1_1_reader.html#a005d0b52c1f34866f7412b7f41dabec3',1,'mlx::core::io::Reader::good()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a0b050c2c27487007e250e2e19560ffe4',1,'mlx::core::io::Writer::good()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#ac54a2c693acc3d9e6e942412148ffcc9',1,'mlx::core::io::ParallelFileReader::good()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a9ec4934b26fb358d699ddce1482b2d54',1,'mlx::core::io::FileWriter::good()']]], - ['good_5fsize_5fcmplx_64',['good_size_cmplx',['../structpocketfft_1_1detail_1_1util.html#a758e00d242a1b7eda8f9f0c21f35c624',1,'pocketfft::detail::util']]], - ['good_5fsize_5freal_65',['good_size_real',['../structpocketfft_1_1detail_1_1util.html#a173da7d5929ded86fffcebcfdc5086aa',1,'pocketfft::detail::util']]], - ['grad_66',['grad',['../namespacemlx_1_1core.html#a3d2b2929ed4636e9e2b86e125b2e57d9',1,'mlx::core::grad(const std::function< array(const std::vector< array > &)> &fun, const std::vector< int > &argnums)'],['../namespacemlx_1_1core.html#af482f6c64acd77c57ef5bb4b7be9726c',1,'mlx::core::grad(const std::function< array(const std::vector< array > &)> &fun, int argnum=0)'],['../namespacemlx_1_1core.html#a64bc619876b0f8cc81a2637ca81c99f7',1,'mlx::core::grad(const std::function< array(const array &)> &fun)']]], - ['greater_67',['Greater',['../classmlx_1_1core_1_1_greater.html#a1d5992a66c020cd97a70e8e3d8cd1a1b',1,'mlx::core::Greater']]], - ['greater_68',['greater',['../group__ops.html#gaf4ec7bfc1ad13b891f1f3ef1772ef04d',1,'mlx::core']]], - ['greater_5fequal_69',['greater_equal',['../group__ops.html#ga7153071bcfff6faad21332163fb9a430',1,'mlx::core']]], - ['greaterequal_70',['GreaterEqual',['../classmlx_1_1core_1_1_greater_equal.html#a19a3c49d5a9b40e17da0e56ef6908527',1,'mlx::core::GreaterEqual']]], - ['group_71',['Group',['../structmlx_1_1core_1_1distributed_1_1_group.html#a6f84accc8d6734989b2757bf6cdd0152',1,'mlx::core::distributed::Group']]], - ['group_72',['group',['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html#a8831cb61ac633431b78b5fb99c0ea9ff',1,'mlx::core::distributed::DistPrimitive']]], - ['gumbel_73',['gumbel',['../namespacemlx_1_1core_1_1random.html#aa849b765cd794306997bcbb9936d3d84',1,'mlx::core::random']]] + ['get_5fvar_62',['get_var',['../namespacemlx_1_1core_1_1env.html#a0efecbf9efe695adafad12b5a4945df3',1,'mlx::core::env']]], + ['gguf_5fload_5fquantized_63',['gguf_load_quantized',['../namespacemlx_1_1core.html#a65dd68163bdaef3631e3724327782498',1,'mlx::core']]], + ['good_64',['good',['../classmlx_1_1core_1_1io_1_1_reader.html#a005d0b52c1f34866f7412b7f41dabec3',1,'mlx::core::io::Reader::good()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a0b050c2c27487007e250e2e19560ffe4',1,'mlx::core::io::Writer::good()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#ac54a2c693acc3d9e6e942412148ffcc9',1,'mlx::core::io::ParallelFileReader::good()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a9ec4934b26fb358d699ddce1482b2d54',1,'mlx::core::io::FileWriter::good()']]], + ['good_5fsize_5fcmplx_65',['good_size_cmplx',['../structpocketfft_1_1detail_1_1util.html#a758e00d242a1b7eda8f9f0c21f35c624',1,'pocketfft::detail::util']]], + ['good_5fsize_5freal_66',['good_size_real',['../structpocketfft_1_1detail_1_1util.html#a173da7d5929ded86fffcebcfdc5086aa',1,'pocketfft::detail::util']]], + ['grad_67',['grad',['../namespacemlx_1_1core.html#a3d2b2929ed4636e9e2b86e125b2e57d9',1,'mlx::core::grad(const std::function< array(const std::vector< array > &)> &fun, const std::vector< int > &argnums)'],['../namespacemlx_1_1core.html#af482f6c64acd77c57ef5bb4b7be9726c',1,'mlx::core::grad(const std::function< array(const std::vector< array > &)> &fun, int argnum=0)'],['../namespacemlx_1_1core.html#a64bc619876b0f8cc81a2637ca81c99f7',1,'mlx::core::grad(const std::function< array(const array &)> &fun)']]], + ['greater_68',['Greater',['../classmlx_1_1core_1_1_greater.html#a1d5992a66c020cd97a70e8e3d8cd1a1b',1,'mlx::core::Greater']]], + ['greater_69',['greater',['../group__ops.html#gaf4ec7bfc1ad13b891f1f3ef1772ef04d',1,'mlx::core']]], + ['greater_5fequal_70',['greater_equal',['../group__ops.html#ga7153071bcfff6faad21332163fb9a430',1,'mlx::core']]], + ['greaterequal_71',['GreaterEqual',['../classmlx_1_1core_1_1_greater_equal.html#a19a3c49d5a9b40e17da0e56ef6908527',1,'mlx::core::GreaterEqual']]], + ['group_72',['Group',['../structmlx_1_1core_1_1distributed_1_1_group.html#a6f84accc8d6734989b2757bf6cdd0152',1,'mlx::core::distributed::Group']]], + ['group_73',['group',['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html#a8831cb61ac633431b78b5fb99c0ea9ff',1,'mlx::core::distributed::DistPrimitive']]], + ['gumbel_74',['gumbel',['../namespacemlx_1_1core_1_1random.html#aa849b765cd794306997bcbb9936d3d84',1,'mlx::core::random']]] ]; diff --git a/docs/build/html/search/functions_9.js b/docs/build/html/search/functions_9.js index e1edfbb0..f6f0725a 100644 --- a/docs/build/html/search/functions_9.js +++ b/docs/build/html/search/functions_9.js @@ -26,7 +26,7 @@ var searchData= ['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_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_contiguous.html#aa5d273a461fc6e64f3c9a67c24cb3372',1,'mlx::core::Contiguous::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']]], diff --git a/docs/build/html/search/functions_a.js b/docs/build/html/search/functions_a.js index e3782518..b44679d9 100644 --- a/docs/build/html/search/functions_a.js +++ b/docs/build/html/search/functions_a.js @@ -1,4 +1,4 @@ var searchData= [ - ['jvp_0',['jvp',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#aeaf6f2b5955e7417cd1e36db42c45a80',1,'mlx::core::distributed::AllReduce::jvp()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a96f08a4ea8453d0b4b737c7b07972913',1,'mlx::core::distributed::AllGather::jvp()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#ac77b28702654df8e7d882a49357a9584',1,'mlx::core::fast::Custom::jvp()'],['../classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2',1,'mlx::core::Primitive::jvp()'],['../classmlx_1_1core_1_1_abs.html#a6c1e6eeaf4f5e63898c3487106e88e11',1,'mlx::core::Abs::jvp()'],['../classmlx_1_1core_1_1_add.html#a77230069f76fe60a2fe1007822a277b7',1,'mlx::core::Add::jvp()'],['../classmlx_1_1core_1_1_arc_cos.html#a240079c616f1a1f127aa783308096fe9',1,'mlx::core::ArcCos::jvp()'],['../classmlx_1_1core_1_1_arc_cosh.html#a80fcb790649219c30260af903b76a1d7',1,'mlx::core::ArcCosh::jvp()'],['../classmlx_1_1core_1_1_arc_sin.html#a37affc8c5e84e5c54e73a71fc0821ea4',1,'mlx::core::ArcSin::jvp()'],['../classmlx_1_1core_1_1_arc_sinh.html#a79ebf2f6dfecbfbb93170fdd1ca87bf4',1,'mlx::core::ArcSinh::jvp()'],['../classmlx_1_1core_1_1_arc_tan.html#a0f5590a2297fc133b4b0a15f9dd0c760',1,'mlx::core::ArcTan::jvp()'],['../classmlx_1_1core_1_1_arc_tan2.html#a01675433f2a4fa466b2f48272dbca738',1,'mlx::core::ArcTan2::jvp()'],['../classmlx_1_1core_1_1_arc_tanh.html#a534ebdbfe77241884630d25021274c4a',1,'mlx::core::ArcTanh::jvp()'],['../classmlx_1_1core_1_1_arg_partition.html#aedea4b47f947a6fe358dd1238cdfb595',1,'mlx::core::ArgPartition::jvp()'],['../classmlx_1_1core_1_1_arg_reduce.html#a03bb925e1b488c560bc3d67ce62ba6fa',1,'mlx::core::ArgReduce::jvp()'],['../classmlx_1_1core_1_1_as_type.html#a213400967150c57da35795e1c9f65ca0',1,'mlx::core::AsType::jvp()'],['../classmlx_1_1core_1_1_as_strided.html#a8ff0a398c47b42e08bc1122e07a02b53',1,'mlx::core::AsStrided::jvp()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a1dae6ce5dc0498d20530403fe5c5531d',1,'mlx::core::BitwiseBinary::jvp()'],['../classmlx_1_1core_1_1_broadcast.html#ae2fc3851a117079244708864be770ece',1,'mlx::core::Broadcast::jvp()'],['../classmlx_1_1core_1_1_ceil.html#a7ad74b27d9f26c886c2af516b845f066',1,'mlx::core::Ceil::jvp()'],['../classmlx_1_1core_1_1_compiled.html#aa385fe28626856ca5f57161b47a3c205',1,'mlx::core::Compiled::jvp()'],['../classmlx_1_1core_1_1_concatenate.html#a9f9e7a9dc3a00e02b84c94e1868baff1',1,'mlx::core::Concatenate::jvp()'],['../classmlx_1_1core_1_1_copy.html#a5acf02aa360cbefd86749fe9877b29cc',1,'mlx::core::Copy::jvp()'],['../classmlx_1_1core_1_1_cos.html#a99dd0b7e4aa2c838b77736f1fd539ee1',1,'mlx::core::Cos::jvp()'],['../classmlx_1_1core_1_1_cosh.html#a79facb0882443533f36a0a18407f5863',1,'mlx::core::Cosh::jvp()'],['../classmlx_1_1core_1_1_custom_transforms.html#aa9f695100170d5cae999b3da138ce720',1,'mlx::core::CustomTransforms::jvp()'],['../classmlx_1_1core_1_1_divide.html#ae1f408c447b17b3c84fe7f951d95559c',1,'mlx::core::Divide::jvp()'],['../classmlx_1_1core_1_1_div_mod.html#a1267401f25f25847888dd0a00b3fe3b9',1,'mlx::core::DivMod::jvp()'],['../classmlx_1_1core_1_1_select.html#a172df6812c2ea3e9d3c3fc5d527548d6',1,'mlx::core::Select::jvp()'],['../classmlx_1_1core_1_1_remainder.html#a972002173fc00ee86029d12bf1a9ba79',1,'mlx::core::Remainder::jvp()'],['../classmlx_1_1core_1_1_equal.html#a659d484589d7cd96d038922a1a98730f',1,'mlx::core::Equal::jvp()'],['../classmlx_1_1core_1_1_erf.html#ac733d605d80277d613954794eb8c46fe',1,'mlx::core::Erf::jvp()'],['../classmlx_1_1core_1_1_erf_inv.html#aa52710297ab6f7cd6826418c303e64be',1,'mlx::core::ErfInv::jvp()'],['../classmlx_1_1core_1_1_exp.html#aef6721832fcc283b082e35a7d436fa59',1,'mlx::core::Exp::jvp()'],['../classmlx_1_1core_1_1_expm1.html#ad463730632a00945d3a8addfdaec67b1',1,'mlx::core::Expm1::jvp()'],['../classmlx_1_1core_1_1_f_f_t.html#a34578814b6576f7b7b447541984ecba6',1,'mlx::core::FFT::jvp()'],['../classmlx_1_1core_1_1_floor.html#aa47bc360ec563b6e7d93e8b50626d8af',1,'mlx::core::Floor::jvp()'],['../classmlx_1_1core_1_1_full.html#a281a865d0664596ac8d05ea8e7f26407',1,'mlx::core::Full::jvp()'],['../classmlx_1_1core_1_1_gather.html#ac54ef8fac92ab190f1793f3dd95b9e8d',1,'mlx::core::Gather::jvp()'],['../classmlx_1_1core_1_1_greater.html#aa47a9f80f45daf6a405e34f6dc7c99c1',1,'mlx::core::Greater::jvp()'],['../classmlx_1_1core_1_1_greater_equal.html#ac7346080aaaa01d52896127f383f9d20',1,'mlx::core::GreaterEqual::jvp()'],['../classmlx_1_1core_1_1_hadamard.html#a22b9d55ae3ba5eef63505124696e712a',1,'mlx::core::Hadamard::jvp()'],['../classmlx_1_1core_1_1_imag.html#ac01c5ed9b886983450ed9f049ddac55a',1,'mlx::core::Imag::jvp()'],['../classmlx_1_1core_1_1_less.html#af1493d566f6d940b8f674aac17f5dfce',1,'mlx::core::Less::jvp()'],['../classmlx_1_1core_1_1_less_equal.html#addfe62d3557d216f8307bdf1cbff6a8f',1,'mlx::core::LessEqual::jvp()'],['../classmlx_1_1core_1_1_log.html#ac646d4155322c34f58183d97301e3832',1,'mlx::core::Log::jvp()'],['../classmlx_1_1core_1_1_log1p.html#a537e44c7c993daf48698082e75e71ba2',1,'mlx::core::Log1p::jvp()'],['../classmlx_1_1core_1_1_logical_not.html#a4838c483ced707cfda3d6cd24bf4667c',1,'mlx::core::LogicalNot::jvp()'],['../classmlx_1_1core_1_1_logical_and.html#a78d3be71da224ea19158cf9e8c4cf434',1,'mlx::core::LogicalAnd::jvp()'],['../classmlx_1_1core_1_1_logical_or.html#a292de6001c551214c8152a7a5b0e6bd4',1,'mlx::core::LogicalOr::jvp()'],['../classmlx_1_1core_1_1_log_add_exp.html#aea2d1d58794e86f3488219ed3fa14329',1,'mlx::core::LogAddExp::jvp()'],['../classmlx_1_1core_1_1_maximum.html#a25ac5d5b453e571bf7240aa8de103c39',1,'mlx::core::Maximum::jvp()'],['../classmlx_1_1core_1_1_minimum.html#a10acf4fef35eed7ca55d131b5ae2d038',1,'mlx::core::Minimum::jvp()'],['../classmlx_1_1core_1_1_multiply.html#a79f7f0bb70de2e3e41a66c96285325b4',1,'mlx::core::Multiply::jvp()'],['../classmlx_1_1core_1_1_negative.html#a7d918f9b26b8fb7b047a27d85ebab979',1,'mlx::core::Negative::jvp()'],['../classmlx_1_1core_1_1_not_equal.html#ae2d3e5776efaefed7f4c73f679b02f17',1,'mlx::core::NotEqual::jvp()'],['../classmlx_1_1core_1_1_pad.html#a6e43a42032ef11497e8d91290574ec72',1,'mlx::core::Pad::jvp()'],['../classmlx_1_1core_1_1_partition.html#a310f569a163958940ed02cf52079746a',1,'mlx::core::Partition::jvp()'],['../classmlx_1_1core_1_1_power.html#a3e78b06453faa4fd149fd19c0e7a300a',1,'mlx::core::Power::jvp()'],['../classmlx_1_1core_1_1_quantized_matmul.html#ae51fdd0b81dd26c6687577567c126e23',1,'mlx::core::QuantizedMatmul::jvp()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#adc579058752b927c71b45a962d4869e0',1,'mlx::core::GatherQMM::jvp()'],['../classmlx_1_1core_1_1_real.html#adff418a54970e2344bd3c2885aae5526',1,'mlx::core::Real::jvp()'],['../classmlx_1_1core_1_1_reshape.html#ab8fc28748991017cc3e29f93c91087a5',1,'mlx::core::Reshape::jvp()'],['../classmlx_1_1core_1_1_round.html#a032075a7d0dde2dba6189636d216c5e7',1,'mlx::core::Round::jvp()'],['../classmlx_1_1core_1_1_scan.html#a6f9c862f4fbc7eaf430a361cdd8933ee',1,'mlx::core::Scan::jvp()'],['../classmlx_1_1core_1_1_scatter.html#a270fa8ccf36ce4bbbc23875139223934',1,'mlx::core::Scatter::jvp()'],['../classmlx_1_1core_1_1_sigmoid.html#a62ca1c440896e32958c77af3340847db',1,'mlx::core::Sigmoid::jvp()'],['../classmlx_1_1core_1_1_sign.html#a957992c7aa0e86cf06f861a94372086b',1,'mlx::core::Sign::jvp()'],['../classmlx_1_1core_1_1_sin.html#af662d10180967399820496477ff050de',1,'mlx::core::Sin::jvp()'],['../classmlx_1_1core_1_1_sinh.html#a86e2b37823daf20a4c74c9f273215f9c',1,'mlx::core::Sinh::jvp()'],['../classmlx_1_1core_1_1_slice.html#a8288324045ab21d6c97b1695ce86ef36',1,'mlx::core::Slice::jvp()'],['../classmlx_1_1core_1_1_slice_update.html#a0ce3248cc61dae2b51d7aa8ee4197611',1,'mlx::core::SliceUpdate::jvp()'],['../classmlx_1_1core_1_1_softmax.html#af96172634a24332b0fc8d7ca7e73f19f',1,'mlx::core::Softmax::jvp()'],['../classmlx_1_1core_1_1_sort.html#af113ac983473433eec851c8fddfcba62',1,'mlx::core::Sort::jvp()'],['../classmlx_1_1core_1_1_split.html#ab8a8d30fd1ebf0891f41f3c32eabe282',1,'mlx::core::Split::jvp()'],['../classmlx_1_1core_1_1_square.html#a822629b93b91e2bef29959431d95e22d',1,'mlx::core::Square::jvp()'],['../classmlx_1_1core_1_1_sqrt.html#a78544b1fb5da0c14bce3051ffd177818',1,'mlx::core::Sqrt::jvp()'],['../classmlx_1_1core_1_1_subtract.html#a8100081a99df5166f02efc76d6641220',1,'mlx::core::Subtract::jvp()'],['../classmlx_1_1core_1_1_tan.html#a5d7c76122d63619df17b0e45450bc8f2',1,'mlx::core::Tan::jvp()'],['../classmlx_1_1core_1_1_tanh.html#ae0fbb5370dc1c3a4fb0dd02ca28a832a',1,'mlx::core::Tanh::jvp()'],['../classmlx_1_1core_1_1_transpose.html#ac1a523e25ab7fd9df4da363a922afbe1',1,'mlx::core::Transpose::jvp()'],['../namespacemlx_1_1core.html#a179a632200366c223d6ab56d3e032592',1,'mlx::core::jvp(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< array > &primals, const std::vector< array > &tangents)'],['../namespacemlx_1_1core.html#af38e7582db29519bb39326f6fa531d20',1,'mlx::core::jvp(const std::function< array(const array &)> &fun, const array &primal, const array &tangent)']]] + ['jvp_0',['jvp',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#aeaf6f2b5955e7417cd1e36db42c45a80',1,'mlx::core::distributed::AllReduce::jvp()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a96f08a4ea8453d0b4b737c7b07972913',1,'mlx::core::distributed::AllGather::jvp()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#ac77b28702654df8e7d882a49357a9584',1,'mlx::core::fast::Custom::jvp()'],['../classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2',1,'mlx::core::Primitive::jvp()'],['../classmlx_1_1core_1_1_abs.html#a6c1e6eeaf4f5e63898c3487106e88e11',1,'mlx::core::Abs::jvp()'],['../classmlx_1_1core_1_1_add.html#a77230069f76fe60a2fe1007822a277b7',1,'mlx::core::Add::jvp()'],['../classmlx_1_1core_1_1_arc_cos.html#a240079c616f1a1f127aa783308096fe9',1,'mlx::core::ArcCos::jvp()'],['../classmlx_1_1core_1_1_arc_cosh.html#a80fcb790649219c30260af903b76a1d7',1,'mlx::core::ArcCosh::jvp()'],['../classmlx_1_1core_1_1_arc_sin.html#a37affc8c5e84e5c54e73a71fc0821ea4',1,'mlx::core::ArcSin::jvp()'],['../classmlx_1_1core_1_1_arc_sinh.html#a79ebf2f6dfecbfbb93170fdd1ca87bf4',1,'mlx::core::ArcSinh::jvp()'],['../classmlx_1_1core_1_1_arc_tan.html#a0f5590a2297fc133b4b0a15f9dd0c760',1,'mlx::core::ArcTan::jvp()'],['../classmlx_1_1core_1_1_arc_tan2.html#a01675433f2a4fa466b2f48272dbca738',1,'mlx::core::ArcTan2::jvp()'],['../classmlx_1_1core_1_1_arc_tanh.html#a534ebdbfe77241884630d25021274c4a',1,'mlx::core::ArcTanh::jvp()'],['../classmlx_1_1core_1_1_arg_partition.html#aedea4b47f947a6fe358dd1238cdfb595',1,'mlx::core::ArgPartition::jvp()'],['../classmlx_1_1core_1_1_arg_reduce.html#a03bb925e1b488c560bc3d67ce62ba6fa',1,'mlx::core::ArgReduce::jvp()'],['../classmlx_1_1core_1_1_as_type.html#a213400967150c57da35795e1c9f65ca0',1,'mlx::core::AsType::jvp()'],['../classmlx_1_1core_1_1_as_strided.html#a8ff0a398c47b42e08bc1122e07a02b53',1,'mlx::core::AsStrided::jvp()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a1dae6ce5dc0498d20530403fe5c5531d',1,'mlx::core::BitwiseBinary::jvp()'],['../classmlx_1_1core_1_1_broadcast.html#ae2fc3851a117079244708864be770ece',1,'mlx::core::Broadcast::jvp()'],['../classmlx_1_1core_1_1_ceil.html#a7ad74b27d9f26c886c2af516b845f066',1,'mlx::core::Ceil::jvp()'],['../classmlx_1_1core_1_1_compiled.html#aa385fe28626856ca5f57161b47a3c205',1,'mlx::core::Compiled::jvp()'],['../classmlx_1_1core_1_1_concatenate.html#a9f9e7a9dc3a00e02b84c94e1868baff1',1,'mlx::core::Concatenate::jvp()'],['../classmlx_1_1core_1_1_contiguous.html#a1f9fcae7235e0ae9217825b78cb0f991',1,'mlx::core::Contiguous::jvp()'],['../classmlx_1_1core_1_1_copy.html#a5acf02aa360cbefd86749fe9877b29cc',1,'mlx::core::Copy::jvp()'],['../classmlx_1_1core_1_1_cos.html#a99dd0b7e4aa2c838b77736f1fd539ee1',1,'mlx::core::Cos::jvp()'],['../classmlx_1_1core_1_1_cosh.html#a79facb0882443533f36a0a18407f5863',1,'mlx::core::Cosh::jvp()'],['../classmlx_1_1core_1_1_custom_transforms.html#aa9f695100170d5cae999b3da138ce720',1,'mlx::core::CustomTransforms::jvp()'],['../classmlx_1_1core_1_1_divide.html#ae1f408c447b17b3c84fe7f951d95559c',1,'mlx::core::Divide::jvp()'],['../classmlx_1_1core_1_1_div_mod.html#a1267401f25f25847888dd0a00b3fe3b9',1,'mlx::core::DivMod::jvp()'],['../classmlx_1_1core_1_1_select.html#a172df6812c2ea3e9d3c3fc5d527548d6',1,'mlx::core::Select::jvp()'],['../classmlx_1_1core_1_1_remainder.html#a972002173fc00ee86029d12bf1a9ba79',1,'mlx::core::Remainder::jvp()'],['../classmlx_1_1core_1_1_equal.html#a659d484589d7cd96d038922a1a98730f',1,'mlx::core::Equal::jvp()'],['../classmlx_1_1core_1_1_erf.html#ac733d605d80277d613954794eb8c46fe',1,'mlx::core::Erf::jvp()'],['../classmlx_1_1core_1_1_erf_inv.html#aa52710297ab6f7cd6826418c303e64be',1,'mlx::core::ErfInv::jvp()'],['../classmlx_1_1core_1_1_exp.html#aef6721832fcc283b082e35a7d436fa59',1,'mlx::core::Exp::jvp()'],['../classmlx_1_1core_1_1_expm1.html#ad463730632a00945d3a8addfdaec67b1',1,'mlx::core::Expm1::jvp()'],['../classmlx_1_1core_1_1_f_f_t.html#a34578814b6576f7b7b447541984ecba6',1,'mlx::core::FFT::jvp()'],['../classmlx_1_1core_1_1_floor.html#aa47bc360ec563b6e7d93e8b50626d8af',1,'mlx::core::Floor::jvp()'],['../classmlx_1_1core_1_1_full.html#a281a865d0664596ac8d05ea8e7f26407',1,'mlx::core::Full::jvp()'],['../classmlx_1_1core_1_1_gather.html#ac54ef8fac92ab190f1793f3dd95b9e8d',1,'mlx::core::Gather::jvp()'],['../classmlx_1_1core_1_1_greater.html#aa47a9f80f45daf6a405e34f6dc7c99c1',1,'mlx::core::Greater::jvp()'],['../classmlx_1_1core_1_1_greater_equal.html#ac7346080aaaa01d52896127f383f9d20',1,'mlx::core::GreaterEqual::jvp()'],['../classmlx_1_1core_1_1_hadamard.html#a22b9d55ae3ba5eef63505124696e712a',1,'mlx::core::Hadamard::jvp()'],['../classmlx_1_1core_1_1_imag.html#ac01c5ed9b886983450ed9f049ddac55a',1,'mlx::core::Imag::jvp()'],['../classmlx_1_1core_1_1_less.html#af1493d566f6d940b8f674aac17f5dfce',1,'mlx::core::Less::jvp()'],['../classmlx_1_1core_1_1_less_equal.html#addfe62d3557d216f8307bdf1cbff6a8f',1,'mlx::core::LessEqual::jvp()'],['../classmlx_1_1core_1_1_log.html#ac646d4155322c34f58183d97301e3832',1,'mlx::core::Log::jvp()'],['../classmlx_1_1core_1_1_log1p.html#a537e44c7c993daf48698082e75e71ba2',1,'mlx::core::Log1p::jvp()'],['../classmlx_1_1core_1_1_logical_not.html#a4838c483ced707cfda3d6cd24bf4667c',1,'mlx::core::LogicalNot::jvp()'],['../classmlx_1_1core_1_1_logical_and.html#a78d3be71da224ea19158cf9e8c4cf434',1,'mlx::core::LogicalAnd::jvp()'],['../classmlx_1_1core_1_1_logical_or.html#a292de6001c551214c8152a7a5b0e6bd4',1,'mlx::core::LogicalOr::jvp()'],['../classmlx_1_1core_1_1_log_add_exp.html#aea2d1d58794e86f3488219ed3fa14329',1,'mlx::core::LogAddExp::jvp()'],['../classmlx_1_1core_1_1_maximum.html#a25ac5d5b453e571bf7240aa8de103c39',1,'mlx::core::Maximum::jvp()'],['../classmlx_1_1core_1_1_minimum.html#a10acf4fef35eed7ca55d131b5ae2d038',1,'mlx::core::Minimum::jvp()'],['../classmlx_1_1core_1_1_multiply.html#a79f7f0bb70de2e3e41a66c96285325b4',1,'mlx::core::Multiply::jvp()'],['../classmlx_1_1core_1_1_negative.html#a7d918f9b26b8fb7b047a27d85ebab979',1,'mlx::core::Negative::jvp()'],['../classmlx_1_1core_1_1_not_equal.html#ae2d3e5776efaefed7f4c73f679b02f17',1,'mlx::core::NotEqual::jvp()'],['../classmlx_1_1core_1_1_pad.html#a6e43a42032ef11497e8d91290574ec72',1,'mlx::core::Pad::jvp()'],['../classmlx_1_1core_1_1_partition.html#a310f569a163958940ed02cf52079746a',1,'mlx::core::Partition::jvp()'],['../classmlx_1_1core_1_1_power.html#a3e78b06453faa4fd149fd19c0e7a300a',1,'mlx::core::Power::jvp()'],['../classmlx_1_1core_1_1_quantized_matmul.html#ae51fdd0b81dd26c6687577567c126e23',1,'mlx::core::QuantizedMatmul::jvp()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#adc579058752b927c71b45a962d4869e0',1,'mlx::core::GatherQMM::jvp()'],['../classmlx_1_1core_1_1_real.html#adff418a54970e2344bd3c2885aae5526',1,'mlx::core::Real::jvp()'],['../classmlx_1_1core_1_1_reshape.html#ab8fc28748991017cc3e29f93c91087a5',1,'mlx::core::Reshape::jvp()'],['../classmlx_1_1core_1_1_round.html#a032075a7d0dde2dba6189636d216c5e7',1,'mlx::core::Round::jvp()'],['../classmlx_1_1core_1_1_scan.html#a6f9c862f4fbc7eaf430a361cdd8933ee',1,'mlx::core::Scan::jvp()'],['../classmlx_1_1core_1_1_scatter.html#a270fa8ccf36ce4bbbc23875139223934',1,'mlx::core::Scatter::jvp()'],['../classmlx_1_1core_1_1_sigmoid.html#a62ca1c440896e32958c77af3340847db',1,'mlx::core::Sigmoid::jvp()'],['../classmlx_1_1core_1_1_sign.html#a957992c7aa0e86cf06f861a94372086b',1,'mlx::core::Sign::jvp()'],['../classmlx_1_1core_1_1_sin.html#af662d10180967399820496477ff050de',1,'mlx::core::Sin::jvp()'],['../classmlx_1_1core_1_1_sinh.html#a86e2b37823daf20a4c74c9f273215f9c',1,'mlx::core::Sinh::jvp()'],['../classmlx_1_1core_1_1_slice.html#a8288324045ab21d6c97b1695ce86ef36',1,'mlx::core::Slice::jvp()'],['../classmlx_1_1core_1_1_slice_update.html#a0ce3248cc61dae2b51d7aa8ee4197611',1,'mlx::core::SliceUpdate::jvp()'],['../classmlx_1_1core_1_1_softmax.html#af96172634a24332b0fc8d7ca7e73f19f',1,'mlx::core::Softmax::jvp()'],['../classmlx_1_1core_1_1_sort.html#af113ac983473433eec851c8fddfcba62',1,'mlx::core::Sort::jvp()'],['../classmlx_1_1core_1_1_split.html#ab8a8d30fd1ebf0891f41f3c32eabe282',1,'mlx::core::Split::jvp()'],['../classmlx_1_1core_1_1_square.html#a822629b93b91e2bef29959431d95e22d',1,'mlx::core::Square::jvp()'],['../classmlx_1_1core_1_1_sqrt.html#a78544b1fb5da0c14bce3051ffd177818',1,'mlx::core::Sqrt::jvp()'],['../classmlx_1_1core_1_1_subtract.html#a8100081a99df5166f02efc76d6641220',1,'mlx::core::Subtract::jvp()'],['../classmlx_1_1core_1_1_tan.html#a5d7c76122d63619df17b0e45450bc8f2',1,'mlx::core::Tan::jvp()'],['../classmlx_1_1core_1_1_tanh.html#ae0fbb5370dc1c3a4fb0dd02ca28a832a',1,'mlx::core::Tanh::jvp()'],['../classmlx_1_1core_1_1_transpose.html#ac1a523e25ab7fd9df4da363a922afbe1',1,'mlx::core::Transpose::jvp()'],['../namespacemlx_1_1core.html#a179a632200366c223d6ab56d3e032592',1,'mlx::core::jvp(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< array > &primals, const std::vector< array > &tangents)'],['../namespacemlx_1_1core.html#af38e7582db29519bb39326f6fa531d20',1,'mlx::core::jvp(const std::function< array(const array &)> &fun, const array &primal, const array &tangent)']]] ]; diff --git a/docs/build/html/search/functions_c.js b/docs/build/html/search/functions_c.js index 87249a7a..2d9b9d4a 100644 --- a/docs/build/html/search/functions_c.js +++ b/docs/build/html/search/functions_c.js @@ -19,16 +19,16 @@ var searchData= ['lib_5fname_16',['lib_name',['../classmlx_1_1core_1_1_compiled.html#ae5c16cb91ac31b97e7652cc526c07439',1,'mlx::core::Compiled']]], ['linspace_17',['linspace',['../group__ops.html#ga968bcabed902311dcfbd903b0fb886ec',1,'mlx::core']]], ['load_18',['Load',['../classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a',1,'mlx::core::Load']]], - ['load_19',['load',['../struct_read_writer.html#a120eaf4b5f32e80972a18d14e82a2d75',1,'ReadWriter::load()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa5426c6beabfb3ee41b58f01b3392a96',1,'mlx::steel::MMATile::load(const threadgroup U *src)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa9e484d8cae936503898d5b772c573f9',1,'mlx::steel::MMATile::load(const device U *src, const int ld)'],['../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_19',['load',['../struct_read_writer.html#a120eaf4b5f32e80972a18d14e82a2d75',1,'ReadWriter::load()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa5426c6beabfb3ee41b58f01b3392a96',1,'mlx::steel::MMATile::load(const threadgroup U *src)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa9e484d8cae936503898d5b772c573f9',1,'mlx::steel::MMATile::load(const device U *src, const int ld)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa5426c6beabfb3ee41b58f01b3392a96',1,'mlx::steel::MMATile::load(const threadgroup U *src)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa9e484d8cae936503898d5b772c573f9',1,'mlx::steel::MMATile::load(const device U *src, const int ld)'],['../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()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3a4af67813908109da08ce7352f82da',1,'mlx::steel::MMATile::load_safe()'],['../scan_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()'],['../structmlx_1_1steel_1_1_block_loader_t.html#ac2d95e35ba39e0984e6f1e58ca935f7d',1,'mlx::steel::BlockLoaderT::load_safe()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3a4af67813908109da08ce7352f82da',1,'mlx::steel::MMATile::load_safe()'],['../structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d',1,'mlx::steel::BlockLoader::load_safe()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::load_safe()'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3a4af67813908109da08ce7352f82da',1,'mlx::steel::MMATile::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()'],['../scan_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_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27',1,'mlx::steel::BlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_block_loader_t.html#acb743f32146fdc7986264b7beb35fb38',1,'mlx::steel::BlockLoaderT::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()']]], + ['location_28',['location',['../struct_looped_elem_to_loc.html#aba051a428ad0934a9c6d04d4d3ee6e0e',1,'LoopedElemToLoc::location()'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a66b84b12f6c1494e5908989ed2849a9f',1,'LoopedElemToLoc< 1, OffsetT, true >::location()'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a89d9ec4dc2f2f0d77e27aa0c05f261ef',1,'LoopedElemToLoc< 1, OffsetT, false >::location()']]], ['log_29',['Log',['../classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9',1,'mlx::core::Log']]], ['log_30',['log',['../namespacemetal.html#a423a9f4f2fc7ef5ec7eda061277b51b6',1,'metal::log()'],['../namespacemetal_1_1fast.html#aef942e7f9e5c2e58c58644ab1bdd58d1',1,'metal::fast::log()'],['../namespacemetal_1_1precise.html#a341c2b8c27d1bed860f85f8b355023d4',1,'metal::precise::log()'],['../group__ops.html#ga6fb22d4926133573e430fcc92f4eef31',1,'mlx::core::log()']]], ['log10_31',['log10',['../namespacemetal.html#a042b98827baa910e9d726227cec55a80',1,'metal::log10()'],['../namespacemetal_1_1fast.html#a0d1150cf2deee5100a7ea2988b3bb39e',1,'metal::fast::log10()'],['../namespacemetal_1_1precise.html#a44239067e8e9248b1574353f98e94d72',1,'metal::precise::log10()'],['../group__ops.html#ga1fdcc7fc8819caf2e6f1c327ed4e9b9e',1,'mlx::core::log10()']]], @@ -44,5 +44,6 @@ var searchData= ['logicalnot_41',['LogicalNot',['../classmlx_1_1core_1_1_logical_not.html#a6f5850b4c78b83d5e2c0d37437fc79b7',1,'mlx::core::LogicalNot']]], ['logicalor_42',['LogicalOr',['../classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918',1,'mlx::core::LogicalOr']]], ['logsumexp_43',['logsumexp',['../group__ops.html#gacff4eb57c085d571e722083680267ac5',1,'mlx::core::logsumexp(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga59be50b4e92f1dc20b53460cefa3910d',1,'mlx::core::logsumexp(const array &a, StreamOrDevice s={})'],['../group__ops.html#gae3969c7bd24c4f3ab97831df28239689',1,'mlx::core::logsumexp(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gafef5cb2159c16a60a95470cc823bdd44',1,'mlx::core::logsumexp(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['lowest_44',['lowest',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116',1,'metal::_numeric_limits_impl< bfloat16_t >']]] + ['loopedelemtoloc_44',['LoopedElemToLoc',['../struct_looped_elem_to_loc.html#a5653be1c990722a4a215be27efe5648b',1,'LoopedElemToLoc::LoopedElemToLoc()'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#abf536c7162d36af7367e390789944c86',1,'LoopedElemToLoc< 1, OffsetT, true >::LoopedElemToLoc()'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a0e21977d9f23b6994773e8e4f3ee70de',1,'LoopedElemToLoc< 1, OffsetT, false >::LoopedElemToLoc()']]], + ['lowest_45',['lowest',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116',1,'metal::_numeric_limits_impl< bfloat16_t >']]] ]; diff --git a/docs/build/html/search/functions_d.js b/docs/build/html/search/functions_d.js index 7967de99..eb37eb17 100644 --- a/docs/build/html/search/functions_d.js +++ b/docs/build/html/search/functions_d.js @@ -7,47 +7,49 @@ var searchData= ['make_5ftask_4',['make_task',['../namespacemlx_1_1core_1_1metal.html#a4552b7ccdfa7f3cc9895c09799d8048e',1,'mlx::core::metal']]], ['malloc_5',['malloc',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a9a17d2c7a97772bf4a15e6c74af34ca4',1,'mlx::core::allocator::Allocator::malloc()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a4f3d5de6b8c0eba22e9403b28a5ef3f0',1,'mlx::core::allocator::CommonAllocator::malloc()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a6c0feb9b1ff9977f76c69745393944bc',1,'mlx::core::metal::MetalAllocator::malloc()'],['../namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801',1,'mlx::core::allocator::malloc(size_t size)']]], ['malloc_5for_5fwait_6',['malloc_or_wait',['../namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc',1,'mlx::core::allocator']]], - ['mat_5fat_7',['mat_at',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a323a4f38cd0693bf333832bb4258b28e',1,'mlx::steel::MMATile']]], + ['mat_5fat_7',['mat_at',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a323a4f38cd0693bf333832bb4258b28e',1,'mlx::steel::MMATile::mat_at(const short i, const short j)'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a323a4f38cd0693bf333832bb4258b28e',1,'mlx::steel::MMATile::mat_at(const short i, const short j)']]], ['matmul_8',['Matmul',['../classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7',1,'mlx::core::Matmul']]], ['matmul_9',['matmul',['../group__ops.html#ga753d59f5a9f5f2362865ee83b4dced2a',1,'mlx::core']]], ['max_10',['max',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a92320d40a58218e40cc414986ac95c50',1,'metal::_numeric_limits_impl< bfloat16_t >::max()'],['../namespacemetal.html#a853c80479ab2264d9c4587c7bcac767b',1,'metal::max()'],['../namespacemetal_1_1fast.html#a747e2e58092a27fb8b4dd3d16934fb52',1,'metal::fast::max()'],['../namespacemetal_1_1precise.html#a6a954a4e4e3753303d1dc734855a185f',1,'metal::precise::max()'],['../group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7',1,'mlx::core::max(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga25be91d70a5f40341db0615a0b8bfedc',1,'mlx::core::max(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga1ca7b6b91fe2459a7d83897bf013827f',1,'mlx::core::max(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga7b638050e03a93f2896c981bc2850a47',1,'mlx::core::max(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], ['max3_11',['max3',['../namespacemetal.html#a00f9c0ad66d969794614f56912eed9c9',1,'metal::max3()'],['../namespacemetal_1_1fast.html#a6fc2cf18ffa8149561864c86dba0f803',1,'metal::fast::max3()'],['../namespacemetal_1_1precise.html#ac490e8614ebd2c9343af1ae6c0d4e82c',1,'metal::precise::max3()']]], - ['maximum_12',['Maximum',['../classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816',1,'mlx::core::Maximum']]], - ['maximum_13',['maximum',['../group__ops.html#ga7ade2ea305e2e4219c3609443fb5db8d',1,'mlx::core']]], - ['maybeinsertbarrier_14',['maybeInsertBarrier',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991',1,'mlx::core::metal::CommandEncoder']]], - ['mb_5fblock_5fmerge_15',['mb_block_merge',['../sort_8h.html#ab381cd57f344bc7304ab580bfdc78807',1,'sort.h']]], - ['mb_5fblock_5fpartition_16',['mb_block_partition',['../sort_8h.html#a32cbe4163b8b0f5cb2c97b256119a4b2',1,'sort.h']]], - ['mb_5fblock_5fsort_17',['mb_block_sort',['../sort_8h.html#aa48ff1aff1e9dc1301b6781aa0721d6b',1,'sort.h']]], - ['mean_18',['mean',['../group__ops.html#gade46e768fd46b8b640eb16f26abeecef',1,'mlx::core::mean(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga52b59fdd8e8430538e564f5bbcfa31e6',1,'mlx::core::mean(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga066161f3d3e395a1d76c638cb680d444',1,'mlx::core::mean(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga45fba73eab0e3b6e128ed3ce2f43a5da',1,'mlx::core::mean(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['median3_19',['median3',['../namespacemetal.html#aa3ff49457ce3c93fc1c0897fd1525157',1,'metal::median3()'],['../namespacemetal_1_1fast.html#a742b55f1e4369921ee7f60d70185bfbc',1,'metal::fast::median3()'],['../namespacemetal_1_1precise.html#a14555ff99c4388493fec48e070144ae2',1,'metal::precise::median3()']]], - ['merge_5fpartition_20',['merge_partition',['../struct_block_merge_sort.html#ab2300cbecb23f3433bad888924c831ca',1,'BlockMergeSort::merge_partition()'],['../struct_kernel_multi_block_merge_sort.html#ab15895b4233aba0e279cc44a07a201fe',1,'KernelMultiBlockMergeSort::merge_partition()']]], - ['merge_5fstep_21',['merge_step',['../struct_block_merge_sort.html#ab65f190edf1851b37c39ad49ce99a43c',1,'BlockMergeSort']]], - ['meshgrid_22',['meshgrid',['../group__ops.html#ga577c911618575314de63d1060656a26e',1,'mlx::core']]], - ['metal_5fkernel_23',['metal_kernel',['../namespacemlx_1_1core_1_1fast.html#ab16436b465dc10ce472193d541d8426e',1,'mlx::core::fast']]], - ['min_24',['min',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f',1,'metal::_numeric_limits_impl< bfloat16_t >::min()'],['../namespacemetal.html#a6653b28c9473087141eddce39878d4d3',1,'metal::min()'],['../namespacemetal_1_1fast.html#a3e958e56a4712687c381a0b64d123e61',1,'metal::fast::min()'],['../namespacemetal_1_1precise.html#afed0da2f7df3505b5dffa2389c3cb36e',1,'metal::precise::min()'],['../group__ops.html#gab27599802617a4c8f9964ab5f4ffee12',1,'mlx::core::min(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga0140b91e9cdfc3fef0da8e332f65a9e8',1,'mlx::core::min(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga6efb83cd46436678c8f8c4af15cc00f5',1,'mlx::core::min(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga36fa315eef677f4143868f552cd26d03',1,'mlx::core::min(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['min3_25',['min3',['../namespacemetal.html#a005510c8c0f964ce2b8aad3ba76a7a3f',1,'metal::min3()'],['../namespacemetal_1_1fast.html#a606a4c1b34ce05ea89ca5af81724036f',1,'metal::fast::min3()'],['../namespacemetal_1_1precise.html#a4d37ce31c3549ca4772a4ee29798e231',1,'metal::precise::min3()']]], - ['minimum_26',['Minimum',['../classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5',1,'mlx::core::Minimum']]], - ['minimum_27',['minimum',['../group__ops.html#ga49ba00c090f81f331c91b0c97040bce0',1,'mlx::core']]], - ['mlx_5fatomic_5fcompare_5fexchange_5fweak_5fexplicit_28',['mlx_atomic_compare_exchange_weak_explicit',['../atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f',1,'mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread T *expected, T val, size_t offset): atomic.h'],['../atomic_8h.html#aa8f47b2e9b95d4b00ad51f08b070deb5',1,'mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread uint *expected, uint val, size_t offset): atomic.h']]], - ['mlx_5fatomic_5ffetch_5fadd_5fexplicit_29',['mlx_atomic_fetch_add_explicit',['../atomic_8h.html#aad448d9e06e001700b65ca8317216a3b',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fand_5fexplicit_30',['mlx_atomic_fetch_and_explicit',['../atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmax_5fexplicit_31',['mlx_atomic_fetch_max_explicit',['../atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmax_5fexplicit_3c_20float_20_3e_32',['mlx_atomic_fetch_max_explicit< float >',['../atomic_8h.html#a1dce2abfa16417122c4d2bf261129ae4',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmin_5fexplicit_33',['mlx_atomic_fetch_min_explicit',['../atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmin_5fexplicit_3c_20float_20_3e_34',['mlx_atomic_fetch_min_explicit< float >',['../atomic_8h.html#ab7d1dc49f319f239b7ee0b7c72976dd0',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5fmul_5fexplicit_35',['mlx_atomic_fetch_mul_explicit',['../atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3',1,'atomic.h']]], - ['mlx_5fatomic_5ffetch_5for_5fexplicit_36',['mlx_atomic_fetch_or_explicit',['../atomic_8h.html#ab7391f197001471e4788312bdb6ab37a',1,'atomic.h']]], - ['mlx_5fatomic_5fload_5fexplicit_37',['mlx_atomic_load_explicit',['../atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99',1,'atomic.h']]], - ['mlx_5fatomic_5fstore_5fexplicit_38',['mlx_atomic_store_explicit',['../atomic_8h.html#a0ae453140b0819a4c02f265334de98c0',1,'atomic.h']]], - ['mma_39',['mma',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a6a2c2a6d5e767d52c41b42a9d36086b0',1,'mlx::steel::BlockMMA::mma()']]], - ['mmatile_40',['MMATile',['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3fb310dd08ec23c334511f7b316d1b6',1,'mlx::steel::MMATile']]], - ['move_5fshared_5fbuffer_41',['move_shared_buffer',['../classmlx_1_1core_1_1array.html#acce00db63e0f3d80f797b02397ade836',1,'mlx::core::array::move_shared_buffer(array other, const std::vector< size_t > &strides, Flags flags, size_t data_size, size_t offset=0)'],['../classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78',1,'mlx::core::array::move_shared_buffer(array other)']]], - ['moveaxis_42',['moveaxis',['../group__ops.html#ga24067d10a842db2c9d509ea48135a2c3',1,'mlx::core']]], - ['mpinplace_43',['MPINPLACE',['../namespacepocketfft_1_1detail.html#af5eedf3cdfc83c0a30807092c39a9ce2',1,'pocketfft::detail']]], - ['mtl_5fdevice_44',['mtl_device',['../classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653',1,'mlx::core::metal::Device']]], - ['mtl_5fresidency_5fset_45',['mtl_residency_set',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#ac4bfe5ef5e2eaebc458a1ed1953d15e9',1,'mlx::core::metal::ResidencySet']]], - ['multi_5fiter_46',['multi_iter',['../classpocketfft_1_1detail_1_1multi__iter.html#a9be43bb18840202da6d17988fccc64b9',1,'pocketfft::detail::multi_iter']]], - ['multiply_47',['Multiply',['../classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c',1,'mlx::core::Multiply']]], - ['multiply_48',['multiply',['../group__ops.html#gaf57392e641640b5d06e4c99518391c38',1,'mlx::core']]], - ['multivariate_5fnormal_49',['multivariate_normal',['../namespacemlx_1_1core_1_1random.html#a8c37da3c1c0c561cad7499d6d9db81fb',1,'mlx::core::random']]] + ['max_5fops_5fper_5fbuffer_12',['max_ops_per_buffer',['../namespacemlx_1_1core_1_1env.html#aedbf4e739553024c33dd0094dd9107aa',1,'mlx::core::env']]], + ['maximum_13',['Maximum',['../classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816',1,'mlx::core::Maximum']]], + ['maximum_14',['maximum',['../group__ops.html#ga7ade2ea305e2e4219c3609443fb5db8d',1,'mlx::core']]], + ['maybeinsertbarrier_15',['maybeInsertBarrier',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991',1,'mlx::core::metal::CommandEncoder']]], + ['mb_5fblock_5fmerge_16',['mb_block_merge',['../sort_8h.html#ab381cd57f344bc7304ab580bfdc78807',1,'sort.h']]], + ['mb_5fblock_5fpartition_17',['mb_block_partition',['../sort_8h.html#a32cbe4163b8b0f5cb2c97b256119a4b2',1,'sort.h']]], + ['mb_5fblock_5fsort_18',['mb_block_sort',['../sort_8h.html#aa48ff1aff1e9dc1301b6781aa0721d6b',1,'sort.h']]], + ['mean_19',['mean',['../group__ops.html#gade46e768fd46b8b640eb16f26abeecef',1,'mlx::core::mean(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga52b59fdd8e8430538e564f5bbcfa31e6',1,'mlx::core::mean(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga066161f3d3e395a1d76c638cb680d444',1,'mlx::core::mean(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga45fba73eab0e3b6e128ed3ce2f43a5da',1,'mlx::core::mean(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['median3_20',['median3',['../namespacemetal.html#aa3ff49457ce3c93fc1c0897fd1525157',1,'metal::median3()'],['../namespacemetal_1_1fast.html#a742b55f1e4369921ee7f60d70185bfbc',1,'metal::fast::median3()'],['../namespacemetal_1_1precise.html#a14555ff99c4388493fec48e070144ae2',1,'metal::precise::median3()']]], + ['merge_5fpartition_21',['merge_partition',['../struct_block_merge_sort.html#ab2300cbecb23f3433bad888924c831ca',1,'BlockMergeSort::merge_partition()'],['../struct_kernel_multi_block_merge_sort.html#ab15895b4233aba0e279cc44a07a201fe',1,'KernelMultiBlockMergeSort::merge_partition()']]], + ['merge_5fstep_22',['merge_step',['../struct_block_merge_sort.html#ab65f190edf1851b37c39ad49ce99a43c',1,'BlockMergeSort']]], + ['meshgrid_23',['meshgrid',['../group__ops.html#ga577c911618575314de63d1060656a26e',1,'mlx::core']]], + ['metal_5fkernel_24',['metal_kernel',['../namespacemlx_1_1core_1_1fast.html#ab16436b465dc10ce472193d541d8426e',1,'mlx::core::fast']]], + ['min_25',['min',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f',1,'metal::_numeric_limits_impl< bfloat16_t >::min()'],['../namespacemetal.html#a6653b28c9473087141eddce39878d4d3',1,'metal::min()'],['../namespacemetal_1_1fast.html#a3e958e56a4712687c381a0b64d123e61',1,'metal::fast::min()'],['../namespacemetal_1_1precise.html#afed0da2f7df3505b5dffa2389c3cb36e',1,'metal::precise::min()'],['../group__ops.html#gab27599802617a4c8f9964ab5f4ffee12',1,'mlx::core::min(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga0140b91e9cdfc3fef0da8e332f65a9e8',1,'mlx::core::min(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga6efb83cd46436678c8f8c4af15cc00f5',1,'mlx::core::min(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#ga36fa315eef677f4143868f552cd26d03',1,'mlx::core::min(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['min3_26',['min3',['../namespacemetal.html#a005510c8c0f964ce2b8aad3ba76a7a3f',1,'metal::min3()'],['../namespacemetal_1_1fast.html#a606a4c1b34ce05ea89ca5af81724036f',1,'metal::fast::min3()'],['../namespacemetal_1_1precise.html#a4d37ce31c3549ca4772a4ee29798e231',1,'metal::precise::min3()']]], + ['minimum_27',['Minimum',['../classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5',1,'mlx::core::Minimum']]], + ['minimum_28',['minimum',['../group__ops.html#ga49ba00c090f81f331c91b0c97040bce0',1,'mlx::core']]], + ['mlx_5fatomic_5fcompare_5fexchange_5fweak_5fexplicit_29',['mlx_atomic_compare_exchange_weak_explicit',['../atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f',1,'mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread T *expected, T val, size_t offset): atomic.h'],['../atomic_8h.html#aa8f47b2e9b95d4b00ad51f08b070deb5',1,'mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread uint *expected, uint val, size_t offset): atomic.h']]], + ['mlx_5fatomic_5ffetch_5fadd_5fexplicit_30',['mlx_atomic_fetch_add_explicit',['../atomic_8h.html#aad448d9e06e001700b65ca8317216a3b',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fand_5fexplicit_31',['mlx_atomic_fetch_and_explicit',['../atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmax_5fexplicit_32',['mlx_atomic_fetch_max_explicit',['../atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmax_5fexplicit_3c_20float_20_3e_33',['mlx_atomic_fetch_max_explicit< float >',['../atomic_8h.html#a1dce2abfa16417122c4d2bf261129ae4',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmin_5fexplicit_34',['mlx_atomic_fetch_min_explicit',['../atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmin_5fexplicit_3c_20float_20_3e_35',['mlx_atomic_fetch_min_explicit< float >',['../atomic_8h.html#ab7d1dc49f319f239b7ee0b7c72976dd0',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5fmul_5fexplicit_36',['mlx_atomic_fetch_mul_explicit',['../atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3',1,'atomic.h']]], + ['mlx_5fatomic_5ffetch_5for_5fexplicit_37',['mlx_atomic_fetch_or_explicit',['../atomic_8h.html#ab7391f197001471e4788312bdb6ab37a',1,'atomic.h']]], + ['mlx_5fatomic_5fload_5fexplicit_38',['mlx_atomic_load_explicit',['../atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99',1,'atomic.h']]], + ['mlx_5fatomic_5fstore_5fexplicit_39',['mlx_atomic_store_explicit',['../atomic_8h.html#a0ae453140b0819a4c02f265334de98c0',1,'atomic.h']]], + ['mma_40',['mma',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a6a2c2a6d5e767d52c41b42a9d36086b0',1,'mlx::steel::BlockMMA::mma()'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)'],['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a6a2c2a6d5e767d52c41b42a9d36086b0',1,'mlx::steel::BlockMMA::mma()']]], + ['mmatile_41',['MMATile',['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3fb310dd08ec23c334511f7b316d1b6',1,'mlx::steel::MMATile::MMATile() thread'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aa3fb310dd08ec23c334511f7b316d1b6',1,'mlx::steel::MMATile::MMATile() thread']]], + ['move_5for_5fcopy_42',['move_or_copy',['../namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2',1,'mlx::core::move_or_copy(const array &in, array &out)'],['../namespacemlx_1_1core.html#aae1e770954edf1f9a35d19e0de4d857a',1,'mlx::core::move_or_copy(const array &in, array &out, const std::vector< size_t > &strides, array::Flags flags, size_t data_size, size_t offset=0)']]], + ['move_5fshared_5fbuffer_43',['move_shared_buffer',['../classmlx_1_1core_1_1array.html#acce00db63e0f3d80f797b02397ade836',1,'mlx::core::array::move_shared_buffer(array other, const std::vector< size_t > &strides, Flags flags, size_t data_size, size_t offset=0)'],['../classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78',1,'mlx::core::array::move_shared_buffer(array other)']]], + ['moveaxis_44',['moveaxis',['../group__ops.html#ga24067d10a842db2c9d509ea48135a2c3',1,'mlx::core']]], + ['mpinplace_45',['MPINPLACE',['../namespacepocketfft_1_1detail.html#af5eedf3cdfc83c0a30807092c39a9ce2',1,'pocketfft::detail']]], + ['mtl_5fdevice_46',['mtl_device',['../classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653',1,'mlx::core::metal::Device']]], + ['mtl_5fresidency_5fset_47',['mtl_residency_set',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#ac4bfe5ef5e2eaebc458a1ed1953d15e9',1,'mlx::core::metal::ResidencySet']]], + ['multi_5fiter_48',['multi_iter',['../classpocketfft_1_1detail_1_1multi__iter.html#a9be43bb18840202da6d17988fccc64b9',1,'pocketfft::detail::multi_iter']]], + ['multiply_49',['Multiply',['../classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c',1,'mlx::core::Multiply']]], + ['multiply_50',['multiply',['../group__ops.html#gaf57392e641640b5d06e4c99518391c38',1,'mlx::core']]], + ['multivariate_5fnormal_51',['multivariate_normal',['../namespacemlx_1_1core_1_1random.html#a8c37da3c1c0c561cad7499d6d9db81fb',1,'mlx::core::random']]] ]; diff --git a/docs/build/html/search/functions_e.js b/docs/build/html/search/functions_e.js index 76ac25c5..d8bf6926 100644 --- a/docs/build/html/search/functions_e.js +++ b/docs/build/html/search/functions_e.js @@ -11,7 +11,7 @@ var searchData= ['new_5fqueue_8',['new_queue',['../classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67',1,'mlx::core::metal::Device']]], ['new_5fscoped_5fmemory_5fpool_9',['new_scoped_memory_pool',['../namespacemlx_1_1core_1_1metal.html#a46583a1aba89449fa72e6cb3a7090981',1,'mlx::core::metal']]], ['new_5fstream_10',['new_stream',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a157c8da85fa1bddb8eacf8515a3cc879',1,'mlx::core::scheduler::Scheduler::new_stream()'],['../namespacemlx_1_1core_1_1metal.html#a8b4188f9a090a1da42d62b8a369bf106',1,'mlx::core::metal::new_stream()'],['../namespacemlx_1_1core.html#a6f7c63a9be10337b3b96d527e1db3c2f',1,'mlx::core::new_stream()']]], - ['next_11',['next',['../struct_quantized_block_loader.html#a674138ef7c43cc45586ea9f8fd6f6bd9',1,'QuantizedBlockLoader::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a3b71f379ff9baf39830c92f4f1ecde52',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a78d2b0098311a278be8394edbd5fc731',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#aae56c19bb562219770fec38e5666c6ce',1,'mlx::steel::Conv2DWeightBlockLoader::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#af9ce1a767266664bea131a5437002c80',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a30b10bebde7f08b89d03bdd9ea0f48da',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3e5ee68ed0ee43f7e979dd4222f76a8c',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a11743cb1c108f42ccdc6e59204a5b3e8',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::next()'],['../structmlx_1_1steel_1_1_block_loader.html#a6af21428f0e7c17b48ddedf4dd20a1e8',1,'mlx::steel::BlockLoader::next()'],['../structlooped__elem__to__loc.html#a05558dabba889ee0d80ed4b567d901ca',1,'looped_elem_to_loc::next(const constant int *shape, const constant size_t *strides)'],['../structlooped__elem__to__loc.html#add610f331ef8d7d2d1917050890f82b2',1,'looped_elem_to_loc::next(int n, const constant int *shape, const constant size_t *strides)'],['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html#a96cf2987c04210c9197e5237e425c4b4',1,'looped_elem_to_loc< 1, offset_t >::next(const constant int *, const constant size_t *strides)'],['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html#af2984b35f7d7300d4812e7872b3c8851',1,'looped_elem_to_loc< 1, offset_t >::next(int n, const constant int *, const constant size_t *strides)'],['../structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html#aa1e9e1009c16befb9a730835836436e0',1,'looped_elem_to_loc< 0, offset_t >::next(const constant int *, const constant size_t *)'],['../structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html#a1064cdfdcef779b5628ce5357a6fe4f0',1,'looped_elem_to_loc< 0, offset_t >::next(int, const constant int *, const constant size_t *)'],['../classmlx_1_1core_1_1random_1_1_key_sequence.html#a4193c5eac3ef093a740d5305b25d3e18',1,'mlx::core::random::KeySequence::next()']]], + ['next_11',['next',['../struct_quantized_block_loader.html#a674138ef7c43cc45586ea9f8fd6f6bd9',1,'QuantizedBlockLoader::next()'],['../structmlx_1_1steel_1_1_block_loader.html#a6af21428f0e7c17b48ddedf4dd20a1e8',1,'mlx::steel::BlockLoader::next()'],['../structmlx_1_1steel_1_1_block_loader_t.html#a6008ef45ff980dbe1119da0630f6c697',1,'mlx::steel::BlockLoaderT::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a3b71f379ff9baf39830c92f4f1ecde52',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a78d2b0098311a278be8394edbd5fc731',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#aae56c19bb562219770fec38e5666c6ce',1,'mlx::steel::Conv2DWeightBlockLoader::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#af9ce1a767266664bea131a5437002c80',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a30b10bebde7f08b89d03bdd9ea0f48da',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::next()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3e5ee68ed0ee43f7e979dd4222f76a8c',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::next()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a11743cb1c108f42ccdc6e59204a5b3e8',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::next()'],['../structmlx_1_1steel_1_1_block_loader.html#a6af21428f0e7c17b48ddedf4dd20a1e8',1,'mlx::steel::BlockLoader::next()'],['../struct_looped_elem_to_loc.html#a54c743940bf96350f3be42bba5d28205',1,'LoopedElemToLoc::next(const constant int *shape, const constant size_t *strides)'],['../struct_looped_elem_to_loc.html#a7da7bd04e79ba86f71c535b5a6ec1a2d',1,'LoopedElemToLoc::next(int n, const constant int *shape, const constant size_t *strides)'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#af5a7c0cddeb52da88fa1140f44aec45c',1,'LoopedElemToLoc< 1, OffsetT, true >::next(const constant int *shape, const constant size_t *strides)'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a8fe55b3a2fa8cd35af568085faed785d',1,'LoopedElemToLoc< 1, OffsetT, true >::next(int n, const constant int *shape, const constant size_t *strides)'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a03f3ca7a60bb85e36d7eba75e0e08b15',1,'LoopedElemToLoc< 1, OffsetT, false >::next(const constant int *, const constant size_t *strides)'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af8f2b29946324756c09951b69e170dd8',1,'LoopedElemToLoc< 1, OffsetT, false >::next(int n, const constant int *, const constant size_t *strides)'],['../classmlx_1_1core_1_1random_1_1_key_sequence.html#a4193c5eac3ef093a740d5305b25d3e18',1,'mlx::core::random::KeySequence::next()']]], ['next_5fpower_5fof_5f2_12',['next_power_of_2',['../namespacemlx_1_1core.html#a685c0530e338aabc622325685846ce93',1,'mlx::core']]], ['nextafter_13',['nextafter',['../namespacemetal.html#a9547fd7b09164931986f6db4813bd72d',1,'metal::nextafter()'],['../namespacemetal_1_1fast.html#a4583e8be04fc0bd475b97b0934604f23',1,'metal::fast::nextafter()'],['../namespacemetal_1_1precise.html#ad012ceeb55b77f1533749b351331e026',1,'metal::precise::nextafter()']]], ['norm_14',['norm',['../namespacemlx_1_1core_1_1linalg.html#aba765b8e95e9a1d33d31f727a185919d',1,'mlx::core::linalg::norm(const array &a, const double ord, const std::optional< std::vector< int > > &axis=std::nullopt, bool keepdims=false, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1linalg.html#acaa85b4146821c268abecec2422c02d2',1,'mlx::core::linalg::norm(const array &a, const double ord, int axis, bool keepdims=false, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1linalg.html#af1ebe0c6dcba9a1c49b5e397dddf3264',1,'mlx::core::linalg::norm(const array &a, const std::string &ord, const std::optional< std::vector< int > > &axis=std::nullopt, bool keepdims=false, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1linalg.html#ae8da67e4c6e073f93889f1051203cd9e',1,'mlx::core::linalg::norm(const array &a, const std::string &ord, int axis, bool keepdims=false, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1linalg.html#a229018071d5602e38d6248230f334a10',1,'mlx::core::linalg::norm(const array &a, const std::optional< std::vector< int > > &axis=std::nullopt, bool keepdims=false, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1linalg.html#a44250cff34238f01471fd61e76036f03',1,'mlx::core::linalg::norm(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], diff --git a/docs/build/html/search/functions_f.js b/docs/build/html/search/functions_f.js index 9142546c..976a1fc8 100644 --- a/docs/build/html/search/functions_f.js +++ b/docs/build/html/search/functions_f.js @@ -1,6 +1,6 @@ var searchData= [ - ['offset_5fneg_5fidx_0',['offset_neg_idx',['../kernels_2indexing_8h.html#ab41167dc537c06fbdb4df100972393df',1,'indexing.h']]], + ['offset_5fneg_5fidx_0',['offset_neg_idx',['../kernels_2indexing_8h.html#a58a65ea6215999cd4ccb4fe757cc2dc8',1,'indexing.h']]], ['ofs_1',['ofs',['../classpocketfft_1_1detail_1_1simple__iter.html#ab59481ad9c8f04addb907c3ebb89f8fa',1,'pocketfft::detail::simple_iter::ofs()'],['../classpocketfft_1_1detail_1_1rev__iter.html#a78c3b4ad19edf9d20cab40ad109e9dd1',1,'pocketfft::detail::rev_iter::ofs()']]], ['ones_2',['ones',['../group__ops.html#ga54eeed455321a54c8e72e16552a978f2',1,'mlx::core::ones(const std::vector< int > &shape, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga6cf4b5e8580e4436302c519d05897dab',1,'mlx::core::ones(const std::vector< int > &shape, StreamOrDevice s={})']]], ['ones_5flike_3',['ones_like',['../group__ops.html#ga94f8d3b1906fee99da9cbe39f7be7d42',1,'mlx::core']]], @@ -8,42 +8,41 @@ var searchData= ['operator_20bool_5',['operator bool',['../struct___no_mask.html#ad3723c1e70e46beefd283ce6317416cb',1,'_NoMask::operator bool()'],['../struct___no_mask.html#aafbf8a3201e1cc1abf74dd1f1b7272cd',1,'_NoMask::operator bool() const threadgroup'],['../struct___no_mask.html#a73e9612a619885cbc97cbd8f40df71e7',1,'_NoMask::operator bool() const device'],['../struct___no_mask.html#a4bf336d472bc677028250f76b9cdc08c',1,'_NoMask::operator bool() const constant'],['../struct___no_mask.html#ad3723c1e70e46beefd283ce6317416cb',1,'_NoMask::operator bool()'],['../struct___no_mask.html#aafbf8a3201e1cc1abf74dd1f1b7272cd',1,'_NoMask::operator bool() const threadgroup'],['../struct___no_mask.html#a73e9612a619885cbc97cbd8f40df71e7',1,'_NoMask::operator bool() const device'],['../struct___no_mask.html#a4bf336d472bc677028250f76b9cdc08c',1,'_NoMask::operator bool() const constant']]], ['operator_20dtype_6',['operator Dtype',['../structmlx_1_1core_1_1_type_to_dtype.html#aefdd0fd6a5bbf0197a3996ccd4adea13',1,'mlx::core::TypeToDtype']]], ['operator_20float_7',['operator float',['../structmlx_1_1core_1_1___m_l_x___b_float16.html#aaae72e5340ce91325f1925be36ba46cb',1,'mlx::core::_MLX_BFloat16::operator float()'],['../structmlx_1_1core_1_1complex128__t.html#a3e2faf180c0b785646a0e4296f709a5e',1,'mlx::core::complex128_t::operator float()'],['../structmlx_1_1core_1_1complex64__t.html#a90d224dd37308345086bb9cc882ef6fc',1,'mlx::core::complex64_t::operator float()'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a363de5054f3673bddc90293fc3c9bb99',1,'mlx::core::_MLX_Float16::operator float()']]], - ['operator_20t_8',['operator T',['../struct___m_l_x___b_float16.html#aa7dfefdf0d15e102d2b8258c9ab01836',1,'_MLX_BFloat16::operator T() const thread'],['../struct___m_l_x___b_float16.html#a2546a8afa77e14ed5b3c5da79a281260',1,'_MLX_BFloat16::operator T() const threadgroup'],['../struct___m_l_x___b_float16.html#a1d523f87740fcb852db6ab57896c245a',1,'_MLX_BFloat16::operator T() const device'],['../struct___m_l_x___b_float16.html#a95acd29283024d7093a0bc58c9468a0a',1,'_MLX_BFloat16::operator T() const constant'],['../structcomplex64__t.html#a70e9b16031eeaff3baa601f400023fcd',1,'complex64_t::operator T() const thread'],['../structcomplex64__t.html#a4f3beea7ab6001189b782a74d1746b67',1,'complex64_t::operator T() const threadgroup'],['../structcomplex64__t.html#a9f4f7eca89ffe6c8d126a4145df6d9f2',1,'complex64_t::operator T() const device'],['../structcomplex64__t.html#ac33e2e5263fec76a4fb4418c6e1d8d14',1,'complex64_t::operator T() const constant']]], + ['operator_20t_8',['operator T',['../structcomplex64__t.html#a70e9b16031eeaff3baa601f400023fcd',1,'complex64_t::operator T() const thread'],['../structcomplex64__t.html#a4f3beea7ab6001189b782a74d1746b67',1,'complex64_t::operator T() const threadgroup'],['../structcomplex64__t.html#a9f4f7eca89ffe6c8d126a4145df6d9f2',1,'complex64_t::operator T() const device'],['../structcomplex64__t.html#ac33e2e5263fec76a4fb4418c6e1d8d14',1,'complex64_t::operator T() const constant'],['../struct___m_l_x___b_float16.html#aa7dfefdf0d15e102d2b8258c9ab01836',1,'_MLX_BFloat16::operator T() const thread'],['../struct___m_l_x___b_float16.html#a2546a8afa77e14ed5b3c5da79a281260',1,'_MLX_BFloat16::operator T() const threadgroup'],['../struct___m_l_x___b_float16.html#a1d523f87740fcb852db6ab57896c245a',1,'_MLX_BFloat16::operator T() const device'],['../struct___m_l_x___b_float16.html#a95acd29283024d7093a0bc58c9468a0a',1,'_MLX_BFloat16::operator T() const constant']]], ['operator_20val_9',['operator Val',['../structmlx_1_1core_1_1_dtype.html#a3b3bc059be5836476da3cb88a4f5e9fd',1,'mlx::core::Dtype']]], ['operator_20value_5ftype_10',['operator value_type',['../structmlx_1_1steel_1_1integral__constant.html#a0c11203bed44a6a2c387b365134dcd64',1,'mlx::steel::integral_constant']]], - ['operator_21_3d_11',['operator!=',['../backend_2metal_2kernels_2bf16_8h.html#afc6e4fc5589bbf30f978f34868dd4e55',1,'operator!=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a6baa722c22d66c7510786bb275cb8cc2',1,'operator!=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa8d9f01582a0a9f01a666d110c74db2a',1,'operator!=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa504a474ab6e00ebe2b1b7ed2f7d1ffb',1,'operator!=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abf5f3040227f021a5b84cf2eda248b2f',1,'operator!=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a347c9bbf816bad2e9e5e91aa448f8b65',1,'operator!=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a33ea086b561c652f25833a5e1ded34dd',1,'operator!=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2bbdcece13148826d3fe33af727bb79b',1,'operator!=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aeb1efa47c5f22cc0b35d49ccce73c406',1,'operator!=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa6b99cde403405df1865c989e4ce845a',1,'operator!=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a204d13a881ae8d337f6efbb98673790c',1,'operator!=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3602117b4c61d5cd4fd72fb8e5f68bd6',1,'operator!=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2721c088adfc9d73cde442d6badd2a6c',1,'operator!=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aa4364eda56525cf7576ff00e550175e6',1,'mlx::steel::operator!=()'],['../namespacemlx_1_1core.html#a94d00a1b7f8a4717ab3f26f45e4da655',1,'mlx::core::operator!=(const Device &lhs, const Device &rhs)'],['../group__ops.html#ga0ac483d85f23252ca8757e9926d5a3c5',1,'mlx::core::operator!=(const array &a, const array &b)'],['../group__ops.html#ga3fecba9f3cb9a19afd8ca492cf509ce0',1,'mlx::core::operator!=(T a, const array &b)'],['../group__ops.html#gaebbf1cfde388c7480159a03c92c9a385',1,'mlx::core::operator!=(const array &a, T b)'],['../namespacemlx_1_1core.html#a164f109bc19c927b2b3bcc47a5021419',1,'mlx::core::operator!=(const Stream &lhs, const Stream &rhs)'],['../namespacemlx_1_1core.html#ad2f9e1c230ec35d5c406dd616e8f4dea',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af5899b4d5644682cb0ac2a488f630d55',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a72ac8edd190601d7a46782582cedecd8',1,'mlx::core::operator!=(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a8084162ba2dd3f9b89195d2bebc3fbb0',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a514263e63f6825b490203ca586864687',1,'mlx::core::operator!=(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a1c482bb3d9f9d4c62dee5865892c1f96',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a0030fe7ad09837c670cdfb7d51279519',1,'mlx::core::operator!=(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ade3791bc723b8f10fbab22eadb0f705a',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ad78c664f242cd36247c13868547e3dd4',1,'mlx::core::operator!=(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab0743a1a1dcb92d40f41ca42d36f242c',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ae7a0f810e546a166c7d05849b5d41f30',1,'mlx::core::operator!=(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a676a40637a563f013c725d24fa33fdc8',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a9fcb662b1561e4136bac0106cfb63b6c',1,'mlx::core::operator!=(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abcca7fd43590c4347e0f5df8f134030c',1,'mlx::core::operator!=(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af3ede3688a2e3b3ba8cb2da180ffe151',1,'mlx::core::operator!=(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a54f48469fabd1414bef5097bcded0002',1,'mlx::core::operator!=(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af8c648e892cbc6973de535aa17dc2cfe',1,'mlx::core::operator!=(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#abc855e1c0584b64d7d995e33211361ab',1,'mlx::core::operator!=(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad3684d660d18a54505c759ab286bd936',1,'mlx::core::operator!=(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a8afdda14b14262ab5ce0a00c7745d7e8',1,'mlx::core::operator!=(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7ccc479be236f2bf3f7725729c5ba201',1,'mlx::core::operator!=(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a26a721b8111fce3a1dec9bf724034cd4',1,'mlx::core::operator!=(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad5f8c221a53a89e8095aa39fd1f61867',1,'mlx::core::operator!=(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a017b52ecf30b33da4aa8da35ccc43220',1,'mlx::core::operator!=(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a43c10ca5fb05ee7d0ee63ba56f8a08a3',1,'mlx::core::operator!=(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a81284b6ac737f91a8d1ffbbbbf938fe5',1,'mlx::core::operator!=(uint64_t lhs, _MLX_Float16 rhs)']]], + ['operator_21_3d_11',['operator!=',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afc6e4fc5589bbf30f978f34868dd4e55',1,'operator!=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6baa722c22d66c7510786bb275cb8cc2',1,'operator!=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa8d9f01582a0a9f01a666d110c74db2a',1,'operator!=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa504a474ab6e00ebe2b1b7ed2f7d1ffb',1,'operator!=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abf5f3040227f021a5b84cf2eda248b2f',1,'operator!=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a347c9bbf816bad2e9e5e91aa448f8b65',1,'operator!=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a33ea086b561c652f25833a5e1ded34dd',1,'operator!=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2bbdcece13148826d3fe33af727bb79b',1,'operator!=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeb1efa47c5f22cc0b35d49ccce73c406',1,'operator!=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa6b99cde403405df1865c989e4ce845a',1,'operator!=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a204d13a881ae8d337f6efbb98673790c',1,'operator!=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3602117b4c61d5cd4fd72fb8e5f68bd6',1,'operator!=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2721c088adfc9d73cde442d6badd2a6c',1,'operator!=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aa4364eda56525cf7576ff00e550175e6',1,'mlx::steel::operator!=()'],['../namespacemlx_1_1core.html#a94d00a1b7f8a4717ab3f26f45e4da655',1,'mlx::core::operator!=(const Device &lhs, const Device &rhs)'],['../group__ops.html#ga0ac483d85f23252ca8757e9926d5a3c5',1,'mlx::core::operator!=(const array &a, const array &b)'],['../group__ops.html#ga3fecba9f3cb9a19afd8ca492cf509ce0',1,'mlx::core::operator!=(T a, const array &b)'],['../group__ops.html#gaebbf1cfde388c7480159a03c92c9a385',1,'mlx::core::operator!=(const array &a, T b)'],['../namespacemlx_1_1core.html#a164f109bc19c927b2b3bcc47a5021419',1,'mlx::core::operator!=(const Stream &lhs, const Stream &rhs)'],['../namespacemlx_1_1core.html#ad2f9e1c230ec35d5c406dd616e8f4dea',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af5899b4d5644682cb0ac2a488f630d55',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a72ac8edd190601d7a46782582cedecd8',1,'mlx::core::operator!=(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a8084162ba2dd3f9b89195d2bebc3fbb0',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a514263e63f6825b490203ca586864687',1,'mlx::core::operator!=(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a1c482bb3d9f9d4c62dee5865892c1f96',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a0030fe7ad09837c670cdfb7d51279519',1,'mlx::core::operator!=(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ade3791bc723b8f10fbab22eadb0f705a',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ad78c664f242cd36247c13868547e3dd4',1,'mlx::core::operator!=(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab0743a1a1dcb92d40f41ca42d36f242c',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ae7a0f810e546a166c7d05849b5d41f30',1,'mlx::core::operator!=(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a676a40637a563f013c725d24fa33fdc8',1,'mlx::core::operator!=(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a9fcb662b1561e4136bac0106cfb63b6c',1,'mlx::core::operator!=(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abcca7fd43590c4347e0f5df8f134030c',1,'mlx::core::operator!=(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af3ede3688a2e3b3ba8cb2da180ffe151',1,'mlx::core::operator!=(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a54f48469fabd1414bef5097bcded0002',1,'mlx::core::operator!=(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af8c648e892cbc6973de535aa17dc2cfe',1,'mlx::core::operator!=(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#abc855e1c0584b64d7d995e33211361ab',1,'mlx::core::operator!=(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad3684d660d18a54505c759ab286bd936',1,'mlx::core::operator!=(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a8afdda14b14262ab5ce0a00c7745d7e8',1,'mlx::core::operator!=(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7ccc479be236f2bf3f7725729c5ba201',1,'mlx::core::operator!=(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a26a721b8111fce3a1dec9bf724034cd4',1,'mlx::core::operator!=(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad5f8c221a53a89e8095aa39fd1f61867',1,'mlx::core::operator!=(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a017b52ecf30b33da4aa8da35ccc43220',1,'mlx::core::operator!=(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a43c10ca5fb05ee7d0ee63ba56f8a08a3',1,'mlx::core::operator!=(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a81284b6ac737f91a8d1ffbbbbf938fe5',1,'mlx::core::operator!=(uint64_t lhs, _MLX_Float16 rhs)']]], ['operator_25_12',['operator%',['../backend_2metal_2kernels_2complex_8h.html#aaf53122a07c8eca858b5a8e38ae280e0',1,'operator%(): complex.h'],['../group__ops.html#gab3bfbf82b1e4de7b00bbcf1a2255fbde',1,'mlx::core::operator%(const array &a, const array &b)'],['../group__ops.html#ga50817666f0b82afcbf4a123486af9908',1,'mlx::core::operator%(T a, const array &b)'],['../group__ops.html#ga46c01daa07433542a477d216e13a8480',1,'mlx::core::operator%(const array &a, T b)'],['../namespacemlx_1_1core.html#a8723d145dd49021bfcb8e6c99e1c91a5',1,'mlx::core::operator%(complex64_t a, complex64_t b)']]], ['operator_26_13',['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_14',['operator&&',['../namespacemlx_1_1steel.html#a6353bf11881842e25c46b56f92b7044f',1,'mlx::steel::operator&&()'],['../group__ops.html#gaee1d774bb0843601d7a0a4257d616ae3',1,'mlx::core::operator&&(const array &a, const array &b)']]], ['operator_26_3d_15',['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_16',['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_17',['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'],['../namespacemlx_1_1steel.html#aa0c2d29950926ae579adf6337fbea64b',1,'mlx::steel::operator*()'],['../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_18',['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_19',['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'],['../namespacemlx_1_1steel.html#a12ff4f38aa8474bf76770c7b8e3e18cb',1,'mlx::steel::operator+()'],['../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)']]], + ['operator_2a_17',['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_2complex_8h.html#a681d4fb076973f58f7dac894ec62a385',1,'operator*(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8f06316063fc91747533105f256b55b5',1,'operator*(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7b3bce3f6f17089d87e13e91f580a581',1,'operator*(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a54ae7216b82c5cea362f6b83e1df3a9b',1,'operator*(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a852689073c17596de4fb545bc046b380',1,'operator*(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a168300bbd04d8e97c5e4218cb14ae378',1,'operator*(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6278bd2e0e2805090b33ef666bf7f6bb',1,'operator*(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aecf703522d9ce32dfeefe1e6e903db06',1,'operator*(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7cd44d27fa9a4f13df39894c34fdb348',1,'operator*(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee64dc1890abb6d1035361cb8c751f96',1,'operator*(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1a559ab88dbbb4fd2c7509d2c94e55b',1,'operator*(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a495ae2d9be5d97c4c6448fc4e50a03e1',1,'operator*(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a87ab4b7a502430da664ccb8abd383058',1,'operator*(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5f997839cf49c24ab594a0dff486a7bc',1,'operator*(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aa0c2d29950926ae579adf6337fbea64b',1,'mlx::steel::operator*()'],['../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_18',['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_2metal__3__0_2bf16_8h.html#a7232b0a0e193b3c6172d6fc2578bf419',1,'operator*=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ade65ebca11e38d56408c512df89b99f4',1,'operator*=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af4348ce3425dd99d069e8fdf06e25a3c',1,'operator*=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2c3c5f793b3d957d7295d7f1faabebee',1,'operator*=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac66657077d55e94197b52b63acb50b7d',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a383165ea838cc3feeee4d9cf54aa77cc',1,'operator*=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab706af260b61f735b28464877d02137c',1,'operator*=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a979374b1dd4e0eaf602326fa901336d1',1,'operator*=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac815eec2c1b15a47b1c6ea6790e77d24',1,'operator*=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8110fae7bcc34a0de5927546b24aa935',1,'operator*=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae4acef3e7ae7dfe359422503f894e885',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc268cdbc30500f3009f5de2b2f0f67a',1,'operator*=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a81f65b04a87a25c7eb1a751d1be9fa55',1,'operator*=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08c1f916302eb9d48c93f8b7260538fe',1,'operator*=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc8e82b8f593b12c6d405e2250ab0f62',1,'operator*=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4611728172afea51860a77fdb06cafa0',1,'operator*=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0b8736e2ae24758b6e24ea72668df5b4',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad920df9579603f0b0ee2689eba330617',1,'operator*=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae97ab6c3ddcc2754b24f86319a5398be',1,'operator*=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3ff4ff59f411010ac8502cfabda4bd6f',1,'operator*=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abd3d82e2dec1847e97eb8fc3bab2985a',1,'operator*=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a738078eb7d5ff94ff48156a555d763a5',1,'operator*=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a435f2f4256aadb1b57fd62bb7f733cf7',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0e4377b120d6305335d296e031ee5b30',1,'operator*=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a917354f77eac26189da8a2f610a00074',1,'operator*=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af725f935bfa0405e5ff17ede3ac47283',1,'operator*=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7c56980c234a04260b8b19298085e526',1,'operator*=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab840ff9de0cdd0e9afffb8baa2a850a3',1,'operator*=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a73416a7415f3fe31525e33419e5e8aab',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a16978f4b16d954ef4d4cf0f32f6c0b94',1,'operator*=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a99aa4cc110d1c7aa3b4c8c5cbf9235b7',1,'operator*=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2179abbc91ce8763e96e39e1917bfa6e',1,'operator*=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab070ea4676d10a10ff3e9379a4068a57',1,'operator*=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0197e039d4c65bf49649a6f250c2d436',1,'operator*=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad3565cc6fd1e088d052b1108aa065851',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a711693988c437c2fb4d7da505982fe21',1,'operator*=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeff4c28986f98c23de1df17043edb0f5',1,'operator*=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7dbf0c75df4817cb4ef8b60c417a89d0',1,'operator*=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a323a80492cd17a49e2c3dd18f8c8b5cc',1,'operator*=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adb465776d3868bda0525d632ffc4d129',1,'operator*=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a12a98d71d670b409b8065e0d61672d55',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5d00eb2ec2b0e15b2753d100694c45ae',1,'operator*=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1a2a683ff40490226eb1371fb905023d',1,'operator*=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4126fb7ed5bbb27a2332c543cf56a337',1,'operator*=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab092d9790ef20fc0386707530aee89db',1,'operator*=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abff1fd2439e31e6e64a3d2fdee3c7821',1,'operator*=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a625dcb133f1f953f263e6200399866c6',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08b6071245513e1726ec68e3b63edc53',1,'operator*=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a13aa79165ec87710e977f33fe0361e91',1,'operator*=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3796dcf819adb1ef8152f57ba63ff6b1',1,'operator*=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_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_19',['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_2complex_8h.html#ad6af5c6c5ed4898b49758618e5aee189',1,'operator+(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a09c1a797eb7f43742578680899932f50',1,'operator+(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a551b970f73bb4a3b287653021d000b60',1,'operator+(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a43a225e7e548bb041f3a5d844faaf0da',1,'operator+(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8b6c3fd9d068a2159084359df8b9b449',1,'operator+(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0a5bfe15d95ba540795f4c25ebfa4f07',1,'operator+(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa415ce182fe7582d885fe633fc3527ce',1,'operator+(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a62f891b7dbba0000749cf338f594bedb',1,'operator+(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab43932322f81bf322aa1b0deeee9a987',1,'operator+(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acd15d46ea5827a2a39898ccbb8352eb8',1,'operator+(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a006763fae6e0577fc168ec9446f0f747',1,'operator+(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a12a47e8ac0be788edff57ae0a96d7830',1,'operator+(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af87dfa2122e9c76042dc41fb7f338a87',1,'operator+(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af2737d09c887ee8cd43fdeabceddbe82',1,'operator+(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#a12ff4f38aa8474bf76770c7b8e3e18cb',1,'mlx::steel::operator+()'],['../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)']]], ['operator_2b_2b_20',['operator++',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a3efe69356a84d0d4438f033992fcbd9d',1,'mlx::core::array::ArrayIterator']]], - ['operator_2b_3d_21',['operator+=',['../structpocketfft_1_1detail_1_1cmplx.html#ad4e69dcd89bdb7764c9c5807168f911e',1,'pocketfft::detail::cmplx::operator+=(const cmplx &other)'],['../structpocketfft_1_1detail_1_1cmplx.html#affa618d8850a7c232793b7c61db6d184',1,'pocketfft::detail::cmplx::operator+=(const cmplx< T2 > &other)'],['../backend_2metal_2kernels_2bf16_8h.html#ab04f480aea9fbba0895068c7558dd400',1,'operator+=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a251780ac4592cc2b1a543e417ff57770',1,'operator+=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a24381d991c2d570aa953694f396a69b5',1,'operator+=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7595740d4cc12924905d6bd1b99ee4da',1,'operator+=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac1498acb8c3623b5f412f70ab6a6528b',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abce5ab327110c164f054b43ed47f79a0',1,'operator+=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae0c70198e236ffe1a98f79987c686419',1,'operator+=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a13b3338935440ae51ecc4a356093efc5',1,'operator+=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5a0cb8544b4ebd2906ba8e7f2868e8de',1,'operator+=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7b134429ea0c8493800ff8b465410f9c',1,'operator+=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4154f90ab7857ca856f9e15fe1bf5acf',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab9ae6a51e2027b02cac9966e05f3ba68',1,'operator+=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab93ce536eb7998bee00de4af868e31a9',1,'operator+=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad0ae9e2b4874f991a2c853e1c1fe735d',1,'operator+=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a194a6670cc25ade35a24b566f31af785',1,'operator+=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3d0d689516c99003659c5d026847bd2e',1,'operator+=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a007f58508b98bb79e5c323ed0dec89b6',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa7198e580e2a83c1fd01a4b6fdf86a80',1,'operator+=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a15573fefd880adefbba079b1c1bd8082',1,'operator+=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a104cf94cb9e359d1b6ef92ced2ce0c27',1,'operator+=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa04cfcb52191fd23205a1a3572b46ae0',1,'operator+=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad684bc2ae1a2a627cd3e4a4c641e2d77',1,'operator+=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad1e28448e35f4934075b397c34ba3d66',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8ad16afd7f1711de83c0cec5af868f76',1,'operator+=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac45e9ca0c7155caebe3d0f7261518077',1,'operator+=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3c62ac679d6aa515144d40ebafe4a188',1,'operator+=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9ff5ab3aef1057fa083b53a65c8aba03',1,'operator+=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae74bb0a3c12cd1a23f3d29ce307d6fb1',1,'operator+=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac188bd19f236b098d603b0d8acd08921',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aef9fa600d107b509f2e3df7d6b080e01',1,'operator+=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af5713afb3a62967a02c3c20661951ee4',1,'operator+=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7f1b84352a3ed6171444a43da1fc7e92',1,'operator+=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af1983edd26245e6e51c6e47354095e32',1,'operator+=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8cd55d1a579540eb450e12a8a8a950be',1,'operator+=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a588ef0f7e03f306758524d378278976f',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a74751abec7086f85f4f26ced44f1ca1f',1,'operator+=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4dd3cf0e5aa116ff330352a50c18cde7',1,'operator+=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afb9a0e18c0e40c77e6143fb7d84ebfba',1,'operator+=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adf0cfd9a608a6fb3d57933e32e7d81d2',1,'operator+=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4bd92db6c8b9b5dc96332c7ae3eff8c7',1,'operator+=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5d628a5bc4fa755610392f47a523a1f1',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7c790442f77f2437b482c4a55e224fc3',1,'operator+=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a77bab4481b41be50297b257e95058706',1,'operator+=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7816a97d16b1d2f8a90227bb1da2f6ac',1,'operator+=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac244d140c6149726ea44174d3e836ca3',1,'operator+=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af802541c4c65ee4442acd495de4d27fe',1,'operator+=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac06eb2fea47a09a8a8abdaa1aa9b4603',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5263b2463fecdc97f9521d00bffea059',1,'operator+=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a24ca436ab299a710263d65302532dd3b',1,'operator+=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aee1bdf0ab2e445293708b476e8cfde3b',1,'operator+=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a190e27077f0fba642a86f5c8f488bcc2',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a9f2c9d2f21fbf9fbbacd940c6967c9d1',1,'mlx::core::operator+=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a0b1b3c48afc0a785282e43435bba8418',1,'mlx::core::operator+=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a7b763db8194e6fcb1b87eab143dfa47a',1,'mlx::core::operator+=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a827167f6a1ae55428fd218ddd51ec3b6',1,'mlx::core::operator+=(float &lhs, _MLX_Float16 rhs)']]], - ['operator_2d_22',['operator-',['../structpocketfft_1_1detail_1_1cmplx.html#a460da5db36d1c72fb1ed3496fd3abde4',1,'pocketfft::detail::cmplx::operator-()'],['../backend_2metal_2kernels_2bf16_8h.html#a6aedc8d6d0980134ac69b96f22d9a855',1,'operator-(_MLX_BFloat16 x): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a333f67614dbf8027439a7e124052cb85',1,'operator-(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a891aa4bf46c20a26a55061736aba25f1',1,'operator-(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7ad7ff44a3200853711869f7a577d931',1,'operator-(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af69ef8f1d8ecae0e6f755bf1c46cf075',1,'operator-(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5bd875a54b79b2dcedf674807c3e53c5',1,'operator-(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab02f8646b47806e1d2038f248df03f06',1,'operator-(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab27b26182c7c6e08af37e6d511fd9253',1,'operator-(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5868c85c988ec3432cf86d7df40e464d',1,'operator-(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad03ef47e6cc7521bbfb45740dee20f88',1,'operator-(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab789f8a400512ff27e36b3373170f0c5',1,'operator-(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7f601b22ecc480132d82ad782e5363bf',1,'operator-(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a152366ab4e2ccc867e919af6c74ced91',1,'operator-(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a42bead8ef0beb9f3452128d64cd4df9d',1,'operator-(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#a226cfd54d49f02e35c5aab3139c7596b',1,'operator-(complex64_t x): complex.h'],['../backend_2metal_2kernels_2complex_8h.html#af5608264cf920688607059b4e8cd3117',1,'operator-(complex64_t a, complex64_t b): complex.h'],['../namespacemlx_1_1steel.html#aca8ef21c16984ccb329b3bd0c1e4be48',1,'mlx::steel::operator-()'],['../group__ops.html#gade2eea48989f4caaf36e89f7bd2a8816',1,'mlx::core::operator-(const array &a)'],['../group__ops.html#ga0c7f3cb36d4ca516c7a33142f88b9181',1,'mlx::core::operator-(const array &a, const array &b)'],['../group__ops.html#gae68d3d0691ba951501218e98439f3465',1,'mlx::core::operator-(T a, const array &b)'],['../group__ops.html#gaf5e5d882c51ad0a0ea315c274d5439b2',1,'mlx::core::operator-(const array &a, T b)'],['../namespacemlx_1_1core.html#a622ce842fe44e4b6a95e03242341b459',1,'mlx::core::operator-(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af32a99d930d49e9b178472d7a65531ab',1,'mlx::core::operator-(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a3555a2b31fc0925850d3240e85e03ec5',1,'mlx::core::operator-(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a46080889fd9e5c3f9916508e97dff5ad',1,'mlx::core::operator-(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a9ca27fd1e512c8ed126342e565da12ae',1,'mlx::core::operator-(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a3803f8d36558d32bb7dd6e580ea683b4',1,'mlx::core::operator-(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#af5d865528989ca66b3d357e5ce4e0300',1,'mlx::core::operator-(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#afb784b960f55aeb4edd7f567fa74d443',1,'mlx::core::operator-(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a29cbacf4b399c24728fb0808fad498f9',1,'mlx::core::operator-(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aececc0e451237aa6c0d1a2c3d828c86e',1,'mlx::core::operator-(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a383a26cc2689c98fd6c4435ade8dc669',1,'mlx::core::operator-(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad6311ef8df59bdfb212b5cf8169246b2',1,'mlx::core::operator-(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a23b7329bc1c93c8ac0a1f576565fefb0',1,'mlx::core::operator-(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad8d650bf63998abd716ee0ca28e1cbb9',1,'mlx::core::operator-(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a7339b33201254e9119d99d3a728ded72',1,'mlx::core::operator-(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a064318b7a16e5cb6d0a6407501b5c7dc',1,'mlx::core::operator-(_MLX_BFloat16 lhs)'],['../namespacemlx_1_1core.html#a7bae3ff296d9a60ff3c7e448f7fbc6bd',1,'mlx::core::operator-(const complex64_t &v)'],['../namespacemlx_1_1core.html#afb5069ecebdfd9d388c26f83df12c93c',1,'mlx::core::operator-(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a8d126e3f3fa9f8c1c1ae1b09f94df487',1,'mlx::core::operator-(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ad04f1ccd2cd7c487a2f2aaa055939f64',1,'mlx::core::operator-(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a15eb2ea76508ff823fa0591e811d0b7d',1,'mlx::core::operator-(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a96d9577db38d6809d022893e32feeda1',1,'mlx::core::operator-(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a5d9c02765c1672930757416411567bf2',1,'mlx::core::operator-(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a6105d3b5266666b7c6bb9469285a9ec3',1,'mlx::core::operator-(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a777aa772dfb205b25d26f3180d98a2f6',1,'mlx::core::operator-(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a085eb092f4ada47f8169de62886cff90',1,'mlx::core::operator-(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab25e5d211e2c8785b45c3a81a6282e2b',1,'mlx::core::operator-(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#abf5d09561a81b0f0b32d59d77e32e16f',1,'mlx::core::operator-(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4ce6867dbb4d1631d1870dac14022dbb',1,'mlx::core::operator-(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a8a049e646e0442064cfe9e202d7047c5',1,'mlx::core::operator-(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a78e2a1cfc65453185bcca13bd4f523cf',1,'mlx::core::operator-(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#af143cf68673e06390d4bb2ec2892bd22',1,'mlx::core::operator-(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a46d502dfe0b027955950d4e716c2eb26',1,'mlx::core::operator-(_MLX_Float16 lhs)'],['../namespacemlx_1_1core.html#a2631e78c6f0a602f6754ac577ec75f83',1,'mlx::core::operator-(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a73d79cbd75d543d0837b8a51bf103f9e',1,'mlx::core::operator-(bfloat16_t lhs, float16_t rhs)']]], - ['operator_2d_3d_23',['operator-=',['../structpocketfft_1_1detail_1_1cmplx.html#a12441ff423274bd1b54245933d69ad7e',1,'pocketfft::detail::cmplx::operator-=()'],['../backend_2metal_2kernels_2bf16_8h.html#ab225043bd02bb423930bc98aae9c2bca',1,'operator-=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac2f1e1f2365cfa531b1519aa9ff67695',1,'operator-=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a513501355a5912a1263fd8b10864142b',1,'operator-=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab4f4ecd62c3d8b3363d02019573dc9f1',1,'operator-=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a92d1348f201d78fcd474f75d5b23ef68',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3eefe9a7f5fb226335ea687012f32d5c',1,'operator-=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aef62c7e3e494b6a511a7833c0d942a60',1,'operator-=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad30726cc8b69fd300d33c2a46e123c28',1,'operator-=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8859b5b8dc241e4f58243c85d2630cc8',1,'operator-=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7003e1e5881e3d106257f22b6a3e59fe',1,'operator-=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3165e37d393be50c2cfa9ddcba153684',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a76f5bd895b7214cbc3cea3440992718a',1,'operator-=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7167343d90eb70e5a0d5fa9ec5398e94',1,'operator-=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9b31c363ebc93d592b6fa0e27b00335a',1,'operator-=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a967a1d7b5664f616e5b6f2d257367f0c',1,'operator-=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aff19193e1b2cee29a8737318e95cc74a',1,'operator-=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aede0cc4179507b739849948f1a2fed4b',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7e1a6056f9c96f3c89fe204dbf103be5',1,'operator-=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9d06cceea5c179bcc608452188bd7d6a',1,'operator-=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0aa9ffe056f49fda181bbacbd60556ea',1,'operator-=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ada5685d99c2d6708d1c4ef826d68e879',1,'operator-=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a726cecf778b8584b6f7c37db1b064576',1,'operator-=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3816a35f8468156d59c239256c12dcf3',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa332fae098e7c6dc23b98bc0026f1070',1,'operator-=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afb3cd302e0b78902c62111dce4494fe8',1,'operator-=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abb884888f14086cc674657677cb4b8bc',1,'operator-=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a38bb89f925eca4f9c042f6ee7a2c0193',1,'operator-=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac30c580713f354916088a7dc049ae4cd',1,'operator-=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a715c824ee8c87e0256114a85624d9949',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7bc91aaaf476a37063264d1d53d862cc',1,'operator-=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab155f418f15cabd86ff942c6f9472ddb',1,'operator-=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aaa66dc6d7b2c5efbfaa97ca9c7872bd8',1,'operator-=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a696978d9401e09200045b2d8aad045c2',1,'operator-=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae998d8f423a9fb73405cfbd4b836bc72',1,'operator-=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a279d09ab8542f1c1a8dc8173b65946b6',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a491dadfae957cd7cc0c36188d910f6f6',1,'operator-=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9a837c3b9c4e42f53d7cd1ed0d266e2f',1,'operator-=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acf7af2284269544064b68e807064bba4',1,'operator-=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a28d297705e29009197418546ef435393',1,'operator-=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a948579a4d9ba276523190b03b09578fb',1,'operator-=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5a4b98a0a11db5b77cf9168df37c8bc7',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a31a3d8f2ff8038f7e0d717845c039808',1,'operator-=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1dac193d9f1c8c0eb4473441895f8c58',1,'operator-=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad2817d53fdd4b112babfb6f0b38c8f39',1,'operator-=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa705d87cf4b78e9d7c6b07dd0c66cac6',1,'operator-=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a542affc376726840647a6e93acf2c1a7',1,'operator-=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#add18cfe4c0d38e95c6dff6bab3e7a932',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab1de7e7e7304ff3598925d2e69134764',1,'operator-=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0d3fb52437c677c5d0f1a3642384b15c',1,'operator-=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adda64cae388baac1f138b06dc8595237',1,'operator-=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af20874a61c6c3f4c3fd045a96e806644',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a8b8a55690df46d97fcfc2a60120783af',1,'mlx::core::operator-=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#ab03949b1f60fa035ce454a894cd73ae9',1,'mlx::core::operator-=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#adaf70bbfb3667df0d08fd3c99896e20a',1,'mlx::core::operator-=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a321c98e5a78621d3c9a3895f707f2f1c',1,'mlx::core::operator-=(float &lhs, _MLX_Float16 rhs)']]], - ['operator_2d_3e_24',['operator->',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#aac45ab0630ea32cf7d15c7ba3e229966',1,'mlx::core::metal::CommandEncoder']]], - ['operator_2f_25',['operator/',['../backend_2metal_2kernels_2bf16_8h.html#a9f16a44e1c9836ca57edc1d7b93b5d7c',1,'operator/(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aacaedf12f862c76457133336dd6fc446',1,'operator/(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a584a513596de20663dad951a5b81695e',1,'operator/(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad8f7b11669736fbd6ed2e28211d877d4',1,'operator/(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a59515695ebc48844345fa5120511aed1',1,'operator/(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8c8ac6736440fdca366ebdefe2a12b9f',1,'operator/(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad6859b04680d0d26d75fd6c4dd74ee24',1,'operator/(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4720cc79ab2b8e39952ea9ef20e51250',1,'operator/(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a72d10ec0e62949247da129eb3a83fb9b',1,'operator/(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad6399ba2b8708899739b4cdbb44add8d',1,'operator/(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a998b1ba877a606aedf722ab46b290403',1,'operator/(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa3277ae33976c70f7bd937ddff027b72',1,'operator/(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa708a970a200822c99c0489f389469fa',1,'operator/(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#ae6a708f67d6fd9b0962aa8877cec6d35',1,'operator/(complex64_t a, complex64_t b): complex.h'],['../namespacemlx_1_1steel.html#a6bde717aca2051499f73a3eee199bfdd',1,'mlx::steel::operator/()'],['../group__ops.html#gaeedf77f722b394429f1a7f6c367883bf',1,'mlx::core::operator/(const array &a, const array &b)'],['../group__ops.html#ga7366ec7f453be2a4dc449f0faa1bf554',1,'mlx::core::operator/(double a, const array &b)'],['../group__ops.html#gadfb324ae9b4feb2c7ea0ac6ade639f38',1,'mlx::core::operator/(const array &a, double b)'],['../namespacemlx_1_1core.html#a7573ac3b93ddecd69e9c88a26fc84ba9',1,'mlx::core::operator/(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a40e868dad70401d9aa9ee9c32235c315',1,'mlx::core::operator/(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a7587c28fbd2023b134e5fc12bb0dde23',1,'mlx::core::operator/(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a92cdd377c408becf4cf83c1ee9b7085d',1,'mlx::core::operator/(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aef89566301cb133d98c8e7bdd2b7bec6',1,'mlx::core::operator/(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a94e7b51185590492b46916685641276f',1,'mlx::core::operator/(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a04584788c08180835219d0ea1e2b97b1',1,'mlx::core::operator/(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad5af96e2ff09d207eb1e1980fe3e7c2d',1,'mlx::core::operator/(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ac2217bf760038cd011781158923149ed',1,'mlx::core::operator/(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aea414c04bddc4b9b609262e97398f1b4',1,'mlx::core::operator/(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a27fe23230cd082c0363b9451b731ce6b',1,'mlx::core::operator/(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abdd9bb8fb4411e5924f3eb7ef1bb52f8',1,'mlx::core::operator/(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a50bae338a7353f8b0ed3441071bb0cf6',1,'mlx::core::operator/(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aab26a3284dd3ac7d47c8b5b3a3290ce3',1,'mlx::core::operator/(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a749f48db01de38f259a0c6750a97fa77',1,'mlx::core::operator/(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a32a6a08a2a4652975b0a1bd1fcf3eafd',1,'mlx::core::operator/(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4b66fb38ddc5cc0c2489583d5c499602',1,'mlx::core::operator/(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a45726f1905b709cf8253e6efa046027b',1,'mlx::core::operator/(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#afd4170c1e364384f30e6bae341146fa6',1,'mlx::core::operator/(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aef85739d150b9d5609973da8a3f1086a',1,'mlx::core::operator/(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af52a941f8ed9b25eec91402c7b9e281f',1,'mlx::core::operator/(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a477cade78296bc85894170f62db68870',1,'mlx::core::operator/(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a22f5a2257e11423fc2fe18e2dce91590',1,'mlx::core::operator/(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a640d3574dfe6ad934c720ae8bdd78bfa',1,'mlx::core::operator/(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a6f65d8fd0cdddc96fc01f6af95804873',1,'mlx::core::operator/(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a517019d42d4e426b7b98e1c719bb47ce',1,'mlx::core::operator/(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a0beb7a223c542015a4eff4aed814a9dd',1,'mlx::core::operator/(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#abc9b1bd5018d46514bc19d23db2e5063',1,'mlx::core::operator/(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af22937df654ddbd6e398ef12764d18c0',1,'mlx::core::operator/(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a775aed5f49b530c57e71cbac81404d45',1,'mlx::core::operator/(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a97efcd96d6be666e5608034ae77289ef',1,'mlx::core::operator/(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a899851f85dbddd96f9d36319b82542a0',1,'mlx::core::operator/(bfloat16_t lhs, float16_t rhs)']]], - ['operator_2f_3d_26',['operator/=',['../backend_2metal_2kernels_2bf16_8h.html#a5aa3b8c68a2b58d41ea33eaabbf83095',1,'operator/=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a90a1c5130db515db48624d8587edbb91',1,'operator/=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a65f30a2dc199134e35bc7c5d431b2263',1,'operator/=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7172d84db640e6c49dff0d08dd64b53e',1,'operator/=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acf7cb9927bf09022088401923f2e1916',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a86b2a001cbec0d3a8d762a3c7ff47b0b',1,'operator/=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a744f72ba83522fe3cc2a49a007b42543',1,'operator/=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a77c678665b34df7652dcde053ca73185',1,'operator/=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae0614b6b199d8a65ae95d4621b118b82',1,'operator/=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa846fde89c7d2d18b18ef180a8a9c8a3',1,'operator/=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08e778be18e4a291c108fcc528b981d3',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a6b9e49ad9ea256d2d0220c0d81552602',1,'operator/=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab933bc3cdf9adfea10ab9dba5292c812',1,'operator/=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a25e7c5d2ecf3375756d59074f333858f',1,'operator/=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4ae4a80fde67eea9a0a37b2803946544',1,'operator/=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a912393b7208fa45bd1e87f30b218b68b',1,'operator/=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a18963246f2b640874bef6dca7049f64d',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0e2c2c2cb50b3a55ff213f18978aca35',1,'operator/=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a64f1136b17006f168ef837e17240814f',1,'operator/=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae46d75b8046d557452d74513f1106710',1,'operator/=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08d2460e259b9106d90d889481ad60d5',1,'operator/=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0f7fd418408806ef498745c6fdb2c062',1,'operator/=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac703495cb370b52526a5a2d36ae26038',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4ca11d43174baf0a729f93b35eabcbea',1,'operator/=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9f835a0a80c411580c97b65fdc5bdfd3',1,'operator/=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a17f47ec9cff60f8e1b3477a2793b7ac0',1,'operator/=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5be23e296bbed3a885586a6424b1666e',1,'operator/=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afba39221eb54e272aae79910b3cd7ef5',1,'operator/=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac057d95a2bf087575584aa6f9a2c6bf5',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab986ae2cec780a1f494b7b4468b7ba11',1,'operator/=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a44522c2304c6396bbe6b9d32000f4b6f',1,'operator/=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aef8e7e499ea9d432aa743d83c076f945',1,'operator/=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3a0a3edbf1ba2314551454059c3f422b',1,'operator/=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acb9f0aef9fbdfde8a4f46e33b0d6c52f',1,'operator/=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a303dfcc81ffd355f866f863d7d9f0fa5',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a359edd4bcb8776861ceb26a3005624c0',1,'operator/=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adc9f32cc6f40768df4285fba2e4783c7',1,'operator/=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae71f66d814a03f6377c9d86cf0a2b5d7',1,'operator/=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad0125b6baba3065a87a174ec27aa9a61',1,'operator/=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5cc74ad3e522d7104e6e2117751151ad',1,'operator/=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab3b594321fb42b0c2da99954d1e0976c',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4a0023e2fd08875156cd6ef747fbb5cd',1,'operator/=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4358ee606e66ba2081fcf94f9c3b5915',1,'operator/=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad1e7ef6f065695d4b1d017547b60ef62',1,'operator/=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a284dfc702f0f67b9c233b87162eeabdd',1,'operator/=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab8f211ea896fc5190004f3ad6ad8932f',1,'operator/=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7e1bcf3bc06cbcbc304c0cdf729802bc',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abbe42648a46092137b303ccd08f7df86',1,'operator/=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af1a12a1efb618a57da6dd41ae18cb53c',1,'operator/=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a94686039356dfa9aa45608a8b0562fdc',1,'operator/=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa251d6483d3b099d1b5311fbe6f0bce2',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a045ff27257cb6d8ab7a94771ba5a17e6',1,'mlx::core::operator/=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a58112951a56a0f9f8c90b60fe74f9508',1,'mlx::core::operator/=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae736defc89a04fbaf7627ad2695bb838',1,'mlx::core::operator/=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#ab1f260710251256ef737dd59be9e143c',1,'mlx::core::operator/=(float &lhs, _MLX_Float16 rhs)']]], - ['operator_3c_27',['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'],['../namespacemlx_1_1steel.html#adb5f24b57d98214fc215a06475f21412',1,'mlx::steel::operator<()'],['../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_28',['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_29',['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'],['../namespacemlx_1_1steel.html#a6cc3bab5e7f6e7c719c82afa90ad2827',1,'mlx::steel::operator<=()'],['../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_30',['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_31',['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_1steel.html#abcc797f27e87e857b41c1a8d33ee2c78',1,'mlx::steel::operator==()'],['../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_32',['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'],['../namespacemlx_1_1steel.html#a7512eadda6160e4c9d9e6aa4049fac20',1,'mlx::steel::operator>()'],['../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_33',['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'],['../namespacemlx_1_1steel.html#aa3c95c60cf69603705bb4636de547bcb',1,'mlx::steel::operator>=()'],['../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)']]], - ['operator_3e_3e_34',['operator>>',['../group__ops.html#ga498b61f7e8f056ae00297fa0dc17303a',1,'mlx::core']]], - ['operator_5b_5d_35',['operator[]',['../classpocketfft_1_1detail_1_1arr.html#aea0bd899b19e03f54dfd6c188727061a',1,'pocketfft::detail::arr::operator[](size_t idx)'],['../classpocketfft_1_1detail_1_1arr.html#a99c54f96bc79c7cdd8925c1663462842',1,'pocketfft::detail::arr::operator[](size_t idx) const'],['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a71b02f67c47b24adb296eafd2c7a3598',1,'pocketfft::detail::sincos_2pibyn::operator[]()'],['../classpocketfft_1_1detail_1_1cndarr.html#ae4852d1fe936a5d61832b507816c7054',1,'pocketfft::detail::cndarr::operator[]()'],['../classpocketfft_1_1detail_1_1ndarr.html#a2b2c4e205e8b5c32c9fe55dfd7b8c8d8',1,'pocketfft::detail::ndarr::operator[]()']]], - ['operator_5e_36',['operator^',['../group__ops.html#gac3a6fe18694e84b3d63458e9553ac181',1,'mlx::core::operator^(const array &a, const array &b)'],['../namespacemlx_1_1core.html#ae36ea40b8477bfa12d41aae8245225c9',1,'mlx::core::operator^(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a03fc96696f5c6d9411841889d05f4670',1,'mlx::core::operator^(_MLX_BFloat16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a55130edf926366db0d6207989e609b7c',1,'mlx::core::operator^(uint16_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0b75198f364d742a1c25dd13e398f2c2',1,'mlx::core::operator^(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7f205f1b10b23180a23bf2be4bb726b1',1,'mlx::core::operator^(_MLX_Float16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a9edfe65f3c6da583c7b109290ec94b22',1,'mlx::core::operator^(uint16_t lhs, _MLX_Float16 rhs)']]], - ['operator_5e_3d_37',['operator^=',['../namespacemlx_1_1core.html#a97cb7d3eac404a442e84656cefe7cfb4',1,'mlx::core::operator^=(_MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abcfd2d9615c96561fd44dfb9c341cf8e',1,'mlx::core::operator^=(_MLX_BFloat16 &lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#ae78083d766b9cf6f87cded341bbcd63e',1,'mlx::core::operator^=(_MLX_Float16 &lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#acf36c10779fbf1efbe1e6a7fd41176cd',1,'mlx::core::operator^=(_MLX_Float16 &lhs, uint16_t rhs)']]], - ['operator_7c_38',['operator|',['../group__ops.html#ga52392a2a98f09a80da8d338c4908bd02',1,'mlx::core::operator|(const array &a, const array &b)'],['../namespacemlx_1_1core.html#af84ed854132c1514dca5a524fdb7ed05',1,'mlx::core::operator|(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a7423aac70f9f2e3fb6a5c9a3fc96f703',1,'mlx::core::operator|(_MLX_BFloat16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a19805f505cb7ac72bfab66c339ea7900',1,'mlx::core::operator|(uint16_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a2d933573edf4ed305fddd8a0caef1ee8',1,'mlx::core::operator|(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#afab3d4eb1b36a276922879ce6e44b7f5',1,'mlx::core::operator|(_MLX_Float16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#ab132729fa6912d22a8e402057eb4ba12',1,'mlx::core::operator|(uint16_t lhs, _MLX_Float16 rhs)']]], - ['operator_7c_3d_39',['operator|=',['../namespacemlx_1_1core.html#a8e1d21375ae4b89b3cbea3a46d262abd',1,'mlx::core::operator|=(_MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a28d6c2f89e73b7b874dd1f67f853a96f',1,'mlx::core::operator|=(_MLX_BFloat16 &lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a2d8470b69cbbeefece08d3ffd46c0082',1,'mlx::core::operator|=(_MLX_Float16 &lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a359c6257097a304c00d41d64296ef4c9',1,'mlx::core::operator|=(_MLX_Float16 &lhs, uint16_t rhs)']]], - ['operator_7c_7c_40',['operator||',['../namespacemlx_1_1steel.html#a1bb3ac5061a04e407fc4cdcc9f6ea03f',1,'mlx::steel::operator||()'],['../group__ops.html#ga27af56a98270d4d76d139f0f9171b83a',1,'mlx::core::operator||()']]], - ['out_5fof_5fbounds_41',['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_42',['outer',['../group__ops.html#ga866af24e10db2797e1c5a5986dbf6c0d',1,'mlx::core']]], - ['output_5fshapes_43',['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_44',['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_45',['overwrite_descriptor',['../classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387',1,'mlx::core::array']]] + ['operator_2b_3d_21',['operator+=',['../structpocketfft_1_1detail_1_1cmplx.html#ad4e69dcd89bdb7764c9c5807168f911e',1,'pocketfft::detail::cmplx::operator+=(const cmplx &other)'],['../structpocketfft_1_1detail_1_1cmplx.html#affa618d8850a7c232793b7c61db6d184',1,'pocketfft::detail::cmplx::operator+=(const cmplx< T2 > &other)'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab04f480aea9fbba0895068c7558dd400',1,'operator+=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a251780ac4592cc2b1a543e417ff57770',1,'operator+=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24381d991c2d570aa953694f396a69b5',1,'operator+=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7595740d4cc12924905d6bd1b99ee4da',1,'operator+=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac1498acb8c3623b5f412f70ab6a6528b',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abce5ab327110c164f054b43ed47f79a0',1,'operator+=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae0c70198e236ffe1a98f79987c686419',1,'operator+=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a13b3338935440ae51ecc4a356093efc5',1,'operator+=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a0cb8544b4ebd2906ba8e7f2868e8de',1,'operator+=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7b134429ea0c8493800ff8b465410f9c',1,'operator+=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4154f90ab7857ca856f9e15fe1bf5acf',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab9ae6a51e2027b02cac9966e05f3ba68',1,'operator+=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab93ce536eb7998bee00de4af868e31a9',1,'operator+=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad0ae9e2b4874f991a2c853e1c1fe735d',1,'operator+=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a194a6670cc25ade35a24b566f31af785',1,'operator+=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3d0d689516c99003659c5d026847bd2e',1,'operator+=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a007f58508b98bb79e5c323ed0dec89b6',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa7198e580e2a83c1fd01a4b6fdf86a80',1,'operator+=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a15573fefd880adefbba079b1c1bd8082',1,'operator+=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a104cf94cb9e359d1b6ef92ced2ce0c27',1,'operator+=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa04cfcb52191fd23205a1a3572b46ae0',1,'operator+=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad684bc2ae1a2a627cd3e4a4c641e2d77',1,'operator+=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1e28448e35f4934075b397c34ba3d66',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8ad16afd7f1711de83c0cec5af868f76',1,'operator+=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac45e9ca0c7155caebe3d0f7261518077',1,'operator+=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3c62ac679d6aa515144d40ebafe4a188',1,'operator+=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9ff5ab3aef1057fa083b53a65c8aba03',1,'operator+=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae74bb0a3c12cd1a23f3d29ce307d6fb1',1,'operator+=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac188bd19f236b098d603b0d8acd08921',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef9fa600d107b509f2e3df7d6b080e01',1,'operator+=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af5713afb3a62967a02c3c20661951ee4',1,'operator+=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7f1b84352a3ed6171444a43da1fc7e92',1,'operator+=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af1983edd26245e6e51c6e47354095e32',1,'operator+=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8cd55d1a579540eb450e12a8a8a950be',1,'operator+=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a588ef0f7e03f306758524d378278976f',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a74751abec7086f85f4f26ced44f1ca1f',1,'operator+=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4dd3cf0e5aa116ff330352a50c18cde7',1,'operator+=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afb9a0e18c0e40c77e6143fb7d84ebfba',1,'operator+=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adf0cfd9a608a6fb3d57933e32e7d81d2',1,'operator+=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4bd92db6c8b9b5dc96332c7ae3eff8c7',1,'operator+=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5d628a5bc4fa755610392f47a523a1f1',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7c790442f77f2437b482c4a55e224fc3',1,'operator+=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a77bab4481b41be50297b257e95058706',1,'operator+=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7816a97d16b1d2f8a90227bb1da2f6ac',1,'operator+=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac244d140c6149726ea44174d3e836ca3',1,'operator+=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af802541c4c65ee4442acd495de4d27fe',1,'operator+=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac06eb2fea47a09a8a8abdaa1aa9b4603',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5263b2463fecdc97f9521d00bffea059',1,'operator+=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24ca436ab299a710263d65302532dd3b',1,'operator+=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee1bdf0ab2e445293708b476e8cfde3b',1,'operator+=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a190e27077f0fba642a86f5c8f488bcc2',1,'operator+=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a9f2c9d2f21fbf9fbbacd940c6967c9d1',1,'mlx::core::operator+=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a0b1b3c48afc0a785282e43435bba8418',1,'mlx::core::operator+=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a7b763db8194e6fcb1b87eab143dfa47a',1,'mlx::core::operator+=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a827167f6a1ae55428fd218ddd51ec3b6',1,'mlx::core::operator+=(float &lhs, _MLX_Float16 rhs)']]], + ['operator_2d_22',['operator-',['../structpocketfft_1_1detail_1_1cmplx.html#a460da5db36d1c72fb1ed3496fd3abde4',1,'pocketfft::detail::cmplx::operator-()'],['../backend_2metal_2kernels_2complex_8h.html#a226cfd54d49f02e35c5aab3139c7596b',1,'operator-(complex64_t x): complex.h'],['../backend_2metal_2kernels_2complex_8h.html#af5608264cf920688607059b4e8cd3117',1,'operator-(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6aedc8d6d0980134ac69b96f22d9a855',1,'operator-(_MLX_BFloat16 x): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a333f67614dbf8027439a7e124052cb85',1,'operator-(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a891aa4bf46c20a26a55061736aba25f1',1,'operator-(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7ad7ff44a3200853711869f7a577d931',1,'operator-(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af69ef8f1d8ecae0e6f755bf1c46cf075',1,'operator-(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5bd875a54b79b2dcedf674807c3e53c5',1,'operator-(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab02f8646b47806e1d2038f248df03f06',1,'operator-(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab27b26182c7c6e08af37e6d511fd9253',1,'operator-(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5868c85c988ec3432cf86d7df40e464d',1,'operator-(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad03ef47e6cc7521bbfb45740dee20f88',1,'operator-(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab789f8a400512ff27e36b3373170f0c5',1,'operator-(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7f601b22ecc480132d82ad782e5363bf',1,'operator-(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a152366ab4e2ccc867e919af6c74ced91',1,'operator-(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a42bead8ef0beb9f3452128d64cd4df9d',1,'operator-(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aca8ef21c16984ccb329b3bd0c1e4be48',1,'mlx::steel::operator-()'],['../group__ops.html#gade2eea48989f4caaf36e89f7bd2a8816',1,'mlx::core::operator-(const array &a)'],['../group__ops.html#ga0c7f3cb36d4ca516c7a33142f88b9181',1,'mlx::core::operator-(const array &a, const array &b)'],['../group__ops.html#gae68d3d0691ba951501218e98439f3465',1,'mlx::core::operator-(T a, const array &b)'],['../group__ops.html#gaf5e5d882c51ad0a0ea315c274d5439b2',1,'mlx::core::operator-(const array &a, T b)'],['../namespacemlx_1_1core.html#a622ce842fe44e4b6a95e03242341b459',1,'mlx::core::operator-(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af32a99d930d49e9b178472d7a65531ab',1,'mlx::core::operator-(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a3555a2b31fc0925850d3240e85e03ec5',1,'mlx::core::operator-(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a46080889fd9e5c3f9916508e97dff5ad',1,'mlx::core::operator-(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a9ca27fd1e512c8ed126342e565da12ae',1,'mlx::core::operator-(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a3803f8d36558d32bb7dd6e580ea683b4',1,'mlx::core::operator-(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#af5d865528989ca66b3d357e5ce4e0300',1,'mlx::core::operator-(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#afb784b960f55aeb4edd7f567fa74d443',1,'mlx::core::operator-(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a29cbacf4b399c24728fb0808fad498f9',1,'mlx::core::operator-(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aececc0e451237aa6c0d1a2c3d828c86e',1,'mlx::core::operator-(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a383a26cc2689c98fd6c4435ade8dc669',1,'mlx::core::operator-(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad6311ef8df59bdfb212b5cf8169246b2',1,'mlx::core::operator-(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a23b7329bc1c93c8ac0a1f576565fefb0',1,'mlx::core::operator-(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad8d650bf63998abd716ee0ca28e1cbb9',1,'mlx::core::operator-(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a7339b33201254e9119d99d3a728ded72',1,'mlx::core::operator-(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a064318b7a16e5cb6d0a6407501b5c7dc',1,'mlx::core::operator-(_MLX_BFloat16 lhs)'],['../namespacemlx_1_1core.html#a7bae3ff296d9a60ff3c7e448f7fbc6bd',1,'mlx::core::operator-(const complex64_t &v)'],['../namespacemlx_1_1core.html#afb5069ecebdfd9d388c26f83df12c93c',1,'mlx::core::operator-(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a8d126e3f3fa9f8c1c1ae1b09f94df487',1,'mlx::core::operator-(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ad04f1ccd2cd7c487a2f2aaa055939f64',1,'mlx::core::operator-(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a15eb2ea76508ff823fa0591e811d0b7d',1,'mlx::core::operator-(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a96d9577db38d6809d022893e32feeda1',1,'mlx::core::operator-(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a5d9c02765c1672930757416411567bf2',1,'mlx::core::operator-(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a6105d3b5266666b7c6bb9469285a9ec3',1,'mlx::core::operator-(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a777aa772dfb205b25d26f3180d98a2f6',1,'mlx::core::operator-(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a085eb092f4ada47f8169de62886cff90',1,'mlx::core::operator-(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab25e5d211e2c8785b45c3a81a6282e2b',1,'mlx::core::operator-(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#abf5d09561a81b0f0b32d59d77e32e16f',1,'mlx::core::operator-(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4ce6867dbb4d1631d1870dac14022dbb',1,'mlx::core::operator-(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a8a049e646e0442064cfe9e202d7047c5',1,'mlx::core::operator-(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a78e2a1cfc65453185bcca13bd4f523cf',1,'mlx::core::operator-(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#af143cf68673e06390d4bb2ec2892bd22',1,'mlx::core::operator-(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a46d502dfe0b027955950d4e716c2eb26',1,'mlx::core::operator-(_MLX_Float16 lhs)'],['../namespacemlx_1_1core.html#a2631e78c6f0a602f6754ac577ec75f83',1,'mlx::core::operator-(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a73d79cbd75d543d0837b8a51bf103f9e',1,'mlx::core::operator-(bfloat16_t lhs, float16_t rhs)']]], + ['operator_2d_3d_23',['operator-=',['../structpocketfft_1_1detail_1_1cmplx.html#a12441ff423274bd1b54245933d69ad7e',1,'pocketfft::detail::cmplx::operator-=()'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab225043bd02bb423930bc98aae9c2bca',1,'operator-=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac2f1e1f2365cfa531b1519aa9ff67695',1,'operator-=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a513501355a5912a1263fd8b10864142b',1,'operator-=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab4f4ecd62c3d8b3363d02019573dc9f1',1,'operator-=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a92d1348f201d78fcd474f75d5b23ef68',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3eefe9a7f5fb226335ea687012f32d5c',1,'operator-=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef62c7e3e494b6a511a7833c0d942a60',1,'operator-=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad30726cc8b69fd300d33c2a46e123c28',1,'operator-=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8859b5b8dc241e4f58243c85d2630cc8',1,'operator-=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7003e1e5881e3d106257f22b6a3e59fe',1,'operator-=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3165e37d393be50c2cfa9ddcba153684',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a76f5bd895b7214cbc3cea3440992718a',1,'operator-=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7167343d90eb70e5a0d5fa9ec5398e94',1,'operator-=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9b31c363ebc93d592b6fa0e27b00335a',1,'operator-=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a967a1d7b5664f616e5b6f2d257367f0c',1,'operator-=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aff19193e1b2cee29a8737318e95cc74a',1,'operator-=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aede0cc4179507b739849948f1a2fed4b',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e1a6056f9c96f3c89fe204dbf103be5',1,'operator-=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9d06cceea5c179bcc608452188bd7d6a',1,'operator-=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0aa9ffe056f49fda181bbacbd60556ea',1,'operator-=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ada5685d99c2d6708d1c4ef826d68e879',1,'operator-=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a726cecf778b8584b6f7c37db1b064576',1,'operator-=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3816a35f8468156d59c239256c12dcf3',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa332fae098e7c6dc23b98bc0026f1070',1,'operator-=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afb3cd302e0b78902c62111dce4494fe8',1,'operator-=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abb884888f14086cc674657677cb4b8bc',1,'operator-=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a38bb89f925eca4f9c042f6ee7a2c0193',1,'operator-=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac30c580713f354916088a7dc049ae4cd',1,'operator-=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a715c824ee8c87e0256114a85624d9949',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7bc91aaaf476a37063264d1d53d862cc',1,'operator-=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab155f418f15cabd86ff942c6f9472ddb',1,'operator-=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aaa66dc6d7b2c5efbfaa97ca9c7872bd8',1,'operator-=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a696978d9401e09200045b2d8aad045c2',1,'operator-=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae998d8f423a9fb73405cfbd4b836bc72',1,'operator-=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a279d09ab8542f1c1a8dc8173b65946b6',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a491dadfae957cd7cc0c36188d910f6f6',1,'operator-=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9a837c3b9c4e42f53d7cd1ed0d266e2f',1,'operator-=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acf7af2284269544064b68e807064bba4',1,'operator-=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a28d297705e29009197418546ef435393',1,'operator-=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a948579a4d9ba276523190b03b09578fb',1,'operator-=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a4b98a0a11db5b77cf9168df37c8bc7',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31a3d8f2ff8038f7e0d717845c039808',1,'operator-=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1dac193d9f1c8c0eb4473441895f8c58',1,'operator-=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad2817d53fdd4b112babfb6f0b38c8f39',1,'operator-=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa705d87cf4b78e9d7c6b07dd0c66cac6',1,'operator-=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a542affc376726840647a6e93acf2c1a7',1,'operator-=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#add18cfe4c0d38e95c6dff6bab3e7a932',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab1de7e7e7304ff3598925d2e69134764',1,'operator-=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0d3fb52437c677c5d0f1a3642384b15c',1,'operator-=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adda64cae388baac1f138b06dc8595237',1,'operator-=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af20874a61c6c3f4c3fd045a96e806644',1,'operator-=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a8b8a55690df46d97fcfc2a60120783af',1,'mlx::core::operator-=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#ab03949b1f60fa035ce454a894cd73ae9',1,'mlx::core::operator-=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#adaf70bbfb3667df0d08fd3c99896e20a',1,'mlx::core::operator-=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a321c98e5a78621d3c9a3895f707f2f1c',1,'mlx::core::operator-=(float &lhs, _MLX_Float16 rhs)']]], + ['operator_2f_24',['operator/',['../backend_2metal_2kernels_2complex_8h.html#ae6a708f67d6fd9b0962aa8877cec6d35',1,'operator/(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9f16a44e1c9836ca57edc1d7b93b5d7c',1,'operator/(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aacaedf12f862c76457133336dd6fc446',1,'operator/(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a584a513596de20663dad951a5b81695e',1,'operator/(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad8f7b11669736fbd6ed2e28211d877d4',1,'operator/(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a59515695ebc48844345fa5120511aed1',1,'operator/(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8c8ac6736440fdca366ebdefe2a12b9f',1,'operator/(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad6859b04680d0d26d75fd6c4dd74ee24',1,'operator/(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4720cc79ab2b8e39952ea9ef20e51250',1,'operator/(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a72d10ec0e62949247da129eb3a83fb9b',1,'operator/(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad6399ba2b8708899739b4cdbb44add8d',1,'operator/(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a998b1ba877a606aedf722ab46b290403',1,'operator/(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa3277ae33976c70f7bd937ddff027b72',1,'operator/(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa708a970a200822c99c0489f389469fa',1,'operator/(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#a6bde717aca2051499f73a3eee199bfdd',1,'mlx::steel::operator/()'],['../group__ops.html#gaeedf77f722b394429f1a7f6c367883bf',1,'mlx::core::operator/(const array &a, const array &b)'],['../group__ops.html#ga7366ec7f453be2a4dc449f0faa1bf554',1,'mlx::core::operator/(double a, const array &b)'],['../group__ops.html#gadfb324ae9b4feb2c7ea0ac6ade639f38',1,'mlx::core::operator/(const array &a, double b)'],['../namespacemlx_1_1core.html#a7573ac3b93ddecd69e9c88a26fc84ba9',1,'mlx::core::operator/(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a40e868dad70401d9aa9ee9c32235c315',1,'mlx::core::operator/(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a7587c28fbd2023b134e5fc12bb0dde23',1,'mlx::core::operator/(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a92cdd377c408becf4cf83c1ee9b7085d',1,'mlx::core::operator/(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aef89566301cb133d98c8e7bdd2b7bec6',1,'mlx::core::operator/(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a94e7b51185590492b46916685641276f',1,'mlx::core::operator/(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a04584788c08180835219d0ea1e2b97b1',1,'mlx::core::operator/(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad5af96e2ff09d207eb1e1980fe3e7c2d',1,'mlx::core::operator/(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ac2217bf760038cd011781158923149ed',1,'mlx::core::operator/(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aea414c04bddc4b9b609262e97398f1b4',1,'mlx::core::operator/(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a27fe23230cd082c0363b9451b731ce6b',1,'mlx::core::operator/(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abdd9bb8fb4411e5924f3eb7ef1bb52f8',1,'mlx::core::operator/(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a50bae338a7353f8b0ed3441071bb0cf6',1,'mlx::core::operator/(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aab26a3284dd3ac7d47c8b5b3a3290ce3',1,'mlx::core::operator/(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a749f48db01de38f259a0c6750a97fa77',1,'mlx::core::operator/(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a32a6a08a2a4652975b0a1bd1fcf3eafd',1,'mlx::core::operator/(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4b66fb38ddc5cc0c2489583d5c499602',1,'mlx::core::operator/(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a45726f1905b709cf8253e6efa046027b',1,'mlx::core::operator/(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#afd4170c1e364384f30e6bae341146fa6',1,'mlx::core::operator/(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aef85739d150b9d5609973da8a3f1086a',1,'mlx::core::operator/(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af52a941f8ed9b25eec91402c7b9e281f',1,'mlx::core::operator/(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a477cade78296bc85894170f62db68870',1,'mlx::core::operator/(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a22f5a2257e11423fc2fe18e2dce91590',1,'mlx::core::operator/(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a640d3574dfe6ad934c720ae8bdd78bfa',1,'mlx::core::operator/(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a6f65d8fd0cdddc96fc01f6af95804873',1,'mlx::core::operator/(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a517019d42d4e426b7b98e1c719bb47ce',1,'mlx::core::operator/(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a0beb7a223c542015a4eff4aed814a9dd',1,'mlx::core::operator/(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#abc9b1bd5018d46514bc19d23db2e5063',1,'mlx::core::operator/(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af22937df654ddbd6e398ef12764d18c0',1,'mlx::core::operator/(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a775aed5f49b530c57e71cbac81404d45',1,'mlx::core::operator/(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a97efcd96d6be666e5608034ae77289ef',1,'mlx::core::operator/(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a899851f85dbddd96f9d36319b82542a0',1,'mlx::core::operator/(bfloat16_t lhs, float16_t rhs)']]], + ['operator_2f_3d_25',['operator/=',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5aa3b8c68a2b58d41ea33eaabbf83095',1,'operator/=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a90a1c5130db515db48624d8587edbb91',1,'operator/=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a65f30a2dc199134e35bc7c5d431b2263',1,'operator/=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7172d84db640e6c49dff0d08dd64b53e',1,'operator/=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acf7cb9927bf09022088401923f2e1916',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a86b2a001cbec0d3a8d762a3c7ff47b0b',1,'operator/=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a744f72ba83522fe3cc2a49a007b42543',1,'operator/=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a77c678665b34df7652dcde053ca73185',1,'operator/=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae0614b6b199d8a65ae95d4621b118b82',1,'operator/=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa846fde89c7d2d18b18ef180a8a9c8a3',1,'operator/=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08e778be18e4a291c108fcc528b981d3',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6b9e49ad9ea256d2d0220c0d81552602',1,'operator/=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab933bc3cdf9adfea10ab9dba5292c812',1,'operator/=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a25e7c5d2ecf3375756d59074f333858f',1,'operator/=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ae4a80fde67eea9a0a37b2803946544',1,'operator/=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a912393b7208fa45bd1e87f30b218b68b',1,'operator/=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a18963246f2b640874bef6dca7049f64d',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0e2c2c2cb50b3a55ff213f18978aca35',1,'operator/=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a64f1136b17006f168ef837e17240814f',1,'operator/=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae46d75b8046d557452d74513f1106710',1,'operator/=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08d2460e259b9106d90d889481ad60d5',1,'operator/=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f7fd418408806ef498745c6fdb2c062',1,'operator/=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac703495cb370b52526a5a2d36ae26038',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ca11d43174baf0a729f93b35eabcbea',1,'operator/=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9f835a0a80c411580c97b65fdc5bdfd3',1,'operator/=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a17f47ec9cff60f8e1b3477a2793b7ac0',1,'operator/=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5be23e296bbed3a885586a6424b1666e',1,'operator/=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afba39221eb54e272aae79910b3cd7ef5',1,'operator/=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac057d95a2bf087575584aa6f9a2c6bf5',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab986ae2cec780a1f494b7b4468b7ba11',1,'operator/=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a44522c2304c6396bbe6b9d32000f4b6f',1,'operator/=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef8e7e499ea9d432aa743d83c076f945',1,'operator/=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3a0a3edbf1ba2314551454059c3f422b',1,'operator/=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acb9f0aef9fbdfde8a4f46e33b0d6c52f',1,'operator/=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a303dfcc81ffd355f866f863d7d9f0fa5',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a359edd4bcb8776861ceb26a3005624c0',1,'operator/=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc9f32cc6f40768df4285fba2e4783c7',1,'operator/=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae71f66d814a03f6377c9d86cf0a2b5d7',1,'operator/=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad0125b6baba3065a87a174ec27aa9a61',1,'operator/=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5cc74ad3e522d7104e6e2117751151ad',1,'operator/=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab3b594321fb42b0c2da99954d1e0976c',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4a0023e2fd08875156cd6ef747fbb5cd',1,'operator/=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4358ee606e66ba2081fcf94f9c3b5915',1,'operator/=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1e7ef6f065695d4b1d017547b60ef62',1,'operator/=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a284dfc702f0f67b9c233b87162eeabdd',1,'operator/=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab8f211ea896fc5190004f3ad6ad8932f',1,'operator/=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e1bcf3bc06cbcbc304c0cdf729802bc',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abbe42648a46092137b303ccd08f7df86',1,'operator/=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af1a12a1efb618a57da6dd41ae18cb53c',1,'operator/=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a94686039356dfa9aa45608a8b0562fdc',1,'operator/=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa251d6483d3b099d1b5311fbe6f0bce2',1,'operator/=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a045ff27257cb6d8ab7a94771ba5a17e6',1,'mlx::core::operator/=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a58112951a56a0f9f8c90b60fe74f9508',1,'mlx::core::operator/=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae736defc89a04fbaf7627ad2695bb838',1,'mlx::core::operator/=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#ab1f260710251256ef737dd59be9e143c',1,'mlx::core::operator/=(float &lhs, _MLX_Float16 rhs)']]], + ['operator_3c_26',['operator<',['../backend_2metal_2kernels_2complex_8h.html#a67674e32596a9dae2258bb8e0e6a2058',1,'operator<(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9ef6a57b7185e9ca49e255fec1a44e25',1,'operator<(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aab02c65bc38ea66335b2192ead4095a8',1,'operator<(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae91686513e284bcc9635833744bbdda1',1,'operator<(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2486f3b5de85b0d57f458d8f21f82b42',1,'operator<(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a435a2aec4c777b4b184ff5d24992e8a1',1,'operator<(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abdd04257e6a73883b5f56f1186d0e906',1,'operator<(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a69984aaa05ae1d4fccccf7f57e8ecb4a',1,'operator<(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a501cc01d5bf15d9f03aa28545f9624ea',1,'operator<(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1b029e4ca72125a5f9471f582c819705',1,'operator<(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0736a76f56578d26ba1422dc8b744a18',1,'operator<(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24b1fa8998c892f90f8dde7c34fb10a5',1,'operator<(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af80ff2020ec2c4b406c5fdae3fe55e63',1,'operator<(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac03f6eefb836373d37dc280b0d813d78',1,'operator<(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#adb5f24b57d98214fc215a06475f21412',1,'mlx::steel::operator<()'],['../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_2complex_8h.html#aee04c9a63c6716a99a027418354debb0',1,'operator<=(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af469c58cffeab488c681f4b33f02cd05',1,'operator<=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a81eae168dfafd299c2b94e3e8558cf',1,'operator<=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f486bf02c6ad5b9b6a96d3450f03e47',1,'operator<=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acba9efe192d22b7781b4622103c7a944',1,'operator<=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aff100489cc40ad276c2d5d67a9df67db',1,'operator<=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7eac96f64ca42991caf819c8e8c8d2bc',1,'operator<=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a88c11cd37600de5480570da3d2ae5732',1,'operator<=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08c7d12a0d16565fbf052dba2db8b22d',1,'operator<=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2b9de9624c0a507b4ead85f898ad9daf',1,'operator<=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a28f8d21c5eef047c701cf690ce9c2ef0',1,'operator<=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a14b56c687053ee2432398a25663c068f',1,'operator<=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f360806708b95a3be400af0b8871b57',1,'operator<=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a80d288f22cadfdf5e904410349e616a1',1,'operator<=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#a6cc3bab5e7f6e7c719c82afa90ad2827',1,'mlx::steel::operator<=()'],['../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_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_2complex_8h.html#abfc19f03616441245dfc7726b278f190',1,'operator==(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a49a13b06a325ed3cca4004b6a0cde065',1,'operator==(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0aa3bfcfab53700488e5f386e6de60d5',1,'operator==(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3936148781ab1c4f33f58d12c116f370',1,'operator==(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae753526b669fba27771089dc809abd66',1,'operator==(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a05a4f197a71d0f16879032f44492bb79',1,'operator==(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae86f5917847b1ec9f313996250f2e0be',1,'operator==(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aab74ec4d33a64b92b908717d500f1ecf',1,'operator==(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac30a2c1fa6f172af903fdeb6a8632606',1,'operator==(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab4e9ad547aa23daa351075e0ecc58fa2',1,'operator==(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa5fa1a8f2b39c3508fe38205469756d1',1,'operator==(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeadc1f36c6bdc219294ce9341d80afa5',1,'operator==(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3ae2091ada1e39e857fbc53c97bdb79f',1,'operator==(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac7b4d295f3c7b1e09964f24f306422da',1,'operator==(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#abcc797f27e87e857b41c1a8d33ee2c78',1,'mlx::steel::operator==()'],['../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_2complex_8h.html#a032a8d3eec2384c9f03066f7fd945995',1,'operator>(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae394c0a10e47d1d047854a888402eb57',1,'operator>(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab9cd098786d2f4c855c42e4a6f30ab3e',1,'operator>(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a55600f3b9859e2891e0e0b5690867b72',1,'operator>(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afd7cdb8ed2a9820efe9cf322c06f188c',1,'operator>(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31bbdbe0b62b90a4d6ea4bb0a7db586b',1,'operator>(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a68125e66f74eaffe5ea9267638ce870d',1,'operator>(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac89eb6b29edad8cca63727ab97171c29',1,'operator>(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a74e477567c9477c2cf0684f81ef4498f',1,'operator>(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2d37130b6fd79b425f5ba92b65e36bed',1,'operator>(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a41d55d167e9dc63bf29d15e0ff004869',1,'operator>(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa95f9ebfdab3c5f524775651362ce914',1,'operator>(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2826bd301bb5393473ccd363f2052c0d',1,'operator>(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a62a512d0edd894759c69f724b970fbdb',1,'operator>(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#a7512eadda6160e4c9d9e6aa4049fac20',1,'mlx::steel::operator>()'],['../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_2complex_8h.html#aafbd686c180398c98b33d7643f893a46',1,'operator>=(complex64_t a, complex64_t b): complex.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a430dd11fbf4c6f39bc1506ab43b2341f',1,'operator>=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a64f6787a96386246f83a8981d274150e',1,'operator>=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1a788f82212afad30e4c2ee40f1c313c',1,'operator>=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae88617c4a012c5dc12781a349a28c886',1,'operator>=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a467a88531150a4d9d30fce07c49c126e',1,'operator>=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9e21c5ea9dd724dc2ca8c54ad908f09c',1,'operator>=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2f6286d222e2176bcbdc824c5d598100',1,'operator>=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abec53064aa96265385ecc57de5fbc74c',1,'operator>=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac766839f8f9e4863e8e18418c342c875',1,'operator>=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2807fa6862b0f9689c81199b1e695ed8',1,'operator>=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee3ae0d0d1f941463b06eca0bf041b2b',1,'operator>=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a523eda93c809733368e2b45382d2add6',1,'operator>=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1f4e90909ac1c7280f4c7d1977c55fb7',1,'operator>=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1steel.html#aa3c95c60cf69603705bb4636de547bcb',1,'mlx::steel::operator>=()'],['../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)']]], + ['operator_3e_3e_33',['operator>>',['../group__ops.html#ga498b61f7e8f056ae00297fa0dc17303a',1,'mlx::core']]], + ['operator_5b_5d_34',['operator[]',['../classpocketfft_1_1detail_1_1arr.html#aea0bd899b19e03f54dfd6c188727061a',1,'pocketfft::detail::arr::operator[](size_t idx)'],['../classpocketfft_1_1detail_1_1arr.html#a99c54f96bc79c7cdd8925c1663462842',1,'pocketfft::detail::arr::operator[](size_t idx) const'],['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a71b02f67c47b24adb296eafd2c7a3598',1,'pocketfft::detail::sincos_2pibyn::operator[]()'],['../classpocketfft_1_1detail_1_1cndarr.html#ae4852d1fe936a5d61832b507816c7054',1,'pocketfft::detail::cndarr::operator[]()'],['../classpocketfft_1_1detail_1_1ndarr.html#a2b2c4e205e8b5c32c9fe55dfd7b8c8d8',1,'pocketfft::detail::ndarr::operator[]()']]], + ['operator_5e_35',['operator^',['../group__ops.html#gac3a6fe18694e84b3d63458e9553ac181',1,'mlx::core::operator^(const array &a, const array &b)'],['../namespacemlx_1_1core.html#ae36ea40b8477bfa12d41aae8245225c9',1,'mlx::core::operator^(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a03fc96696f5c6d9411841889d05f4670',1,'mlx::core::operator^(_MLX_BFloat16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a55130edf926366db0d6207989e609b7c',1,'mlx::core::operator^(uint16_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0b75198f364d742a1c25dd13e398f2c2',1,'mlx::core::operator^(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7f205f1b10b23180a23bf2be4bb726b1',1,'mlx::core::operator^(_MLX_Float16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a9edfe65f3c6da583c7b109290ec94b22',1,'mlx::core::operator^(uint16_t lhs, _MLX_Float16 rhs)']]], + ['operator_5e_3d_36',['operator^=',['../namespacemlx_1_1core.html#a97cb7d3eac404a442e84656cefe7cfb4',1,'mlx::core::operator^=(_MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abcfd2d9615c96561fd44dfb9c341cf8e',1,'mlx::core::operator^=(_MLX_BFloat16 &lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#ae78083d766b9cf6f87cded341bbcd63e',1,'mlx::core::operator^=(_MLX_Float16 &lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#acf36c10779fbf1efbe1e6a7fd41176cd',1,'mlx::core::operator^=(_MLX_Float16 &lhs, uint16_t rhs)']]], + ['operator_7c_37',['operator|',['../group__ops.html#ga52392a2a98f09a80da8d338c4908bd02',1,'mlx::core::operator|(const array &a, const array &b)'],['../namespacemlx_1_1core.html#af84ed854132c1514dca5a524fdb7ed05',1,'mlx::core::operator|(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a7423aac70f9f2e3fb6a5c9a3fc96f703',1,'mlx::core::operator|(_MLX_BFloat16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a19805f505cb7ac72bfab66c339ea7900',1,'mlx::core::operator|(uint16_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a2d933573edf4ed305fddd8a0caef1ee8',1,'mlx::core::operator|(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#afab3d4eb1b36a276922879ce6e44b7f5',1,'mlx::core::operator|(_MLX_Float16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#ab132729fa6912d22a8e402057eb4ba12',1,'mlx::core::operator|(uint16_t lhs, _MLX_Float16 rhs)']]], + ['operator_7c_3d_38',['operator|=',['../namespacemlx_1_1core.html#a8e1d21375ae4b89b3cbea3a46d262abd',1,'mlx::core::operator|=(_MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a28d6c2f89e73b7b874dd1f67f853a96f',1,'mlx::core::operator|=(_MLX_BFloat16 &lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a2d8470b69cbbeefece08d3ffd46c0082',1,'mlx::core::operator|=(_MLX_Float16 &lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a359c6257097a304c00d41d64296ef4c9',1,'mlx::core::operator|=(_MLX_Float16 &lhs, uint16_t rhs)']]], + ['operator_7c_7c_39',['operator||',['../namespacemlx_1_1steel.html#a1bb3ac5061a04e407fc4cdcc9f6ea03f',1,'mlx::steel::operator||()'],['../group__ops.html#ga27af56a98270d4d76d139f0f9171b83a',1,'mlx::core::operator||()']]], + ['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_contiguous.html#a1a53623d7c591ba6567ac1533fbc2b7c',1,'mlx::core::Contiguous::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/namespaces_0.js b/docs/build/html/search/namespaces_0.js index b2473685..8c537988 100644 --- a/docs/build/html/search/namespaces_0.js +++ b/docs/build/html/search/namespaces_0.js @@ -9,12 +9,13 @@ var searchData= ['mlx_3a_3acore_3a_3adetail_6',['detail',['../namespacemlx_1_1core_1_1detail.html',1,'mlx::core']]], ['mlx_3a_3acore_3a_3adistributed_7',['distributed',['../namespacemlx_1_1core_1_1distributed.html',1,'mlx::core']]], ['mlx_3a_3acore_3a_3adistributed_3a_3adetail_8',['detail',['../namespacemlx_1_1core_1_1distributed_1_1detail.html',1,'mlx::core::distributed']]], - ['mlx_3a_3acore_3a_3afast_9',['fast',['../namespacemlx_1_1core_1_1fast.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3afft_10',['fft',['../namespacemlx_1_1core_1_1fft.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3aio_11',['io',['../namespacemlx_1_1core_1_1io.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3alinalg_12',['linalg',['../namespacemlx_1_1core_1_1linalg.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3ametal_13',['metal',['../namespacemlx_1_1core_1_1metal.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3arandom_14',['random',['../namespacemlx_1_1core_1_1random.html',1,'mlx::core']]], - ['mlx_3a_3acore_3a_3ascheduler_15',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html',1,'mlx::core']]], - ['mlx_3a_3asteel_16',['steel',['../namespacemlx_1_1steel.html',1,'mlx']]] + ['mlx_3a_3acore_3a_3aenv_9',['env',['../namespacemlx_1_1core_1_1env.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3afast_10',['fast',['../namespacemlx_1_1core_1_1fast.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3afft_11',['fft',['../namespacemlx_1_1core_1_1fft.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3aio_12',['io',['../namespacemlx_1_1core_1_1io.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3alinalg_13',['linalg',['../namespacemlx_1_1core_1_1linalg.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3ametal_14',['metal',['../namespacemlx_1_1core_1_1metal.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3arandom_15',['random',['../namespacemlx_1_1core_1_1random.html',1,'mlx::core']]], + ['mlx_3a_3acore_3a_3ascheduler_16',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html',1,'mlx::core']]], + ['mlx_3a_3asteel_17',['steel',['../namespacemlx_1_1steel.html',1,'mlx']]] ]; diff --git a/docs/build/html/search/searchdata.js b/docs/build/html/search/searchdata.js index 454a00fc..89f749d2 100644 --- a/docs/build/html/search/searchdata.js +++ b/docs/build/html/search/searchdata.js @@ -6,11 +6,11 @@ var indexSectionsWithContent = 3: "abcdefghiklmopqrstu", 4: "_abcdefghijklmnopqrstuvwz~", 5: "abcdefghijklmnopqrstuvwxz", - 6: "abdefgilmnprstv", + 6: "abcdefgilmnprstv", 7: "bcdkorsv", 8: "abcdefgilmnoprstuvx", 9: "ao", - 10: "_abcdfhimprsu", + 10: "_abcdfhijmprs", 11: "aco" }; diff --git a/docs/build/html/search/typedefs_0.js b/docs/build/html/search/typedefs_0.js index 55f2dcb7..085c5457 100644 --- a/docs/build/html/search/typedefs_0.js +++ b/docs/build/html/search/typedefs_0.js @@ -1,5 +1,5 @@ var searchData= [ - ['accum_5ftype_0',['accum_type',['../structmlx_1_1steel_1_1_accum_helper.html#ab594958b88746f759aa7ca573f1903da',1,'mlx::steel::AccumHelper']]], + ['accum_5ftype_0',['accum_type',['../structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26',1,'mlx::steel::AccumHelper']]], ['add_5fvec_5ft_1',['add_vec_t',['../namespacepocketfft_1_1detail.html#a421aa74fbee775a96463246f72b144d6',1,'pocketfft::detail']]] ]; diff --git a/docs/build/html/search/typedefs_1.js b/docs/build/html/search/typedefs_1.js index f95e553f..98974c15 100644 --- a/docs/build/html/search/typedefs_1.js +++ b/docs/build/html/search/typedefs_1.js @@ -1,6 +1,6 @@ var searchData= [ - ['bfloat16_5ft_0',['bfloat16_t',['../backend_2metal_2kernels_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82',1,'bf16.h']]], + ['bfloat16_5ft_0',['bfloat16_t',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82',1,'bfloat16_t: bf16.h'],['../backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a58e15a77da988b9104fee00cdf8b280e',1,'bfloat16_t: bf16.h']]], ['block_5fmerge_5fsort_5ft_1',['block_merge_sort_t',['../struct_kernel_merge_sort.html#adae7850e057fc30d5328c7b3dcc998fa',1,'KernelMergeSort::block_merge_sort_t'],['../struct_kernel_multi_block_merge_sort.html#af27e9af4b58640c0aa620bc4efc68dff',1,'KernelMultiBlockMergeSort::block_merge_sort_t']]], ['bool_5fconstant_2',['bool_constant',['../namespacemlx_1_1steel.html#adbb34bcf0d2dca6b9fb803d591d00da9',1,'mlx::steel']]] ]; diff --git a/docs/build/html/search/typedefs_2.js b/docs/build/html/search/typedefs_2.js index 8bf51901..ed86072e 100644 --- a/docs/build/html/search/typedefs_2.js +++ b/docs/build/html/search/typedefs_2.js @@ -1,5 +1,4 @@ var searchData= [ - ['deleter_5ft_0',['deleter_t',['../namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8',1,'mlx::core']]], - ['difference_5ftype_1',['difference_type',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5',1,'mlx::core::array::ArrayIterator']]] + ['col_5ffrag_5ftype_0',['col_frag_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aab8dd1c6917247da41dd3a31139a665f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]] ]; diff --git a/docs/build/html/search/typedefs_3.js b/docs/build/html/search/typedefs_3.js index 60de4b6f..8bf51901 100644 --- a/docs/build/html/search/typedefs_3.js +++ b/docs/build/html/search/typedefs_3.js @@ -1,5 +1,5 @@ var searchData= [ - ['elem_5ftype_0',['elem_type',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c',1,'mlx::steel::MMATile']]], - ['enable_5ffor_5farrays_5ft_1',['enable_for_arrays_t',['../namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114',1,'mlx::core']]] + ['deleter_5ft_0',['deleter_t',['../namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8',1,'mlx::core']]], + ['difference_5ftype_1',['difference_type',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5',1,'mlx::core::array::ArrayIterator']]] ]; diff --git a/docs/build/html/search/typedefs_4.js b/docs/build/html/search/typedefs_4.js index b89c3c5a..e1ab7d1f 100644 --- a/docs/build/html/search/typedefs_4.js +++ b/docs/build/html/search/typedefs_4.js @@ -1,6 +1,5 @@ var searchData= [ - ['false_5ftype_0',['false_type',['../namespacemlx_1_1steel.html#ab0ef721cedc2b5a97f60d76b765aff2e',1,'mlx::steel']]], - ['float16_5ft_1',['float16_t',['../backend_2metal_2kernels_2utils_8h.html#acb8ddf4a29129846b673c50ba7078773',1,'float16_t: utils.h'],['../namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52',1,'mlx::core::float16_t']]], - ['frag_5ftype_2',['frag_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#af67c1b1aea594468e9426e1be0e31d0b',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::frag_type'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a5976565323f2e30479158c14f4b1bfef',1,'mlx::steel::MMATile::frag_type']]] + ['elem_5ftype_0',['elem_type',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628',1,'mlx::steel::MMATile']]], + ['enable_5ffor_5farrays_5ft_1',['enable_for_arrays_t',['../namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/typedefs_5.js b/docs/build/html/search/typedefs_5.js index e5f6b91f..68428d4a 100644 --- a/docs/build/html/search/typedefs_5.js +++ b/docs/build/html/search/typedefs_5.js @@ -1,5 +1,6 @@ var searchData= [ - ['ggufload_0',['GGUFLoad',['../namespacemlx_1_1core.html#aa5b0f7f13a941e1f41c411194e9033c7',1,'mlx::core']]], - ['ggufmetadata_1',['GGUFMetaData',['../namespacemlx_1_1core.html#a8c2c1b9a37aadfb48f4c3a7e806e32e3',1,'mlx::core']]] + ['false_5ftype_0',['false_type',['../namespacemlx_1_1steel.html#ab0ef721cedc2b5a97f60d76b765aff2e',1,'mlx::steel']]], + ['float16_5ft_1',['float16_t',['../backend_2metal_2kernels_2utils_8h.html#acb8ddf4a29129846b673c50ba7078773',1,'float16_t: utils.h'],['../namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52',1,'mlx::core::float16_t']]], + ['frag_5ftype_2',['frag_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::frag_type'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aac25cd0a9bdf24aa2af809c95f0bd171',1,'mlx::steel::MMATile::frag_type']]] ]; diff --git a/docs/build/html/search/typedefs_6.js b/docs/build/html/search/typedefs_6.js index 80c07e67..e5f6b91f 100644 --- a/docs/build/html/search/typedefs_6.js +++ b/docs/build/html/search/typedefs_6.js @@ -1,6 +1,5 @@ var searchData= [ - ['idx_5ft_0',['idx_t',['../struct_kernel_merge_sort.html#a0df65b709ae7f153a2bf381179d55e00',1,'KernelMergeSort']]], - ['int_1',['Int',['../namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891',1,'mlx::steel']]], - ['iterator_5fcategory_2',['iterator_category',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a2cbf481e39164245668b3be6cbcc614d',1,'mlx::core::array::ArrayIterator']]] + ['ggufload_0',['GGUFLoad',['../namespacemlx_1_1core.html#aa5b0f7f13a941e1f41c411194e9033c7',1,'mlx::core']]], + ['ggufmetadata_1',['GGUFMetaData',['../namespacemlx_1_1core.html#a8c2c1b9a37aadfb48f4c3a7e806e32e3',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/typedefs_7.js b/docs/build/html/search/typedefs_7.js index d546c2d2..80c07e67 100644 --- a/docs/build/html/search/typedefs_7.js +++ b/docs/build/html/search/typedefs_7.js @@ -1,5 +1,6 @@ var searchData= [ - ['loader_5fa_5ft_0',['loader_a_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa8a04ed74d2259f99b337d4662c64d83',1,'mlx::steel::GEMMKernel']]], - ['loader_5fb_5ft_1',['loader_b_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa98f32278b5fd98c93ae5483c3596395',1,'mlx::steel::GEMMKernel']]] + ['idx_5ft_0',['idx_t',['../struct_kernel_merge_sort.html#a0df65b709ae7f153a2bf381179d55e00',1,'KernelMergeSort']]], + ['int_1',['Int',['../namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891',1,'mlx::steel']]], + ['iterator_5fcategory_2',['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/typedefs_8.js b/docs/build/html/search/typedefs_8.js index 9f1e64bc..507c562e 100644 --- a/docs/build/html/search/typedefs_8.js +++ b/docs/build/html/search/typedefs_8.js @@ -1,10 +1,5 @@ var searchData= [ - ['mask_5ft_0',['mask_t',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a270ab3da7c98a12525a59952742cc97d',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], - ['mat_5ftype_1',['mat_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a72054f003c695b90a4fe5101e19cbaa9',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mat_type'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a28306efc1a903b80219c8bb16dc5b190',1,'mlx::steel::MMATile::mat_type']]], - ['metalkernelfunction_2',['MetalKernelFunction',['../namespacemlx_1_1core_1_1fast.html#a0e8c2c4ea7a946568c8fe5b4810417e0',1,'mlx::core::fast']]], - ['mma_5ft_3',['mma_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#add8c6a31011a4895667c2a94a5af3782',1,'mlx::steel::GEMMKernel']]], - ['mmafrag_5facc_5ft_4',['MMAFrag_acc_t',['../structmlx_1_1steel_1_1_block_m_m_a.html#ae2c42cb6d0dde785859164c195f4d13c',1,'mlx::steel::BlockMMA']]], - ['mmafrag_5ft_5',['MMAFrag_t',['../structmlx_1_1steel_1_1_m_m_a_tile.html#abe33de70e34300745bad9aa822fd0382',1,'mlx::steel::MMATile']]], - ['mtlfclist_6',['MTLFCList',['../namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54',1,'mlx::core::metal']]] + ['loader_5fa_5ft_0',['loader_a_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a98b6ec692580510081e2aa887a61944b',1,'mlx::steel::GEMMKernel']]], + ['loader_5fb_5ft_1',['loader_b_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1a115d5af0fb6e260165adba2e377635',1,'mlx::steel::GEMMKernel']]] ]; diff --git a/docs/build/html/search/typedefs_9.js b/docs/build/html/search/typedefs_9.js index 335d411e..412c684b 100644 --- a/docs/build/html/search/typedefs_9.js +++ b/docs/build/html/search/typedefs_9.js @@ -1,4 +1,10 @@ var searchData= [ - ['nomask_5ft_0',['nomask_t',['../kernels_2gemv__masked_8h.html#a1480c8cdff1cae1462a5a71632969bca',1,'gemv_masked.h']]] + ['mask_5ft_0',['mask_t',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a270ab3da7c98a12525a59952742cc97d',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], + ['mat_5ftype_1',['mat_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::mat_type'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1eeb197c9bdf4db42892a39cdb9bd73a',1,'mlx::steel::MMATile::mat_type']]], + ['metalkernelfunction_2',['MetalKernelFunction',['../namespacemlx_1_1core_1_1fast.html#a0e8c2c4ea7a946568c8fe5b4810417e0',1,'mlx::core::fast']]], + ['mma_5ft_3',['mma_t',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ae52eb09c9478cd4f199662346ac0c83e',1,'mlx::steel::GEMMKernel']]], + ['mmafrag_5facc_5ft_4',['MMAFrag_acc_t',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8231b0e3475077c1381eb8f5daf62e35',1,'mlx::steel::BlockMMA']]], + ['mmafrag_5ft_5',['MMAFrag_t',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a6dadcd666afb3759a11094e754560dd4',1,'mlx::steel::MMATile']]], + ['mtlfclist_6',['MTLFCList',['../namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54',1,'mlx::core::metal']]] ]; diff --git a/docs/build/html/search/typedefs_a.js b/docs/build/html/search/typedefs_a.js index d3499242..335d411e 100644 --- a/docs/build/html/search/typedefs_a.js +++ b/docs/build/html/search/typedefs_a.js @@ -1,4 +1,4 @@ var searchData= [ - ['pointer_5felement_5ft_0',['pointer_element_t',['../namespacemetal.html#ac82ee6c3fbe9ec5c78c07329424aaec9',1,'metal']]] + ['nomask_5ft_0',['nomask_t',['../kernels_2gemv__masked_8h.html#a1480c8cdff1cae1462a5a71632969bca',1,'gemv_masked.h']]] ]; diff --git a/docs/build/html/search/typedefs_b.js b/docs/build/html/search/typedefs_b.js index ba03c67d..d3499242 100644 --- a/docs/build/html/search/typedefs_b.js +++ b/docs/build/html/search/typedefs_b.js @@ -1,5 +1,4 @@ var searchData= [ - ['radixfunc_0',['RadixFunc',['../backend_2metal_2kernels_2fft_8h.html#a6ba62eabfd5428644aabf89ddaa0128d',1,'fft.h']]], - ['reference_1',['reference',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a44e2e1f29191c20ec4390de4fa0bd59f',1,'mlx::core::array::ArrayIterator']]] + ['pointer_5felement_5ft_0',['pointer_element_t',['../namespacemetal.html#ac82ee6c3fbe9ec5c78c07329424aaec9',1,'metal']]] ]; diff --git a/docs/build/html/search/typedefs_c.js b/docs/build/html/search/typedefs_c.js index d427dcde..c7ffdc21 100644 --- a/docs/build/html/search/typedefs_c.js +++ b/docs/build/html/search/typedefs_c.js @@ -1,8 +1,6 @@ var searchData= [ - ['safetensorsload_0',['SafetensorsLoad',['../namespacemlx_1_1core.html#a688cd7917b1365065e8059e9964c3d45',1,'mlx::core']]], - ['shape_5ft_1',['shape_t',['../namespacepocketfft_1_1detail.html#a885ee37fcf564a268a5c8ca9ea8603e1',1,'pocketfft::detail']]], - ['simplevalueandgradfn_2',['SimpleValueAndGradFn',['../namespacemlx_1_1core.html#a2689b8f1181648cb1685204fea9f3066',1,'mlx::core']]], - ['streamordevice_3',['StreamOrDevice',['../namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58',1,'mlx::core']]], - ['stride_5ft_4',['stride_t',['../namespacepocketfft_1_1detail.html#afb987c919e9424a996d0fc8b3c23cc84',1,'pocketfft::detail']]] + ['radixfunc_0',['RadixFunc',['../backend_2metal_2kernels_2fft_8h.html#a6ba62eabfd5428644aabf89ddaa0128d',1,'fft.h']]], + ['reference_1',['reference',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a44e2e1f29191c20ec4390de4fa0bd59f',1,'mlx::core::array::ArrayIterator']]], + ['row_5ffrag_5ftype_2',['row_frag_type',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a5ec2e40a8f5ad98c71b825544cdd878b',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]] ]; diff --git a/docs/build/html/search/typedefs_d.js b/docs/build/html/search/typedefs_d.js index fd5deb26..d427dcde 100644 --- a/docs/build/html/search/typedefs_d.js +++ b/docs/build/html/search/typedefs_d.js @@ -1,7 +1,8 @@ var searchData= [ - ['templatearg_0',['TemplateArg',['../namespacemlx_1_1core_1_1fast.html#a9390693ff7be931f3ef3428e2ea4c3f9',1,'mlx::core::fast']]], - ['thread_5fsort_5ft_1',['thread_sort_t',['../struct_block_merge_sort.html#ad2474d16721f4ceb954125728a0e2ea2',1,'BlockMergeSort']]], - ['true_5ftype_2',['true_type',['../namespacemlx_1_1steel.html#a594a6ccb75b38b5ae4ddd0d9ad047b3a',1,'mlx::steel']]], - ['type_3',['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'],['../structmlx_1_1steel_1_1integral__constant.html#a6492c15b37d160d3a33e1cbe770aa3f1',1,'mlx::steel::integral_constant::type'],['../structmetal_1_1make__void.html#aee74916713465374928c5379ab0d9b75',1,'metal::make_void::type'],['../structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4.html#a98fbc2aa99dd26bb35aa9cd1826318d8',1,'metal::pointer_element< thread T * >::type'],['../structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4.html#ab36a7c5a64c0693dd3d8ccb322c163d4',1,'metal::pointer_element< device T * >::type'],['../structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4.html#ad154b55b9e450a6376016488c8e68c53',1,'metal::pointer_element< constant T * >::type'],['../structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4.html#a78c718d6da9d393c139a385f42472362',1,'metal::pointer_element< threadgroup T * >::type']]] + ['safetensorsload_0',['SafetensorsLoad',['../namespacemlx_1_1core.html#a688cd7917b1365065e8059e9964c3d45',1,'mlx::core']]], + ['shape_5ft_1',['shape_t',['../namespacepocketfft_1_1detail.html#a885ee37fcf564a268a5c8ca9ea8603e1',1,'pocketfft::detail']]], + ['simplevalueandgradfn_2',['SimpleValueAndGradFn',['../namespacemlx_1_1core.html#a2689b8f1181648cb1685204fea9f3066',1,'mlx::core']]], + ['streamordevice_3',['StreamOrDevice',['../namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58',1,'mlx::core']]], + ['stride_5ft_4',['stride_t',['../namespacepocketfft_1_1detail.html#afb987c919e9424a996d0fc8b3c23cc84',1,'pocketfft::detail']]] ]; diff --git a/docs/build/html/search/typedefs_e.js b/docs/build/html/search/typedefs_e.js index cfd1d381..fd5deb26 100644 --- a/docs/build/html/search/typedefs_e.js +++ b/docs/build/html/search/typedefs_e.js @@ -1,8 +1,7 @@ var searchData= [ - ['val_5ft_0',['val_t',['../struct_kernel_merge_sort.html#a4e3f09896275956fc4c23e1f157dca3b',1,'KernelMergeSort']]], - ['value_5ftype_1',['value_type',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#ab86a2740ed9ce3199135372ff1d88c76',1,'pocketfft::detail::threading::aligned_allocator::value_type'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ae24fe304397e961687d0d4c7012b8ae4',1,'mlx::core::array::ArrayIterator::value_type'],['../structmlx_1_1steel_1_1integral__constant.html#a0569cc1334e0bc4f474304b33d365759',1,'mlx::steel::integral_constant::value_type']]], - ['valueandgradfn_2',['ValueAndGradFn',['../namespacemlx_1_1core.html#ab79d66ddf1ec38b2f2c01234892a2230',1,'mlx::core']]], - ['void_5ft_3',['void_t',['../namespacemetal.html#a192322c772aa8b168d59edc55fb806f1',1,'metal']]], - ['vtype_5ft_4',['vtype_t',['../namespacepocketfft_1_1detail.html#a3edfb93aeed2f8258183d463ea291d62',1,'pocketfft::detail']]] + ['templatearg_0',['TemplateArg',['../namespacemlx_1_1core_1_1fast.html#a9390693ff7be931f3ef3428e2ea4c3f9',1,'mlx::core::fast']]], + ['thread_5fsort_5ft_1',['thread_sort_t',['../struct_block_merge_sort.html#ad2474d16721f4ceb954125728a0e2ea2',1,'BlockMergeSort']]], + ['true_5ftype_2',['true_type',['../namespacemlx_1_1steel.html#a594a6ccb75b38b5ae4ddd0d9ad047b3a',1,'mlx::steel']]], + ['type_3',['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'],['../structmlx_1_1steel_1_1integral__constant.html#a6492c15b37d160d3a33e1cbe770aa3f1',1,'mlx::steel::integral_constant::type'],['../structmetal_1_1make__void.html#aee74916713465374928c5379ab0d9b75',1,'metal::make_void::type'],['../structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4.html#a98fbc2aa99dd26bb35aa9cd1826318d8',1,'metal::pointer_element< thread T * >::type'],['../structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4.html#ab36a7c5a64c0693dd3d8ccb322c163d4',1,'metal::pointer_element< device T * >::type'],['../structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4.html#ad154b55b9e450a6376016488c8e68c53',1,'metal::pointer_element< constant T * >::type'],['../structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4.html#a78c718d6da9d393c139a385f42472362',1,'metal::pointer_element< threadgroup T * >::type']]] ]; diff --git a/docs/build/html/search/typedefs_f.js b/docs/build/html/search/typedefs_f.js new file mode 100644 index 00000000..cfd1d381 --- /dev/null +++ b/docs/build/html/search/typedefs_f.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['val_5ft_0',['val_t',['../struct_kernel_merge_sort.html#a4e3f09896275956fc4c23e1f157dca3b',1,'KernelMergeSort']]], + ['value_5ftype_1',['value_type',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#ab86a2740ed9ce3199135372ff1d88c76',1,'pocketfft::detail::threading::aligned_allocator::value_type'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ae24fe304397e961687d0d4c7012b8ae4',1,'mlx::core::array::ArrayIterator::value_type'],['../structmlx_1_1steel_1_1integral__constant.html#a0569cc1334e0bc4f474304b33d365759',1,'mlx::steel::integral_constant::value_type']]], + ['valueandgradfn_2',['ValueAndGradFn',['../namespacemlx_1_1core.html#ab79d66ddf1ec38b2f2c01234892a2230',1,'mlx::core']]], + ['void_5ft_3',['void_t',['../namespacemetal.html#a192322c772aa8b168d59edc55fb806f1',1,'metal']]], + ['vtype_5ft_4',['vtype_t',['../namespacepocketfft_1_1detail.html#a3edfb93aeed2f8258183d463ea291d62',1,'pocketfft::detail']]] +]; diff --git a/docs/build/html/search/variables_0.js b/docs/build/html/search/variables_0.js index 50c42d58..475304b9 100644 --- a/docs/build/html/search/variables_0.js +++ b/docs/build/html/search/variables_0.js @@ -7,11 +7,12 @@ var searchData= ['adj_5fout_5fh_4',['adj_out_h',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#a879cc9757f59605a87d936ec4156040d',1,'mlx::steel::Conv2DGeneralJumpParams']]], ['adj_5fout_5fhw_5',['adj_out_hw',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#aed0ffd63fbc85fd5d5c4cc7b43f68363',1,'mlx::steel::Conv2DGeneralJumpParams']]], ['adj_5fout_5fw_6',['adj_out_w',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#ab971bf879079895189331fbeaf33c211',1,'mlx::steel::Conv2DGeneralJumpParams']]], - ['align_5fk_7',['align_K',['../steel__gemm__fused_8h.html#a8bdd2cecf97aa5b033152b1d0f0d2416',1,'steel_gemm_fused.h']]], + ['align_5fk_7',['align_K',['../steel__attention_8h.html#a8bdd2cecf97aa5b033152b1d0f0d2416',1,'align_K: steel_attention.h'],['../steel__gemm__fused_8h.html#a8bdd2cecf97aa5b033152b1d0f0d2416',1,'align_K: steel_gemm_fused.h']]], ['align_5fm_8',['align_M',['../steel__gemm__fused_8h.html#a55af226dc74b0026b7d4b865142a6d21',1,'steel_gemm_fused.h']]], ['align_5fn_9',['align_N',['../steel__gemm__fused_8h.html#aa3b267252df2dcbfdde8c5f174d27036',1,'steel_gemm_fused.h']]], - ['alpha_10',['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']]], - ['arange_5fkernels_11',['arange_kernels',['../metal_2jit_2arange_8h.html#a2f49fb7bdc0a90230077fe2023e6e5c0',1,'arange.h']]], - ['as_5foffset_12',['As_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a138ed1bbad2ca88d3a3c7d162cd36562',1,'mlx::steel::BlockMMA']]], - ['atile_13',['Atile',['../structmlx_1_1steel_1_1_block_m_m_a.html#af1a138c5e118147dc46475e4a5557e7c',1,'mlx::steel::BlockMMA']]] + ['align_5fq_10',['align_Q',['../steel__attention_8h.html#a171fdea1b23976453f5dc5e6b3161982',1,'steel_attention.h']]], + ['alpha_11',['alpha',['../structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff',1,'mlx::steel::TransformAxpby::alpha'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#af8693d96512eff3e125d33d203920710',1,'mlx::steel::GEMMAddMMParams::alpha']]], + ['arange_5fkernels_12',['arange_kernels',['../metal_2jit_2arange_8h.html#a2f49fb7bdc0a90230077fe2023e6e5c0',1,'arange.h']]], + ['as_5foffset_13',['As_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a138ed1bbad2ca88d3a3c7d162cd36562',1,'mlx::steel::BlockMMA']]], + ['atile_14',['Atile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a47e614120c650f7479db79f23a0df586',1,'mlx::steel::BlockMMA']]] ]; diff --git a/docs/build/html/search/variables_1.js b/docs/build/html/search/variables_1.js index f430517e..ee78d0f3 100644 --- a/docs/build/html/search/variables_1.js +++ b/docs/build/html/search/variables_1.js @@ -1,37 +1,35 @@ var searchData= [ - ['b_0',['b',['../unionbool4__or__uint.html#a47d77eac47598fe420f8f04a615f76ca',1,'bool4_or_uint']]], - ['b_5fstr_5fk_1',['B_str_k',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa71400922babd388177f228c2c82b211',1,'mlx::steel::BlockMMA']]], - ['b_5fstr_5fn_2',['B_str_n',['../structmlx_1_1steel_1_1_block_m_m_a.html#a49538190209e522ddbef45fe95563d17',1,'mlx::steel::BlockMMA']]], - ['backward_3',['BACKWARD',['../namespacepocketfft_1_1detail.html#a9d1eaa7469c018c39e745733eab9a9c3',1,'pocketfft::detail']]], - ['base_5fwh_4',['base_wh',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aca37adba6f148579eb1cd0a7800a5cfe',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::base_wh'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6c46564bf1a96a02791dd432cc9c883e',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::base_wh']]], - ['base_5fww_5',['base_ww',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a32d020c6715d06f7de360877fcb7b6e4',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::base_ww'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a230f0e581f9b8227b9ee68760b3b1503',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::base_ww']]], - ['batch_5fndim_6',['batch_ndim',['../struct_m_l_x_fast_attention_params.html#a6f3d94dbe44b32e675558768710bf0a3',1,'MLXFastAttentionParams::batch_ndim'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a640dc138a8bf7b2b5bed6a436b429c2f',1,'mlx::steel::GEMMParams::batch_ndim']]], - ['batch_5fsize_7',['batch_size',['../struct_read_writer.html#a689f4890c1d2ce33fc6da7550beec735',1,'ReadWriter']]], - ['batch_5fstride_5fa_8',['batch_stride_a',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a76f55783a8e2ee203cf8507eee4b000c',1,'mlx::steel::GEMMParams']]], - ['batch_5fstride_5fb_9',['batch_stride_b',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a99b959b12d12da657648fa24d43e49e8',1,'mlx::steel::GEMMParams']]], - ['batch_5fstride_5fc_10',['batch_stride_c',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a77c065db228e9654a0a75a6ffe47c15a',1,'mlx::steel::GEMMAddMMParams']]], - ['batch_5fstride_5fd_11',['batch_stride_d',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#ad98006dd509a455864e6aa7c52743a41',1,'mlx::steel::GEMMParams']]], - ['batch_5fstride_5fk_12',['batch_stride_k',['../struct_m_l_x_fast_attention_params.html#a162826d3f288f64c0aea88a36b34859b',1,'MLXFastAttentionParams']]], - ['batch_5fstride_5fo_13',['batch_stride_o',['../struct_m_l_x_fast_attention_params.html#a3c5b1170999087f3f3a03830193b55c7',1,'MLXFastAttentionParams']]], - ['batch_5fstride_5fq_14',['batch_stride_q',['../struct_m_l_x_fast_attention_params.html#a98766fc89f75d5eef65b345f16a782d1',1,'MLXFastAttentionParams']]], - ['batch_5fstride_5fv_15',['batch_stride_v',['../struct_m_l_x_fast_attention_params.html#a1180e311b95cd4b6d4a336d21b873c21',1,'MLXFastAttentionParams']]], - ['bcols_16',['BCOLS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a29fbeeacdf5b6feeb74815ced255fa5a',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ac3b40db720055350bba59d614ea1dd79',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a86519729ef0561686bb86e474c95b93d',1,'mlx::steel::Conv2DWeightBlockLoader::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9229d22e0a02d96825eb5a57c8cb95ac',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a8b6cf53a10514310d01f4d6459053a57',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3d6272d000f8ea79d9b3b5228bdca20f',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a1843921cd67926002bb0dcccf3048eb6',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::BCOLS']]], - ['bcols_5fpacked_17',['BCOLS_PACKED',['../struct_quantized_block_loader.html#a1392a5278cf6e090ea80ebe7c4ac5fbb',1,'QuantizedBlockLoader']]], - ['beta_18',['beta',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#ac0ce4d8a6014f8adb29fd0a0bb23139f',1,'mlx::steel::GEMMAddMMParams::beta'],['../structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6',1,'mlx::steel::TransformAxpby::beta']]], - ['bfloat16_19',['bfloat16',['../namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7',1,'mlx::core']]], - ['bi_20',['bi',['../struct_quantized_block_loader.html#a85041d72225a2095659c70509291a906',1,'QuantizedBlockLoader::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a8e53b0a9951cb840d922cc285b257ee3',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ae3af75287f279d2cdeef189126740d4c',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a8c5e74003600132954cb953616e1a026',1,'mlx::steel::Conv2DWeightBlockLoader::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9eb024e2fc6f07345f87fbf7141c0d16',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae3b9f21f72e5e6c541c9978f55d354c7',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a32a3a91fa715b82f36e05ceb10933d09',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a4c91f848856ab0872bdfd37c62d4b0ba',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::bi'],['../structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af',1,'mlx::steel::BlockLoader::bi']]], - ['biases_21',['biases',['../struct_quantized_block_loader.html#a17d01a6aba0833b073586ef2c09d0fbd',1,'QuantizedBlockLoader']]], - ['bits_5f_22',['bits_',['../struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8',1,'_MLX_BFloat16::bits_'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#aca48963f820065c3d8ecab24265ab3fc',1,'mlx::core::_MLX_BFloat16::bits_'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a5203fe52424fd32bce6eb7917dd9288b',1,'mlx::core::_MLX_Float16::bits_']]], - ['bj_23',['bj',['../struct_quantized_block_loader.html#ae2add92b2aaf3414e91f0470b9b0cc00',1,'QuantizedBlockLoader::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a7ae9e41f50c0c63c35b63086a1c22cc3',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a6fd3dd7b74d91609fa9dd61c657a0e32',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a6f2fdcaf5a67567cca38ae3d8120ab37',1,'mlx::steel::Conv2DWeightBlockLoader::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a7cf448573d41fbc67f8dfc65b7aef2b2',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#adaa261fc2e8e694aedab4ebd60b52e5e',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#ace16704025bc6e6204c306a357f3a8b8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acec010e10d5733654963407af38d4f67',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::bj'],['../structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4',1,'mlx::steel::BlockLoader::bj']]], - ['blockm_24',['blockM',['../struct_g_e_m_v_kernel.html#a7281520100658811076400060663903c',1,'GEMVKernel::blockM'],['../struct_g_e_m_v_t_kernel.html#a2ae8ce535d59cccf453381b4485a77f0',1,'GEMVTKernel::blockM']]], - ['blockn_25',['blockN',['../struct_g_e_m_v_kernel.html#a2fef17f9c9aa0bdf530ad3554fb0988b',1,'GEMVKernel::blockN'],['../struct_g_e_m_v_t_kernel.html#a60be87666006ba0bf88bc8e6902da42a',1,'GEMVTKernel::blockN']]], - ['bool_5f_26',['bool_',['../namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82',1,'mlx::core']]], - ['brows_27',['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_28',['Bs_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca',1,'mlx::steel::BlockMMA']]], - ['btile_29',['Btile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a19abba19edeb37018da4bd31e01c8e26',1,'mlx::steel::BlockMMA']]], - ['buf_30',['buf',['../struct_read_writer.html#a23bac3c96dd0265ddbee1f256be45ff5',1,'ReadWriter::buf'],['../backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697',1,'buf: allocator.h']]], - ['buffer_31',['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_32',['buffer_ops',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782',1,'mlx::core::metal::DeviceStream']]], - ['buffers_33',['buffers',['../struct_indices.html#ad705070a740579c07d109ae4f3d86e76',1,'Indices']]] + ['b_0',['B',['../structmlx_1_1steel_1_1_attn_params.html#a1cba7fedbd02e157922619195997cf4f',1,'mlx::steel::AttnParams']]], + ['b_1',['b',['../unionbool4__or__uint.html#a47d77eac47598fe420f8f04a615f76ca',1,'bool4_or_uint']]], + ['b_5fstr_5fk_2',['B_str_k',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa71400922babd388177f228c2c82b211',1,'mlx::steel::BlockMMA']]], + ['b_5fstr_5fn_3',['B_str_n',['../structmlx_1_1steel_1_1_block_m_m_a.html#a49538190209e522ddbef45fe95563d17',1,'mlx::steel::BlockMMA']]], + ['backward_4',['BACKWARD',['../namespacepocketfft_1_1detail.html#a9d1eaa7469c018c39e745733eab9a9c3',1,'pocketfft::detail']]], + ['base_5fwh_5',['base_wh',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aca37adba6f148579eb1cd0a7800a5cfe',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::base_wh'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6c46564bf1a96a02791dd432cc9c883e',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::base_wh']]], + ['base_5fww_6',['base_ww',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a32d020c6715d06f7de360877fcb7b6e4',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::base_ww'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a230f0e581f9b8227b9ee68760b3b1503',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::base_ww']]], + ['batch_5fndim_7',['batch_ndim',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a640dc138a8bf7b2b5bed6a436b429c2f',1,'mlx::steel::GEMMParams']]], + ['batch_5fsize_8',['batch_size',['../struct_read_writer.html#a689f4890c1d2ce33fc6da7550beec735',1,'ReadWriter']]], + ['batch_5fstride_5fa_9',['batch_stride_a',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a76f55783a8e2ee203cf8507eee4b000c',1,'mlx::steel::GEMMParams']]], + ['batch_5fstride_5fb_10',['batch_stride_b',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a99b959b12d12da657648fa24d43e49e8',1,'mlx::steel::GEMMParams']]], + ['batch_5fstride_5fc_11',['batch_stride_c',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a77c065db228e9654a0a75a6ffe47c15a',1,'mlx::steel::GEMMAddMMParams']]], + ['batch_5fstride_5fd_12',['batch_stride_d',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#ad98006dd509a455864e6aa7c52743a41',1,'mlx::steel::GEMMParams']]], + ['bcols_13',['BCOLS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a29fbeeacdf5b6feeb74815ced255fa5a',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ac3b40db720055350bba59d614ea1dd79',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a86519729ef0561686bb86e474c95b93d',1,'mlx::steel::Conv2DWeightBlockLoader::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9229d22e0a02d96825eb5a57c8cb95ac',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a8b6cf53a10514310d01f4d6459053a57',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3d6272d000f8ea79d9b3b5228bdca20f',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::BCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a1843921cd67926002bb0dcccf3048eb6',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::BCOLS']]], + ['bcols_5fpacked_14',['BCOLS_PACKED',['../struct_quantized_block_loader.html#a1392a5278cf6e090ea80ebe7c4ac5fbb',1,'QuantizedBlockLoader']]], + ['beta_15',['beta',['../structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6',1,'mlx::steel::TransformAxpby::beta'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#ac0ce4d8a6014f8adb29fd0a0bb23139f',1,'mlx::steel::GEMMAddMMParams::beta']]], + ['bfloat16_16',['bfloat16',['../namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7',1,'mlx::core']]], + ['bi_17',['bi',['../struct_quantized_block_loader.html#a85041d72225a2095659c70509291a906',1,'QuantizedBlockLoader::bi'],['../structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af',1,'mlx::steel::BlockLoader::bi'],['../structmlx_1_1steel_1_1_block_loader_t.html#a6964273994b06d6cf8ef7e59fb10bb35',1,'mlx::steel::BlockLoaderT::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a8e53b0a9951cb840d922cc285b257ee3',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ae3af75287f279d2cdeef189126740d4c',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a8c5e74003600132954cb953616e1a026',1,'mlx::steel::Conv2DWeightBlockLoader::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9eb024e2fc6f07345f87fbf7141c0d16',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae3b9f21f72e5e6c541c9978f55d354c7',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::bi'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a32a3a91fa715b82f36e05ceb10933d09',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::bi'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a4c91f848856ab0872bdfd37c62d4b0ba',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::bi']]], + ['biases_18',['biases',['../struct_quantized_block_loader.html#a17d01a6aba0833b073586ef2c09d0fbd',1,'QuantizedBlockLoader']]], + ['bits_5f_19',['bits_',['../struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8',1,'_MLX_BFloat16::bits_'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#aca48963f820065c3d8ecab24265ab3fc',1,'mlx::core::_MLX_BFloat16::bits_'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a5203fe52424fd32bce6eb7917dd9288b',1,'mlx::core::_MLX_Float16::bits_']]], + ['bj_20',['bj',['../struct_quantized_block_loader.html#ae2add92b2aaf3414e91f0470b9b0cc00',1,'QuantizedBlockLoader::bj'],['../structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4',1,'mlx::steel::BlockLoader::bj'],['../structmlx_1_1steel_1_1_block_loader_t.html#aca83e49c31095badc8a46eb3c8e00957',1,'mlx::steel::BlockLoaderT::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a7ae9e41f50c0c63c35b63086a1c22cc3',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a6fd3dd7b74d91609fa9dd61c657a0e32',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a6f2fdcaf5a67567cca38ae3d8120ab37',1,'mlx::steel::Conv2DWeightBlockLoader::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a7cf448573d41fbc67f8dfc65b7aef2b2',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#adaa261fc2e8e694aedab4ebd60b52e5e',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::bj'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#ace16704025bc6e6204c306a357f3a8b8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::bj'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acec010e10d5733654963407af38d4f67',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::bj']]], + ['blockm_21',['blockM',['../struct_g_e_m_v_kernel.html#a7281520100658811076400060663903c',1,'GEMVKernel::blockM'],['../struct_g_e_m_v_t_kernel.html#a2ae8ce535d59cccf453381b4485a77f0',1,'GEMVTKernel::blockM']]], + ['blockn_22',['blockN',['../struct_g_e_m_v_kernel.html#a2fef17f9c9aa0bdf530ad3554fb0988b',1,'GEMVKernel::blockN'],['../struct_g_e_m_v_t_kernel.html#a60be87666006ba0bf88bc8e6902da42a',1,'GEMVTKernel::blockN']]], + ['bool_5f_23',['bool_',['../namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82',1,'mlx::core']]], + ['brows_24',['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_25',['Bs_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca',1,'mlx::steel::BlockMMA']]], + ['btile_26',['Btile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a44fca27c821764317263047a780977b0',1,'mlx::steel::BlockMMA']]], + ['buf_27',['buf',['../struct_read_writer.html#a23bac3c96dd0265ddbee1f256be45ff5',1,'ReadWriter::buf'],['../backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697',1,'buf: allocator.h']]], + ['buffer_28',['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_29',['buffer_ops',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782',1,'mlx::core::metal::DeviceStream']]], + ['buffers_30',['buffers',['../struct_indices.html#ad705070a740579c07d109ae4f3d86e76',1,'Indices']]], + ['bytes_5fper_5fpack_31',['bytes_per_pack',['../struct_quantized_block_loader.html#ad00fe6d8bd395206a41693a8ed65d4db',1,'QuantizedBlockLoader']]] ]; diff --git a/docs/build/html/search/variables_10.js b/docs/build/html/search/variables_10.js index fcebac34..8befeac4 100644 --- a/docs/build/html/search/variables_10.js +++ b/docs/build/html/search/variables_10.js @@ -1,7 +1,8 @@ var searchData= [ ['q_0',['q',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#adf608e22d0c0397217472408aab52631',1,'mlx::core::scheduler::StreamThread']]], - ['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']]] + ['q_5fstrides_1',['Q_strides',['../structmlx_1_1steel_1_1_attn_params.html#a90bba215328201a37eb1c430ce9f8563',1,'mlx::steel::AttnParams']]], + ['ql_2',['qL',['../structmlx_1_1steel_1_1_attn_params.html#a59255882cbd78bb6f15e704e3a356a7f',1,'mlx::steel::AttnParams']]], + ['quad_5fsize_3',['QUAD_SIZE',['../quantized_8h.html#a803e4d5a1459844ba647aea5b004e133',1,'quantized.h']]], + ['queue_4',['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_11.js b/docs/build/html/search/variables_11.js index 13d67e5d..570e8bc5 100644 --- a/docs/build/html/search/variables_11.js +++ b/docs/build/html/search/variables_11.js @@ -1,6 +1,6 @@ var searchData= [ - ['r_0',['r',['../structpocketfft_1_1detail_1_1cmplx.html#afc51cdf222d77690953a8cb8ce3ee692',1,'pocketfft::detail::cmplx']]], + ['r_0',['r',['../structpocketfft_1_1detail_1_1cmplx.html#afc51cdf222d77690953a8cb8ce3ee692',1,'pocketfft::detail::cmplx::r'],['../structmlx_1_1steel_1_1_shape2_d.html#a6e9e8d56782fc8772bc432c7f58393fe',1,'mlx::steel::Shape2D::r']]], ['r2h_1',['r2h',['../structpocketfft_1_1detail_1_1_exec_r2_r.html#a925b398c8e1868614ce9eaf381d02b7e',1,'pocketfft::detail::ExecR2R']]], ['rader_5f11_5fsteps_5f_2',['rader_11_steps_',['../backend_2metal_2kernels_2fft_8h.html#a1f3c377d05da52429172e64132dba750',1,'fft.h']]], ['rader_5f13_5fsteps_5f_3',['rader_13_steps_',['../backend_2metal_2kernels_2fft_8h.html#a20d24f3e040d3d226a70d4dd7c9ac6a9',1,'fft.h']]], diff --git a/docs/build/html/search/variables_12.js b/docs/build/html/search/variables_12.js index 4bbcefb0..3d3df556 100644 --- a/docs/build/html/search/variables_12.js +++ b/docs/build/html/search/variables_12.js @@ -1,9 +1,9 @@ var searchData= [ - ['scale_0',['scale',['../struct_scale_op.html#a02043fac21c68fb8d6863a01f45ede4b',1,'ScaleOp']]], + ['scale_0',['scale',['../struct_scale_op.html#a02043fac21c68fb8d6863a01f45ede4b',1,'ScaleOp::scale'],['../struct_transform_scale.html#aa56b8e107acf16fdf77006625c2b8bc6',1,'TransformScale::scale'],['../structmlx_1_1steel_1_1_attn_params.html#ad81bcd32e6ff8fec0000eca505fb6826',1,'mlx::steel::AttnParams::scale']]], ['scales_1',['scales',['../struct_quantized_block_loader.html#a6123e4a9209d6eacb58b2c2344ed1ecf',1,'QuantizedBlockLoader']]], ['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']]], + ['shape_3',['shape',['../structmlx_1_1core_1_1_reduction_plan.html#a6cfa8771fa9caf6fdcc3d74c9fca83ae',1,'mlx::core::ReductionPlan::shape'],['../structmlx_1_1steel_1_1_layout2_d.html#a23183747ab1ddbdd3f1fcac6d0faa2cd',1,'mlx::steel::Layout2D::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']]], @@ -16,8 +16,8 @@ var searchData= ['split_5fk_5fpartition_5fsize_13',['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_14',['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_15',['split_k_partitions',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#ae06c27116905d4ff3b9b436e588a93fd',1,'mlx::steel::GEMMSpiltKParams']]], - ['src_16',['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_17',['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']]], + ['src_16',['src',['../struct_quantized_block_loader.html#abbf8249ca99e3e87b296ddd60a984b76',1,'QuantizedBlockLoader::src'],['../structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa',1,'mlx::steel::BlockLoader::src'],['../structmlx_1_1steel_1_1_block_loader_t.html#a7004a4efaa483cc79b8b79810a17c777',1,'mlx::steel::BlockLoaderT::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']]], + ['src_5fld_17',['src_ld',['../struct_quantized_block_loader.html#a8050977d473d1a24fae5c833e609839e',1,'QuantizedBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d',1,'mlx::steel::BlockLoader::src_ld'],['../structmlx_1_1steel_1_1_block_loader_t.html#aeba87e81185da6b20a092c5d240d3321',1,'mlx::steel::BlockLoaderT::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']]], ['start_5frow_18',['start_row',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a220e033b689c8d6a6f319dae02b38334',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], ['steel_5fconv_5fgeneral_5fkernels_19',['steel_conv_general_kernels',['../jit_2steel__conv_8h.html#ae4ca1720029316b08ea92b7662347d47',1,'steel_conv.h']]], ['steel_5fconv_5fkernels_20',['steel_conv_kernels',['../jit_2steel__conv_8h.html#a386d79077465df56659416fd84adb513',1,'steel_conv.h']]], @@ -32,5 +32,5 @@ var searchData= ['strided_5fdevice_5fidx_29',['strided_device_idx',['../struct_read_writer.html#a4c0b12484aac4fd6759d67c190391989',1,'ReadWriter']]], ['strided_5fshared_5fidx_30',['strided_shared_idx',['../struct_read_writer.html#ace40adb02cfb33d89c98353327c251fc',1,'ReadWriter']]], ['strides_31',['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_32',['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']]] + ['swizzle_5flog_32',['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 364d08b9..2de578ca 100644 --- a/docs/build/html/search/variables_13.js +++ b/docs/build/html/search/variables_13.js @@ -9,15 +9,15 @@ var searchData= ['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']]], + ['thread_5fidx_9',['thread_idx',['../struct_quantized_block_loader.html#a50821537ea747bc03295a09bb0eef475',1,'QuantizedBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b',1,'mlx::steel::BlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_block_loader_t.html#af2838998a02866f22b525f9b6ae004da',1,'mlx::steel::BlockLoaderT::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']]], ['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_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'],['../structmlx_1_1steel_1_1_block_loader_t.html#a3abb86e68adb7e4d87cb808d6c25e35f',1,'mlx::steel::BlockLoaderT::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']]], + ['tiles_5fm_16',['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',['../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_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']]], diff --git a/docs/build/html/search/variables_15.js b/docs/build/html/search/variables_15.js index 0910291a..46e04f59 100644 --- a/docs/build/html/search/variables_15.js +++ b/docs/build/html/search/variables_15.js @@ -1,8 +1,9 @@ var searchData= [ - ['v_0',['v',['../structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#afbef88bfb901a71e8423de911b7c7347',1,'mlx::steel::BlockLoader::ReadVector']]], - ['val_1',['val',['../structpocketfft_1_1detail_1_1_v_l_e_n.html#ab1fdc340dedde723e636746c828a4534',1,'pocketfft::detail::VLEN::val'],['../structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747',1,'mlx_atomic::val'],['../structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d',1,'mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >::val']]], - ['val_5ffrags_2',['val_frags',['../structmlx_1_1steel_1_1_m_m_a_tile.html#ac4fb73ebc4e7b47a44b8bd6cadda5d44',1,'mlx::steel::MMATile']]], - ['value_3',['value',['../structmlx_1_1steel_1_1integral__constant.html#a4efa69cb3fd42ac0dcad46578600d637',1,'mlx::steel::integral_constant']]], - ['vec_5fsize_4',['vec_size',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#adcc83bf6c02391cc2375e55c06a1c9a4',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a71c313e1597a2bb99f7b07d434e119d2',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a10109dc9553207f5a365799e4969c6d2',1,'mlx::steel::Conv2DWeightBlockLoader::vec_size'],['../structmlx_1_1steel_1_1_channel_helper.html#a2b24f991a9380fdad6b51a038770b925',1,'mlx::steel::ChannelHelper::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#a71449551bbfe56058440755dfd50fc75',1,'mlx::steel::ChannelHelper< 1 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#acfb18991a77a9d1d4a79918ac5f387af',1,'mlx::steel::ChannelHelper< 2 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#a5cb83774601c29564a6bbc010fc0bf7f',1,'mlx::steel::ChannelHelper< 3 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#af28cdbe2a3c027d95832de07f60448ca',1,'mlx::steel::ChannelHelper< 4 >::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a6b0b18428516d1d6dcae3beb3faee81c',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a006153d274aa13d5fd4448b4607fff3a',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1587047caa339cf5b2c06adc4b332ab8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a08dba753ec7c8ea2892775746933b3e7',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::vec_size'],['../structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092',1,'mlx::steel::BlockLoader::vec_size']]] + ['v_0',['v',['../structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#a20963f7191251defca48bf8a843d019d',1,'mlx::steel::BlockLoader::ReadVector']]], + ['v_5fstrides_1',['V_strides',['../structmlx_1_1steel_1_1_attn_params.html#acc4860c3ce09c7230b470182ed002d3c',1,'mlx::steel::AttnParams']]], + ['val_2',['val',['../structpocketfft_1_1detail_1_1_v_l_e_n.html#ab1fdc340dedde723e636746c828a4534',1,'pocketfft::detail::VLEN::val'],['../structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747',1,'mlx_atomic::val'],['../structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d',1,'mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >::val']]], + ['val_5ffrags_3',['val_frags',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a684e6c6d9f00f583994285b60aaa3b62',1,'mlx::steel::MMATile']]], + ['value_4',['value',['../structmlx_1_1steel_1_1integral__constant.html#a4efa69cb3fd42ac0dcad46578600d637',1,'mlx::steel::integral_constant']]], + ['vec_5fsize_5',['vec_size',['../structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092',1,'mlx::steel::BlockLoader::vec_size'],['../structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5',1,'mlx::steel::BlockLoaderT::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#adcc83bf6c02391cc2375e55c06a1c9a4',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a71c313e1597a2bb99f7b07d434e119d2',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a10109dc9553207f5a365799e4969c6d2',1,'mlx::steel::Conv2DWeightBlockLoader::vec_size'],['../structmlx_1_1steel_1_1_channel_helper.html#a2b24f991a9380fdad6b51a038770b925',1,'mlx::steel::ChannelHelper::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#a71449551bbfe56058440755dfd50fc75',1,'mlx::steel::ChannelHelper< 1 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#acfb18991a77a9d1d4a79918ac5f387af',1,'mlx::steel::ChannelHelper< 2 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#a5cb83774601c29564a6bbc010fc0bf7f',1,'mlx::steel::ChannelHelper< 3 >::vec_size'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#af28cdbe2a3c027d95832de07f60448ca',1,'mlx::steel::ChannelHelper< 4 >::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a6b0b18428516d1d6dcae3beb3faee81c',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a006153d274aa13d5fd4448b4607fff3a',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1587047caa339cf5b2c06adc4b332ab8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::vec_size'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a08dba753ec7c8ea2892775746933b3e7',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::vec_size']]] ]; diff --git a/docs/build/html/search/variables_2.js b/docs/build/html/search/variables_2.js index dda638a3..3f19611c 100644 --- a/docs/build/html/search/variables_2.js +++ b/docs/build/html/search/variables_2.js @@ -1,18 +1,19 @@ var searchData= [ ['c_0',['C',['../struct_m_l_x_conv_params.html#a0953063962ac3b5a027243289e72fbb2',1,'MLXConvParams']]], - ['can_5fconvert_5ffrom_5fbfloat_1',['can_convert_from_bfloat',['../backend_2metal_2kernels_2bf16_8h.html#a7e5992f7fcd8f2cdadcc1d7f6aefbb5a',1,'bf16.h']]], - ['can_5fconvert_5ffrom_5fcomplex64_2',['can_convert_from_complex64',['../backend_2metal_2kernels_2complex_8h.html#ab149db78f6f19b8da6297dac4c36d893',1,'complex.h']]], - ['can_5fconvert_5fto_5fbfloat_3',['can_convert_to_bfloat',['../backend_2metal_2kernels_2bf16_8h.html#aae77817d261452b2f001f4d947a3e04e',1,'bf16.h']]], - ['can_5fconvert_5fto_5fcomplex128_4',['can_convert_to_complex128',['../namespacemlx_1_1core.html#a2822d2a4d346c826d3cfebbcf89c3057',1,'mlx::core']]], - ['can_5fconvert_5fto_5fcomplex64_5',['can_convert_to_complex64',['../backend_2metal_2kernels_2complex_8h.html#a4f90ad54f4fae363e8d3cc41d539557b',1,'can_convert_to_complex64: complex.h'],['../namespacemlx_1_1core.html#a0b3c76fd03f4df39ec8f9aefdced0861',1,'mlx::core::can_convert_to_complex64']]], - ['capitalize_5fbool_6',['capitalize_bool',['../structmlx_1_1core_1_1_print_formatter.html#adf49a949db36f0ba076842a6d675d79a',1,'mlx::core::PrintFormatter']]], - ['col_5fcontiguous_7',['col_contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#ae24709026598d635e6b5c24a15f8a802',1,'mlx::core::array::Flags']]], - ['complex64_8',['complex64',['../namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4',1,'mlx::core']]], - ['complexfloating_9',['complexfloating',['../namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423',1,'mlx::core']]], - ['cond_10',['cond',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a4ffd524d6a5bedd1a303b63bdde6701c',1,'mlx::core::scheduler::StreamThread']]], - ['contiguous_11',['contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#afd0ab11e7a486a2a8e50ee84b971ac8a',1,'mlx::core::array::Flags']]], - ['cosine_12',['cosine',['../structpocketfft_1_1detail_1_1_exec_dcst.html#a185023fc1e386cc8f233b79c49c1fd8a',1,'pocketfft::detail::ExecDcst']]], - ['cpu_13',['cpu',['../structmlx_1_1core_1_1_device.html#a69ee81924251dec96f1945c9d91506fd',1,'mlx::core::Device']]], - ['ctile_14',['Ctile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a81838da5d81e62d372d581be599c5a88',1,'mlx::steel::BlockMMA']]] + ['c_1',['c',['../structmlx_1_1steel_1_1_shape2_d.html#ae51347b2131647f2ed735ed43840d26e',1,'mlx::steel::Shape2D']]], + ['can_5fconvert_5ffrom_5fbfloat_2',['can_convert_from_bfloat',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e5992f7fcd8f2cdadcc1d7f6aefbb5a',1,'bf16.h']]], + ['can_5fconvert_5ffrom_5fcomplex64_3',['can_convert_from_complex64',['../backend_2metal_2kernels_2complex_8h.html#ab149db78f6f19b8da6297dac4c36d893',1,'complex.h']]], + ['can_5fconvert_5fto_5fbfloat_4',['can_convert_to_bfloat',['../backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aae77817d261452b2f001f4d947a3e04e',1,'bf16.h']]], + ['can_5fconvert_5fto_5fcomplex128_5',['can_convert_to_complex128',['../namespacemlx_1_1core.html#a2822d2a4d346c826d3cfebbcf89c3057',1,'mlx::core']]], + ['can_5fconvert_5fto_5fcomplex64_6',['can_convert_to_complex64',['../backend_2metal_2kernels_2complex_8h.html#a4f90ad54f4fae363e8d3cc41d539557b',1,'can_convert_to_complex64: complex.h'],['../namespacemlx_1_1core.html#a0b3c76fd03f4df39ec8f9aefdced0861',1,'mlx::core::can_convert_to_complex64']]], + ['capitalize_5fbool_7',['capitalize_bool',['../structmlx_1_1core_1_1_print_formatter.html#adf49a949db36f0ba076842a6d675d79a',1,'mlx::core::PrintFormatter']]], + ['col_5fcontiguous_8',['col_contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#ae24709026598d635e6b5c24a15f8a802',1,'mlx::core::array::Flags']]], + ['complex64_9',['complex64',['../namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4',1,'mlx::core']]], + ['complexfloating_10',['complexfloating',['../namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423',1,'mlx::core']]], + ['cond_11',['cond',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a4ffd524d6a5bedd1a303b63bdde6701c',1,'mlx::core::scheduler::StreamThread']]], + ['contiguous_12',['contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#afd0ab11e7a486a2a8e50ee84b971ac8a',1,'mlx::core::array::Flags']]], + ['cosine_13',['cosine',['../structpocketfft_1_1detail_1_1_exec_dcst.html#a185023fc1e386cc8f233b79c49c1fd8a',1,'pocketfft::detail::ExecDcst']]], + ['cpu_14',['cpu',['../structmlx_1_1core_1_1_device.html#a69ee81924251dec96f1945c9d91506fd',1,'mlx::core::Device']]], + ['ctile_15',['Ctile',['../structmlx_1_1steel_1_1_block_m_m_a.html#a21b0c40d16eced109bd3196186170bc6',1,'mlx::steel::BlockMMA']]] ]; diff --git a/docs/build/html/search/variables_3.js b/docs/build/html/search/variables_3.js index c6190bec..1a58473d 100644 --- a/docs/build/html/search/variables_3.js +++ b/docs/build/html/search/variables_3.js @@ -1,12 +1,14 @@ var searchData= [ - ['d_0',['d',['../classpocketfft_1_1detail_1_1cndarr.html#ac29c769aebb03f81fbcf16ba6e766af2',1,'pocketfft::detail::cndarr::d'],['../structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311',1,'mlx::core::array::Data::d']]], - ['device_1',['device',['../structmlx_1_1core_1_1_stream.html#a406b1b0162287a4162fab1f70e2ff3bb',1,'mlx::core::Stream']]], - ['digits_2',['digits',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['digits10_3',['digits10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['do_5faxpby_4',['do_axpby',['../steel__gemm__fused_8h.html#a703f06c849c89c37af7b1d27b0804a29',1,'steel_gemm_fused.h']]], - ['do_5fgather_5',['do_gather',['../steel__gemm__fused_8h.html#a60efac3ac3b7cd64d096bbae38a3ac69',1,'steel_gemm_fused.h']]], - ['do_5fread_6',['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_7',['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']]], - ['dst_5fld_8',['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']]] + ['d_0',['D',['../structmlx_1_1steel_1_1_attn_params.html#a07ae31628e43e09bce533c7682c8dae3',1,'mlx::steel::AttnParams']]], + ['d_1',['d',['../classpocketfft_1_1detail_1_1cndarr.html#ac29c769aebb03f81fbcf16ba6e766af2',1,'pocketfft::detail::cndarr::d'],['../structmlx_1_1core_1_1array_1_1_data.html#a25f52ac67912a49bb6e2b6715aa65311',1,'mlx::core::array::Data::d']]], + ['device_2',['device',['../structmlx_1_1core_1_1_stream.html#a406b1b0162287a4162fab1f70e2ff3bb',1,'mlx::core::Stream']]], + ['digits_3',['digits',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['digits10_4',['digits10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['dim_5',['dim',['../struct_looped_elem_to_loc.html#af8285112846769aba2c0d8615f6f1364',1,'LoopedElemToLoc::dim'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e',1,'LoopedElemToLoc< 1, OffsetT, true >::dim']]], + ['do_5faxpby_6',['do_axpby',['../steel__gemm__fused_8h.html#a703f06c849c89c37af7b1d27b0804a29',1,'steel_gemm_fused.h']]], + ['do_5fgather_7',['do_gather',['../steel__gemm__fused_8h.html#a60efac3ac3b7cd64d096bbae38a3ac69',1,'steel_gemm_fused.h']]], + ['do_5fread_8',['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_9',['dst',['../struct_quantized_block_loader.html#a9857214690fe6abad0e19d1045152f83',1,'QuantizedBlockLoader::dst'],['../structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2',1,'mlx::steel::BlockLoader::dst'],['../structmlx_1_1steel_1_1_block_loader_t.html#a6eb4e566b687395e27f290da288362db',1,'mlx::steel::BlockLoaderT::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']]], + ['dst_5fld_10',['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']]] ]; diff --git a/docs/build/html/search/variables_6.js b/docs/build/html/search/variables_6.js index f61b8553..24d74db5 100644 --- a/docs/build/html/search/variables_6.js +++ b/docs/build/html/search/variables_6.js @@ -3,17 +3,16 @@ var searchData= ['gather_5fbias_0',['gather_bias',['../steel__gemm__fused_8h.html#aaaf17233201156be684f858bfd0f1b67',1,'steel_gemm_fused.h']]], ['gather_5fkernels_1',['gather_kernels',['../jit_2indexing_8h.html#a1a03318128191891a84707602b57b3cf',1,'indexing.h']]], ['gemm_5fk_5fiterations_2',['gemm_k_iterations',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a8b50863e4e2d3481c154be6c3629bf51',1,'mlx::steel::ImplicitGemmConv2DParams']]], - ['gemm_5fk_5fiterations_5faligned_3',['gemm_k_iterations_aligned',['../struct_m_l_x_fast_attention_params.html#adbc0a13076da5f704498e57239cb2bf2',1,'MLXFastAttentionParams::gemm_k_iterations_aligned'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a0d7f419ba265805b418e93ce1ca2e0f9',1,'mlx::steel::GEMMParams::gemm_k_iterations_aligned'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#aa37e05a03ac8b34ec7dc31ca42f68998',1,'mlx::steel::GEMMSpiltKParams::gemm_k_iterations_aligned']]], - ['gemm_5fn_5fiterations_5faligned_4',['gemm_n_iterations_aligned',['../struct_m_l_x_fast_attention_params.html#ab56b3db8fc6a938ce9c739ee78a7b803',1,'MLXFastAttentionParams']]], - ['gemm_5fparams_5',['gemm_params',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#ab0724eb3ef52ee773b6607f6433b9f2c',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::gemm_params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#acc778b3c0b7ec38a43e8ea943df8704c',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::gemm_params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#af59f9d356c4c3ec5627dc5a263d239d4',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::gemm_params']]], - ['gemm_5fsv_5fm_5fblock_5fiterations_6',['gemm_sv_m_block_iterations',['../struct_m_l_x_fast_attention_params.html#a2799a2f219441fef7f351374f4cbc67c',1,'MLXFastAttentionParams']]], - ['gemv_5fmasked_5fkernel_7',['gemv_masked_kernel',['../jit_2gemv__masked_8h.html#a933f06c211f86c37673dee329ed6901f',1,'gemv_masked.h']]], - ['generic_8',['generic',['../namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2',1,'mlx::core']]], - ['global_5fformatter_9',['global_formatter',['../namespacemlx_1_1core.html#af5a408a78cc934717dd711ddfda58ea6',1,'mlx::core']]], - ['gpu_10',['gpu',['../structmlx_1_1core_1_1_device.html#a45ed081b56ae5d4ddd39c83a5d8a1616',1,'mlx::core::Device']]], - ['grid_11',['grid',['../struct_read_writer.html#ac7a957f99873d3797081f5d620f3b2c8',1,'ReadWriter']]], - ['group_5fstep_5fcnt_12',['group_step_cnt',['../struct_quantized_block_loader.html#a234feacde36a4afc0d740332a3769fb6',1,'QuantizedBlockLoader']]], - ['group_5fsteps_13',['group_steps',['../struct_quantized_block_loader.html#a31e14175f3d4902d9fe5ab5a219f61ba',1,'QuantizedBlockLoader']]], - ['group_5fstride_14',['group_stride',['../struct_quantized_block_loader.html#a0ace7e3762ecfa5a4106e7dee7e1b6ab',1,'QuantizedBlockLoader']]], - ['groups_15',['groups',['../struct_m_l_x_conv_params.html#af7a5590ac0974c7841c7f8b9fda0cbed',1,'MLXConvParams']]] + ['gemm_5fk_5fiterations_5faligned_3',['gemm_k_iterations_aligned',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a0d7f419ba265805b418e93ce1ca2e0f9',1,'mlx::steel::GEMMParams::gemm_k_iterations_aligned'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#aa37e05a03ac8b34ec7dc31ca42f68998',1,'mlx::steel::GEMMSpiltKParams::gemm_k_iterations_aligned']]], + ['gemm_5fparams_4',['gemm_params',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#ab0724eb3ef52ee773b6607f6433b9f2c',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::gemm_params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#acc778b3c0b7ec38a43e8ea943df8704c',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::gemm_params'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#af59f9d356c4c3ec5627dc5a263d239d4',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::gemm_params']]], + ['gemv_5fmasked_5fkernel_5',['gemv_masked_kernel',['../jit_2gemv__masked_8h.html#a933f06c211f86c37673dee329ed6901f',1,'gemv_masked.h']]], + ['generic_6',['generic',['../namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2',1,'mlx::core']]], + ['global_5fformatter_7',['global_formatter',['../namespacemlx_1_1core.html#af5a408a78cc934717dd711ddfda58ea6',1,'mlx::core']]], + ['gpu_8',['gpu',['../structmlx_1_1core_1_1_device.html#a45ed081b56ae5d4ddd39c83a5d8a1616',1,'mlx::core::Device']]], + ['gqa_5ffactor_9',['gqa_factor',['../structmlx_1_1steel_1_1_attn_params.html#a3b3e18cb993ab24819c852bc64288841',1,'mlx::steel::AttnParams']]], + ['grid_10',['grid',['../struct_read_writer.html#ac7a957f99873d3797081f5d620f3b2c8',1,'ReadWriter']]], + ['group_5fstep_5fcnt_11',['group_step_cnt',['../struct_quantized_block_loader.html#a234feacde36a4afc0d740332a3769fb6',1,'QuantizedBlockLoader']]], + ['group_5fsteps_12',['group_steps',['../struct_quantized_block_loader.html#a31e14175f3d4902d9fe5ab5a219f61ba',1,'QuantizedBlockLoader']]], + ['group_5fstride_13',['group_stride',['../struct_quantized_block_loader.html#a0ace7e3762ecfa5a4106e7dee7e1b6ab',1,'QuantizedBlockLoader']]], + ['groups_14',['groups',['../struct_m_l_x_conv_params.html#af7a5590ac0974c7841c7f8b9fda0cbed',1,'MLXConvParams']]] ]; diff --git a/docs/build/html/search/variables_7.js b/docs/build/html/search/variables_7.js index 33bcc018..7d6caf6d 100644 --- a/docs/build/html/search/variables_7.js +++ b/docs/build/html/search/variables_7.js @@ -1,11 +1,12 @@ var searchData= [ - ['h12_0',['h12',['../namespacemlx_1_1core.html#a4beeeec4413be7adcfb14feaa9cf0e2e',1,'mlx::core']]], - ['h20_1',['h20',['../namespacemlx_1_1core.html#a862c6b94fec384c34a699ced64d01404',1,'mlx::core']]], - ['h28_2',['h28',['../namespacemlx_1_1core.html#ac447ad59592dd06435adca7df37e33ad',1,'mlx::core']]], - ['has_5fbatch_3',['has_batch',['../steel__gemm__fused_8h.html#adffcdc900c19ff97f1523e43f1a5a6cc',1,'steel_gemm_fused.h']]], - ['has_5fmul_5foperand_5fmask_4',['has_mul_operand_mask',['../struct_g_e_m_v_kernel.html#ad47223ee49b3cb7bf3746a2cec45f883',1,'GEMVKernel::has_mul_operand_mask'],['../struct_g_e_m_v_t_kernel.html#a8db6f01f96a36b216acd801c34a96ef5',1,'GEMVTKernel::has_mul_operand_mask']]], - ['has_5fmul_5foutput_5fmask_5',['has_mul_output_mask',['../struct_g_e_m_v_kernel.html#a0edbf2dd6a6563e7afa6dab6b670615c',1,'GEMVKernel::has_mul_output_mask'],['../struct_g_e_m_v_t_kernel.html#a8eb06f6569e4042e24fee220b11fa10d',1,'GEMVTKernel::has_mul_output_mask']]], - ['has_5foperand_5fmask_6',['has_operand_mask',['../struct_g_e_m_v_kernel.html#ab00784dff1512a7b0919fcb4cfa5d50e',1,'GEMVKernel::has_operand_mask'],['../struct_g_e_m_v_t_kernel.html#a6729d6e63e76a1e9c7c8e78d9aac4869',1,'GEMVTKernel::has_operand_mask']]], - ['has_5foutput_5fmask_7',['has_output_mask',['../struct_g_e_m_v_kernel.html#ab8b64c94f4c8f6f09c0777415589b487',1,'GEMVKernel::has_output_mask'],['../struct_g_e_m_v_t_kernel.html#aaefdf8f023da255bbb70a0c3e3408626',1,'GEMVTKernel::has_output_mask']]] + ['h_0',['H',['../structmlx_1_1steel_1_1_attn_params.html#a3d286a0c27bace6016ed7a87f43291b7',1,'mlx::steel::AttnParams']]], + ['h12_1',['h12',['../namespacemlx_1_1core.html#a4beeeec4413be7adcfb14feaa9cf0e2e',1,'mlx::core']]], + ['h20_2',['h20',['../namespacemlx_1_1core.html#a862c6b94fec384c34a699ced64d01404',1,'mlx::core']]], + ['h28_3',['h28',['../namespacemlx_1_1core.html#ac447ad59592dd06435adca7df37e33ad',1,'mlx::core']]], + ['has_5fbatch_4',['has_batch',['../steel__gemm__fused_8h.html#adffcdc900c19ff97f1523e43f1a5a6cc',1,'steel_gemm_fused.h']]], + ['has_5fmul_5foperand_5fmask_5',['has_mul_operand_mask',['../struct_g_e_m_v_kernel.html#ad47223ee49b3cb7bf3746a2cec45f883',1,'GEMVKernel::has_mul_operand_mask'],['../struct_g_e_m_v_t_kernel.html#a8db6f01f96a36b216acd801c34a96ef5',1,'GEMVTKernel::has_mul_operand_mask']]], + ['has_5fmul_5foutput_5fmask_6',['has_mul_output_mask',['../struct_g_e_m_v_kernel.html#a0edbf2dd6a6563e7afa6dab6b670615c',1,'GEMVKernel::has_mul_output_mask'],['../struct_g_e_m_v_t_kernel.html#a8eb06f6569e4042e24fee220b11fa10d',1,'GEMVTKernel::has_mul_output_mask']]], + ['has_5foperand_5fmask_7',['has_operand_mask',['../struct_g_e_m_v_kernel.html#ab00784dff1512a7b0919fcb4cfa5d50e',1,'GEMVKernel::has_operand_mask'],['../struct_g_e_m_v_t_kernel.html#a6729d6e63e76a1e9c7c8e78d9aac4869',1,'GEMVTKernel::has_operand_mask']]], + ['has_5foutput_5fmask_8',['has_output_mask',['../struct_g_e_m_v_kernel.html#ab8b64c94f4c8f6f09c0777415589b487',1,'GEMVKernel::has_output_mask'],['../struct_g_e_m_v_t_kernel.html#aaefdf8f023da255bbb70a0c3e3408626',1,'GEMVTKernel::has_output_mask']]] ]; diff --git a/docs/build/html/search/variables_8.js b/docs/build/html/search/variables_8.js index aa38b6cb..7cd417b8 100644 --- a/docs/build/html/search/variables_8.js +++ b/docs/build/html/search/variables_8.js @@ -5,10 +5,10 @@ var searchData= ['imag_2',['imag',['../structcomplex64__t.html#a94037c0cf8451aaff7cb4d154a8426de',1,'complex64_t']]], ['in_3',['in',['../struct_read_writer.html#ab6057215920138f28fd00f0e7ea8afa4',1,'ReadWriter']]], ['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']]], + ['index_5',['index',['../struct_looped_elem_to_loc.html#acbd070b3193d9e87fb2c2db8db571333',1,'LoopedElemToLoc::index'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d',1,'LoopedElemToLoc< 1, OffsetT, true >::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_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']]], + ['inner_5flooper_8',['inner_looper',['../struct_looped_elem_to_loc.html#a8fbe77b4a774a30af5734dd9c5bd1f40',1,'LoopedElemToLoc']]], ['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']]], ['inp_5fjump_5fw_11',['inp_jump_w',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#acf168c72f4a86b72b8f5f386f07c9d8c',1,'mlx::steel::ImplicitGemmConv2DParams']]], @@ -19,11 +19,10 @@ var searchData= ['integer_16',['integer',['../namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b',1,'mlx::core']]], ['inv_17',['inv',['../struct_read_writer.html#a773fa8524515bdc2ff8b0e2060741813',1,'ReadWriter']]], ['inv_5f_18',['inv_',['../backend_2metal_2kernels_2fft_8h.html#a7a83318497519ff3ff0141b7d511ed38',1,'fft.h']]], - ['inv_5falpha_19',['INV_ALPHA',['../struct_m_l_x_scaled_dot_product_attention_params.html#a7461e0e17cdc7d3fed80bb00d58d8644',1,'MLXScaledDotProductAttentionParams']]], - ['is_20',['iS',['../struct_m_l_x_conv_params.html#a72e1c3b4da0f70622cf18036bbf97fe6',1,'MLXConvParams']]], - ['is_5farray_5fv_21',['is_array_v',['../namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af',1,'mlx::core']]], - ['is_5farrays_5fv_22',['is_arrays_v',['../namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda',1,'mlx::core']]], - ['is_5fintegral_5fv_23',['is_integral_v',['../namespacemlx_1_1steel.html#a92a3465716ea7fd682d22cecc08d45fd',1,'mlx::steel']]], - ['is_5fmetal_5fatomic_24',['is_metal_atomic',['../atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24',1,'atomic.h']]], - ['is_5fpower_5fof_5f2_5f_25',['is_power_of_2_',['../backend_2metal_2kernels_2fft_8h.html#a2a4df90e329b84ee6c1890ba7c265c9c',1,'fft.h']]] + ['is_19',['iS',['../struct_m_l_x_conv_params.html#a72e1c3b4da0f70622cf18036bbf97fe6',1,'MLXConvParams']]], + ['is_5farray_5fv_20',['is_array_v',['../namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af',1,'mlx::core']]], + ['is_5farrays_5fv_21',['is_arrays_v',['../namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda',1,'mlx::core']]], + ['is_5fintegral_5fv_22',['is_integral_v',['../namespacemlx_1_1steel.html#a92a3465716ea7fd682d22cecc08d45fd',1,'mlx::steel']]], + ['is_5fmetal_5fatomic_23',['is_metal_atomic',['../atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24',1,'atomic.h']]], + ['is_5fpower_5fof_5f2_5f_24',['is_power_of_2_',['../backend_2metal_2kernels_2fft_8h.html#a2a4df90e329b84ee6c1890ba7c265c9c',1,'fft.h']]] ]; diff --git a/docs/build/html/search/variables_a.js b/docs/build/html/search/variables_a.js index ec7e0d5f..4f98f1ce 100644 --- a/docs/build/html/search/variables_a.js +++ b/docs/build/html/search/variables_a.js @@ -1,18 +1,21 @@ var searchData= [ - ['k_0',['K',['../struct_m_l_x_fast_attention_params.html#ada454f5ad22ec36a22d0ff596751af23',1,'MLXFastAttentionParams::K'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#ae1b0386e4cd1a7018f4b654c4e9493ba',1,'mlx::steel::ImplicitGemmConv2DParams::K'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#aa0851af4da8df820bdad9589ff517cff',1,'mlx::steel::GEMMParams::K'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a3733f9031e82e761ec44e72ed5c6d0e7',1,'mlx::steel::GEMMSpiltKParams::K']]], - ['kcols_1',['kCols',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a948784652e93830887ee8ad506ec3257',1,'mlx::steel::MMATile']]], - ['kdil_2',['kdil',['../struct_m_l_x_conv_params.html#a7611db8f1621c7e09fc685ed44073b14',1,'MLXConvParams']]], - ['kelemcols_3',['kElemCols',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], - ['kelemrows_4',['kElemRows',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], - ['kelemsperfrag_5',['kElemsPerFrag',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kElemsPerFrag'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aef0ea2387e1ff5767bff8563b2d36bd6',1,'mlx::steel::MMATile::kElemsPerFrag']]], - ['kelemspertile_6',['kElemsPerTile',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a98357339ec98f804a1b12597937b318f',1,'mlx::steel::MMATile']]], - ['kfragcols_7',['kFragCols',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragCols'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906',1,'mlx::steel::MMATile::kFragCols']]], - ['kfragrows_8',['kFragRows',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragRows'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7',1,'mlx::steel::MMATile::kFragRows']]], - ['kfragsize_9',['kFragSize',['../structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d',1,'mlx::steel::BlockMMA']]], - ['knumfrags_10',['kNumFrags',['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae326e7693eb77c22d5a6e3e9219019d3',1,'mlx::steel::MMATile']]], - ['krows_11',['kRows',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a60ea6b8ff2923b7fe6f598e74ac54323',1,'mlx::steel::MMATile']]], - ['ktilecols_12',['kTileCols',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a46324d40f8ad61cade08a1ebad6d9ad4',1,'mlx::steel::MMATile']]], - ['ktilerows_13',['kTileRows',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1d126b14910385ab644e224ac1d0307a',1,'mlx::steel::MMATile']]], - ['kv_5ftiles_14',['KV_TILES',['../struct_m_l_x_scaled_dot_product_attention_params.html#a58ef2765fd681e6b35b2ba72030610e0',1,'MLXScaledDotProductAttentionParams']]] + ['k_0',['K',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#ae1b0386e4cd1a7018f4b654c4e9493ba',1,'mlx::steel::ImplicitGemmConv2DParams::K'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#aa0851af4da8df820bdad9589ff517cff',1,'mlx::steel::GEMMParams::K'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a3733f9031e82e761ec44e72ed5c6d0e7',1,'mlx::steel::GEMMSpiltKParams::K']]], + ['k_5fstrides_1',['K_strides',['../structmlx_1_1steel_1_1_attn_params.html#a03e5480d1cca6af541be54a8720e9974',1,'mlx::steel::AttnParams']]], + ['kcols_2',['kCols',['../structmlx_1_1steel_1_1_c_shape.html#a01b09227356b6a682a0694523a8e6901',1,'mlx::steel::CShape::kCols'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a948784652e93830887ee8ad506ec3257',1,'mlx::steel::MMATile::kCols']]], + ['kcolsperthread_3',['kColsPerThread',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1ea49efd92696b15302ee4b52ecd548c',1,'mlx::steel::MMATile']]], + ['kdil_4',['kdil',['../struct_m_l_x_conv_params.html#a7611db8f1621c7e09fc685ed44073b14',1,'MLXConvParams']]], + ['kelemcols_5',['kElemCols',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], + ['kelemrows_6',['kElemRows',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >']]], + ['kelemsperfrag_7',['kElemsPerFrag',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kElemsPerFrag'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#aef0ea2387e1ff5767bff8563b2d36bd6',1,'mlx::steel::MMATile::kElemsPerFrag']]], + ['kelemspertile_8',['kElemsPerTile',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a98357339ec98f804a1b12597937b318f',1,'mlx::steel::MMATile']]], + ['kfragcols_9',['kFragCols',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragCols'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906',1,'mlx::steel::MMATile::kFragCols']]], + ['kfragrows_10',['kFragRows',['../structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4',1,'mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragRows'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7',1,'mlx::steel::MMATile::kFragRows']]], + ['kfragsize_11',['kFragSize',['../structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d',1,'mlx::steel::BlockMMA']]], + ['kl_12',['kL',['../structmlx_1_1steel_1_1_attn_params.html#a497b7404bcd25b535c3589c61f269f63',1,'mlx::steel::AttnParams']]], + ['knumfrags_13',['kNumFrags',['../structmlx_1_1steel_1_1_m_m_a_tile.html#ae326e7693eb77c22d5a6e3e9219019d3',1,'mlx::steel::MMATile']]], + ['krows_14',['kRows',['../structmlx_1_1steel_1_1_c_shape.html#a5caf36cb9acf9f90ba59a9b0b4197993',1,'mlx::steel::CShape::kRows'],['../structmlx_1_1steel_1_1_m_m_a_tile.html#a60ea6b8ff2923b7fe6f598e74ac54323',1,'mlx::steel::MMATile::kRows']]], + ['krowsperthread_15',['kRowsPerThread',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a5b1d1c85a5046108a4e38bdc5a0ea74e',1,'mlx::steel::MMATile']]], + ['ktilecols_16',['kTileCols',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a46324d40f8ad61cade08a1ebad6d9ad4',1,'mlx::steel::MMATile']]], + ['ktilerows_17',['kTileRows',['../structmlx_1_1steel_1_1_m_m_a_tile.html#a1d126b14910385ab644e224ac1d0307a',1,'mlx::steel::MMATile']]] ]; diff --git a/docs/build/html/search/variables_b.js b/docs/build/html/search/variables_b.js index 9b85264b..56c02572 100644 --- a/docs/build/html/search/variables_b.js +++ b/docs/build/html/search/variables_b.js @@ -1,13 +1,9 @@ var searchData= [ - ['lda_0',['lda',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#afec42b532ffcad32bbffd494526bef03',1,'mlx::steel::GEMMParams::lda'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a6fac3c4a7c35af7b46b53f9662f882c6',1,'mlx::steel::GEMMSpiltKParams::lda']]], - ['ldb_1',['ldb',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a6032a081ab707c14b5f28069faa7cf62',1,'mlx::steel::GEMMParams::ldb'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a7f6f511854ccc98fa573bb560776ebed',1,'mlx::steel::GEMMSpiltKParams::ldb']]], - ['ldc_2',['ldc',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a888730efa5c5c8ae7ed771c3084d583c',1,'mlx::steel::GEMMSpiltKParams::ldc'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a801e2245a36632160975a784b762a4e6',1,'mlx::steel::GEMMAddMMParams::ldc']]], - ['ldd_3',['ldd',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a6e8ae14e3f97c499ad9c39358a1855ab',1,'mlx::steel::GEMMParams']]], - ['ldk_4',['ldk',['../struct_m_l_x_fast_attention_params.html#a1f8c89bd55d89ad7b9fe27c60e3cb8d5',1,'MLXFastAttentionParams']]], - ['ldo_5',['ldo',['../struct_m_l_x_fast_attention_params.html#a9e73dc1971b5ab913bd85a7afa7cf46c',1,'MLXFastAttentionParams']]], - ['ldq_6',['ldq',['../struct_m_l_x_fast_attention_params.html#af2dadba2a28f5db2ca52472d00937e58',1,'MLXFastAttentionParams']]], - ['lds_7',['lds',['../struct_m_l_x_fast_attention_params.html#a274eeb8591c02511014dce50c4240c8a',1,'MLXFastAttentionParams']]], - ['ldv_8',['ldv',['../struct_m_l_x_fast_attention_params.html#aebada0bf0789e8706dce564752208e8b',1,'MLXFastAttentionParams']]], - ['loc_9',['loc',['../structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1',1,'mlx::core::ContiguousIterator']]] + ['layout_0',['layout',['../structmlx_1_1steel_1_1_layout2_d.html#a6beedf1677ee1b192fb48c83a29ac8a1',1,'mlx::steel::Layout2D']]], + ['lda_1',['lda',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#afec42b532ffcad32bbffd494526bef03',1,'mlx::steel::GEMMParams::lda'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a6fac3c4a7c35af7b46b53f9662f882c6',1,'mlx::steel::GEMMSpiltKParams::lda']]], + ['ldb_2',['ldb',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a6032a081ab707c14b5f28069faa7cf62',1,'mlx::steel::GEMMParams::ldb'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a7f6f511854ccc98fa573bb560776ebed',1,'mlx::steel::GEMMSpiltKParams::ldb']]], + ['ldc_3',['ldc',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a888730efa5c5c8ae7ed771c3084d583c',1,'mlx::steel::GEMMSpiltKParams::ldc'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a801e2245a36632160975a784b762a4e6',1,'mlx::steel::GEMMAddMMParams::ldc']]], + ['ldd_4',['ldd',['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a6e8ae14e3f97c499ad9c39358a1855ab',1,'mlx::steel::GEMMParams']]], + ['loc_5',['loc',['../structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1',1,'mlx::core::ContiguousIterator']]] ]; diff --git a/docs/build/html/search/variables_c.js b/docs/build/html/search/variables_c.js index 1d872a1e..c2e22105 100644 --- a/docs/build/html/search/variables_c.js +++ b/docs/build/html/search/variables_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['m_0',['M',['../struct_m_l_x_fast_attention_params.html#a5cd3ede5f41d5fdf8177cab3f059f4d8',1,'MLXFastAttentionParams::M'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a2117fc93662d5177c8f3e7c2dbb9e2db',1,'mlx::steel::ImplicitGemmConv2DParams::M'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a85b20a4c4558cc78d76fcbd045a9c694',1,'mlx::steel::GEMMParams::M'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a8bab0cf8a20d2abefe294a7505917e7e',1,'mlx::steel::GEMMSpiltKParams::M']]], + ['m_0',['M',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a2117fc93662d5177c8f3e7c2dbb9e2db',1,'mlx::steel::ImplicitGemmConv2DParams::M'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a85b20a4c4558cc78d76fcbd045a9c694',1,'mlx::steel::GEMMParams::M'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a8bab0cf8a20d2abefe294a7505917e7e',1,'mlx::steel::GEMMSpiltKParams::M']]], ['mask_5fh_1',['mask_h',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a0b892c1a7edb9ed20c076d8945855c19',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], ['mask_5fw_2',['mask_w',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a19ddba7259c3c2c02ed90f3f635557be',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter']]], ['max_3',['max',['../struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8',1,'Limits::max'],['../struct_limits_3_01uint8__t_01_4.html#a1570fb640e2e41f96776db5ca08d500c',1,'Limits< uint8_t >::max'],['../struct_limits_3_01uint16__t_01_4.html#a228b33556ba4cb7e6137ab6258628488',1,'Limits< uint16_t >::max'],['../struct_limits_3_01uint32__t_01_4.html#a91fa8f7214ec936976a8324c7431c651',1,'Limits< uint32_t >::max'],['../struct_limits_3_01uint64__t_01_4.html#aa8c2257881a4e1fa8596fa07dba5e107',1,'Limits< uint64_t >::max'],['../struct_limits_3_01int8__t_01_4.html#a96fed01fa9249226be69760652643289',1,'Limits< int8_t >::max'],['../struct_limits_3_01int16__t_01_4.html#a12d64c398ca7609b7c906f3cf1a6f678',1,'Limits< int16_t >::max'],['../struct_limits_3_01int32__t_01_4.html#af756344b31e84222dd73d3445dcd5640',1,'Limits< int32_t >::max'],['../struct_limits_3_01int64__t_01_4.html#ac9c420604c0f3d237ddfb2b8a2439224',1,'Limits< int64_t >::max'],['../struct_limits_3_01half_01_4.html#a4f9515dbf2a622074f121bea39a7b175',1,'Limits< half >::max'],['../struct_limits_3_01float_01_4.html#aba172b22b388190aa3969ef16885d8a6',1,'Limits< float >::max'],['../struct_limits_3_01bfloat16__t_01_4.html#a0ead3618da6718629ea9fa4670b5005f',1,'Limits< bfloat16_t >::max'],['../struct_limits_3_01bool_01_4.html#acbd2132145888d51220558a101ffcff4',1,'Limits< bool >::max'],['../struct_limits_3_01complex64__t_01_4.html#ac01c274b224b90f5210b675a484f4607',1,'Limits< complex64_t >::max']]], diff --git a/docs/build/html/search/variables_d.js b/docs/build/html/search/variables_d.js index 733ac0ae..d7f44230 100644 --- a/docs/build/html/search/variables_d.js +++ b/docs/build/html/search/variables_d.js @@ -1,16 +1,18 @@ var searchData= [ - ['n_0',['N',['../struct_m_l_x_fast_attention_params.html#ab42c792a80388002e34992cbd837a167',1,'MLXFastAttentionParams::N'],['../struct_m_l_x_conv_params.html#ae6b7054dc3cffa8e6aedeb29fa7da932',1,'MLXConvParams::N'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a213f5ea4018120d8b61ab82754aaba83',1,'mlx::steel::ImplicitGemmConv2DParams::N'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a174626ab98515d89923b2841a664b9a1',1,'mlx::steel::GEMMParams::N'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a1103e79fb8962812b9a3c9d5c902ff86',1,'mlx::steel::GEMMSpiltKParams::N']]], + ['n_0',['N',['../struct_m_l_x_conv_params.html#ae6b7054dc3cffa8e6aedeb29fa7da932',1,'MLXConvParams::N'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a213f5ea4018120d8b61ab82754aaba83',1,'mlx::steel::ImplicitGemmConv2DParams::N'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a174626ab98515d89923b2841a664b9a1',1,'mlx::steel::GEMMParams::N'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a1103e79fb8962812b9a3c9d5c902ff86',1,'mlx::steel::GEMMSpiltKParams::N']]], ['n_1',['n',['../struct_read_writer.html#a655346c9ebfc33a69da3f1c1d4238dfb',1,'ReadWriter']]], ['n_5fchannels_2',['n_channels',['../structmlx_1_1steel_1_1_channel_helper.html#aa476bd0fcb38494c268547fc9820fc0a',1,'mlx::steel::ChannelHelper::n_channels'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#a06c2fb9c93660e8f6916228cd77f9494',1,'mlx::steel::ChannelHelper< 1 >::n_channels'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#ac66ff37bc2cf78d96667192a6cca73b5',1,'mlx::steel::ChannelHelper< 2 >::n_channels'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#a071c015713b7bab09930661165517eff',1,'mlx::steel::ChannelHelper< 3 >::n_channels'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#a167b00a84adf93b60e3d7a943d5eb977',1,'mlx::steel::ChannelHelper< 4 >::n_channels']]], - ['n_5fkv_5fheads_3',['N_KV_HEADS',['../struct_m_l_x_scaled_dot_product_attention_params.html#a68a292b9986c20560aca88394f82e9f7',1,'MLXScaledDotProductAttentionParams']]], - ['n_5fper_5fblock_4',['N_PER_BLOCK',['../struct_kernel_merge_sort.html#a959aaf5bfb70796a525fed318f7ae8ab',1,'KernelMergeSort::N_PER_BLOCK'],['../struct_kernel_multi_block_merge_sort.html#ae5113ca5852d11999ae932439af95a5c',1,'KernelMultiBlockMergeSort::N_PER_BLOCK']]], - ['n_5fq_5fheads_5',['N_Q_HEADS',['../struct_m_l_x_scaled_dot_product_attention_params.html#a1a63d2e7ad712b4ba26219c784c95177',1,'MLXScaledDotProductAttentionParams']]], - ['n_5freads_6',['n_reads',['../struct_quantized_block_loader.html#a6213479f7a6d9314d8879f8856b0b6fb',1,'QuantizedBlockLoader']]], - ['n_5frows_7',['n_rows',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a097c48a23e1bd7d8cf3e9d531397602f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a3ec8a92c9e6643c1d5bf8af278026fe8',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a593ec140370d53f8c968f6240116d38b',1,'mlx::steel::Conv2DWeightBlockLoader::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a8b6c0936c9ad2766242664f034d1115f',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae905e56c1129606e93dbbcd7baed8f0f',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#abff29c5d96645d9113314c9a997dd7a8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aaebb6da2cac9961f5edf52d16c18de7d',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::n_rows'],['../structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5',1,'mlx::steel::BlockLoader::n_rows']]], - ['names_8',['names',['../structmlx_1_1core_1_1_node_namer.html#a57823f9a2cdc60b2f06f857b36019277',1,'mlx::core::NodeNamer']]], - ['ndim_9',['ndim',['../struct_indices.html#a7dec359e91d0eb2b64e5461b54308313',1,'Indices::ndim'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#ae605df33f449872e3da9777d97008051',1,'mlx::core::fast::CustomKernelShapeInfo::ndim']]], - ['needs_5ftgp_5freduction_10',['needs_tgp_reduction',['../struct_g_e_m_v_kernel.html#ae8113fddf6fb637acfd12efd978b704c',1,'GEMVKernel::needs_tgp_reduction'],['../struct_g_e_m_v_t_kernel.html#a67be7ec69c3791f02e97ccdb00ae0e03',1,'GEMVTKernel::needs_tgp_reduction']]], - ['next_11',['next',['../backend_2metal_2allocator_8h.html#ae704ab07eac590091daa5fc4aec7bddb',1,'allocator.h']]], - ['number_12',['number',['../namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d',1,'mlx::core']]] + ['n_5fper_5fblock_3',['N_PER_BLOCK',['../struct_kernel_merge_sort.html#a959aaf5bfb70796a525fed318f7ae8ab',1,'KernelMergeSort::N_PER_BLOCK'],['../struct_kernel_multi_block_merge_sort.html#ae5113ca5852d11999ae932439af95a5c',1,'KernelMultiBlockMergeSort::N_PER_BLOCK']]], + ['n_5freads_4',['n_reads',['../struct_quantized_block_loader.html#a6213479f7a6d9314d8879f8856b0b6fb',1,'QuantizedBlockLoader']]], + ['n_5frows_5',['n_rows',['../structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5',1,'mlx::steel::BlockLoader::n_rows'],['../structmlx_1_1steel_1_1_block_loader_t.html#a0ccc7caa93e6e709981a1a08159d41dc',1,'mlx::steel::BlockLoaderT::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a097c48a23e1bd7d8cf3e9d531397602f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a3ec8a92c9e6643c1d5bf8af278026fe8',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a593ec140370d53f8c968f6240116d38b',1,'mlx::steel::Conv2DWeightBlockLoader::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a8b6c0936c9ad2766242664f034d1115f',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ae905e56c1129606e93dbbcd7baed8f0f',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#abff29c5d96645d9113314c9a997dd7a8',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::n_rows'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aaebb6da2cac9961f5edf52d16c18de7d',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::n_rows']]], + ['names_6',['names',['../structmlx_1_1core_1_1_node_namer.html#a57823f9a2cdc60b2f06f857b36019277',1,'mlx::core::NodeNamer']]], + ['ndim_7',['ndim',['../struct_indices.html#a7dec359e91d0eb2b64e5461b54308313',1,'Indices::ndim'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#ae605df33f449872e3da9777d97008051',1,'mlx::core::fast::CustomKernelShapeInfo::ndim']]], + ['needs_5ftgp_5freduction_8',['needs_tgp_reduction',['../struct_g_e_m_v_kernel.html#ae8113fddf6fb637acfd12efd978b704c',1,'GEMVKernel::needs_tgp_reduction'],['../struct_g_e_m_v_t_kernel.html#a67be7ec69c3791f02e97ccdb00ae0e03',1,'GEMVTKernel::needs_tgp_reduction']]], + ['next_9',['next',['../backend_2metal_2allocator_8h.html#ae704ab07eac590091daa5fc4aec7bddb',1,'allocator.h']]], + ['nk_10',['NK',['../structmlx_1_1steel_1_1_attn_params.html#a68a66e3fafa922dcfd1ab1f6bdc2375e',1,'mlx::steel::AttnParams']]], + ['nk_5faligned_11',['NK_aligned',['../structmlx_1_1steel_1_1_attn_params.html#aaf953954274794cfcb4e35e82d681b58',1,'mlx::steel::AttnParams']]], + ['nq_12',['NQ',['../structmlx_1_1steel_1_1_attn_params.html#a48575afc94ab9ff74deaba61464e57a1',1,'mlx::steel::AttnParams']]], + ['nq_5faligned_13',['NQ_aligned',['../structmlx_1_1steel_1_1_attn_params.html#a4cfd2ccb0fd7eb81c2a781a0614fdcbe',1,'mlx::steel::AttnParams']]], + ['number_14',['number',['../namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/variables_e.js b/docs/build/html/search/variables_e.js index ed7d09cf..4d4ca8fb 100644 --- a/docs/build/html/search/variables_e.js +++ b/docs/build/html/search/variables_e.js @@ -1,11 +1,12 @@ var searchData= [ ['o_0',['O',['../struct_m_l_x_conv_params.html#ad55ff586d30072d8154865f9dfe92d97',1,'MLXConvParams']]], - ['offset_1',['offset',['../structlooped__elem__to__loc.html#a11ef1389c9224e9117fd6374d740e0e0',1,'looped_elem_to_loc::offset'],['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html#a7aebc0b0656e3a55d0dbca27a57d600e',1,'looped_elem_to_loc< 1, offset_t >::offset']]], - ['op_2',['op',['../structmlx_1_1core_1_1_default_strided_reduce.html#ac871f55a7ddd205574974cb4492a240b',1,'mlx::core::DefaultStridedReduce::op'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#a1928f07db988715cc177999e386f4830',1,'mlx::core::DefaultContiguousReduce::op'],['../common_2binary_8h.html#a70228731d29946574b238d21fb4b360c',1,'op: binary.h']]], - ['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']]], - ['outputs_7',['outputs',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9',1,'mlx::core::metal::DeviceStream']]] + ['o_5fstrides_1',['O_strides',['../structmlx_1_1steel_1_1_attn_params.html#a33dc7fc22d2604a73af9f94eeea45bb4',1,'mlx::steel::AttnParams']]], + ['offset_2',['offset',['../struct_looped_elem_to_loc.html#acdffe540c383a67417604b6080704791',1,'LoopedElemToLoc::offset'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b',1,'LoopedElemToLoc< 1, OffsetT, true >::offset'],['../struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af792b1fd4e8286f97b9b863c127a2d9a',1,'LoopedElemToLoc< 1, OffsetT, false >::offset']]], + ['op_3',['op',['../structmlx_1_1core_1_1_default_strided_reduce.html#ac871f55a7ddd205574974cb4492a240b',1,'mlx::core::DefaultStridedReduce::op'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#a1928f07db988715cc177999e386f4830',1,'mlx::core::DefaultContiguousReduce::op'],['../common_2binary_8h.html#a70228731d29946574b238d21fb4b360c',1,'op: binary.h']]], + ['ortho_4',['ortho',['../structpocketfft_1_1detail_1_1_exec_dcst.html#aea17551a49acaca5e7808dc181d38b7f',1,'pocketfft::detail::ExecDcst']]], + ['os_5',['oS',['../struct_m_l_x_conv_params.html#a19ccb9fecfccdc18b6a7f0cc43adbc6e',1,'MLXConvParams']]], + ['out_6',['out',['../struct_read_writer.html#abea3b913c952c505d0ca4e529c7316ef',1,'ReadWriter']]], + ['out_5fstrides_7',['out_strides',['../struct_m_l_x_conv_params.html#a0c8b2cfc26859a2af9d39a2cfcc3aea6',1,'MLXConvParams']]], + ['outputs_8',['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 09019b7d..a53200a5 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -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, 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, 1, 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, 1, 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": [1, 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, 143, 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, 1, 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, 143, 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, 483, 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, 1, 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, 1, 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": [1, 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": [1, 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, "subdivid": 1, "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 +Search.setIndex({"alltitles": {"A Simple Example": [[488, "a-simple-example"]], "Array": [[315, null]], "Attention layer": [[5, "attention-layer"]], "Automatic Differentiation": [[482, "automatic-differentiation"]], "Automatic Vectorization": [[482, "automatic-vectorization"]], "Basics": [[486, "basics"]], "Basics of Compile": [[480, "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": [[474, null]], "Compilation": [[480, null]], "Compiling Training Graphs": [[480, "compiling-training-graphs"]], "Complex Example": [[1, "complex-example"]], "Conversion to NumPy and Other Frameworks": [[485, null]], "Converting the weights": [[5, "converting-the-weights"]], "Custom Extensions in MLX": [[2, null]], "Custom Metal Kernels": [[1, null]], "Data Types": [[316, null]], "Debugging": [[480, "debugging"]], "Devices and Streams": [[317, null]], "Differences from NumPy": [[483, "differences-from-numpy"]], "Distributed Communication": [[318, null], [481, null]], "Download the code": [[2, null], [5, null]], "Encoder layer": [[5, "encoder-layer"]], "Example Speedup": [[480, "example-speedup"]], "Examples": [[7, null]], "FFT": [[320, null]], "Fast": [[319, null]], "Full model": [[5, "full-model"]], "Function Transforms": [[482, null]], "Function and Graph Transformations": [[486, "function-and-graph-transformations"]], "Functions": [[449, null]], "Further Reading": [[7, null]], "Generation": [[5, "generation"]], "Getting Started": [[481, "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": [[483, "in-place-updates"]], "Indexing Arrays": [[483, null]], "Initializers": [[450, null]], "Inspecting Modules": [[323, "inspecting-modules"]], "Install": [[7, null]], "Installing MPI": [[481, "installing-mpi"]], "Introducing the Example": [[2, "introducing-the-example"]], "JAX": [[485, "jax"]], "LLM inference": [[5, null]], "Layers": [[451, null]], "Lazy Evaluation": [[484, null]], "Linear Algebra": [[321, null]], "Linear Regression": [[4, null]], "Loss Functions": [[452, null]], "MLX": [[7, null]], "Metal": [[322, null]], "Metal Debugger": [[3, null]], "Metal not found": [[8, "metal-not-found"]], "Module": [[453, null]], "Multi-Layer Perceptron": [[6, null]], "Neural Networks": [[323, null]], "Only Compute What You Use": [[484, "only-compute-what-you-use"]], "Operations": [[0, null], [2, "operations"], [454, null]], "Operations and Primitives": [[2, "operations-and-primitives"]], "Optimizer": [[475, null]], "Optimizers": [[455, null]], "Parameters": [[323, "parameters"]], "Primitive Transforms": [[2, "primitive-transforms"]], "Primitives": [[2, "primitives"]], "Pure Functions": [[480, "pure-functions"]], "Putting it all together": [[5, "putting-it-all-together"]], "PyTorch": [[485, "pytorch"]], "Python API": [[8, "python-api"]], "Python API Reference": [[7, null]], "Python Installation": [[8, "python-installation"]], "Quick Start Guide": [[486, null]], "Quick Start with Neural Networks": [[323, "quick-start-with-neural-networks"]], "Random": [[477, null]], "Results": [[2, "results"]], "Saving and Loading": [[455, "saving-and-loading"]], "Saving and Loading Arrays": [[487, null]], "Schedulers": [[476, null]], "Scripts": [[2, "scripts"], [5, "scripts"]], "Serialization Formats": [[487, "id1"]], "Setting up Remote Hosts": [[481, "setting-up-remote-hosts"]], "Simple Example": [[1, "simple-example"]], "Specifying the Stream": [[489, "specifying-the-stream"]], "Supported Data Types": [[316, "id2"]], "TensorFlow": [[485, "tensorflow"]], "The Module Class": [[323, "the-module-class"]], "Training Example": [[481, "training-example"]], "Transformations with Compile": [[480, "transformations-with-compile"]], "Transforming Compute Graphs": [[484, "transforming-compute-graphs"]], "Transforms": [[478, null]], "Tree Utils": [[479, null]], "Troubleshooting": [[8, "troubleshooting"], [8, "id2"]], "Tuning All Reduce": [[481, "tuning-all-reduce"]], "Unified Memory": [[488, null]], "Updating the Parameters": [[323, "updating-the-parameters"]], "Usage": [[2, "usage"], [7, null]], "Using Shape/Strides": [[1, "using-shape-strides"]], "Using Streams": [[489, null]], "Using the Primitive": [[2, "using-the-primitive"]], "Value and Grad": [[323, "value-and-grad"]], "Weight loading and benchmarking": [[5, "weight-loading-and-benchmarking"]], "When to Evaluate": [[484, "when-to-evaluate"]], "Why Lazy Evaluation": [[484, "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": [[314, 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.layer_norm": [[141, null]], "mlx.core.fast.metal_kernel": [[142, null]], "mlx.core.fast.rms_norm": [[143, null]], "mlx.core.fast.rope": [[144, null]], "mlx.core.fast.scaled_dot_product_attention": [[145, null]], "mlx.core.fft.fft": [[146, null]], "mlx.core.fft.fft2": [[147, null]], "mlx.core.fft.fftn": [[148, null]], "mlx.core.fft.ifft": [[149, null]], "mlx.core.fft.ifft2": [[150, null]], "mlx.core.fft.ifftn": [[151, null]], "mlx.core.fft.irfft": [[152, null]], "mlx.core.fft.irfft2": [[153, null]], "mlx.core.fft.irfftn": [[154, null]], "mlx.core.fft.rfft": [[155, null]], "mlx.core.fft.rfft2": [[156, null]], "mlx.core.fft.rfftn": [[157, null]], "mlx.core.flatten": [[158, null]], "mlx.core.floor": [[159, null]], "mlx.core.floor_divide": [[160, null]], "mlx.core.full": [[161, null]], "mlx.core.gather_mm": [[162, null]], "mlx.core.gather_qmm": [[163, null]], "mlx.core.grad": [[164, null]], "mlx.core.greater": [[165, null]], "mlx.core.greater_equal": [[166, null]], "mlx.core.hadamard_transform": [[167, null]], "mlx.core.identity": [[168, null]], "mlx.core.imag": [[169, null]], "mlx.core.inner": [[170, null]], "mlx.core.isclose": [[171, null]], "mlx.core.isfinite": [[172, null]], "mlx.core.isinf": [[173, null]], "mlx.core.isnan": [[174, null]], "mlx.core.isneginf": [[175, null]], "mlx.core.isposinf": [[176, null]], "mlx.core.issubdtype": [[177, null]], "mlx.core.jvp": [[178, null]], "mlx.core.left_shift": [[179, null]], "mlx.core.less": [[180, null]], "mlx.core.less_equal": [[181, null]], "mlx.core.linalg.cholesky": [[182, null]], "mlx.core.linalg.cholesky_inv": [[183, null]], "mlx.core.linalg.cross": [[184, null]], "mlx.core.linalg.eigh": [[185, null]], "mlx.core.linalg.eigvalsh": [[186, null]], "mlx.core.linalg.inv": [[187, null]], "mlx.core.linalg.norm": [[188, null]], "mlx.core.linalg.qr": [[189, null]], "mlx.core.linalg.svd": [[190, null]], "mlx.core.linalg.tri_inv": [[191, null]], "mlx.core.linspace": [[192, null]], "mlx.core.load": [[193, null]], "mlx.core.log": [[194, null]], "mlx.core.log10": [[195, null]], "mlx.core.log1p": [[196, null]], "mlx.core.log2": [[197, null]], "mlx.core.logaddexp": [[198, null]], "mlx.core.logical_and": [[199, null]], "mlx.core.logical_not": [[200, null]], "mlx.core.logical_or": [[201, null]], "mlx.core.logsumexp": [[202, null]], "mlx.core.matmul": [[203, null]], "mlx.core.max": [[204, null]], "mlx.core.maximum": [[205, null]], "mlx.core.mean": [[206, null]], "mlx.core.meshgrid": [[207, null]], "mlx.core.metal.clear_cache": [[208, null]], "mlx.core.metal.device_info": [[209, null]], "mlx.core.metal.get_active_memory": [[210, null]], "mlx.core.metal.get_cache_memory": [[211, null]], "mlx.core.metal.get_peak_memory": [[212, null]], "mlx.core.metal.is_available": [[213, null]], "mlx.core.metal.reset_peak_memory": [[214, null]], "mlx.core.metal.set_cache_limit": [[215, null]], "mlx.core.metal.set_memory_limit": [[216, null]], "mlx.core.metal.set_wired_limit": [[217, null]], "mlx.core.metal.start_capture": [[218, null]], "mlx.core.metal.stop_capture": [[219, null]], "mlx.core.min": [[220, null]], "mlx.core.minimum": [[221, null]], "mlx.core.moveaxis": [[222, null]], "mlx.core.multiply": [[223, null]], "mlx.core.nan_to_num": [[224, null]], "mlx.core.negative": [[225, null]], "mlx.core.new_stream": [[226, null]], "mlx.core.not_equal": [[227, null]], "mlx.core.ones": [[228, null]], "mlx.core.ones_like": [[229, null]], "mlx.core.outer": [[230, null]], "mlx.core.pad": [[231, null]], "mlx.core.partition": [[232, null]], "mlx.core.power": [[233, null]], "mlx.core.prod": [[234, null]], "mlx.core.put_along_axis": [[235, null]], "mlx.core.quantize": [[236, null]], "mlx.core.quantized_matmul": [[237, null]], "mlx.core.radians": [[238, null]], "mlx.core.random.bernoulli": [[239, null]], "mlx.core.random.categorical": [[240, null]], "mlx.core.random.gumbel": [[241, null]], "mlx.core.random.key": [[242, null]], "mlx.core.random.laplace": [[243, null]], "mlx.core.random.multivariate_normal": [[244, null]], "mlx.core.random.normal": [[245, null]], "mlx.core.random.permutation": [[246, null]], "mlx.core.random.randint": [[247, null]], "mlx.core.random.seed": [[248, null]], "mlx.core.random.split": [[249, null]], "mlx.core.random.truncated_normal": [[250, null]], "mlx.core.random.uniform": [[251, null]], "mlx.core.real": [[252, null]], "mlx.core.reciprocal": [[253, null]], "mlx.core.remainder": [[254, null]], "mlx.core.repeat": [[255, null]], "mlx.core.reshape": [[256, null]], "mlx.core.right_shift": [[257, null]], "mlx.core.roll": [[258, null]], "mlx.core.round": [[259, null]], "mlx.core.rsqrt": [[260, null]], "mlx.core.save": [[261, null]], "mlx.core.save_gguf": [[262, null]], "mlx.core.save_safetensors": [[263, null]], "mlx.core.savez": [[264, null]], "mlx.core.savez_compressed": [[265, null]], "mlx.core.set_default_device": [[266, null]], "mlx.core.set_default_stream": [[267, null]], "mlx.core.sigmoid": [[268, null]], "mlx.core.sign": [[269, null]], "mlx.core.sin": [[270, null]], "mlx.core.sinh": [[271, null]], "mlx.core.softmax": [[272, null]], "mlx.core.sort": [[273, null]], "mlx.core.split": [[274, null]], "mlx.core.sqrt": [[275, null]], "mlx.core.square": [[276, null]], "mlx.core.squeeze": [[277, null]], "mlx.core.stack": [[278, null]], "mlx.core.std": [[279, null]], "mlx.core.stop_gradient": [[280, null]], "mlx.core.stream": [[281, null]], "mlx.core.subtract": [[282, null]], "mlx.core.sum": [[283, null]], "mlx.core.swapaxes": [[284, null]], "mlx.core.synchronize": [[285, null]], "mlx.core.take": [[286, null]], "mlx.core.take_along_axis": [[287, null]], "mlx.core.tan": [[288, null]], "mlx.core.tanh": [[289, null]], "mlx.core.tensordot": [[290, null]], "mlx.core.tile": [[291, null]], "mlx.core.topk": [[292, null]], "mlx.core.trace": [[293, null]], "mlx.core.transpose": [[294, null]], "mlx.core.tri": [[295, null]], "mlx.core.tril": [[296, null]], "mlx.core.triu": [[297, null]], "mlx.core.value_and_grad": [[298, null]], "mlx.core.var": [[299, null]], "mlx.core.view": [[300, null]], "mlx.core.vjp": [[301, null]], "mlx.core.vmap": [[302, null]], "mlx.core.where": [[303, null]], "mlx.core.zeros": [[304, null]], "mlx.core.zeros_like": [[305, null]], "mlx.nn.ALiBi": [[324, null]], "mlx.nn.AvgPool1d": [[325, null]], "mlx.nn.AvgPool2d": [[326, null]], "mlx.nn.AvgPool3d": [[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.MaxPool3d": [[357, null]], "mlx.nn.Mish": [[358, null]], "mlx.nn.Module.apply": [[359, null]], "mlx.nn.Module.apply_to_modules": [[360, null]], "mlx.nn.Module.children": [[361, null]], "mlx.nn.Module.eval": [[362, null]], "mlx.nn.Module.filter_and_map": [[363, null]], "mlx.nn.Module.freeze": [[364, null]], "mlx.nn.Module.leaf_modules": [[365, null]], "mlx.nn.Module.load_weights": [[366, null]], "mlx.nn.Module.modules": [[367, null]], "mlx.nn.Module.named_modules": [[368, null]], "mlx.nn.Module.parameters": [[369, null]], "mlx.nn.Module.save_weights": [[370, null]], "mlx.nn.Module.set_dtype": [[371, null]], "mlx.nn.Module.state": [[372, null]], "mlx.nn.Module.train": [[373, null]], "mlx.nn.Module.trainable_parameters": [[374, null]], "mlx.nn.Module.training": [[375, null]], "mlx.nn.Module.unfreeze": [[376, null]], "mlx.nn.Module.update": [[377, null]], "mlx.nn.Module.update_modules": [[378, null]], "mlx.nn.MultiHeadAttention": [[379, null]], "mlx.nn.PReLU": [[380, null]], "mlx.nn.QuantizedEmbedding": [[381, null]], "mlx.nn.QuantizedLinear": [[382, null]], "mlx.nn.RMSNorm": [[383, null]], "mlx.nn.RNN": [[384, null]], "mlx.nn.ReLU": [[385, null]], "mlx.nn.ReLU6": [[386, null]], "mlx.nn.RoPE": [[387, null]], "mlx.nn.SELU": [[388, null]], "mlx.nn.Sequential": [[389, null]], "mlx.nn.SiLU": [[390, null]], "mlx.nn.Sigmoid": [[391, null]], "mlx.nn.SinusoidalPositionalEncoding": [[392, null]], "mlx.nn.Softmax": [[393, null]], "mlx.nn.Softmin": [[394, null]], "mlx.nn.Softplus": [[395, null]], "mlx.nn.Softshrink": [[396, null]], "mlx.nn.Softsign": [[397, null]], "mlx.nn.Step": [[398, null]], "mlx.nn.Tanh": [[399, null]], "mlx.nn.Transformer": [[400, null]], "mlx.nn.Upsample": [[401, null]], "mlx.nn.celu": [[410, null]], "mlx.nn.elu": [[411, null]], "mlx.nn.gelu": [[412, null]], "mlx.nn.gelu_approx": [[413, null]], "mlx.nn.gelu_fast_approx": [[414, null]], "mlx.nn.glu": [[415, null]], "mlx.nn.hard_shrink": [[416, null]], "mlx.nn.hard_tanh": [[417, null]], "mlx.nn.hardswish": [[418, null]], "mlx.nn.init.constant": [[402, null]], "mlx.nn.init.glorot_normal": [[403, null]], "mlx.nn.init.glorot_uniform": [[404, null]], "mlx.nn.init.he_normal": [[405, null]], "mlx.nn.init.he_uniform": [[406, null]], "mlx.nn.init.identity": [[407, null]], "mlx.nn.init.normal": [[408, null]], "mlx.nn.init.uniform": [[409, null]], "mlx.nn.leaky_relu": [[419, null]], "mlx.nn.log_sigmoid": [[420, null]], "mlx.nn.log_softmax": [[421, null]], "mlx.nn.losses.binary_cross_entropy": [[422, null]], "mlx.nn.losses.cosine_similarity_loss": [[423, null]], "mlx.nn.losses.cross_entropy": [[424, null]], "mlx.nn.losses.gaussian_nll_loss": [[425, null]], "mlx.nn.losses.hinge_loss": [[426, null]], "mlx.nn.losses.huber_loss": [[427, null]], "mlx.nn.losses.kl_div_loss": [[428, null]], "mlx.nn.losses.l1_loss": [[429, null]], "mlx.nn.losses.log_cosh_loss": [[430, null]], "mlx.nn.losses.margin_ranking_loss": [[431, null]], "mlx.nn.losses.mse_loss": [[432, null]], "mlx.nn.losses.nll_loss": [[433, null]], "mlx.nn.losses.smooth_l1_loss": [[434, null]], "mlx.nn.losses.triplet_loss": [[435, null]], "mlx.nn.mish": [[436, null]], "mlx.nn.prelu": [[437, null]], "mlx.nn.quantize": [[306, null]], "mlx.nn.relu": [[438, null]], "mlx.nn.relu6": [[439, null]], "mlx.nn.selu": [[440, null]], "mlx.nn.sigmoid": [[441, null]], "mlx.nn.silu": [[442, null]], "mlx.nn.softmax": [[443, null]], "mlx.nn.softmin": [[444, null]], "mlx.nn.softplus": [[445, null]], "mlx.nn.softshrink": [[446, null]], "mlx.nn.step": [[447, null]], "mlx.nn.tanh": [[448, null]], "mlx.nn.value_and_grad": [[307, null]], "mlx.optimizers.AdaDelta": [[456, null]], "mlx.optimizers.Adafactor": [[457, null]], "mlx.optimizers.Adagrad": [[458, null]], "mlx.optimizers.Adam": [[459, null]], "mlx.optimizers.AdamW": [[460, null]], "mlx.optimizers.Adamax": [[461, null]], "mlx.optimizers.Lion": [[462, null]], "mlx.optimizers.Optimizer.apply_gradients": [[463, null]], "mlx.optimizers.Optimizer.init": [[464, null]], "mlx.optimizers.Optimizer.state": [[465, null]], "mlx.optimizers.Optimizer.update": [[466, null]], "mlx.optimizers.RMSprop": [[467, null]], "mlx.optimizers.SGD": [[468, null]], "mlx.optimizers.clip_grad_norm": [[308, null]], "mlx.optimizers.cosine_decay": [[469, null]], "mlx.optimizers.exponential_decay": [[470, null]], "mlx.optimizers.join_schedules": [[471, null]], "mlx.optimizers.linear_schedule": [[472, null]], "mlx.optimizers.step_decay": [[473, null]], "mlx.utils.tree_flatten": [[309, null]], "mlx.utils.tree_map": [[310, null]], "mlx.utils.tree_map_with_path": [[311, null]], "mlx.utils.tree_reduce": [[312, null]], "mlx.utils.tree_unflatten": [[313, 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.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.AvgPool3d", "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.MaxPool3d", "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.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.AvgPool3d.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.MaxPool3d.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)": [[314, "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)": [[456, "mlx.optimizers.AdaDelta", false]], "adafactor (class in mlx.optimizers)": [[457, "mlx.optimizers.Adafactor", false]], "adagrad (class in mlx.optimizers)": [[458, "mlx.optimizers.Adagrad", false]], "adam (class in mlx.optimizers)": [[459, "mlx.optimizers.Adam", false]], "adamax (class in mlx.optimizers)": [[461, "mlx.optimizers.Adamax", false]], "adamw (class in mlx.optimizers)": [[460, "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]], "alibi (class in mlx.nn)": [[324, "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)": [[359, "mlx.nn.Module.apply", false]], "apply_gradients() (optimizer method)": [[463, "mlx.optimizers.Optimizer.apply_gradients", false]], "apply_to_modules() (module method)": [[360, "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)": [[325, "mlx.nn.AvgPool1d", false]], "avgpool2d (class in mlx.nn)": [[326, "mlx.nn.AvgPool2d", false]], "avgpool3d (class in mlx.nn)": [[327, "mlx.nn.AvgPool3d", false]], "batchnorm (class in mlx.nn)": [[328, "mlx.nn.BatchNorm", false]], "bernoulli() (in module mlx.core.random)": [[239, "mlx.core.random.bernoulli", false]], "binary_cross_entropy (class in mlx.nn.losses)": [[422, "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)": [[240, "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], [410, "mlx.nn.celu", false]], "children() (module method)": [[361, "mlx.nn.Module.children", false]], "cholesky() (in module mlx.core.linalg)": [[182, "mlx.core.linalg.cholesky", false]], "cholesky_inv() (in module mlx.core.linalg)": [[183, "mlx.core.linalg.cholesky_inv", false]], "clear_cache() (in module mlx.core.metal)": [[208, "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)": [[308, "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)": [[402, "mlx.nn.init.constant", false]], "contiguous (c++ function)": [[0, "_CPPv410contiguousRK5arrayb14StreamOrDevice", 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)": [[469, "mlx.optimizers.cosine_decay", false]], "cosine_similarity_loss (class in mlx.nn.losses)": [[423, "mlx.nn.losses.cosine_similarity_loss", false]], "cross() (in module mlx.core.linalg)": [[184, "mlx.core.linalg.cross", false]], "cross_entropy (class in mlx.nn.losses)": [[424, "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)": [[209, "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)": [[185, "mlx.core.linalg.eigh", false]], "eigvalsh() (in module mlx.core.linalg)": [[186, "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], [411, "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)": [[362, "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)": [[470, "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)": [[146, "mlx.core.fft.fft", false]], "fft2() (in module mlx.core.fft)": [[147, "mlx.core.fft.fft2", false]], "fftn() (in module mlx.core.fft)": [[148, "mlx.core.fft.fftn", false]], "filter_and_map() (module method)": [[363, "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)": [[158, "mlx.core.flatten", false]], "floor (c++ function)": [[0, "_CPPv45floorRK5array14StreamOrDevice", false]], "floor() (in module mlx.core)": [[159, "mlx.core.floor", false]], "floor_divide (c++ function)": [[0, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", false]], "floor_divide() (in module mlx.core)": [[160, "mlx.core.floor_divide", false]], "freeze() (module method)": [[364, "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)": [[161, "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)": [[162, "mlx.core.gather_mm", false]], "gather_qmm (c++ function)": [[0, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", false]], "gather_qmm() (in module mlx.core)": [[163, "mlx.core.gather_qmm", false]], "gaussian_nll_loss (class in mlx.nn.losses)": [[425, "mlx.nn.losses.gaussian_nll_loss", false]], "gelu (class in mlx.nn)": [[341, "mlx.nn.GELU", false], [412, "mlx.nn.gelu", false]], "gelu_approx (class in mlx.nn)": [[413, "mlx.nn.gelu_approx", false]], "gelu_fast_approx (class in mlx.nn)": [[414, "mlx.nn.gelu_fast_approx", false]], "get_active_memory() (in module mlx.core.metal)": [[210, "mlx.core.metal.get_active_memory", false]], "get_cache_memory() (in module mlx.core.metal)": [[211, "mlx.core.metal.get_cache_memory", false]], "get_peak_memory() (in module mlx.core.metal)": [[212, "mlx.core.metal.get_peak_memory", false]], "glorot_normal() (in module mlx.nn.init)": [[403, "mlx.nn.init.glorot_normal", false]], "glorot_uniform() (in module mlx.nn.init)": [[404, "mlx.nn.init.glorot_uniform", false]], "glu (class in mlx.nn)": [[342, "mlx.nn.GLU", false], [415, "mlx.nn.glu", false]], "grad() (in module mlx.core)": [[164, "mlx.core.grad", false]], "greater (c++ function)": [[0, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", false]], "greater() (in module mlx.core)": [[165, "mlx.core.greater", false]], "greater_equal (c++ function)": [[0, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", false]], "greater_equal() (in module mlx.core)": [[166, "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)": [[241, "mlx.core.random.gumbel", false]], "hadamard_transform (c++ function)": [[0, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", false]], "hadamard_transform() (in module mlx.core)": [[167, "mlx.core.hadamard_transform", false]], "hard_shrink (class in mlx.nn)": [[416, "mlx.nn.hard_shrink", false]], "hard_tanh (class in mlx.nn)": [[417, "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], [418, "mlx.nn.hardswish", false]], "hardtanh (class in mlx.nn)": [[346, "mlx.nn.HardTanh", false]], "he_normal() (in module mlx.nn.init)": [[405, "mlx.nn.init.he_normal", false]], "he_uniform() (in module mlx.nn.init)": [[406, "mlx.nn.init.he_uniform", false]], "hinge_loss (class in mlx.nn.losses)": [[426, "mlx.nn.losses.hinge_loss", false]], "huber_loss (class in mlx.nn.losses)": [[427, "mlx.nn.losses.huber_loss", false]], "identity (c++ function)": [[0, "_CPPv48identityi14StreamOrDevice", false], [0, "_CPPv48identityi5Dtype14StreamOrDevice", false]], "identity() (in module mlx.core)": [[168, "mlx.core.identity", false]], "identity() (in module mlx.nn.init)": [[407, "mlx.nn.init.identity", false]], "ifft() (in module mlx.core.fft)": [[149, "mlx.core.fft.ifft", false]], "ifft2() (in module mlx.core.fft)": [[150, "mlx.core.fft.ifft2", false]], "ifftn() (in module mlx.core.fft)": [[151, "mlx.core.fft.ifftn", false]], "imag (c++ function)": [[0, "_CPPv44imagRK5array14StreamOrDevice", false]], "imag() (in module mlx.core)": [[169, "mlx.core.imag", false]], "init() (in module mlx.core.distributed)": [[123, "mlx.core.distributed.init", false]], "init() (optimizer method)": [[464, "mlx.optimizers.Optimizer.init", false]], "inner (c++ function)": [[0, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", false]], "inner() (in module mlx.core)": [[170, "mlx.core.inner", false]], "instancenorm (class in mlx.nn)": [[348, "mlx.nn.InstanceNorm", false]], "inv() (in module mlx.core.linalg)": [[187, "mlx.core.linalg.inv", false]], "irfft() (in module mlx.core.fft)": [[152, "mlx.core.fft.irfft", false]], "irfft2() (in module mlx.core.fft)": [[153, "mlx.core.fft.irfft2", false]], "irfftn() (in module mlx.core.fft)": [[154, "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)": [[213, "mlx.core.metal.is_available", false]], "isclose (c++ function)": [[0, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", false]], "isclose() (in module mlx.core)": [[171, "mlx.core.isclose", false]], "isfinite (c++ function)": [[0, "_CPPv48isfiniteRK5array14StreamOrDevice", false]], "isfinite() (in module mlx.core)": [[172, "mlx.core.isfinite", false]], "isinf (c++ function)": [[0, "_CPPv45isinfRK5array14StreamOrDevice", false]], "isinf() (in module mlx.core)": [[173, "mlx.core.isinf", false]], "isnan (c++ function)": [[0, "_CPPv45isnanRK5array14StreamOrDevice", false]], "isnan() (in module mlx.core)": [[174, "mlx.core.isnan", false]], "isneginf (c++ function)": [[0, "_CPPv48isneginfRK5array14StreamOrDevice", false]], "isneginf() (in module mlx.core)": [[175, "mlx.core.isneginf", false]], "isposinf (c++ function)": [[0, "_CPPv48isposinfRK5array14StreamOrDevice", false]], "isposinf() (in module mlx.core)": [[176, "mlx.core.isposinf", false]], "issubdtype() (in module mlx.core)": [[177, "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)": [[471, "mlx.optimizers.join_schedules", false]], "jvp() (in module mlx.core)": [[178, "mlx.core.jvp", false]], "key() (in module mlx.core.random)": [[242, "mlx.core.random.key", false]], "kl_div_loss (class in mlx.nn.losses)": [[428, "mlx.nn.losses.kl_div_loss", false]], "l1_loss (class in mlx.nn.losses)": [[429, "mlx.nn.losses.l1_loss", false]], "laplace() (in module mlx.core.random)": [[243, "mlx.core.random.laplace", false]], "layer_norm() (in module mlx.core.fast)": [[141, "mlx.core.fast.layer_norm", false]], "layernorm (class in mlx.nn)": [[350, "mlx.nn.LayerNorm", false]], "leaf_modules() (module method)": [[365, "mlx.nn.Module.leaf_modules", false]], "leaky_relu (class in mlx.nn)": [[419, "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)": [[179, "mlx.core.left_shift", false]], "less (c++ function)": [[0, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", false]], "less() (in module mlx.core)": [[180, "mlx.core.less", false]], "less_equal (c++ function)": [[0, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", false]], "less_equal() (in module mlx.core)": [[181, "mlx.core.less_equal", false]], "linear (class in mlx.nn)": [[352, "mlx.nn.Linear", false]], "linear_schedule() (in module mlx.optimizers)": [[472, "mlx.optimizers.linear_schedule", false]], "linspace (c++ function)": [[0, "_CPPv48linspaceddi5Dtype14StreamOrDevice", false]], "linspace() (in module mlx.core)": [[192, "mlx.core.linspace", false]], "lion (class in mlx.optimizers)": [[462, "mlx.optimizers.Lion", false]], "load() (in module mlx.core)": [[193, "mlx.core.load", false]], "load_weights() (module method)": [[366, "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)": [[194, "mlx.core.log", false]], "log10 (c++ function)": [[0, "_CPPv45log10RK5array14StreamOrDevice", false]], "log10() (array method)": [[53, "mlx.core.array.log10", false]], "log10() (in module mlx.core)": [[195, "mlx.core.log10", false]], "log1p (c++ function)": [[0, "_CPPv45log1pRK5array14StreamOrDevice", false]], "log1p() (array method)": [[54, "mlx.core.array.log1p", false]], "log1p() (in module mlx.core)": [[196, "mlx.core.log1p", false]], "log2 (c++ function)": [[0, "_CPPv44log2RK5array14StreamOrDevice", false]], "log2() (array method)": [[55, "mlx.core.array.log2", false]], "log2() (in module mlx.core)": [[197, "mlx.core.log2", false]], "log_cosh_loss (class in mlx.nn.losses)": [[430, "mlx.nn.losses.log_cosh_loss", false]], "log_sigmoid (class in mlx.nn)": [[420, "mlx.nn.log_sigmoid", false]], "log_softmax (class in mlx.nn)": [[421, "mlx.nn.log_softmax", false]], "logaddexp (c++ function)": [[0, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", false]], "logaddexp() (in module mlx.core)": [[198, "mlx.core.logaddexp", false]], "logical_and (c++ function)": [[0, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", false]], "logical_and() (in module mlx.core)": [[199, "mlx.core.logical_and", false]], "logical_not (c++ function)": [[0, "_CPPv411logical_notRK5array14StreamOrDevice", false]], "logical_not() (in module mlx.core)": [[200, "mlx.core.logical_not", false]], "logical_or (c++ function)": [[0, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", false]], "logical_or() (in module mlx.core)": [[201, "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)": [[202, "mlx.core.logsumexp", false]], "lstm (class in mlx.nn)": [[349, "mlx.nn.LSTM", false]], "margin_ranking_loss (class in mlx.nn.losses)": [[431, "mlx.nn.losses.margin_ranking_loss", false]], "matmul (c++ function)": [[0, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", false]], "matmul() (in module mlx.core)": [[203, "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)": [[204, "mlx.core.max", false]], "maximum (c++ function)": [[0, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", false]], "maximum() (in module mlx.core)": [[205, "mlx.core.maximum", false]], "maxpool1d (class in mlx.nn)": [[355, "mlx.nn.MaxPool1d", false]], "maxpool2d (class in mlx.nn)": [[356, "mlx.nn.MaxPool2d", false]], "maxpool3d (class in mlx.nn)": [[357, "mlx.nn.MaxPool3d", 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)": [[206, "mlx.core.mean", false]], "meshgrid (c++ function)": [[0, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", false]], "meshgrid() (in module mlx.core)": [[207, "mlx.core.meshgrid", false]], "metal_kernel() (in module mlx.core.fast)": [[142, "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)": [[220, "mlx.core.min", false]], "minimum (c++ function)": [[0, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", false]], "minimum() (in module mlx.core)": [[221, "mlx.core.minimum", false]], "mish (class in mlx.nn)": [[358, "mlx.nn.Mish", false], [436, "mlx.nn.mish", false]], "module (class in mlx.nn)": [[453, "mlx.nn.Module", false]], "modules() (module method)": [[367, "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)": [[222, "mlx.core.moveaxis", false]], "mse_loss (class in mlx.nn.losses)": [[432, "mlx.nn.losses.mse_loss", false]], "multiheadattention (class in mlx.nn)": [[379, "mlx.nn.MultiHeadAttention", false]], "multiply (c++ function)": [[0, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", false]], "multiply() (in module mlx.core)": [[223, "mlx.core.multiply", false]], "multivariate_normal() (in module mlx.core.random)": [[244, "mlx.core.random.multivariate_normal", false]], "named_modules() (module method)": [[368, "mlx.nn.Module.named_modules", false]], "nan_to_num (c++ function)": [[0, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", false]], "nan_to_num() (in module mlx.core)": [[224, "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)": [[225, "mlx.core.negative", false]], "new_stream() (in module mlx.core)": [[226, "mlx.core.new_stream", false]], "nll_loss (class in mlx.nn.losses)": [[433, "mlx.nn.losses.nll_loss", false]], "norm() (in module mlx.core.linalg)": [[188, "mlx.core.linalg.norm", false]], "normal() (in module mlx.core.random)": [[245, "mlx.core.random.normal", false]], "normal() (in module mlx.nn.init)": [[408, "mlx.nn.init.normal", false]], "not_equal (c++ function)": [[0, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", false]], "not_equal() (in module mlx.core)": [[227, "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)": [[228, "mlx.core.ones", false]], "ones_like (c++ function)": [[0, "_CPPv49ones_likeRK5array14StreamOrDevice", false]], "ones_like() (in module mlx.core)": [[229, "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)": [[475, "mlx.optimizers.Optimizer", false]], "outer (c++ function)": [[0, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", false]], "outer() (in module mlx.core)": [[230, "mlx.core.outer", false]], "pad (c++ function)": [[0, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", false]], "pad() (in module mlx.core)": [[231, "mlx.core.pad", false]], "parameters() (module method)": [[369, "mlx.nn.Module.parameters", false]], "partition (c++ function)": [[0, "_CPPv49partitionRK5arrayi14StreamOrDevice", false], [0, "_CPPv49partitionRK5arrayii14StreamOrDevice", false]], "partition() (in module mlx.core)": [[232, "mlx.core.partition", false]], "permutation() (in module mlx.core.random)": [[246, "mlx.core.random.permutation", false]], "power (c++ function)": [[0, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", false]], "power() (in module mlx.core)": [[233, "mlx.core.power", false]], "prelu (class in mlx.nn)": [[380, "mlx.nn.PReLU", false], [437, "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)": [[234, "mlx.core.prod", false]], "put_along_axis (c++ function)": [[0, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false]], "put_along_axis() (in module mlx.core)": [[235, "mlx.core.put_along_axis", false]], "qr() (in module mlx.core.linalg)": [[189, "mlx.core.linalg.qr", false]], "quantize (c++ function)": [[0, "_CPPv48quantizeRK5arrayii14StreamOrDevice", false]], "quantize() (in module mlx.core)": [[236, "mlx.core.quantize", false]], "quantize() (in module mlx.nn)": [[306, "mlx.nn.quantize", false]], "quantized_matmul (c++ function)": [[0, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", false]], "quantized_matmul() (in module mlx.core)": [[237, "mlx.core.quantized_matmul", false]], "quantizedembedding (class in mlx.nn)": [[381, "mlx.nn.QuantizedEmbedding", false]], "quantizedlinear (class in mlx.nn)": [[382, "mlx.nn.QuantizedLinear", false]], "radians (c++ function)": [[0, "_CPPv47radiansRK5array14StreamOrDevice", false]], "radians() (in module mlx.core)": [[238, "mlx.core.radians", false]], "randint() (in module mlx.core.random)": [[247, "mlx.core.random.randint", false]], "real (c++ function)": [[0, "_CPPv44realRK5array14StreamOrDevice", false]], "real() (in module mlx.core)": [[252, "mlx.core.real", false]], "reciprocal (c++ function)": [[0, "_CPPv410reciprocalRK5array14StreamOrDevice", false]], "reciprocal() (array method)": [[64, "mlx.core.array.reciprocal", false]], "reciprocal() (in module mlx.core)": [[253, "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)": [[385, "mlx.nn.ReLU", false], [438, "mlx.nn.relu", false]], "relu6 (class in mlx.nn)": [[386, "mlx.nn.ReLU6", false], [439, "mlx.nn.relu6", false]], "remainder (c++ function)": [[0, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", false]], "remainder() (in module mlx.core)": [[254, "mlx.core.remainder", false]], "repeat (c++ function)": [[0, "_CPPv46repeatRK5arrayi14StreamOrDevice", false], [0, "_CPPv46repeatRK5arrayii14StreamOrDevice", false]], "repeat() (in module mlx.core)": [[255, "mlx.core.repeat", false]], "reset_peak_memory() (in module mlx.core.metal)": [[214, "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)": [[256, "mlx.core.reshape", false]], "rfft() (in module mlx.core.fft)": [[155, "mlx.core.fft.rfft", false]], "rfft2() (in module mlx.core.fft)": [[156, "mlx.core.fft.rfft2", false]], "rfftn() (in module mlx.core.fft)": [[157, "mlx.core.fft.rfftn", false]], "right_shift (c++ function)": [[0, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", false]], "right_shift() (in module mlx.core)": [[257, "mlx.core.right_shift", false]], "rms_norm() (in module mlx.core.fast)": [[143, "mlx.core.fast.rms_norm", false]], "rmsnorm (class in mlx.nn)": [[383, "mlx.nn.RMSNorm", false]], "rmsprop (class in mlx.optimizers)": [[467, "mlx.optimizers.RMSprop", false]], "rnn (class in mlx.nn)": [[384, "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)": [[258, "mlx.core.roll", false]], "rope (class in mlx.nn)": [[387, "mlx.nn.RoPE", false]], "rope() (in module mlx.core.fast)": [[144, "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)": [[259, "mlx.core.round", false]], "rsqrt (c++ function)": [[0, "_CPPv45rsqrtRK5array14StreamOrDevice", false]], "rsqrt() (array method)": [[67, "mlx.core.array.rsqrt", false]], "rsqrt() (in module mlx.core)": [[260, "mlx.core.rsqrt", false]], "save() (in module mlx.core)": [[261, "mlx.core.save", false]], "save_gguf() (in module mlx.core)": [[262, "mlx.core.save_gguf", false]], "save_safetensors() (in module mlx.core)": [[263, "mlx.core.save_safetensors", false]], "save_weights() (module method)": [[370, "mlx.nn.Module.save_weights", false]], "savez() (in module mlx.core)": [[264, "mlx.core.savez", false]], "savez_compressed() (in module mlx.core)": [[265, "mlx.core.savez_compressed", false]], "scaled_dot_product_attention() (in module mlx.core.fast)": [[145, "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)": [[248, "mlx.core.random.seed", false]], "selu (class in mlx.nn)": [[388, "mlx.nn.SELU", false], [440, "mlx.nn.selu", false]], "send() (in module mlx.core.distributed)": [[127, "mlx.core.distributed.send", false]], "sequential (class in mlx.nn)": [[389, "mlx.nn.Sequential", false]], "set_cache_limit() (in module mlx.core.metal)": [[215, "mlx.core.metal.set_cache_limit", false]], "set_default_device() (in module mlx.core)": [[266, "mlx.core.set_default_device", false]], "set_default_stream() (in module mlx.core)": [[267, "mlx.core.set_default_stream", false]], "set_dtype() (module method)": [[371, "mlx.nn.Module.set_dtype", false]], "set_memory_limit() (in module mlx.core.metal)": [[216, "mlx.core.metal.set_memory_limit", false]], "set_wired_limit() (in module mlx.core.metal)": [[217, "mlx.core.metal.set_wired_limit", false]], "sgd (class in mlx.optimizers)": [[468, "mlx.optimizers.SGD", false]], "shape (array property)": [[68, "mlx.core.array.shape", false]], "sigmoid (c++ function)": [[0, "_CPPv47sigmoidRK5array14StreamOrDevice", false]], "sigmoid (class in mlx.nn)": [[391, "mlx.nn.Sigmoid", false], [441, "mlx.nn.sigmoid", false]], "sigmoid() (in module mlx.core)": [[268, "mlx.core.sigmoid", false]], "sign (c++ function)": [[0, "_CPPv44signRK5array14StreamOrDevice", false]], "sign() (in module mlx.core)": [[269, "mlx.core.sign", false]], "silu (class in mlx.nn)": [[390, "mlx.nn.SiLU", false], [442, "mlx.nn.silu", false]], "sin (c++ function)": [[0, "_CPPv43sinRK5array14StreamOrDevice", false]], "sin() (array method)": [[69, "mlx.core.array.sin", false]], "sin() (in module mlx.core)": [[270, "mlx.core.sin", false]], "sinh (c++ function)": [[0, "_CPPv44sinhRK5array14StreamOrDevice", false]], "sinh() (in module mlx.core)": [[271, "mlx.core.sinh", false]], "sinusoidalpositionalencoding (class in mlx.nn)": [[392, "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)": [[434, "mlx.nn.losses.smooth_l1_loss", false]], "softmax (c++ function)": [[0, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv47softmaxRK5arrayb14StreamOrDevice", false], [0, "_CPPv47softmaxRK5arrayib14StreamOrDevice", false]], "softmax (class in mlx.nn)": [[393, "mlx.nn.Softmax", false], [443, "mlx.nn.softmax", false]], "softmax() (in module mlx.core)": [[272, "mlx.core.softmax", false]], "softmin (class in mlx.nn)": [[394, "mlx.nn.Softmin", false], [444, "mlx.nn.softmin", false]], "softplus (class in mlx.nn)": [[395, "mlx.nn.Softplus", false], [445, "mlx.nn.softplus", false]], "softshrink (class in mlx.nn)": [[396, "mlx.nn.Softshrink", false], [446, "mlx.nn.softshrink", false]], "softsign (class in mlx.nn)": [[397, "mlx.nn.Softsign", false]], "sort (c++ function)": [[0, "_CPPv44sortRK5array14StreamOrDevice", false], [0, "_CPPv44sortRK5arrayi14StreamOrDevice", false]], "sort() (in module mlx.core)": [[273, "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)": [[274, "mlx.core.split", false]], "split() (in module mlx.core.random)": [[249, "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)": [[275, "mlx.core.sqrt", false]], "square (c++ function)": [[0, "_CPPv46squareRK5array14StreamOrDevice", false]], "square() (array method)": [[73, "mlx.core.array.square", false]], "square() (in module mlx.core)": [[276, "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)": [[277, "mlx.core.squeeze", false]], "stack (c++ function)": [[0, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", false], [0, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", false]], "stack() (in module mlx.core)": [[278, "mlx.core.stack", false]], "start_capture() (in module mlx.core.metal)": [[218, "mlx.core.metal.start_capture", false]], "state (module property)": [[372, "mlx.nn.Module.state", false]], "state (optimizer property)": [[465, "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)": [[279, "mlx.core.std", false]], "step (class in mlx.nn)": [[398, "mlx.nn.Step", false], [447, "mlx.nn.step", false]], "step_decay() (in module mlx.optimizers)": [[473, "mlx.optimizers.step_decay", false]], "stop_capture() (in module mlx.core.metal)": [[219, "mlx.core.metal.stop_capture", false]], "stop_gradient (c++ function)": [[0, "_CPPv413stop_gradientRK5array14StreamOrDevice", false]], "stop_gradient() (in module mlx.core)": [[280, "mlx.core.stop_gradient", false]], "stream (class in mlx.core)": [[314, "mlx.core.Stream", false]], "stream() (in module mlx.core)": [[281, "mlx.core.stream", false]], "subtract (c++ function)": [[0, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", false]], "subtract() (in module mlx.core)": [[282, "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)": [[283, "mlx.core.sum", false]], "svd() (in module mlx.core.linalg)": [[190, "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)": [[284, "mlx.core.swapaxes", false]], "synchronize() (in module mlx.core)": [[285, "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)": [[286, "mlx.core.take", false]], "take_along_axis (c++ function)": [[0, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", false]], "take_along_axis() (in module mlx.core)": [[287, "mlx.core.take_along_axis", false]], "tan (c++ function)": [[0, "_CPPv43tanRK5array14StreamOrDevice", false]], "tan() (in module mlx.core)": [[288, "mlx.core.tan", false]], "tanh (c++ function)": [[0, "_CPPv44tanhRK5array14StreamOrDevice", false]], "tanh (class in mlx.nn)": [[399, "mlx.nn.Tanh", false], [448, "mlx.nn.tanh", false]], "tanh() (in module mlx.core)": [[289, "mlx.core.tanh", false]], "tensordot (c++ function)": [[0, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", false], [0, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", false]], "tensordot() (in module mlx.core)": [[290, "mlx.core.tensordot", false]], "tile (c++ function)": [[0, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", false]], "tile() (in module mlx.core)": [[291, "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)": [[292, "mlx.core.topk", false]], "trace (c++ function)": [[0, "_CPPv45traceRK5array14StreamOrDevice", false], [0, "_CPPv45traceRK5arrayiii14StreamOrDevice", false], [0, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", false]], "trace() (in module mlx.core)": [[293, "mlx.core.trace", false]], "train() (module method)": [[373, "mlx.nn.Module.train", false]], "trainable_parameters() (module method)": [[374, "mlx.nn.Module.trainable_parameters", false]], "training (module property)": [[375, "mlx.nn.Module.training", false]], "transformer (class in mlx.nn)": [[400, "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)": [[294, "mlx.core.transpose", false]], "tree_flatten() (in module mlx.utils)": [[309, "mlx.utils.tree_flatten", false]], "tree_map() (in module mlx.utils)": [[310, "mlx.utils.tree_map", false]], "tree_map_with_path() (in module mlx.utils)": [[311, "mlx.utils.tree_map_with_path", false]], "tree_reduce() (in module mlx.utils)": [[312, "mlx.utils.tree_reduce", false]], "tree_unflatten() (in module mlx.utils)": [[313, "mlx.utils.tree_unflatten", false]], "tri (c++ function)": [[0, "_CPPv43trii5Dtype14StreamOrDevice", false], [0, "_CPPv43triiii5Dtype14StreamOrDevice", false]], "tri() (in module mlx.core)": [[295, "mlx.core.tri", false]], "tri_inv() (in module mlx.core.linalg)": [[191, "mlx.core.linalg.tri_inv", false]], "tril (c++ function)": [[0, "_CPPv44tril5arrayi14StreamOrDevice", false]], "tril() (in module mlx.core)": [[296, "mlx.core.tril", false]], "triplet_loss (class in mlx.nn.losses)": [[435, "mlx.nn.losses.triplet_loss", false]], "triu (c++ function)": [[0, "_CPPv44triu5arrayi14StreamOrDevice", false]], "triu() (in module mlx.core)": [[297, "mlx.core.triu", false]], "truncated_normal() (in module mlx.core.random)": [[250, "mlx.core.random.truncated_normal", false]], "unfreeze() (module method)": [[376, "mlx.nn.Module.unfreeze", false]], "uniform() (in module mlx.core.random)": [[251, "mlx.core.random.uniform", false]], "uniform() (in module mlx.nn.init)": [[409, "mlx.nn.init.uniform", false]], "update() (module method)": [[377, "mlx.nn.Module.update", false]], "update() (optimizer method)": [[466, "mlx.optimizers.Optimizer.update", false]], "update_modules() (module method)": [[378, "mlx.nn.Module.update_modules", false]], "upsample (class in mlx.nn)": [[401, "mlx.nn.Upsample", false]], "value_and_grad() (in module mlx.core)": [[298, "mlx.core.value_and_grad", false]], "value_and_grad() (in module mlx.nn)": [[307, "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)": [[299, "mlx.core.var", false]], "view (c++ function)": [[0, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", false]], "view() (array method)": [[81, "mlx.core.array.view", false]], "view() (in module mlx.core)": [[300, "mlx.core.view", false]], "vjp() (in module mlx.core)": [[301, "mlx.core.vjp", false]], "vmap() (in module mlx.core)": [[302, "mlx.core.vmap", false]], "where (c++ function)": [[0, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", false]], "where() (in module mlx.core)": [[303, "mlx.core.where", false]], "zeros (c++ function)": [[0, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", false]], "zeros() (in module mlx.core)": [[304, "mlx.core.zeros", false]], "zeros_like (c++ function)": [[0, "_CPPv410zeros_likeRK5array14StreamOrDevice", false]], "zeros_like() (in module mlx.core)": [[305, "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, "_CPPv410contiguousRK5arrayb14StreamOrDevice", "contiguous"], [0, 1, 1, "_CPPv410contiguousRK5arrayb14StreamOrDevice", "contiguous::a"], [0, 1, 1, "_CPPv410contiguousRK5arrayb14StreamOrDevice", "contiguous::allow_col_major"], [0, 1, 1, "_CPPv410contiguousRK5arrayb14StreamOrDevice", "contiguous::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"], [314, 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"], [158, 5, 1, "", "flatten"], [159, 5, 1, "", "floor"], [160, 5, 1, "", "floor_divide"], [161, 5, 1, "", "full"], [162, 5, 1, "", "gather_mm"], [163, 5, 1, "", "gather_qmm"], [164, 5, 1, "", "grad"], [165, 5, 1, "", "greater"], [166, 5, 1, "", "greater_equal"], [167, 5, 1, "", "hadamard_transform"], [168, 5, 1, "", "identity"], [169, 5, 1, "", "imag"], [170, 5, 1, "", "inner"], [171, 5, 1, "", "isclose"], [172, 5, 1, "", "isfinite"], [173, 5, 1, "", "isinf"], [174, 5, 1, "", "isnan"], [175, 5, 1, "", "isneginf"], [176, 5, 1, "", "isposinf"], [177, 5, 1, "", "issubdtype"], [178, 5, 1, "", "jvp"], [179, 5, 1, "", "left_shift"], [180, 5, 1, "", "less"], [181, 5, 1, "", "less_equal"], [192, 5, 1, "", "linspace"], [193, 5, 1, "", "load"], [194, 5, 1, "", "log"], [195, 5, 1, "", "log10"], [196, 5, 1, "", "log1p"], [197, 5, 1, "", "log2"], [198, 5, 1, "", "logaddexp"], [199, 5, 1, "", "logical_and"], [200, 5, 1, "", "logical_not"], [201, 5, 1, "", "logical_or"], [202, 5, 1, "", "logsumexp"], [203, 5, 1, "", "matmul"], [204, 5, 1, "", "max"], [205, 5, 1, "", "maximum"], [206, 5, 1, "", "mean"], [207, 5, 1, "", "meshgrid"], [220, 5, 1, "", "min"], [221, 5, 1, "", "minimum"], [222, 5, 1, "", "moveaxis"], [223, 5, 1, "", "multiply"], [224, 5, 1, "", "nan_to_num"], [225, 5, 1, "", "negative"], [226, 5, 1, "", "new_stream"], [227, 5, 1, "", "not_equal"], [228, 5, 1, "", "ones"], [229, 5, 1, "", "ones_like"], [230, 5, 1, "", "outer"], [231, 5, 1, "", "pad"], [232, 5, 1, "", "partition"], [233, 5, 1, "", "power"], [234, 5, 1, "", "prod"], [235, 5, 1, "", "put_along_axis"], [236, 5, 1, "", "quantize"], [237, 5, 1, "", "quantized_matmul"], [238, 5, 1, "", "radians"], [252, 5, 1, "", "real"], [253, 5, 1, "", "reciprocal"], [254, 5, 1, "", "remainder"], [255, 5, 1, "", "repeat"], [256, 5, 1, "", "reshape"], [257, 5, 1, "", "right_shift"], [258, 5, 1, "", "roll"], [259, 5, 1, "", "round"], [260, 5, 1, "", "rsqrt"], [261, 5, 1, "", "save"], [262, 5, 1, "", "save_gguf"], [263, 5, 1, "", "save_safetensors"], [264, 5, 1, "", "savez"], [265, 5, 1, "", "savez_compressed"], [266, 5, 1, "", "set_default_device"], [267, 5, 1, "", "set_default_stream"], [268, 5, 1, "", "sigmoid"], [269, 5, 1, "", "sign"], [270, 5, 1, "", "sin"], [271, 5, 1, "", "sinh"], [272, 5, 1, "", "softmax"], [273, 5, 1, "", "sort"], [274, 5, 1, "", "split"], [275, 5, 1, "", "sqrt"], [276, 5, 1, "", "square"], [277, 5, 1, "", "squeeze"], [278, 5, 1, "", "stack"], [279, 5, 1, "", "std"], [280, 5, 1, "", "stop_gradient"], [281, 5, 1, "", "stream"], [282, 5, 1, "", "subtract"], [283, 5, 1, "", "sum"], [284, 5, 1, "", "swapaxes"], [285, 5, 1, "", "synchronize"], [286, 5, 1, "", "take"], [287, 5, 1, "", "take_along_axis"], [288, 5, 1, "", "tan"], [289, 5, 1, "", "tanh"], [290, 5, 1, "", "tensordot"], [291, 5, 1, "", "tile"], [292, 5, 1, "", "topk"], [293, 5, 1, "", "trace"], [294, 5, 1, "", "transpose"], [295, 5, 1, "", "tri"], [296, 5, 1, "", "tril"], [297, 5, 1, "", "triu"], [298, 5, 1, "", "value_and_grad"], [299, 5, 1, "", "var"], [300, 5, 1, "", "view"], [301, 5, 1, "", "vjp"], [302, 5, 1, "", "vmap"], [303, 5, 1, "", "where"], [304, 5, 1, "", "zeros"], [305, 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": [[314, 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, "", "layer_norm"], [142, 5, 1, "", "metal_kernel"], [143, 5, 1, "", "rms_norm"], [144, 5, 1, "", "rope"], [145, 5, 1, "", "scaled_dot_product_attention"]], "mlx.core.fft": [[146, 5, 1, "", "fft"], [147, 5, 1, "", "fft2"], [148, 5, 1, "", "fftn"], [149, 5, 1, "", "ifft"], [150, 5, 1, "", "ifft2"], [151, 5, 1, "", "ifftn"], [152, 5, 1, "", "irfft"], [153, 5, 1, "", "irfft2"], [154, 5, 1, "", "irfftn"], [155, 5, 1, "", "rfft"], [156, 5, 1, "", "rfft2"], [157, 5, 1, "", "rfftn"]], "mlx.core.linalg": [[182, 5, 1, "", "cholesky"], [183, 5, 1, "", "cholesky_inv"], [184, 5, 1, "", "cross"], [185, 5, 1, "", "eigh"], [186, 5, 1, "", "eigvalsh"], [187, 5, 1, "", "inv"], [188, 5, 1, "", "norm"], [189, 5, 1, "", "qr"], [190, 5, 1, "", "svd"], [191, 5, 1, "", "tri_inv"]], "mlx.core.metal": [[208, 5, 1, "", "clear_cache"], [209, 5, 1, "", "device_info"], [210, 5, 1, "", "get_active_memory"], [211, 5, 1, "", "get_cache_memory"], [212, 5, 1, "", "get_peak_memory"], [213, 5, 1, "", "is_available"], [214, 5, 1, "", "reset_peak_memory"], [215, 5, 1, "", "set_cache_limit"], [216, 5, 1, "", "set_memory_limit"], [217, 5, 1, "", "set_wired_limit"], [218, 5, 1, "", "start_capture"], [219, 5, 1, "", "stop_capture"]], "mlx.core.random": [[239, 5, 1, "", "bernoulli"], [240, 5, 1, "", "categorical"], [241, 5, 1, "", "gumbel"], [242, 5, 1, "", "key"], [243, 5, 1, "", "laplace"], [244, 5, 1, "", "multivariate_normal"], [245, 5, 1, "", "normal"], [246, 5, 1, "", "permutation"], [247, 5, 1, "", "randint"], [248, 5, 1, "", "seed"], [249, 5, 1, "", "split"], [250, 5, 1, "", "truncated_normal"], [251, 5, 1, "", "uniform"]], "mlx.nn": [[324, 3, 1, "", "ALiBi"], [325, 3, 1, "", "AvgPool1d"], [326, 3, 1, "", "AvgPool2d"], [327, 3, 1, "", "AvgPool3d"], [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, "", "MaxPool3d"], [358, 3, 1, "", "Mish"], [453, 3, 1, "", "Module"], [379, 3, 1, "", "MultiHeadAttention"], [380, 3, 1, "", "PReLU"], [381, 3, 1, "", "QuantizedEmbedding"], [382, 3, 1, "", "QuantizedLinear"], [383, 3, 1, "", "RMSNorm"], [384, 3, 1, "", "RNN"], [385, 3, 1, "", "ReLU"], [386, 3, 1, "", "ReLU6"], [387, 3, 1, "", "RoPE"], [388, 3, 1, "", "SELU"], [389, 3, 1, "", "Sequential"], [390, 3, 1, "", "SiLU"], [391, 3, 1, "", "Sigmoid"], [392, 3, 1, "", "SinusoidalPositionalEncoding"], [393, 3, 1, "", "Softmax"], [394, 3, 1, "", "Softmin"], [395, 3, 1, "", "Softplus"], [396, 3, 1, "", "Softshrink"], [397, 3, 1, "", "Softsign"], [398, 3, 1, "", "Step"], [399, 3, 1, "", "Tanh"], [400, 3, 1, "", "Transformer"], [401, 3, 1, "", "Upsample"], [410, 3, 1, "", "celu"], [411, 3, 1, "", "elu"], [412, 3, 1, "", "gelu"], [413, 3, 1, "", "gelu_approx"], [414, 3, 1, "", "gelu_fast_approx"], [415, 3, 1, "", "glu"], [416, 3, 1, "", "hard_shrink"], [417, 3, 1, "", "hard_tanh"], [418, 3, 1, "", "hardswish"], [419, 3, 1, "", "leaky_relu"], [420, 3, 1, "", "log_sigmoid"], [421, 3, 1, "", "log_softmax"], [436, 3, 1, "", "mish"], [437, 3, 1, "", "prelu"], [306, 5, 1, "", "quantize"], [438, 3, 1, "", "relu"], [439, 3, 1, "", "relu6"], [440, 3, 1, "", "selu"], [441, 3, 1, "", "sigmoid"], [442, 3, 1, "", "silu"], [443, 3, 1, "", "softmax"], [444, 3, 1, "", "softmin"], [445, 3, 1, "", "softplus"], [446, 3, 1, "", "softshrink"], [447, 3, 1, "", "step"], [448, 3, 1, "", "tanh"], [307, 5, 1, "", "value_and_grad"]], "mlx.nn.Module": [[359, 4, 1, "", "apply"], [360, 4, 1, "", "apply_to_modules"], [361, 4, 1, "", "children"], [362, 4, 1, "", "eval"], [363, 4, 1, "", "filter_and_map"], [364, 4, 1, "", "freeze"], [365, 4, 1, "", "leaf_modules"], [366, 4, 1, "", "load_weights"], [367, 4, 1, "", "modules"], [368, 4, 1, "", "named_modules"], [369, 4, 1, "", "parameters"], [370, 4, 1, "", "save_weights"], [371, 4, 1, "", "set_dtype"], [372, 6, 1, "", "state"], [373, 4, 1, "", "train"], [374, 4, 1, "", "trainable_parameters"], [375, 6, 1, "", "training"], [376, 4, 1, "", "unfreeze"], [377, 4, 1, "", "update"], [378, 4, 1, "", "update_modules"]], "mlx.nn.init": [[402, 5, 1, "", "constant"], [403, 5, 1, "", "glorot_normal"], [404, 5, 1, "", "glorot_uniform"], [405, 5, 1, "", "he_normal"], [406, 5, 1, "", "he_uniform"], [407, 5, 1, "", "identity"], [408, 5, 1, "", "normal"], [409, 5, 1, "", "uniform"]], "mlx.nn.losses": [[422, 3, 1, "", "binary_cross_entropy"], [423, 3, 1, "", "cosine_similarity_loss"], [424, 3, 1, "", "cross_entropy"], [425, 3, 1, "", "gaussian_nll_loss"], [426, 3, 1, "", "hinge_loss"], [427, 3, 1, "", "huber_loss"], [428, 3, 1, "", "kl_div_loss"], [429, 3, 1, "", "l1_loss"], [430, 3, 1, "", "log_cosh_loss"], [431, 3, 1, "", "margin_ranking_loss"], [432, 3, 1, "", "mse_loss"], [433, 3, 1, "", "nll_loss"], [434, 3, 1, "", "smooth_l1_loss"], [435, 3, 1, "", "triplet_loss"]], "mlx.optimizers": [[456, 3, 1, "", "AdaDelta"], [457, 3, 1, "", "Adafactor"], [458, 3, 1, "", "Adagrad"], [459, 3, 1, "", "Adam"], [460, 3, 1, "", "AdamW"], [461, 3, 1, "", "Adamax"], [462, 3, 1, "", "Lion"], [475, 3, 1, "", "Optimizer"], [467, 3, 1, "", "RMSprop"], [468, 3, 1, "", "SGD"], [308, 5, 1, "", "clip_grad_norm"], [469, 5, 1, "", "cosine_decay"], [470, 5, 1, "", "exponential_decay"], [471, 5, 1, "", "join_schedules"], [472, 5, 1, "", "linear_schedule"], [473, 5, 1, "", "step_decay"]], "mlx.optimizers.Optimizer": [[463, 4, 1, "", "apply_gradients"], [464, 4, 1, "", "init"], [465, 6, 1, "", "state"], [466, 4, 1, "", "update"]], "mlx.utils": [[309, 5, 1, "", "tree_flatten"], [310, 5, 1, "", "tree_map"], [311, 5, 1, "", "tree_map_with_path"], [312, 5, 1, "", "tree_reduce"], [313, 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, 147, 148, 150, 151, 153, 154, 156, 157, 164, 183, 188, 190, 193, 206, 230, 236, 240, 259, 262, 263, 279, 281, 298, 299, 300, 302, 307, 323, 326, 327, 343, 349, 356, 357, 363, 364, 366, 370, 371, 372, 376, 384, 455, 464, 465, 477, 480, 482, 485, 486, 487, 488], "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, 142, 145, 158, 162, 164, 185, 187, 188, 189, 191, 208, 215, 217, 224, 231, 239, 243, 245, 246, 251, 255, 259, 274, 278, 279, 293, 295, 296, 297, 298, 299, 302, 308, 309, 311, 312, 323, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 344, 345, 348, 350, 351, 355, 356, 357, 380, 385, 387, 392, 396, 398, 400, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 413, 414, 416, 417, 418, 419, 422, 424, 426, 427, 431, 434, 435, 437, 438, 439, 440, 446, 447, 450, 453, 456, 457, 459, 460, 461, 462, 464, 467, 468, 469, 470, 471, 472, 473, 477, 480, 481, 482, 483, 484, 485, 486, 487], "00005": 4, "0001": 392, "0005": 413, "001": 457, "00364": 4, "01": [4, 351, 419, 460], "0137595": 405, "015": 414, "0184009": 406, "02264": 404, "024": 482, "02765": 405, "0300242": 406, "044715": [341, 413], "0485873": 424, "05": [16, 171, 328, 344, 348, 350, 383], "0507": 440, "05202": 5, "06": [425, 435, 456], "0638": 431, "06450": 350, "0645099": 408, "06561": 470, "06675": 462, "07467": 383, "08": [16, 171, 423, 458, 459, 460, 461, 467], "08022": 348, "081": 473, "08415": 414, "08494": 344, "08619": 406, "08681": [358, 436], "09864": 5, "0999938": 471, "0999961": 469, "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, 142, 145, 146, 147, 149, 150, 152, 153, 154, 155, 156, 157, 158, 167, 170, 177, 183, 184, 185, 186, 188, 189, 203, 207, 216, 230, 232, 236, 240, 243, 244, 245, 251, 268, 273, 286, 292, 293, 298, 308, 311, 312, 316, 323, 325, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 348, 349, 350, 352, 355, 380, 383, 384, 387, 391, 392, 398, 401, 403, 404, 405, 406, 407, 408, 409, 410, 411, 413, 414, 415, 417, 420, 421, 422, 423, 424, 425, 426, 427, 428, 430, 431, 433, 434, 435, 440, 441, 443, 444, 445, 447, 450, 453, 455, 456, 457, 458, 459, 460, 461, 462, 464, 467, 468, 469, 470, 471, 472, 473, 480, 481, 482, 483, 485, 486, 487, 488], "10": [0, 3, 5, 6, 195, 259, 264, 310, 323, 366, 450, 471, 473, 480, 481, 483], "100": [2, 4, 5, 422, 472, 480, 482, 484, 488], "1000": [469, 480], "10000": 387, "101": 472, "1024": [1, 5], "105361": 422, "109": 2, "10_000": 4, "10x": 462, "11": 188, "114": 2, "12": [5, 167, 471], "1212": 456, "12451": 404, "128": [264, 323], "13": 8, "14": 8, "15": [1, 8, 188, 217, 312, 480], "150594": 403, "15268": 405, "16": [1, 142, 316, 325, 327, 348, 355, 357, 359, 453], "1606": 414, "1607": [348, 350], "16384": 167, "16506": 406, "17": 8, "177208": 405, "1803": 344, "1908": [358, 436], "1910": 383, "191107": 403, "1985": 188, "1_000": 4, "1d": [0, 98, 102, 105, 262, 287], "1e": [0, 4, 6, 16, 171, 328, 344, 348, 350, 351, 383, 423, 425, 435, 455, 456, 457, 458, 459, 460, 461, 464, 467, 469, 470, 471, 472, 473], "1e3": 480, "1st": 236, "2": [0, 1, 2, 4, 5, 6, 38, 99, 103, 117, 118, 134, 147, 150, 152, 153, 154, 155, 156, 157, 158, 167, 177, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 197, 203, 236, 244, 249, 290, 293, 295, 296, 297, 308, 312, 316, 323, 325, 326, 327, 331, 334, 341, 351, 355, 356, 357, 383, 392, 401, 402, 403, 404, 405, 406, 407, 408, 409, 413, 424, 425, 427, 434, 435, 450, 453, 455, 456, 458, 459, 460, 464, 467, 480, 481, 482, 483, 484, 485, 486, 487, 488], "20": [167, 188], "200": [5, 471, 482], "2002": 5, "2011": 458, "2012": [456, 467], "2015": [337, 459, 461], "2019": [5, 460], "2020": 5, "2021": 5, "20397": 422, "20_000": 5, "21": [5, 473], "2104": 5, "223144": 422, "223404": 404, "225": 188, "225763": 431, "2302": 462, "23607": [188, 189], "24": 8, "24264": 188, "247": 5, "25": [380, 401], "25211": 405, "256": [1, 2, 6, 142], "256995": 431, "28": 167, "2d": [0, 99, 103, 118, 236, 328, 337], "2nd": 236, "2x": 485, "3": [0, 1, 2, 5, 8, 100, 104, 158, 177, 184, 185, 186, 188, 189, 308, 312, 327, 332, 335, 341, 357, 401, 404, 406, 413, 418, 457, 462, 477, 480, 483, 485, 486], "30": 457, "3118": 485, "32": [1, 5, 6, 90, 236, 237, 316, 326, 327, 356, 357, 383, 480], "330": 5, "33333": 401, "348587": 424, "363207": 403, "36788": 480, "379159": 404, "380709": 408, "39": 5, "3d": [0, 2, 100, 104, 328, 338, 401], "3f": [2, 6, 480], "3x": 2, "4": [0, 1, 2, 5, 116, 142, 145, 158, 163, 188, 236, 237, 264, 306, 312, 316, 325, 326, 327, 328, 348, 355, 356, 357, 381, 382, 400, 401, 403, 404, 405, 422, 480, 481, 483, 486, 488], "4096": [480, 482, 488], "40x": 1, "41421": 188, "417497": 409, "42": 313, "437": 5, "44": 5, "447214": 189, "458835": 405, "475": 5, "48095": 403, "4d": [1, 401], "4m": 1, "5": [0, 1, 2, 4, 5, 8, 188, 216, 239, 312, 325, 328, 336, 337, 338, 341, 345, 348, 355, 396, 401, 402, 405, 406, 413, 416, 434, 446, 450, 455, 467, 469, 470, 480, 482, 483], "50": [0, 192], "500": [5, 488], "5000": 2, "510826": 422, "512": [2, 3, 5, 400, 488], "534422": 408, "539245": 422, "53947": 403, "55": 1, "5701": 456, "573409": 431, "57771": 189, "579": 5, "5f": 4, "6": [1, 2, 5, 188, 264, 386, 400, 404, 413, 414, 418, 425, 435, 439, 467, 480, 483, 486], "61278": 403, "617261": 409, "628": 5, "633": 5, "639": 482, "64": [0, 1, 90, 116, 163, 236, 237, 306, 316, 381, 382], "64331": 406, "666329": 406, "66667": 401, "67326": 440, "676": 1, "690": 5, "6967": 405, "7": [2, 5, 188, 236, 483], "702": [341, 414], "707107": 185, "71828": 480, "74166": 188, "74597": 188, "75": 401, "75596": 431, "75787": 405, "765166": 431, "773433": 431, "776856": 404, "793615": 406, "79854": 406, "7b": 5, "7m": 1, "8": [0, 1, 2, 5, 8, 188, 236, 316, 326, 327, 348, 356, 357, 400, 423, 456, 457, 458, 459, 460, 461, 467, 480, 483, 486, 488], "8192": [5, 167], "84804": 188, "863726": 409, "883935": 409, "890597": 404, "894427": 189, "89613": 403, "8gb": 5, "8x": 1, "9": [8, 188, 424, 456, 459, 460, 461, 462, 464, 470, 473, 485], "90041": 404, "912766": 404, "916291": 422, "95": 6, "982273": 408, "99": [462, 467], "995016": 403, "999": [459, 460, 461], "A": [0, 2, 5, 7, 8, 9, 68, 82, 94, 141, 142, 143, 145, 164, 177, 178, 183, 185, 186, 188, 189, 190, 193, 202, 203, 204, 209, 220, 236, 239, 240, 241, 243, 244, 245, 246, 247, 250, 251, 274, 278, 281, 298, 301, 302, 306, 307, 308, 309, 310, 311, 312, 313, 314, 323, 328, 337, 343, 344, 348, 350, 363, 367, 368, 371, 377, 378, 383, 389, 392, 400, 403, 404, 406, 414, 435, 436, 453, 455, 459, 461, 463, 464, 466, 471, 480, 481, 482, 484, 485], "AS": 162, "And": [5, 401], "As": [6, 38, 286, 323], "At": 93, "But": 488, "By": [5, 306, 371, 422, 482, 485], "For": [0, 1, 2, 5, 8, 38, 145, 162, 177, 188, 236, 313, 323, 328, 337, 341, 359, 364, 373, 376, 382, 387, 392, 401, 403, 404, 405, 406, 422, 450, 455, 477, 480, 481, 482, 483, 484, 485, 486, 487, 488], "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, 141, 144, 155, 156, 157, 160, 161, 164, 171, 182, 183, 184, 188, 193, 202, 203, 204, 206, 207, 215, 216, 220, 224, 228, 231, 232, 234, 235, 240, 244, 246, 255, 258, 272, 273, 274, 279, 283, 285, 286, 287, 290, 292, 293, 298, 299, 302, 304, 306, 310, 312, 328, 330, 331, 332, 333, 334, 335, 344, 350, 352, 364, 366, 376, 382, 384, 387, 389, 392, 401, 422, 424, 435, 457, 480, 481, 482, 484, 487, 488, 489], "In": [0, 1, 2, 5, 6, 38, 145, 203, 236, 310, 323, 337, 344, 453, 456, 458, 459, 461, 462, 463, 479, 480, 481, 482, 484, 487, 488], "It": [2, 5, 8, 126, 164, 267, 298, 308, 312, 323, 378, 382, 463, 475, 485, 487], "Its": 323, "No": [2, 5, 185, 186], "Not": [94, 227, 480], "ON": [3, 8], "Of": 482, "On": [1, 480, 482, 484], "One": [146, 149, 155, 231, 260, 480, 482], "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, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 178, 179, 180, 181, 184, 185, 186, 188, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 211, 212, 215, 216, 217, 218, 220, 221, 222, 223, 225, 227, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 262, 263, 268, 269, 270, 271, 272, 273, 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, 316, 318, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 340, 342, 343, 344, 348, 349, 350, 352, 355, 356, 357, 359, 360, 364, 366, 370, 371, 372, 373, 376, 377, 378, 379, 381, 382, 383, 384, 387, 389, 392, 398, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 415, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 447, 450, 453, 455, 456, 457, 458, 459, 460, 461, 462, 465, 467, 468, 469, 472, 475, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489], "Then": [4, 8], "There": [1, 2, 323, 401, 480], "These": [1, 2, 94, 235, 287, 424, 488], "To": [0, 2, 3, 4, 5, 6, 8, 215, 323, 450, 455, 480, 481, 482, 486], "With": 2, "_": [1, 3, 4, 5, 311, 323, 469, 470, 471, 472, 473, 477, 480, 484, 488], "__call__": [1, 5, 6, 323, 453], "__init__": [2, 5, 6, 9, 10, 11, 30, 112, 120, 314, 323, 453], "__main__": [2, 5], "__name__": [2, 5], "_a": 2, "_ext": 2, "_f": 188, "_in": [403, 404], "_out": [403, 404], "_p": 435, "_val": 417, "a1": 162, "a2": 162, "a_": 188, "a_max": [0, 93], "a_min": [0, 93], "a_ndim": 1, "a_shap": 1, "a_strid": 1, "a_view": 485, "ab": [0, 16, 171, 188, 298, 344, 348, 350, 358, 383, 414, 436, 480], "abil": 481, "abl": [2, 236], "about": [1, 2, 5, 6, 131, 209, 484, 488], "abov": [1, 2, 5, 236, 296, 323, 401, 460, 481, 482, 483, 484, 488], "absolut": [0, 12, 16, 171, 413, 414, 434], "acc": 312, "acceler": [2, 328], "access": [0, 5, 50, 323, 453, 464, 481, 484, 488], "accord": [0, 241, 303, 306, 379, 403, 404, 405, 406], "accordingli": 2, "accumul": [312, 383], "accuraci": 6, "accustom": 5, "achiev": [323, 481], "across": [1, 2, 8, 344, 481], "act": [2, 430], "action": 323, "activ": [2, 8, 210, 337, 398, 400, 416, 436, 446, 447, 449, 480], "actual": [5, 18, 366, 453, 484], "ad": [0, 1, 2, 4, 8, 141, 348, 453, 456, 457, 458, 459, 460, 461, 467, 481, 484, 487], "adadelta": 455, "adafactor": 455, "adagrad": 455, "adam": [455, 461, 462, 471, 472], "adamax": 455, "adamw": [455, 462], "adapt": [456, 457, 458, 481], "add": [0, 1, 2, 3, 5, 14, 38, 138, 198, 231, 236, 330, 331, 332, 333, 334, 335, 482, 488], "add_argu": 5, "add_depend": 2, "add_librari": 2, "addit": [0, 2, 5, 8, 13, 14, 141, 143, 145, 193, 328, 344, 350, 379, 383, 453, 482], "addmm": 0, "address": 2, "adjac": 337, "advanc": [5, 480], "advantag": 488, "advis": 485, "affin": [328, 344, 348, 350, 352, 382], "after": [2, 5, 6, 28, 158, 160, 163, 208, 232, 236, 328, 344, 350, 359, 360, 364, 366, 373, 376, 377, 378, 379, 400, 434, 480, 488], "after_1": 231, "after_2": 231, "after_i": 231, "after_n": 231, "afternoon": 5, "again": [5, 8, 323, 480], "against": 0, "aggreg": 379, "ago": 5, "ai": 112, "ainv": [187, 191], "albeit": 488, "algebra": 7, "algorithm": [401, 462], "alia": [96, 97, 341], "alibi": 323, "align": [183, 236, 343, 349], "align_corn": 401, "all": [0, 1, 2, 3, 6, 8, 16, 28, 38, 84, 85, 86, 94, 99, 100, 101, 103, 104, 112, 121, 122, 123, 140, 148, 151, 154, 157, 162, 163, 190, 203, 231, 232, 258, 277, 306, 323, 359, 360, 364, 367, 368, 369, 374, 376, 379, 392, 400, 401, 450, 453, 475, 477, 480, 483, 484, 486, 489], "all_avg": 481, "all_reduce_grad": 481, "all_sum": 481, "allclos": [0, 1, 142], "alloc": [2, 211, 215, 216, 453], "allow": [0, 1, 2, 177, 308, 323, 378, 453, 475, 481, 483, 486], "allow_col_major": 0, "almost": 5, "alon": [2, 485], "along": [0, 2, 26, 27, 94, 95, 108, 109, 110, 111, 121, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 162, 163, 167, 184, 188, 235, 246, 255, 258, 272, 274, 278, 286, 287, 290, 291, 292, 293, 300, 323, 342, 384, 415], "alpha": [0, 2, 14, 236, 329, 339, 410, 411, 435, 437, 440, 460, 467], "alpha_": 2, "alreadi": [2, 3, 5, 481], "also": [0, 1, 2, 5, 6, 7, 8, 11, 13, 87, 88, 89, 119, 128, 129, 133, 148, 151, 154, 157, 165, 166, 179, 180, 181, 198, 205, 221, 223, 227, 233, 236, 254, 257, 282, 306, 307, 318, 323, 363, 377, 379, 381, 382, 390, 412, 440, 442, 449, 455, 480, 481, 482, 483, 484, 485, 486, 489], "altern": 477, "alwai": [1, 83, 210, 309, 482], "am": 5, "among": 2, "amount": [5, 212, 325, 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, 141, 145, 158, 161, 168, 172, 182, 188, 193, 216, 217, 222, 228, 229, 231, 234, 235, 236, 237, 246, 255, 256, 258, 259, 274, 277, 284, 286, 287, 290, 291, 295, 302, 304, 305, 309, 310, 311, 312, 323, 336, 341, 344, 349, 350, 352, 359, 379, 380, 382, 384, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 413, 437, 450, 455, 456, 466, 470, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489], "anaconda": 481, "anchor": 435, "angl": [115, 238, 351], "angular": [144, 387], "ani": [0, 1, 2, 5, 7, 18, 94, 309, 310, 311, 312, 313, 323, 341, 359, 360, 363, 372, 382, 400, 401, 450, 472, 479, 480, 482, 484, 486, 487, 488], "anonym": 480, "anoth": [0, 93, 177, 203, 282, 303, 316, 323, 359, 480, 482, 483, 488], "anwywher": 8, "anyhow": 5, "anymor": 5, "anyth": [5, 298, 484], "anytim": 484, "api": [1, 2, 341, 481, 482], "app": 8, "append": [5, 203, 480, 484], "appl": [2, 5, 7, 8, 488], "appli": [0, 38, 144, 145, 162, 190, 310, 311, 312, 323, 325, 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, 358, 360, 373, 380, 382, 383, 384, 385, 386, 388, 390, 391, 393, 394, 395, 396, 397, 398, 399, 401, 410, 411, 412, 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, 448, 450, 463, 466, 472, 475, 480, 481], "applic": [3, 8], "apply_fn": 360, "apply_gradi": 455, "apply_to_modul": [323, 364], "approach": [430, 482], "appropri": [2, 480], "approx": 341, "approxim": [16, 341, 412, 413, 414], "ar": [0, 1, 2, 4, 5, 6, 7, 8, 16, 18, 82, 90, 91, 93, 94, 101, 105, 112, 118, 125, 126, 136, 140, 142, 145, 147, 148, 150, 151, 153, 154, 156, 157, 158, 163, 164, 171, 172, 173, 174, 175, 176, 177, 178, 185, 186, 188, 189, 193, 203, 216, 230, 231, 232, 236, 237, 239, 240, 241, 246, 247, 250, 251, 258, 264, 265, 277, 278, 286, 298, 301, 302, 306, 309, 310, 316, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 344, 348, 350, 352, 366, 379, 382, 401, 422, 424, 425, 449, 453, 455, 462, 464, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488], "arang": [0, 1, 188, 246, 316, 401, 483, 485], "arbitrari": [309, 453], "arbitrarili": [1, 94, 323, 479, 482, 486], "arc": 0, "arcco": 0, "arccosh": 0, "architectur": [5, 8, 209, 323, 378, 488], "archiv": 487, "arcsin": 0, "arcsinh": 0, "arctan": 0, "arctan2": 0, "arctanh": 0, "arg": [2, 5, 10, 18, 120, 136, 264, 265], "arg1": 177, "arg2": 177, "argmax": [0, 6], "argmin": 0, "argnam": [164, 298], "argnum": [2, 164, 298, 482], "argpars": 5, "argpartit": 0, "argsort": 0, "argument": [1, 31, 65, 79, 94, 136, 164, 298, 310, 311, 312, 323, 401, 477, 481, 482, 487, 488, 489], "argumentpars": 5, "ari": [84, 85, 86], "aris": 485, "arm": 8, "arm64": 8, "around": 5, "arr": [0, 261, 483], "arr_0": 487, "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, 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 308, 323, 328, 349, 359, 366, 369, 374, 380, 401, 402, 403, 404, 405, 406, 407, 408, 409, 415, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 447, 450, 453, 456, 457, 458, 459, 460, 461, 462, 467, 468, 469, 470, 471, 472, 473, 480, 481, 482, 484, 485, 486, 488], "array_equ": [0, 16, 171], "arrayfir": 7, "arxiv": [5, 344, 348, 350, 358, 383, 414, 436, 456, 462], "as_strid": 0, "ascend": [185, 186], "ask": [5, 481], "assert": [1, 2, 142], "assign": [0, 2, 38, 453], "associ": [2, 264, 265, 484], "assum": [0, 2, 5, 90, 184, 185, 186, 189, 310, 323, 344], "astyp": [0, 1, 2, 5, 142, 359, 485], "atleast": 0, "atleast_1d": 0, "atleast_2d": 0, "atleast_3d": 0, "atol": [0, 16, 171], "atom": [1, 142], "atomic_fetch_add_explicit": 1, "atomic_output": [1, 142], "attach": 2, "attempt": 94, "attend": 379, "attent": [145, 364, 379, 392, 400], "attention_norm": 5, "attribut": [1, 9, 10, 11, 30, 314, 372, 453, 475], "audio": 401, "auto": [0, 2, 8], "autom": 482, "automat": [1, 2, 7, 142, 193, 481, 486, 487, 488], "autoregress": 5, "avail": [2, 4, 5, 6, 8, 10, 124, 213, 318, 488], "averag": [325, 326, 327, 456, 457, 459, 460, 461, 481], "avgpool1d": 323, "avgpool2d": 323, "avgpool3d": 323, "avoid": [1, 2, 371, 480], "awai": [2, 5], "awar": [480, 484], "ax": [0, 2, 15, 17, 26, 27, 79, 112, 138, 147, 148, 150, 151, 153, 154, 156, 157, 158, 170, 188, 202, 204, 206, 220, 231, 234, 258, 272, 277, 279, 283, 284, 290, 294, 299, 482], "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, 141, 143, 146, 149, 152, 153, 154, 155, 156, 157, 158, 167, 184, 188, 202, 204, 206, 220, 222, 231, 232, 234, 235, 240, 246, 255, 258, 272, 273, 274, 277, 278, 279, 283, 284, 286, 287, 291, 292, 293, 294, 299, 300, 302, 325, 326, 327, 342, 355, 356, 357, 384, 415, 421, 423, 424, 428, 433, 435, 443, 444, 483], "axis1": [0, 46, 77, 118, 284, 293], "axis2": [0, 46, 77, 118, 284, 293], "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, 142, 145, 160, 162, 165, 166, 170, 171, 179, 180, 181, 184, 188, 198, 199, 201, 203, 205, 221, 223, 227, 230, 233, 236, 243, 254, 257, 282, 290, 298, 311, 312, 342, 352, 384, 401, 415, 482, 483, 484, 485, 486, 487, 488], "b1": 162, "b2": 162, "b_": [343, 349], "b_stride": 1, "ba": [459, 461], "back": [5, 112, 213, 485], "backend": [1, 8, 123, 124], "backward": [1, 480, 482], "bad": 484, "balanc": 430, "baltimor": 188, "bandwidth": [480, 481], "bar": 481, "base": [0, 2, 144, 188, 195, 197, 233, 387, 400, 453, 455, 461, 475, 477, 480, 483], "base_idx": 1, "basi": 475, "basic": [4, 259, 482], "batch": [5, 14, 90, 145, 162, 163, 203, 244, 328, 330, 331, 332, 333, 334, 335, 337, 338, 343, 349, 379, 384, 401, 484], "batch_idx": 1, "batch_iter": [6, 455], "batch_siz": [6, 455], "batchnorm": 323, "becaus": [5, 210, 323, 484], "been": [0, 2, 5, 211, 484], "befor": [1, 2, 5, 8, 28, 142, 232, 363, 400, 464, 481, 483, 484], "before_1": 231, "before_2": 231, "before_i": 231, "before_n": 231, "beforehand": 230, "beggin": 258, "begin": [83, 183, 212, 236, 343, 349, 398, 416, 427, 434, 440, 446, 447], "behav": 112, "behavior": [244, 430, 483, 484], "behaviour": [112, 182, 183], "behind": 482, "being": [280, 323], "bell": 2, "below": [2, 8, 188, 295, 297, 316, 401, 484], "bench": 2, "benchmark": [2, 480], "benefici": [337, 338, 484], "best": 481, "beta": [0, 2, 14, 116, 236, 328, 344, 348, 350, 434, 455, 459, 460, 461, 462], "beta_": 2, "beta_1": [457, 459, 460, 461, 462], "beta_2": [459, 460, 461, 462], "better": [482, 488], "between": [0, 2, 7, 93, 158, 400, 423, 426, 427, 430, 471, 481, 484, 485, 488], "beyond": [258, 469, 472], "bfloat16": [2, 11, 167, 316, 485], "bfloat16_t": 2, "bia": [5, 116, 141, 163, 236, 237, 310, 323, 330, 331, 332, 333, 334, 335, 343, 349, 350, 352, 364, 366, 376, 379, 382, 384, 459, 460, 461, 464, 482], "bias": [0, 116, 163, 236, 237, 343, 349, 364, 376, 379], "bicub": 401, "big": [1, 480], "bigger": [5, 457], "bilinear": [1, 401], "binari": [193, 261, 262, 263, 264, 265, 300, 398, 422, 447, 480], "binary_cross_entropi": [323, 480], "bit": [0, 116, 163, 179, 236, 237, 257, 306, 316, 359, 381, 382, 383], "bitwis": [0, 87, 88, 89, 179, 257], "bitwise_and": 0, "bitwise_or": 0, "bitwise_xor": 0, "block": [0, 2, 5, 90, 400], "block_masked_mm": 0, "block_siz": [0, 90], "bn": 328, "bodi": [1, 142], "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, 142, 144, 163, 171, 177, 182, 183, 188, 191, 193, 202, 204, 206, 207, 213, 216, 220, 234, 237, 279, 283, 299, 328, 330, 331, 332, 333, 334, 335, 343, 344, 348, 349, 350, 352, 359, 363, 364, 366, 371, 373, 376, 379, 382, 384, 387, 392, 400, 401, 422, 425, 457, 468], "bool_": [11, 316], "boolean": [0, 16, 82, 171, 172, 173, 174, 175, 176, 177, 199, 200, 201, 316, 375, 483], "both": [1, 2, 13, 87, 88, 89, 128, 129, 133, 165, 166, 177, 179, 180, 181, 188, 198, 205, 221, 223, 227, 233, 240, 254, 257, 282, 306, 325, 326, 327, 348, 349, 355, 356, 357, 455, 480, 481, 482, 486, 488], "bottom": 401, "bound": [0, 247, 250, 251, 341, 409, 480, 483, 488], "boundari": 471, "bracket": 5, "brain": 316, "break": 485, "bregler": 337, "broadcast": [0, 2, 13, 16, 87, 88, 89, 91, 93, 128, 129, 133, 145, 161, 165, 166, 171, 179, 180, 181, 198, 203, 205, 221, 223, 227, 233, 235, 239, 240, 244, 250, 251, 254, 257, 282, 287, 303, 379], "broadcast_arrai": [0, 2], "broadcast_to": 0, "broadcasted_input": 2, "brought": 7, "btl_tcp_link": 481, "buffer": [1, 2, 210, 485], "bui": 5, "build": [3, 5, 7, 405, 453, 480], "build_ext": [2, 8], "build_shared_lib": [2, 8], "built": [1, 2, 8, 484], "bundl": 5, "byte": [51, 61, 210, 211, 212, 215, 216, 217, 316], "c": [0, 1, 2, 5, 14, 188, 328, 330, 331, 332, 333, 334, 335, 337, 338, 348, 349, 485, 486, 488], "c_": [349, 462], "c_in": [98, 99, 100, 101, 102, 103, 104], "c_out": [98, 99, 100, 101, 102, 103, 104], "c_pad": 1, "c_t": [349, 462], "cach": [5, 8, 208, 210, 211, 215, 480], "calcul": [188, 422, 425, 431, 457], "call": [2, 3, 5, 6, 31, 126, 160, 208, 212, 323, 340, 364, 376, 381, 389, 453, 455, 464, 480, 481, 482, 484], "callabl": [94, 112, 142, 164, 178, 298, 301, 302, 306, 307, 309, 310, 311, 312, 359, 360, 363, 371, 384, 389, 400, 402, 403, 404, 405, 406, 407, 408, 409, 456, 457, 458, 459, 460, 461, 462, 467, 468, 469, 470, 471, 472, 473], "can": [1, 2, 3, 5, 7, 8, 13, 18, 65, 79, 83, 87, 88, 89, 94, 118, 119, 120, 128, 129, 133, 136, 145, 165, 166, 179, 180, 181, 188, 198, 205, 217, 221, 223, 227, 233, 239, 240, 247, 250, 251, 254, 257, 262, 282, 293, 298, 312, 323, 326, 327, 340, 341, 356, 357, 363, 376, 381, 389, 401, 424, 450, 453, 455, 463, 464, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489], "cannot": [5, 93, 483, 485], "captur": [2, 3, 94, 218, 219, 323, 480], "care": [5, 484], "carri": 2, "cartesian": 207, "case": [2, 5, 121, 122, 123, 125, 126, 127, 148, 151, 152, 154, 155, 156, 157, 158, 182, 183, 184, 185, 186, 187, 189, 190, 191, 203, 256, 277, 326, 327, 337, 356, 357, 398, 416, 434, 440, 446, 447, 463, 464, 480, 482, 486, 487, 488, 489], "cast": [2, 37, 155, 156, 157, 193, 359, 371, 485], "caster": 2, "categor": 5, "categori": [11, 177, 316], "catlas_saxpbi": 2, "caus": [323, 480, 484], "causal": 5, "caution": 83, "cd": [3, 8], "cdf": [241, 341, 412], "cdot": [414, 423, 426, 442], "ceil": 0, "ceildiv": 1, "cell": 349, "celu": 323, "certain": [2, 373, 480], "chang": [83, 94, 267, 300, 377, 382, 401, 427, 434, 480, 485], "channel": [1, 98, 99, 100, 101, 102, 103, 104, 328, 330, 331, 332, 333, 334, 335, 337, 338], "channel_idx": 1, "charact": 309, "check": [0, 2, 8, 82, 124, 177, 185, 186, 213, 366, 482, 483], "checklist": 481, "checkout": [3, 480], "checkpoint": [400, 455], "chen": 462, "child": 378, "children": 323, "chip": 8, "choleski": 183, "choos": [5, 144, 387], "chosen": 131, "clamp": 158, "clang": 8, "clariti": 482, "class": [2, 5, 6, 9, 10, 11, 30, 112, 120, 314, 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, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 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, 448, 453, 456, 457, 458, 459, 460, 461, 462, 467, 468, 475], "class_pred": 306, "classif": [405, 406], "classifi": 6, "classmethod": [381, 382], "clear": 208, "click": 8, "clip": [0, 308, 422, 457], "clip_threshold": 457, "clipped_grad": 308, "clone": 8, "close": [4, 7, 8, 16, 171], "closer": 310, "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, 392, 482], "code": [1, 142, 480, 481, 484], "coeffici": [2, 456, 457, 459, 460, 461, 462], "col": 295, "col_contigu": 2, "cold": 8, "collect": [2, 310, 311, 479], "column": [2, 140, 168, 185, 236], "com": [8, 481], "combin": [5, 190, 312], "come": [2, 5, 481, 482], "command": [2, 3, 8, 481], "command_buff": 2, "common": [2, 455, 480, 484], "commonli": [6, 377, 450, 480], "commun": [7, 120, 123, 124], "compar": [2, 82, 480], "comparison": [16, 133, 165, 166, 180, 181, 227], "compat": [5, 145, 240, 244, 341, 487], "compil": [0, 3, 7, 8, 119, 132, 142, 481, 482, 484], "compiled_fun": 480, "compiled_grad_fn": 480, "complet": [4, 5, 8, 216, 377, 378, 482, 488], "complex": [2, 96, 97, 153, 154, 155, 156, 157, 169, 185, 186, 252, 309, 316, 323, 378, 480, 482], "complex64": [2, 11, 316], "complex64_t": 2, "complexflo": 11, "compon": [2, 5], "compos": [7, 323, 480, 482, 486], "composit": 486, "compress": 265, "compromis": 5, "comput": [0, 1, 2, 4, 5, 6, 7, 8, 108, 109, 110, 111, 112, 116, 131, 139, 144, 164, 178, 182, 183, 184, 185, 186, 187, 188, 191, 198, 206, 230, 236, 254, 272, 279, 280, 290, 298, 299, 301, 307, 323, 328, 343, 344, 348, 349, 350, 364, 377, 382, 383, 387, 400, 403, 404, 405, 406, 413, 414, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 455, 456, 457, 459, 460, 461, 462, 466, 480, 481, 482, 486, 488], "computation": 484, "compute_encod": 2, "concaten": [0, 5, 121], "concept": 453, "concis": 5, "concret": [2, 343, 349, 352, 384, 484, 488], "conda": [8, 481], "condit": [0, 2, 303, 488], "config": [2, 481], "configu": 455, "configur": [116, 481], "confirm": 481, "confus": 6, "conj": 97, "conjug": [0, 96], "connect": 481, "consecut": [144, 236, 387], "consequ": 5, "consid": [5, 16, 82, 171, 309, 310, 311, 344, 479], "consider": 480, "const": [0, 1, 2, 425], "constant": [0, 2, 5, 8, 141, 143, 231, 323, 328, 344, 350, 383, 425, 435, 467, 469, 480, 485], "constant_valu": 231, "constitut": 310, "construct": [0, 2, 6, 45, 117, 161, 228, 291, 304], "consum": 484, "contain": [2, 5, 8, 28, 29, 68, 94, 118, 131, 152, 153, 154, 162, 163, 185, 188, 199, 200, 201, 236, 274, 303, 308, 323, 363, 365, 366, 372, 400, 431, 450, 453, 480, 481, 482], "content": [8, 363, 480], "context": 281, "contigu": [0, 1, 2, 83, 142], "continu": [329, 410, 482], "contract": [0, 131], "contrast": 460, "contribut": 2, "contriv": [482, 488], "control": [0, 351, 477, 484], "conv": 105, "conv1d": [0, 323], "conv2d": [0, 323], "conv3d": [0, 323], "conv_gener": 0, "conv_transpose1d": 0, "conv_transpose2d": 0, "conv_transpose3d": 0, "conveni": [1, 2, 6, 177], "convent": [18, 105, 130, 131, 401, 460], "convers": 7, "convert": [0, 1, 2, 78, 84, 85, 86, 115, 158, 238, 381, 382, 484, 485, 486], "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": 323, "convtranspose2d": 323, "convtranspose3d": 323, "coordin": [0, 207], "copi": [0, 1, 2, 5, 7, 232, 273, 485], "copy_inplac": 2, "copytyp": 2, "core": [1, 2, 3, 4, 5, 6, 306, 323, 325, 326, 327, 328, 348, 355, 356, 357, 366, 369, 371, 374, 401, 402, 403, 404, 405, 406, 407, 408, 409, 422, 424, 431, 450, 453, 455, 480, 481, 485, 486], "corner": 401, "correct": [2, 8, 459, 460, 461, 483, 484], "correctli": 38, "correl": [101, 337], "correspond": [0, 1, 2, 15, 17, 78, 93, 116, 118, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 185, 202, 204, 220, 234, 283, 290, 302, 310, 482], "cos_first": 392, "cosh": [0, 430], "cosin": [0, 19, 20, 106, 107, 423, 469, 471, 482], "cosine_decai": [455, 471], "cosine_similarity_loss": 323, "cost": [8, 457, 481, 484], "costli": 484, "cot": 1, "cot_index": 1, "cotan": [2, 112], "cotang": [1, 2, 112, 301], "could": [5, 323], "count": [323, 471], "counter": 477, "cours": 482, "coursera": 467, "cov": 244, "covari": [244, 328], "cover": 2, "cpp": 2, "cpu": [7, 8, 185, 186, 189, 488], "cpython": 2, "crash": [83, 480], "creat": [0, 2, 5, 8, 83, 123, 140, 168, 281, 323, 453, 455, 471, 480, 483, 485], "create_additive_causal_mask": 5, "criteria": 2, "cross": [6, 101, 422, 424], "cross_entropi": [6, 323], "crowd": 5, "cry": 5, "cubic": 401, "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, 209, 211, 236, 312, 323, 457, 481, 484], "custom": [7, 112, 142, 400], "custom_decod": 400, "custom_encod": 400, "custom_funct": 1, "custom_kernel_myexp_float": 1, "custom_tim": 2, "cvpr": 337, "cycl": 479, "d": [0, 1, 2, 5, 100, 104, 117, 118, 145, 170, 188, 203, 207, 230, 286, 293, 295, 296, 297, 313, 332, 335, 338, 343, 349, 384, 456, 459, 461, 488], "d1": 488, "d2": 488, "d2fdx2": 482, "d_i": 352, "dampen": 468, "darwin": 2, "data": [0, 2, 6, 7, 10, 18, 125, 140, 155, 156, 161, 168, 192, 224, 228, 241, 250, 293, 295, 300, 304, 338, 402, 403, 404, 405, 406, 407, 408, 409, 480, 481, 483, 485], "dataset": [4, 481, 484], "datatyp": 51, "dbuild_shared_lib": 8, "dcmake_build_typ": 8, "ddof": [0, 75, 80, 279, 299], "deal": 480, "debug": [1, 3, 481], "debugg": 7, "decai": [457, 460, 462, 468, 469, 470, 473], "decay_r": [457, 470, 473], "decay_step": 469, "decent": 6, "decid": [310, 363], "decim": [0, 66, 259], "declar": 2, "decltyp": 1, "decod": 400, "decomposit": [182, 183, 190], "decor": [1, 112], "decoupl": 460, "deep": [328, 403, 404, 405, 406], "def": [1, 2, 4, 5, 6, 112, 142, 298, 323, 453, 480, 481, 482, 483, 484, 485, 488], "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, 142, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 162, 163, 164, 167, 168, 171, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 202, 204, 206, 207, 215, 216, 217, 220, 224, 228, 231, 232, 234, 236, 237, 239, 240, 241, 243, 244, 245, 246, 247, 249, 250, 251, 255, 256, 259, 266, 267, 273, 274, 277, 278, 279, 281, 283, 285, 290, 292, 293, 294, 295, 296, 297, 298, 299, 302, 304, 306, 316, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 339, 342, 343, 345, 348, 349, 351, 352, 355, 356, 357, 359, 364, 366, 371, 373, 376, 379, 380, 381, 382, 384, 387, 392, 396, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 415, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 453, 456, 457, 458, 459, 460, 461, 462, 467, 468, 469, 477, 479, 480, 482, 485, 487, 489], "default_devic": 489, "default_stream": 489, "defin": [1, 2, 4, 5, 6, 8, 112, 126, 142, 163, 184, 188, 237, 306, 309, 485], "definit": [112, 182, 183, 244], "degre": [0, 238, 435], "delta": [427, 456], "delv": [405, 406], "demonstr": 485, "denomin": [348, 423, 456, 458, 459, 460, 461, 467], "dens": [207, 488], "depend": [0, 2, 3, 4, 8, 78, 188, 343, 349, 384, 481, 483, 487, 488], "depth": [309, 327, 332, 335, 338, 357, 482], "dequant": [0, 236], "deriv": [2, 482, 484], "descend": 361, "descent": [468, 480, 484], "describ": [2, 484], "descript": [2, 5, 316], "design": [1, 4, 7, 477, 488], "destin": [0, 2, 60, 127, 222, 235], "destroi": 480, "detach": 482, "detail": [1, 2, 10, 215, 323, 337, 387, 392, 401, 403, 404, 405, 406, 456, 458, 459, 461, 462, 483, 486], "determin": [0, 2, 118, 244, 312, 316, 370, 487], "dev": [2, 8], "develop": [2, 8], "developer_dir": 8, "deviat": [0, 245, 279, 403, 405, 408], "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, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 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, 209, 216, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 244, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 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, 299, 300, 303, 304, 305, 314, 488, 489], "device_info": 217, "devicetyp": 9, "df": 485, "dfdx": [482, 483], "dft": [146, 147, 148, 149, 150, 151, 155, 156, 157], "dhwc": 338, "diag": [0, 190], "diagon": [0, 45, 117, 140, 293, 295, 296, 297], "dict": [94, 136, 193, 209, 262, 263, 264, 308, 369, 374, 377, 378, 453, 455, 463, 464, 466, 479, 482, 487], "dict_kei": [310, 464], "dictionari": [5, 94, 193, 209, 262, 263, 308, 309, 312, 323, 363, 372, 377, 378, 465, 479, 487], "did": 5, "diff": 2, "differ": [7, 177, 282, 300, 434, 482], "differenti": [1, 2, 7, 329, 410], "difficult": 482, "difficulti": [403, 404], "dilat": [0, 98, 99, 100, 101, 102, 103, 104, 330, 331, 333, 334], "dim": [1, 5, 144, 145, 340, 344, 348, 350, 379, 381, 383, 387, 392, 400], "dimens": [0, 1, 2, 5, 15, 17, 26, 27, 62, 68, 78, 84, 85, 86, 94, 99, 100, 101, 103, 104, 118, 138, 144, 145, 153, 154, 156, 157, 158, 162, 163, 170, 182, 183, 185, 186, 187, 188, 189, 190, 191, 202, 203, 204, 206, 220, 234, 235, 236, 240, 249, 279, 283, 287, 290, 294, 299, 328, 330, 331, 332, 333, 334, 335, 337, 338, 342, 343, 344, 348, 349, 350, 379, 383, 384, 387, 400, 401, 415, 424, 480, 482], "dimension": [30, 141, 143, 146, 147, 148, 149, 150, 151, 155, 156, 157, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 340, 352, 355, 356, 357, 381, 382, 392, 483, 485], "direct": [2, 5, 361, 462, 488], "directli": [2, 5, 83], "directori": [2, 5, 8], "disabl": [119, 215, 480], "disable_compil": 480, "disappoint": 5, "discard": [5, 309], "discov": 8, "discoveri": 462, "discret": [105, 146, 147, 148, 149, 150, 151, 155, 156, 157, 340, 381], "discuss": 2, "disk": 5, "dispatch": 2, "dispatch_thread": 2, "dispatchthread": 1, "displai": 323, "distanc": [5, 435], "distribut": [7, 8, 239, 240, 241, 243, 244, 245, 250, 251, 352, 403, 404, 405, 406, 408, 409, 425, 428, 433, 435, 450], "diverg": 428, "divid": [0, 2, 38, 160, 236, 254, 481], "divis": [0, 128, 160, 236, 254], "divisor": [279, 299], "divmod": 0, "dloss_dw": 482, "dloss_dx": 482, "dlpack": 485, "dlvalu": 298, "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, 300, 323, 365, 376, 450, 453, 460, 480, 481, 482, 484], "doc": [2, 6, 481], "document": [2, 3, 65, 79, 142, 262, 263, 316, 480, 482, 483], "doe": [0, 2, 3, 5, 8, 210, 300, 308, 323, 480, 483, 484, 485], "doesn": [2, 323], "domain": [250, 481], "don": [1, 8, 480, 488], "done": [323, 336, 383, 480, 481, 484, 485], "dot": [182, 187, 191, 290, 309, 368, 379], "doubl": [0, 5], "doubt": 5, "down": [5, 308], "downsampl": [325, 326, 327, 355, 356, 357], "dparam": 298, "draw": 240, "drop": 363, "dropout": [323, 337, 338, 373, 400, 480], "dropout2d": 323, "dropout3d": 323, "dst": 127, "dt": 134, "dtype": [0, 1, 2, 5, 11, 18, 30, 37, 38, 78, 81, 125, 126, 140, 142, 158, 161, 168, 177, 185, 186, 188, 189, 192, 228, 241, 243, 244, 245, 247, 250, 251, 293, 295, 300, 304, 316, 371, 401, 402, 403, 404, 405, 406, 407, 408, 409, 422, 424, 431, 469, 470, 471, 472, 473, 480, 481, 482, 483, 485, 486, 487], "dtypecategori": [177, 316], "dual": 430, "duchi": 458, "dure": [3, 94, 336, 337, 338, 401, 485], "dx": 112, "dy": 112, "dyld": 481, "dyld_library_path": 481, "dylib": 2, "dynam": 484, "e": [2, 6, 8, 112, 134, 142, 162, 163, 178, 268, 328, 330, 331, 332, 333, 334, 335, 337, 338, 344, 348, 350, 364, 383, 420, 421, 443, 444, 449, 455, 458, 480, 484, 489], "e5": 316, "e8": 316, "each": [0, 1, 2, 68, 116, 136, 144, 163, 177, 182, 183, 185, 186, 187, 190, 191, 203, 207, 231, 236, 237, 240, 255, 264, 265, 274, 291, 294, 300, 302, 303, 337, 338, 340, 343, 344, 349, 384, 387, 400, 422, 424, 477, 480, 481, 484], "eager": 484, "earli": 337, "earlier": 2, "eas": 5, "easi": [2, 323, 481], "easier": [1, 484], "edg": [93, 231, 401, 480], "edit": [8, 378], "effect": [337, 480, 484], "effici": [5, 7, 162, 337, 387, 484, 486], "eigenvalu": [185, 186], "eigenvector": 185, "einstein": [130, 131], "einsum": 131, "either": [8, 13, 65, 78, 79, 87, 88, 89, 93, 128, 129, 133, 160, 165, 166, 179, 180, 181, 188, 198, 203, 205, 221, 223, 227, 233, 254, 257, 282, 298, 326, 327, 356, 357, 389, 401, 405, 406, 485], "elem": [1, 142], "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, 159, 160, 163, 165, 166, 171, 172, 173, 174, 175, 176, 179, 180, 181, 194, 195, 196, 197, 198, 199, 200, 201, 205, 207, 221, 223, 225, 227, 232, 233, 236, 237, 253, 254, 255, 257, 258, 260, 268, 269, 270, 271, 275, 276, 282, 286, 288, 289, 292, 298, 300, 303, 329, 336, 337, 338, 343, 347, 349, 358, 380, 384, 387, 391, 410, 417, 418, 420, 421, 436, 437, 439, 442, 443, 444, 445, 480, 482], "elementwis": [1, 96, 97], "elif": 5, "ellipsi": 483, "elman": 384, "els": [0, 2, 5, 323, 364, 481, 484], "elsewher": [295, 483], "elu": [323, 440], "emb": [5, 340, 381, 392], "embed": [5, 306, 323, 381, 387, 392, 423], "empti": [127, 244], "enabl": [3, 5, 8, 94, 132, 468], "encod": [2, 144, 387, 392, 400, 424], "encount": [2, 482], "end": [118, 183, 213, 236, 258, 343, 349, 398, 416, 427, 434, 440, 446, 447, 469, 472], "end_axi": [0, 49, 158], "end_encod": 2, "endif": 2, "endswith": 364, "enhanc": [5, 387, 484], "enjoi": 2, "enough": [2, 484], "ensur": [0, 1, 2, 8, 142, 308, 430, 481], "ensure_row_contigu": [1, 142], "enter": 5, "entir": [15, 17, 26, 27, 202, 204, 206, 220, 234, 279, 283, 299, 337, 338], "entri": [0, 246, 337, 338], "entropi": [6, 422, 424], "enumer": 323, "environ": [8, 119, 132, 481], "ep": [4, 141, 143, 328, 344, 348, 350, 383, 423, 425, 435, 455, 456, 457, 458, 459, 460, 461, 467], "epoch": 6, "epsilon": [328, 344, 348, 350, 383, 423, 425, 456, 458, 459, 460, 461, 467], "epsilon_1": 457, "epsilon_2": 457, "equal": [0, 1, 16, 28, 82, 140, 166, 171, 181, 227, 232, 247, 274, 348, 352], "equal_nan": [0, 16, 82, 171], "equat": [130, 131], "equival": [0, 2, 31, 65, 79, 126, 129, 160, 163, 167, 286, 329, 339, 341, 345, 346, 347, 353, 354, 378, 380, 382, 385, 386, 388, 390, 393, 394, 395, 396, 397, 399], "erf": [0, 135, 480], "erfinv": 0, "error": [0, 2, 8, 123, 134, 135, 216, 217, 274, 341, 412, 413, 414, 430, 432, 482, 485], "error_norm": 4, "estim": [459, 461], "eta": 462, "etc": [2, 236, 323, 401, 481], "eval": [2, 3, 4, 5, 6, 323, 453, 455, 480, 481, 482, 484, 486], "eval_cpu": 2, "eval_fn": 6, "eval_gpu": 2, "evalu": [2, 5, 6, 7, 127, 136, 178, 301, 323, 362, 373, 453, 455, 480, 486], "even": [1, 2, 5, 94, 480, 484, 485], "evenli": [0, 192], "everi": [236, 310, 455, 473, 482], "everyth": [5, 481], "everywher": 0, "exact": [413, 414], "exactli": [2, 5, 144, 366, 482], "exampl": [0, 3, 4, 5, 6, 8, 18, 38, 112, 142, 145, 158, 177, 185, 186, 188, 189, 281, 286, 308, 311, 312, 323, 325, 326, 327, 328, 348, 355, 356, 357, 364, 366, 373, 376, 401, 402, 403, 404, 405, 406, 407, 408, 409, 422, 424, 431, 450, 455, 464, 469, 470, 471, 472, 473, 477, 482, 483, 484, 485, 486, 487], "exce": 308, "exceed": 216, "except": [7, 140, 152, 153, 155, 156, 157, 344, 366, 483, 485], "exclud": [235, 287], "exclus": [0, 83, 89], "execut": [2, 8, 84, 85, 86, 212, 485, 488], "exist": [2, 3, 5, 364, 376], "exp": [0, 1, 139, 142, 198, 202, 241, 272, 329, 339, 391, 410, 411, 428, 440, 441, 445, 480, 488], "exp_elementwis": [1, 142], "expand_dim": 0, "expect": [2, 5, 330, 331, 332, 333, 334, 335, 336, 337, 338, 392, 400, 425, 480, 483], "expens": 400, "expensive_fun": 484, "experiment": 485, "explain": 2, "explicit": [2, 464, 477, 485], "explicitli": [162, 323, 477], "explor": 8, "expm1": 0, "exponenti": [0, 137, 139, 329, 339, 388, 410, 411, 440, 470], "exponential_decai": 455, "export": 8, "ext_modul": 2, "extend": [2, 231], "extens": [7, 193, 218, 370, 487], "extern": 485, "extra": [1, 310, 311], "extract": [0, 5, 45, 117, 118, 323, 363, 453, 481], "extras_requir": 2, "extrem": [483, 484], "ey": [0, 5, 187, 191], "f": [0, 2, 4, 6, 112, 188, 323, 349, 460, 480, 485], "f_jvp": 112, "f_t": 349, "f_vjp": 112, "f_vmap": 112, "face": 5, "factor": [2, 14, 167, 182, 183, 189, 401, 424, 470, 473], "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, 142, 171, 177, 182, 183, 188, 191, 193, 202, 204, 206, 207, 216, 220, 234, 279, 283, 299, 303, 306, 309, 310, 311, 312, 316, 344, 348, 350, 352, 364, 366, 376, 379, 382, 387, 392, 400, 401, 422, 425, 457, 468, 485], "famili": 5, "fan": [403, 404, 405, 406], "fan_in": [403, 404, 405, 406], "fan_out": [403, 404, 405, 406], "far": 455, "fast": [1, 7, 341, 414, 481, 488], "faster": [1, 2, 8, 129, 412, 422, 480, 482], "featur": [1, 7, 98, 99, 100, 101, 102, 103, 104, 144, 328, 343, 344, 348, 349, 350, 352, 382, 383, 384, 387, 400, 401, 480, 484], "feed": 5, "feed_forward": 5, "feedforward": [403, 404], "feel": 5, "fetch": 1, "few": [1, 2, 5, 6, 7, 8, 481, 484, 486], "ffn": 5, "ffn_norm": 5, "fft": 7, "figur": 481, "file": [5, 8, 193, 261, 262, 263, 264, 265, 366, 370, 481, 482, 487], "file_or_weight": 366, "fill": [0, 2, 161, 229, 295, 305, 402, 403, 404, 405, 406, 408, 409], "filter": [0, 105, 330, 331, 332, 333, 334, 335, 359, 363], "filter_and_map": 323, "filter_fn": [359, 363], "final": [2, 4, 5, 6, 167, 469, 472], "find": [2, 4, 8, 481], "find_packag": 2, "finder": 8, "fine": [477, 484], "finetun": 323, "finish": 2, "finit": [0, 172, 224], "first": [0, 1, 2, 3, 4, 5, 6, 8, 118, 121, 158, 164, 177, 179, 190, 199, 201, 203, 232, 249, 257, 284, 290, 293, 298, 309, 311, 312, 323, 326, 327, 344, 356, 357, 401, 423, 431, 457, 459, 460, 461, 464, 480, 482, 485, 488], "first_lay": 484, "fit": [2, 236, 488], "five": 480, "fix": [2, 5, 8, 484], "flag": [2, 8, 480, 485], "flat": [162, 163, 309, 313], "flat_param": 264, "flatten": [0, 28, 29, 108, 109, 110, 111, 188, 230, 232, 235, 255, 258, 273, 286, 287, 292, 309], "flexibl": 7, "flexibli": 378, "flip": [0, 101, 105], "float": [0, 1, 2, 11, 14, 16, 18, 78, 141, 142, 143, 144, 145, 160, 161, 167, 171, 177, 188, 224, 237, 239, 243, 245, 308, 316, 328, 336, 337, 338, 344, 348, 350, 359, 371, 383, 387, 392, 398, 400, 401, 402, 403, 404, 405, 406, 408, 409, 423, 424, 425, 427, 431, 434, 435, 446, 447, 456, 457, 458, 459, 460, 461, 462, 467, 468, 469, 470, 472, 473], "float16": [1, 2, 11, 142, 167, 193, 316, 359, 484, 485], "float16_t": [1, 2], "float32": [0, 1, 2, 11, 18, 140, 142, 145, 167, 168, 177, 185, 186, 188, 189, 192, 228, 241, 243, 244, 245, 250, 251, 295, 304, 316, 401, 402, 403, 404, 405, 406, 407, 408, 409, 422, 424, 431, 469, 470, 471, 472, 473, 480, 481, 482, 483, 484, 485, 486, 487], "float64": 177, "floor": [0, 1, 160], "floor_divid": 0, "flow": [0, 280, 484], "flush": 2, "fn": [307, 310, 311, 312, 486], "follow": [1, 2, 5, 6, 7, 8, 18, 105, 116, 145, 162, 188, 231, 236, 311, 323, 413, 414, 428, 456, 457, 458, 459, 460, 461, 462, 468, 477, 480, 481, 482, 488], "foo": 481, "food": 5, "forc": [5, 6, 323, 481, 486], "forg": 8, "formal": [116, 236], "format": [5, 193, 261, 262, 263, 264, 265, 485], "formul": [329, 339], "formula": 434, "forth": 401, "forward": [1, 2, 298, 480, 484], "found": 363, "four": 328, "fourier": [146, 147, 148, 149, 150, 151, 155, 156, 157], "frac": [134, 236, 268, 328, 336, 337, 338, 344, 348, 350, 352, 383, 391, 403, 404, 405, 406, 423, 425, 427, 430, 441, 443, 444, 456, 458, 459, 460, 461, 467], "fraction": 18, "framework": [2, 7], "free": 215, "freez": [323, 376, 453], "freq": 144, "frequenc": [144, 387, 392], "frequent": [480, 484], "friend": 5, "fro": 188, "frobeniu": 188, "from": [0, 1, 2, 5, 6, 7, 83, 115, 116, 118, 121, 122, 125, 126, 127, 142, 153, 154, 156, 157, 161, 162, 167, 188, 193, 203, 207, 212, 215, 229, 236, 238, 239, 240, 241, 242, 243, 247, 250, 264, 277, 280, 282, 286, 287, 292, 293, 303, 305, 309, 310, 311, 312, 313, 323, 352, 364, 366, 379, 403, 404, 405, 406, 408, 409, 425, 434, 450, 455, 479, 480, 481, 482, 484, 485, 486, 487, 488], "from_embed": 381, "from_linear": 382, "front": 2, "frozen": [323, 364, 374, 376, 382, 453], "fuction": 129, "full": [0, 1, 2, 6, 65, 79, 105, 142, 272, 377, 378, 425, 480, 481, 484], "full_turn": 392, "fulli": [2, 7, 481, 485, 488], "fun": [94, 164, 178, 298, 301, 302, 480, 483, 484, 488], "fun1": 484, "func": 384, "function": [0, 1, 2, 3, 4, 5, 6, 7, 16, 18, 83, 94, 112, 129, 134, 135, 142, 164, 171, 178, 182, 183, 185, 186, 187, 188, 189, 190, 191, 203, 217, 268, 298, 301, 302, 307, 308, 310, 311, 312, 323, 329, 339, 341, 342, 345, 346, 347, 353, 354, 358, 360, 364, 371, 376, 380, 384, 385, 386, 388, 389, 390, 391, 393, 394, 395, 396, 397, 398, 399, 400, 412, 413, 414, 415, 416, 417, 418, 420, 421, 422, 436, 441, 443, 444, 445, 446, 447, 448, 450, 455, 464, 477, 479, 481, 483, 484, 485, 487], "functool": 480, "further": [2, 8, 482], "fuse": [1, 480], "fusibl": 480, "futur": [5, 382, 483, 484], "g": [3, 8, 112, 142, 188, 236, 349, 449, 467, 468, 484, 489], "g_t": [349, 456, 458, 459, 460, 461, 462, 467, 468], "gain": [403, 404, 405, 406], "gamma": [328, 344, 348, 350, 383, 403, 404, 405, 406], "gap": 1, "gate": [342, 343, 415], "gather": [0, 121, 162, 163], "gather_mm": [0, 163], "gather_qmm": 0, "gaurante": 300, "gaussian": [4, 341, 412, 413, 414, 425], "gaussian_nll_loss": 323, "gelu": [323, 413, 414, 480], "gelu_approx": [323, 341, 412], "gelu_fast_approx": [323, 341, 412], "geluapprox": 341, "gelufast": 341, "gener": [0, 1, 2, 3, 4, 11, 18, 101, 140, 142, 153, 154, 192, 207, 239, 244, 245, 246, 247, 250, 251, 400, 477, 480, 483, 484, 489], "general_": 2, "generate_stub": 8, "geq": [398, 447], "get": [2, 4, 6, 8, 99, 100, 101, 103, 104, 113, 114, 209, 210, 211, 212, 242, 323, 480, 482, 484, 488], "get_cache_memori": 208, "get_command_encod": 2, "get_kernel": 2, "gguf": [8, 193, 262, 487], "gh": 1, "gii": 1, "git": 8, "github": [4, 6, 8, 480], "give": [2, 5, 6, 28, 480], "given": [0, 2, 8, 15, 17, 28, 38, 83, 91, 93, 95, 108, 109, 110, 111, 116, 118, 131, 136, 138, 145, 146, 147, 148, 149, 150, 151, 155, 156, 157, 161, 162, 188, 202, 204, 206, 215, 220, 224, 226, 234, 244, 246, 247, 258, 259, 267, 272, 274, 279, 283, 285, 291, 292, 293, 295, 296, 297, 299, 314, 336, 363, 379, 423, 425, 431], "gix": 1, "gix_mult": 1, "giy_mult": 1, "global": [119, 121, 122, 123, 125, 126, 127, 132, 248, 308, 477, 480], "glorot": [403, 404], "glorot_norm": 323, "glorot_uniform": 323, "glu": [5, 323], "gm": 1, "gn": 1, "go": [2, 5, 482], "golub": 188, "good": [2, 8, 455, 480, 481, 488], "goroshin": 337, "gower": 5, "gpu": [1, 3, 7, 8, 209, 483, 488], "gputrac": [3, 218], "grad": [2, 4, 6, 298, 308, 455, 463, 480, 481, 482, 483, 484, 486], "grad_fn": [4, 480, 482], "gradient": [0, 4, 6, 112, 164, 280, 298, 307, 308, 323, 364, 377, 382, 400, 430, 453, 455, 456, 457, 459, 460, 461, 462, 463, 466, 468, 480, 481, 482, 483, 484, 485, 486], "grain": 477, "graph": [2, 5, 6, 7, 482], "great": 3, "greater": [0, 5, 28, 139, 166, 232, 308, 398, 447], "greater_equ": 0, "grep": 8, "grid": [2, 142, 207], "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, 424, 434], "group": [0, 1, 98, 99, 100, 101, 102, 103, 104, 116, 121, 122, 123, 125, 126, 127, 145, 163, 236, 237, 300, 306, 330, 331, 344, 381, 382, 481], "group_dim": 2, "group_siz": [0, 116, 163, 236, 237, 306, 381, 382], "groupnorm": 323, "grow": 484, "gru": 323, "guid": [2, 7], "gw": 1, "h": [1, 2, 98, 99, 100, 102, 103, 104, 188, 328, 331, 332, 334, 335, 337, 338, 343, 349, 384, 482, 484], "h_": [343, 349, 384], "h_in": 1, "h_stride": 1, "h_t": [343, 349, 384], "ha": [2, 3, 5, 6, 7, 8, 78, 94, 118, 127, 152, 153, 155, 156, 157, 164, 182, 183, 185, 186, 187, 190, 191, 207, 211, 240, 328, 343, 349, 352, 384, 453, 455, 480, 483, 484, 486, 488], "had": 5, "hadamard": [0, 167], "hadamard_transform": 0, "half": [2, 18, 247, 251, 387, 484], "halv": [342, 415], "hand": [5, 482, 484], "handi": 482, "handl": [2, 323, 480], "happen": [2, 5, 141, 400, 455, 480, 484], "happi": 5, "hard": 5, "hard_shrink": [323, 345], "hard_tanh": [323, 346], "hardshrink": [323, 416], "hardswish": 323, "hardtanh": [323, 417], "hat": [116, 236], "have": [0, 1, 2, 5, 8, 16, 82, 84, 85, 86, 90, 121, 145, 153, 154, 156, 157, 163, 171, 203, 218, 240, 300, 309, 349, 379, 389, 462, 464, 479, 480, 481, 483, 484, 488], "haven": 5, "hazan": 458, "he": [5, 405, 406], "he_norm": 323, "he_uniform": 323, "head": [145, 379, 400], "header": [2, 142], "heart": 5, "heavi": 5, "height": [326, 327, 328, 331, 332, 334, 335, 337, 338, 356, 357], "hello": [309, 313], "help": [2, 5, 480, 488], "helper": [5, 142, 480], "henc": [0, 2, 236, 480], "hendryck": 414, "here": [2, 5, 455, 480, 482, 484, 487, 488], "hermitian": [185, 186], "hf": 349, "hg": 349, "hh": 384, "hi": [5, 349], "hidden": [343, 349, 384, 400], "hidden_dim": [6, 453, 455], "hidden_s": [343, 349, 384], "hierarchi": 316, "high": [247, 251, 323, 340, 409, 450], "high_pad_s": 0, "higher": [2, 170, 217, 431, 482], "highli": 8, "him": 5, "hing": 426, "hinge_loss": 323, "hinton": 467, "hit": 2, "hn": 343, "ho": 349, "hold": [2, 5, 10, 11, 188, 480], "homebrew": 481, "hopkin": 188, "host": 2, "host1": 481, "host2": 481, "host_nam": [1, 2], "hostfil": 481, "hostnam": 481, "hot": 424, "hour": 5, "how": [2, 5, 6, 323, 325, 326, 327, 330, 331, 332, 333, 334, 335, 340, 355, 356, 357, 381, 401, 463, 480, 483, 488], "howev": [2, 112, 323, 341, 344, 464, 477, 480, 481, 484, 485], "hr": 343, "http": [344, 348, 350, 358, 383, 414, 436], "huber": 427, "huber_loss": 323, "human": [405, 406], "hundr": 8, "hurri": 5, "hutter": 460, "hyperbol": [0, 20, 22, 25, 107, 271, 289, 399, 448], "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, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 167, 171, 172, 177, 178, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 193, 198, 202, 203, 207, 213, 216, 217, 231, 232, 235, 236, 237, 244, 245, 246, 256, 258, 261, 262, 263, 268, 272, 274, 279, 280, 285, 286, 287, 290, 293, 294, 298, 299, 300, 301, 302, 303, 306, 308, 309, 310, 311, 312, 316, 318, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 341, 343, 344, 348, 349, 350, 352, 355, 356, 357, 363, 364, 370, 372, 373, 375, 376, 378, 379, 380, 382, 383, 384, 387, 392, 398, 400, 401, 405, 406, 412, 414, 422, 423, 425, 430, 431, 434, 435, 437, 442, 447, 453, 455, 457, 460, 462, 463, 464, 469, 471, 472, 477, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489], "i386": 8, "i_n": 1, "i_nw": 1, "i_s": 1, "i_sw": 1, "i_t": 349, "iclr": [459, 460, 461], "id": [6, 8], "idea": [482, 484], "idempot": [364, 376], "ident": [0, 112, 140, 280, 323, 373], "identifi": [2, 309, 479], "idim": 6, "idiom": [6, 480], "idx": [38, 483], "ie": [376, 481], "ieee": 316, "ignor": [5, 38, 93, 94, 136, 457], "ih": 384, "ii": 1, "ij": 207, "imag": [0, 331, 332, 334, 335, 337, 338, 401], "imagenet": [405, 406], "imaginari": 169, "immedi": [5, 359], "implement": [0, 1, 4, 6, 144, 145, 188, 340, 363, 379, 387, 389, 392, 398, 400, 401, 447, 456, 457, 458, 459, 461, 462, 463, 475, 480, 482], "impli": 300, "implicit": [477, 480, 482], "implicitli": 484, "import": [2, 3, 4, 5, 6, 8, 112, 167, 188, 264, 298, 309, 310, 311, 312, 313, 323, 325, 326, 327, 328, 348, 355, 356, 357, 366, 401, 422, 424, 431, 450, 453, 455, 480, 481, 482, 483, 484, 485, 486], "improv": [1, 2, 3, 5, 422, 456, 457, 458, 459, 460, 461, 467, 480, 481], "in_ax": [302, 482], "in_channel": [330, 331, 332, 333, 334, 335], "in_dim": [323, 453], "in_proj": 453, "inci": 2, "includ": [1, 2, 108, 109, 110, 111, 142, 210, 211, 216, 350, 360, 372, 382, 425, 455, 480, 482, 483, 486, 487, 489], "include_dir": 2, "inclus": [0, 41, 42, 43, 44, 108, 109, 110, 111, 158], "incom": 2, "inconveni": 480, "incorpor": 485, "incorrect": 485, "increas": 217, "increment": 18, "incur": [5, 8], "incx": 2, "independ": [120, 337, 338], "index": [0, 1, 2, 7, 9, 28, 38, 138, 140, 164, 207, 232, 286, 287, 298, 314], "indic": [0, 2, 16, 26, 27, 28, 29, 38, 162, 163, 164, 171, 172, 173, 174, 175, 176, 177, 190, 235, 274, 286, 287, 298, 373, 375, 424, 431, 471, 483], "indices_or_sect": [71, 274], "indirectli": 485, "individu": [323, 337, 338], "ineffici": [483, 484], "inexact": [11, 177], "inf": [188, 224, 379], "infer": [7, 161, 193, 293, 481], "infin": [0, 173, 175, 176, 224, 355, 356, 357, 461], "infinit": [16, 171, 172], "info": [5, 8], "inform": [3, 5, 6, 8, 131, 209, 262, 263, 316, 323, 328, 341, 379, 482, 488], "inherit": [6, 479], "inifn": 173, "init": [323, 380, 450, 455, 469, 470, 472, 473, 481], "init_fn": [402, 403, 404, 405, 406, 407, 408, 409, 450], "init_valu": 1, "initi": [1, 3, 4, 5, 123, 312, 323, 328, 344, 348, 350, 352, 380, 383, 402, 403, 404, 405, 406, 407, 408, 409, 453, 464, 469, 470, 472, 473, 480, 481, 484], "initializer_list": 0, "inject": 0, "inlin": 0, "inner": [0, 480], "inorm": 348, "inp": [1, 142], "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, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 220, 221, 222, 223, 224, 225, 227, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 246, 249, 252, 253, 254, 255, 256, 257, 258, 259, 260, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 286, 287, 288, 289, 290, 291, 292, 293, 294, 296, 297, 298, 299, 300, 302, 303, 305, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 340, 342, 343, 344, 348, 349, 350, 352, 355, 356, 357, 379, 382, 383, 384, 387, 398, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 415, 422, 423, 425, 426, 427, 428, 430, 431, 433, 435, 447, 450, 480, 482, 483, 486, 487], "input_dil": [0, 101], "input_dim": [6, 323, 352, 382], "input_nam": [1, 142], "input_s": [343, 349, 384], "inputs1": 431, "inputs2": 431, "insert": [118, 138, 488], "insid": 480, "inspect": [3, 480, 486], "inspir": 7, "instabl": 435, "instal": 2, "instanc": [5, 38, 112, 236, 313, 323, 348, 359, 360, 361, 364, 366, 367, 368, 373, 376, 377, 378, 389, 453, 485], "instancenorm": 323, "instanti": [1, 2, 6, 484], "instantiate_axpbi": 2, "instead": [2, 8, 112, 323, 378, 392, 481, 482, 484], "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, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 161, 163, 164, 168, 177, 184, 188, 192, 202, 204, 206, 209, 210, 211, 212, 215, 216, 217, 220, 222, 228, 231, 232, 234, 235, 236, 237, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 255, 256, 258, 259, 272, 273, 274, 277, 278, 279, 283, 284, 286, 287, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 302, 304, 306, 314, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 340, 342, 343, 344, 348, 349, 350, 352, 355, 356, 357, 379, 381, 382, 383, 384, 387, 392, 400, 415, 423, 424, 428, 433, 435, 453, 469, 471, 472, 473], "int16": 316, "int32": [0, 1, 11, 18, 38, 158, 177, 188, 247, 316, 401, 483, 486], "int64": [11, 316], "int8": [11, 316], "int_0": 134, "integ": [0, 11, 160, 162, 163, 177, 188, 209, 231, 236, 237, 239, 246, 247, 274, 286, 290, 302, 316, 340, 371, 471, 483], "integr": [18, 286, 484], "intend": [0, 480], "interact": 400, "interest": 488, "interfac": 2, "intermedi": 485, "intern": 328, "interpol": 401, "interv": [18, 192, 247, 251], "introduc": [0, 258], "intuit": 323, "invalid": [0, 83], "invers": [0, 19, 20, 21, 22, 23, 24, 25, 135, 149, 150, 151, 152, 153, 154, 183, 187, 191], "invert": 0, "involv": [455, 480], "iogpu": 217, "ip": 481, "is_avail": 123, "is_equival": 2, "is_floating_point": 2, "is_leaf": [309, 310, 311, 312], "is_leaf_fn": 363, "isclos": 0, "isfinit": 0, "ish": 5, "ishmael": 5, "isinf": 0, "isnan": 0, "isneginf": 0, "isposinf": 0, "issu": [481, 482, 485], "issubdtyp": [11, 316], "item": [0, 2, 4, 5, 6, 310, 455, 484, 485, 486], "iter": [4, 6, 190, 310, 311, 477, 480, 484], "iterm": 8, "itertool": [5, 310], "its": [0, 1, 2, 8, 183, 203, 232, 249, 295, 307, 313, 323, 382, 455, 459, 460, 461, 481, 484, 485, 488], "itself": [2, 306, 464], "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, 188, 337, 458, 459, 461], "j8": 2, "jacobian": [2, 178, 301, 486], "jain": 337, "jax": [7, 477], "jit": 142, "jmlr": 458, "jnp": 485, "john": 188, "join": 471, "join_schedul": 455, "jointli": 244, "just": [2, 6, 350, 480, 483], "jvp": [2, 112, 486], "k": [0, 5, 45, 90, 117, 140, 145, 162, 167, 292, 295, 296, 297, 352, 364], "kaim": 406, "keep": [2, 15, 17, 26, 27, 202, 204, 206, 220, 234, 279, 283, 299, 323, 363, 482, 484], "keepdim": [0, 15, 17, 26, 27, 33, 34, 35, 36, 56, 57, 58, 59, 63, 75, 76, 80, 188, 202, 204, 206, 220, 234, 272, 279, 283, 299], "kei": [1, 3, 5, 145, 209, 239, 240, 241, 243, 244, 245, 246, 247, 249, 250, 251, 309, 310, 363, 364, 376, 379, 464, 477, 479, 482], "kept": 217, "kernel": [2, 7, 8, 98, 99, 100, 101, 102, 103, 104, 142, 325, 355, 480, 483], "kernel_dil": [0, 101], "kernel_s": [325, 326, 327, 330, 331, 332, 333, 334, 335, 355, 356, 357], "key_cach": 5, "key_input_dim": 379, "key_proj": 5, "keyword": [164, 264, 265, 298, 310, 323, 477, 487, 489], "kind": 5, "kingma": [459, 461], "kl_div_loss": 323, "kname": 2, "know": [2, 5], "known": [390, 442], "kth": [0, 28, 232], "kullback": 428, "kw_onli": 2, "kwarg": [10, 120, 264, 265, 489], "l": [5, 6, 182, 183, 185, 186, 323, 328, 330, 333, 343, 349, 384, 434], "l1": [298, 427, 429, 430, 434], "l1_loss": 323, "l2": [427, 430, 468], "l2_loss": 323, "l_": 427, "la": 188, "label": [3, 4, 424, 431], "label_smooth": 424, "lack": 483, "lambd": [345, 396, 416, 446], "lambda": [310, 311, 312, 323, 345, 359, 364, 371, 396, 416, 440, 446, 456, 457, 458, 459, 460, 461, 462, 467, 468, 480, 481, 482], "languag": [1, 2], "larg": [5, 323, 379, 430, 480, 481, 484], "larger": [1, 144, 217, 387, 462], "largest": [188, 224, 292], "lasso": 298, "last": [0, 1, 5, 29, 78, 141, 143, 148, 151, 153, 154, 156, 157, 158, 162, 163, 170, 182, 183, 185, 186, 187, 189, 190, 191, 203, 212, 240, 273, 290, 300, 330, 331, 332, 333, 334, 335, 337, 338, 344, 401, 485], "latenc": 481, "later": [3, 8, 455], "launch": [1, 2, 123, 481, 483], "layer": [7, 141, 306, 323, 325, 326, 327, 337, 338, 343, 344, 349, 350, 352, 355, 356, 357, 373, 378, 381, 382, 384, 389, 400, 449, 453], "layer_s": 6, "layernorm": 323, "layout": 1, "lazi": [7, 453, 486], "lazili": [5, 323], "lceil": 90, "ld": [343, 349, 384], "lead": [0, 18, 83, 480], "leaf": [94, 306, 309, 310, 311, 312, 363], "leaf_modul": 323, "leaki": [351, 419], "leaky_relu": 323, "leakyrelu": 323, "learn": [4, 6, 7, 328, 344, 348, 350, 380, 383, 455, 456, 457, 458, 459, 460, 461, 462, 467, 468], "learnabl": [330, 331, 332, 333, 334, 335, 389], "learning_r": [6, 455, 456, 457, 458, 459, 460, 461, 462, 464, 467, 468, 469, 470, 471, 472, 473, 480], "least": [5, 84, 85, 86, 93, 182, 183, 185, 186, 187, 189, 190, 191, 236], "leav": [2, 136, 310, 311, 312], "lectur": 467, "lecun": 337, "left": [0, 5, 144, 179, 188, 236, 258, 341, 387, 401, 413, 414, 425, 427, 435], "left_shift": 0, "leibler": 428, "len": [5, 148, 151, 154, 157, 167, 471], "length": [5, 277, 328, 330, 333, 343, 349, 384, 471], "leq": [427, 440], "less": [0, 1, 5, 28, 181, 217, 232, 387, 434], "less_equ": 0, "let": [1, 2, 4, 5, 183, 480, 482, 484, 485], "level": [0, 162, 163, 405, 406], "lh": [343, 349, 384], "lhs_indic": [0, 162, 163], "lhs_mask": 90, "lib": 481, "libmlx": 8, "libmlx_ext": 2, "libmpi": 481, "librari": [2, 8, 318, 323], "like": [2, 5, 7, 126, 177, 229, 305, 338, 430, 464, 466, 480, 481, 482, 484, 485, 486, 488], "likelihood": [425, 433], "limit": [0, 2, 93, 215, 216, 217, 483], "linalg": 167, "line": [5, 481, 484, 485], "linear": [0, 2, 5, 6, 7, 306, 310, 323, 329, 339, 341, 342, 351, 366, 382, 384, 385, 386, 388, 390, 401, 410, 411, 412, 413, 414, 415, 419, 438, 439, 440, 442, 450, 453, 464, 472, 480], "linear1": 5, "linear2": 5, "linear3": 5, "linear_schedul": [455, 471], "linearli": 379, "link": [2, 8], "linspac": 0, "lion": 455, "list": [1, 5, 10, 15, 17, 30, 71, 78, 83, 84, 85, 86, 91, 94, 95, 101, 131, 136, 142, 147, 148, 150, 151, 153, 154, 156, 157, 161, 164, 178, 188, 202, 204, 206, 207, 220, 228, 231, 234, 239, 240, 241, 243, 244, 245, 247, 250, 251, 262, 272, 274, 278, 279, 283, 290, 291, 294, 298, 299, 301, 304, 309, 312, 313, 323, 364, 366, 367, 368, 369, 374, 376, 377, 378, 453, 455, 459, 460, 461, 462, 471, 479, 480, 481, 482, 484], "liter": [2, 231, 401, 405, 406, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435], "littl": 5, "liu": 5, "live": [7, 142, 488], "ll": [1, 4, 6, 427, 480, 482], "llama": 5, "llamaattent": 5, "llamaencoderlay": 5, "llm": 7, "load": [6, 7, 318, 366, 481], "load_weight": [323, 484], "loader": 6, "loader_path": 2, "loan": 188, "loc": [1, 243, 245], "local": [323, 337, 481], "locat": [0, 2, 83, 377, 378, 481, 488], "log": [0, 196, 198, 202, 353, 354, 420, 421, 422, 425, 428, 430, 433, 445], "log10": 0, "log1p": 0, "log2": 0, "log_cosh_loss": 323, "log_sigmoid": [323, 353], "log_softmax": [323, 354], "logaddexp": 0, "logarithm": [0, 194, 195, 196, 197], "logcosh": 430, "logic": [0, 2, 199, 200, 201], "logical_and": 0, "logical_not": 0, "logical_or": 0, "logist": [0, 4, 268, 414, 442], "logit": [5, 240, 422, 424, 480], "logsigmoid": 323, "logsoftmax": 323, "logsumexp": 0, "long": 5, "longer": [5, 105, 482], "look": [2, 5, 481], "lookup": 340, "loop": [5, 6, 480, 481, 482, 484], "loshchilov": 460, "loss": [4, 6, 298, 323, 455, 480, 481, 482, 484], "loss_and_grad": 323, "loss_and_grad_fn": [6, 455, 480, 482], "loss_fn": [4, 6, 455, 480, 482], "loss_grad_fn": 481, "lot": [481, 482], "low": [247, 251, 409, 450], "low_pad_s": 0, "lower": [182, 183, 185, 186, 191, 236, 247, 250, 251, 295, 409], "lr": [4, 462], "lr_schedul": [469, 470, 471, 473], "lstm": 323, "lto": 2, "lu": 5, "luckili": 484, "lvalu": 298, "m": [0, 2, 5, 8, 90, 140, 162, 167, 188, 295, 456, 480], "m1": [1, 5, 480, 482, 488], "m10": 316, "m7": 316, "m_": [459, 460, 461, 462], "m_t": [459, 460, 461, 462], "mac": 481, "machin": [5, 7, 8, 467, 481], "maco": [8, 217], "macosx": 8, "made": [5, 318], "mai": [2, 188, 306, 337, 481, 482, 483], "main": [7, 118, 140, 142, 293, 310, 311, 323, 481], "maintain": [337, 338, 462], "major": [0, 2], "make": [1, 2, 3, 5, 6, 8, 203, 226, 267, 323, 469, 470, 472, 473, 480, 484, 486, 488], "make_shar": 2, "malloc_or_wait": 2, "man": 5, "manag": [281, 477, 481, 488], "mani": [2, 83, 274, 330, 331, 332, 333, 334, 335, 340, 381, 480, 481, 484], "manual": 323, "map": [2, 6, 38, 193, 310, 340, 359], "map_fn": [359, 363], "map_torch_to_mlx": 5, "margin": [431, 435], "margin_ranking_loss": 323, "mask": [0, 5, 90, 145, 373, 379, 483], "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": 193, "match": [8, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 210, 366, 401, 424, 481, 483, 485], "materi": [5, 7], "math": [5, 435, 480], "mathbf": 183, "mathcal": 352, "mathemat": 188, "mathrm": [134, 268, 348], "matmul": [0, 162, 488], "matric": [188, 189, 190], "matrix": [0, 4, 14, 45, 90, 116, 117, 140, 162, 163, 167, 168, 182, 183, 185, 186, 187, 188, 189, 190, 191, 203, 207, 236, 237, 244, 381, 382, 407, 450], "matter": [5, 323], "max": [0, 1, 2, 188, 205, 329, 355, 356, 357, 380, 410, 417, 418, 423, 425, 426, 431, 435, 437, 439, 457, 461, 480, 482, 488], "max_buffer_s": 209, "max_freq": 392, "max_i": 236, "max_norm": 308, "max_recommended_working_set_s": [209, 217], "max_val": 417, "maximum": [0, 6, 26, 38, 93, 108, 212, 216, 308, 323, 351, 355, 356, 357, 385, 392, 413, 414, 419, 438, 453, 484], "maxpool1d": 323, "maxpool2d": 323, "maxpool3d": 323, "maxtotalthreadsperthreadgroup": 2, "mca": 481, "md": 188, "me": 5, "mean": [0, 1, 4, 5, 6, 143, 243, 244, 245, 298, 323, 328, 344, 364, 383, 408, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 480, 482, 485], "meant": 112, "measur": 488, "mechan": 400, "medic": 338, "meet": 8, "member": [2, 323, 369, 374], "memori": [0, 1, 2, 7, 83, 208, 210, 211, 212, 214, 215, 216, 217, 400, 453, 457, 480, 484, 485], "memory_order_relax": 1, "memory_s": [209, 217], "memoryview": [484, 485], "merg": 480, "meshgrid": 0, "metadata": [4, 193, 262, 263], "metal": [2, 7, 142], "metal_captur": 3, "metal_kernel": 1, "metal_path": 8, "metallib": [2, 8], "method": [2, 5, 9, 10, 30, 112, 120, 306, 314, 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, 370, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 453, 456, 457, 458, 459, 460, 461, 462, 464, 467, 468, 475], "millisecond": [8, 480, 488], "min": [0, 2, 188, 221, 329, 380, 410, 417, 418, 437, 439], "min_freq": 392, "min_i": 236, "min_val": 417, "mind": [2, 5], "mine": 5, "minibatch": 6, "minim": 481, "minimum": [0, 27, 38, 93, 109, 392, 422, 423], "minsizerel": 8, "minu": 139, "minut": 5, "mish": 323, "miss": [366, 487], "mix": 483, "mkdir": [3, 8], "ml": 8, "mlp": [6, 323, 400, 455], "mlp_dim": [5, 400], "mlx": [1, 3, 4, 5, 6, 8, 318, 323, 450, 453, 455, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488], "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, 480], "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, 231, 362, 373, 375, 401, 405, 406, 481], "model": [4, 6, 7, 264, 306, 307, 310, 311, 323, 359, 362, 364, 366, 370, 373, 375, 376, 377, 379, 400, 450, 453, 455, 463, 464, 466, 480, 481, 484], "modest": 2, "modif": 485, "modifi": 485, "modul": [2, 5, 6, 306, 307, 389, 400, 450, 466, 479, 480, 484], "moment": [5, 457, 459, 460, 461], "momentum": [328, 462, 464, 468, 480], "monei": 5, "monoton": 436, "more": [1, 2, 3, 6, 10, 78, 118, 162, 182, 183, 185, 186, 187, 190, 191, 203, 215, 216, 262, 263, 316, 323, 328, 337, 387, 392, 400, 401, 403, 404, 405, 406, 422, 477, 480, 481, 482, 483, 486, 488], "most": [2, 145, 240, 323, 466, 480, 481, 482, 483, 484], "move": [0, 2, 222, 488], "moveaxi": 0, "mpi": 318, "mpiexec": 481, "mpirun": 481, "mse": 298, "mse_loss": 323, "mtl": 2, "mtl_capture_en": 3, "mtlcommandbuff": 2, "mu": 468, "much": [1, 2, 5, 325, 326, 327, 355, 356, 357, 480, 484], "multi": [7, 145, 330, 331, 332, 333, 334, 335, 483, 485], "multidimension": 207, "multiheadattent": [5, 323], "multipl": [0, 1, 8, 14, 90, 141, 143, 162, 163, 203, 223, 236, 237, 379, 392, 470, 471, 473, 480, 484, 487], "multipli": [0, 2, 38, 163, 236, 237, 336, 392, 401], "murtadha": 5, "must": [0, 1, 2, 3, 8, 90, 93, 144, 145, 161, 163, 185, 186, 188, 239, 240, 244, 247, 250, 251, 303, 401, 485], "mx": [1, 2, 3, 4, 5, 6, 38, 96, 97, 112, 123, 126, 142, 158, 177, 185, 186, 188, 189, 193, 246, 264, 298, 308, 323, 325, 326, 327, 328, 339, 348, 351, 355, 356, 357, 359, 366, 370, 385, 401, 402, 403, 404, 405, 406, 407, 408, 409, 411, 419, 422, 423, 424, 428, 431, 438, 448, 450, 453, 455, 477, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489], "my": [5, 8], "my_devic": 489, "my_path": 264, "myexp": [1, 142], "myexp_strid": 1, "mymlp": 453, "n": [0, 1, 2, 5, 30, 90, 98, 99, 100, 101, 102, 103, 104, 140, 145, 146, 148, 149, 151, 152, 155, 157, 167, 168, 244, 279, 295, 299, 328, 330, 331, 332, 333, 334, 335, 337, 338, 343, 349, 384, 401, 430, 435, 481], "n_kv": 145, "n_q": 145, "n_t": 343, "naiv": [2, 482], "naive_add": 482, "name": [1, 2, 142, 163, 193, 236, 237, 262, 263, 264, 265, 323, 344, 363, 366, 368, 481, 483, 487], "named_modul": 323, "nan": [0, 16, 82, 171, 172, 174, 224], "nan_to_num": 0, "nanobind": [2, 400], "nanobind_add_modul": 2, "nativ": 8, "natur": [0, 194, 196, 484], "nb": 2, "nb_domain": 2, "nb_func": 400, "nb_modul": 2, "nb_static": 2, "nbyte": 2, "nc": 328, "ndarrai": [30, 483, 484, 486], "ndhwc": [332, 335, 338], "ndim": [0, 1, 2, 158, 188, 190, 401], "ne": 1, "nearest": [1, 401], "necessari": 323, "necessarili": 292, "need": [1, 2, 5, 6, 7, 8, 82, 236, 323, 377, 378, 392, 400, 477, 481, 482, 484, 485, 486, 488], "neg": [0, 118, 158, 175, 224, 258, 293, 351, 355, 356, 357, 379, 425, 433, 435, 483], "negat": [0, 225], "negative_slop": [351, 419], "neginf": [0, 224], "neighbor": 401, "neither": [164, 298], "nelem": 2, "nervou": 5, "nest": [78, 94, 312, 323, 453, 479, 482], "nesterov": 468, "network": [5, 7, 328, 337, 340, 403, 404, 450, 453, 467, 481], "neural": [5, 7, 340, 403, 404, 436, 450, 453, 467], "never": [5, 484], "new": [0, 2, 6, 91, 118, 222, 226, 256, 278, 294, 300, 310, 311, 371, 379, 453, 455, 466, 471, 480, 483, 484, 485], "new_tre": 311, "next": [2, 5, 6, 215], "nh": [343, 349, 384], "nhwc": [328, 331, 334], "nice": [482, 484], "nlc": [328, 330, 333], "nld": [343, 349, 384], "nlh": [343, 349, 384], "nll": [425, 433], "nll_loss": 323, "nn": [2, 5, 6, 264, 310, 323, 450, 453, 455, 464, 466, 480, 484], "nobodi": 5, "node": [94, 136, 302, 311, 312], "nois": 4, "noisi": 4, "nomins": 2, "non": [0, 1, 2, 8, 207, 374, 384, 436, 453], "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, 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, 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, 214, 218, 219, 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 264, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 304, 305, 306, 309, 310, 311, 312, 314, 325, 326, 327, 341, 355, 356, 357, 359, 363, 364, 371, 376, 379, 384, 392, 400, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 457, 475, 483], "nonlinear": [384, 480], "nonzero": 483, "noop": 376, "nor": [2, 164, 298], "norm": [5, 143, 308, 344, 435, 461, 462], "norm1": 5, "norm2": 5, "norm_first": 400, "normal": [1, 2, 4, 5, 141, 142, 143, 185, 244, 250, 323, 325, 326, 327, 328, 344, 348, 350, 355, 356, 357, 383, 400, 403, 405, 485, 488], "not_equ": 0, "notabl": [5, 7], "notat": [116, 309, 368], "note": [0, 1, 2, 5, 8, 16, 18, 83, 90, 94, 100, 103, 104, 112, 145, 153, 154, 163, 171, 188, 210, 236, 240, 300, 306, 323, 383, 401, 455, 485, 487], "noth": [5, 323, 484], "notic": [5, 482, 487], "now": [1, 2, 5, 8, 382, 480, 481, 485], "np": [1, 5, 6, 481, 485, 486], "npy": [193, 261, 487], "npz": [5, 193, 264, 265, 366, 370, 487], "nuclear": 188, "nullopt": 0, "num": [0, 5, 192, 249], "num_class": [6, 455], "num_decoder_lay": 400, "num_embed": [340, 381], "num_encoder_lay": 400, "num_epoch": [6, 455], "num_exampl": 4, "num_featur": [4, 328], "num_group": 344, "num_head": [5, 379, 400], "num_it": 4, "num_lay": [5, 6, 455], "num_param": 323, "num_paramet": 380, "num_sampl": 240, "num_split": 0, "number": [0, 2, 11, 18, 61, 70, 94, 99, 100, 101, 103, 104, 116, 140, 145, 163, 164, 168, 178, 192, 224, 231, 236, 237, 240, 243, 245, 249, 251, 255, 258, 259, 290, 291, 295, 298, 301, 302, 306, 323, 328, 330, 331, 332, 333, 334, 335, 337, 338, 344, 348, 379, 380, 400, 401, 403, 404, 405, 406, 469, 471, 472, 477, 480, 482, 489], "number_of_el": 0, "numer": [5, 141, 143, 188, 198, 202, 272, 328, 344, 348, 350, 383, 422, 423, 425, 435, 456, 457, 458, 459, 460, 461, 467, 480, 484], "numpi": [2, 5, 6, 7, 13, 16, 18, 87, 88, 89, 91, 128, 129, 133, 165, 166, 171, 179, 180, 181, 198, 203, 205, 221, 223, 227, 233, 254, 257, 282, 484, 486, 487], "nw": 1, "nwhc": 337, "o": [2, 8, 145, 349], "o_t": 349, "obj": 262, "object": [3, 10, 30, 50, 78, 94, 142, 177, 264, 302, 309, 310, 311, 312, 316, 337, 400, 479], "observ": 5, "occupi": [116, 163, 236, 237], "occur": 485, "odim": 6, "odot": [343, 349], "off": [5, 8, 484], "offer": 430, "offset": [0, 1, 2, 5, 46, 83, 118, 141, 144, 293], "often": 338, "ok": [366, 482], "okai": [480, 484], "old": 5, "omit": [459, 461, 481], "onc": [2, 8, 480], "one": [0, 2, 5, 8, 38, 78, 84, 93, 99, 100, 101, 103, 104, 138, 140, 141, 143, 144, 188, 196, 203, 237, 240, 277, 282, 316, 376, 401, 424, 481, 488], "ones": [0, 2, 5, 229, 264, 295, 377, 378, 455, 481, 483], "ones_lik": 0, "onli": [1, 2, 5, 7, 8, 82, 90, 99, 100, 101, 103, 104, 185, 186, 188, 217, 236, 244, 300, 323, 363, 364, 366, 371, 373, 376, 377, 378, 453, 480, 481, 482, 487, 488], "onlin": 458, "op": [1, 2, 230, 300, 364, 484], "open": [3, 8, 18, 247, 251], "openmpi": 481, "oper": [3, 5, 7, 9, 37, 84, 85, 86, 101, 145, 162, 163, 233, 235, 272, 280, 287, 314, 323, 400, 462, 480, 481, 482, 483, 484, 485, 486, 488, 489], "operand": [130, 131, 162], "opportun": 480, "opt": [463, 481], "optim": [1, 3, 4, 6, 7, 377, 480, 481, 482, 484], "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, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 161, 162, 163, 164, 168, 175, 176, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 202, 204, 206, 207, 216, 220, 224, 228, 231, 232, 234, 236, 237, 239, 240, 241, 243, 244, 245, 246, 247, 249, 250, 251, 255, 256, 258, 272, 273, 274, 277, 278, 279, 283, 285, 286, 290, 292, 293, 294, 295, 296, 297, 298, 299, 302, 304, 306, 309, 310, 311, 312, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 343, 349, 352, 355, 356, 357, 359, 363, 364, 366, 371, 376, 379, 381, 382, 384, 387, 392, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 456, 457, 458, 459, 460, 461, 462, 464, 467, 468, 469, 477, 480, 487, 489], "ord": 188, "order": [0, 1, 28, 83, 101, 131, 185, 186, 188, 232, 236, 292, 323, 344, 377, 389, 464, 480, 482], "ordinari": 170, "org": [344, 348, 350, 358, 383, 414, 436], "origin": [5, 118, 308, 328, 372, 403, 404, 405, 406, 456, 457, 458, 459, 461, 462, 485], "orthonorm": 167, "ostream": 2, "ostringstream": 2, "other": [0, 2, 5, 7, 177, 188, 323, 365, 453, 462, 480, 481, 483, 484, 486], "other_input": 323, "otherwis": [18, 101, 123, 216, 246, 306, 309, 310, 311, 312, 364, 366, 376, 398, 400, 401, 416, 422, 427, 434, 446, 447, 484, 485], "our": [1, 2, 5, 6, 389, 456, 457, 458, 459, 461, 462, 481], "out": [0, 1, 2, 8, 90, 142, 337, 338, 373, 480, 481, 482, 483], "out_ax": [302, 482], "out_channel": [330, 331, 332, 333, 334, 335], "out_dim": [323, 453], "out_dtyp": 2, "out_idx": 2, "out_mask": 90, "out_proj": [5, 453], "out_ptr": 2, "out_shap": [1, 2], "outer": [0, 480, 484], "outlier": 430, "output": [0, 1, 2, 5, 8, 15, 16, 17, 18, 28, 83, 90, 91, 94, 96, 97, 108, 109, 110, 111, 112, 130, 140, 141, 142, 143, 144, 145, 152, 155, 156, 157, 161, 162, 164, 167, 168, 171, 188, 192, 202, 204, 206, 207, 220, 224, 228, 229, 232, 234, 235, 239, 240, 241, 243, 244, 245, 247, 250, 251, 264, 265, 272, 277, 279, 283, 287, 293, 295, 298, 299, 300, 301, 302, 303, 304, 305, 328, 330, 331, 332, 333, 334, 335, 348, 352, 379, 382, 398, 400, 401, 403, 404, 405, 406, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 447, 450, 480, 481, 482, 483, 484, 485, 486, 487, 488], "output_dim": [6, 323, 352, 382], "output_directori": 2, "output_dtyp": [1, 142], "output_fil": 5, "output_nam": [1, 142], "output_shap": [1, 142], "outsid": [142, 158], "over": [0, 2, 5, 6, 15, 17, 26, 27, 28, 29, 98, 99, 100, 101, 102, 103, 104, 108, 109, 110, 111, 148, 151, 154, 157, 170, 188, 190, 192, 202, 204, 206, 220, 232, 234, 260, 272, 273, 279, 283, 290, 292, 299, 328, 330, 331, 332, 333, 334, 335, 344, 350, 383, 424, 469, 472, 481, 482], "overal": 2, "overhead": [480, 484, 488], "overlap": 1, "overload": 18, "overrid": [2, 132], "overview": 3, "overwrit": 5, "own": [8, 485], "owndata": 485, "p": [8, 239, 323, 336, 337, 338, 435, 459, 461], "pack": [163, 236, 237], "packag": [2, 4, 6, 8, 318, 450, 481], "package_data": 2, "pad": [0, 1, 98, 99, 100, 101, 102, 103, 104, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 325, 326, 327, 330, 331, 332, 333, 334, 335, 355, 356, 357], "pad_valu": 0, "pad_width": [0, 231], "padding_hi": 0, "padding_lo": 0, "page": 486, "pain": 5, "pair": [0, 2, 231, 366, 387], "pairwis": 435, "pan": 5, "paper": [328, 392, 456, 457, 458, 459, 461, 462], "parallel": [481, 488], "param": [298, 323, 450, 482], "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, 215, 216, 217, 218, 220, 221, 222, 223, 224, 225, 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, 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, 325, 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, 357, 359, 360, 363, 364, 366, 371, 372, 373, 376, 377, 378, 379, 380, 381, 382, 383, 384, 387, 389, 392, 396, 398, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 415, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 447, 449, 450, 453, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 466, 467, 468, 469, 470, 471, 472, 473, 475, 480, 481, 482, 484], "parameter_scal": 457, "parametr": [380, 437], "pars": 5, "parse_arg": 5, "parser": 5, "part": [1, 2, 169, 252, 482, 483], "partial": [377, 378, 480, 484], "particip": [121, 122, 125, 126, 127], "particular": [236, 344], "particularli": 480, "partit": [0, 28], "pass": [1, 2, 5, 6, 65, 79, 230, 231, 298, 307, 309, 310, 311, 323, 364, 376, 377, 378, 389, 480, 481, 484], "password": 481, "path": [3, 8, 131, 218, 264, 265, 306, 311, 366, 481], "pattern": [323, 484], "peak": [212, 214], "penalti": 468, "pep": 485, "per": [5, 6, 116, 145, 163, 236, 237, 306, 328, 344, 348, 350, 383, 475, 480, 481, 484], "perceptron": 7, "perf_count": 480, "perfectli": 484, "perform": [0, 1, 2, 3, 5, 7, 14, 90, 101, 108, 109, 110, 111, 127, 130, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 162, 163, 167, 185, 186, 203, 237, 259, 272, 286, 323, 344, 400, 405, 406, 455, 480, 481, 483, 484, 488], "perhap": [2, 5], "perm": 6, "permtuat": 246, "permut": [0, 6], "persist": 8, "pg": 188, "phi": [341, 412], "physic": 481, "pi": [134, 341, 392, 413, 482], "pick": 2, "pip": [2, 8], "pipelin": 2, "pixel": 337, "place": [2, 5, 38, 258, 259, 306, 481, 484, 485], "placehold": 480, "plai": [2, 5], "plain": 389, "plan": [2, 480], "platform": 8, "plu": [0, 196], "point": [0, 2, 4, 5, 8, 83, 160, 237, 316], "pointer": 2, "pool": [325, 326, 327, 355, 356, 357, 488], "popul": 2, "portion": 336, "posinf": [0, 224], "posit": [0, 5, 28, 118, 144, 158, 164, 176, 182, 183, 222, 224, 232, 244, 258, 293, 298, 310, 323, 330, 331, 332, 333, 334, 335, 379, 387, 392, 425, 435], "possibl": [274, 340, 381, 480, 481, 483, 488], "possibli": [5, 14, 90, 162, 203, 308], "postur": 5, "potenti": 216, "power": [0, 482, 485], "practic": [2, 480], "pre": [8, 145, 422], "preced": 344, "precis": [0, 2, 5, 139, 145, 323, 341, 383, 422, 463, 480], "preclud": 323, "pred": [426, 430], "predic": [306, 371], "predict": [422, 425, 426, 427, 428, 429, 430, 432, 433, 434], "prefix": [302, 309], "prelu": 323, "prepar": [2, 5], "prepend": [3, 203], "preprint": [5, 456, 462], "preprocessor": 8, "present": 1, "preserv": [256, 482], "press": [5, 188], "pressur": 2, "pretti": [480, 484], "prevent": [280, 435, 485], "previou": [215, 216, 217], "primal": [1, 2, 112, 178, 301], "primit": 482, "print": [1, 2, 4, 5, 6, 8, 308, 309, 310, 311, 313, 323, 477, 480, 481, 482, 483, 484, 485, 486], "prior": [235, 286, 287], "priorit": 482, "privat": 2, "prng": [239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 477], "prob": 422, "probabl": [8, 247, 336, 337, 338, 382, 422, 424, 428, 488], "problem": [4, 6, 323], "process": [5, 101, 105, 120, 121, 122, 123, 125, 126, 127, 310, 311, 338, 340, 400, 479, 481], "processor": 8, "prod": [0, 1], "produc": [0, 2, 8, 94, 379, 450], "product": [0, 2, 14, 83, 110, 170, 178, 184, 203, 230, 234, 290, 301, 379, 486], "profil": 3, "program": [212, 481], "programmat": 378, "project": [3, 5, 379], "project_source_dir": 2, "promot": 2, "promote_typ": 2, "promoted_dtyp": 2, "prompt": 5, "propag": [482, 483], "properti": [31, 38, 47, 51, 61, 62, 68, 70, 372, 375, 465, 482], "proportion": 308, "protocol": 485, "provid": [0, 2, 5, 83, 116, 164, 246, 258, 290, 298, 310, 312, 318, 323, 359, 364, 366, 376, 377, 378, 381, 382, 400, 401, 449, 453, 481, 487, 489], "pseudo": 477, "pth": 5, "public": [2, 323], "pun": 0, "pure": [1, 323, 455], "purpos": [1, 188], "purs": 5, "push": 2, "push_back": 2, "put": [0, 1, 6, 235, 480, 481], "put_along_axi": 0, "py": [2, 5, 8, 481], "pypi": 8, "python": [1, 3, 5, 50, 68, 78, 136, 309, 310, 311, 312, 313, 453, 463, 464, 466, 479, 481, 482, 485], "python_requir": 2, "pytorch": [5, 7, 341, 344, 482], "pytorch_compat": 344, "q": [145, 189], "qualifi": 481, "quantiz": [0, 116, 163, 193, 237, 381, 382], "quantized_matmul": 0, "quantizedembed": 323, "quantizedlinear": 323, "quarter": 5, "queri": [5, 145, 217, 379], "query_input_dim": 379, "query_proj": 5, "question": [5, 484], "queue": 3, "quick": [2, 7], "quit": [482, 485], "quotient": [0, 128, 129, 160], "r": [2, 5, 189, 298, 337, 343], "r_t": 343, "race": 488, "radian": [0, 115], "rag": 5, "rain": 5, "rais": [0, 5, 188, 216, 233, 274, 366], "ram": 5, "random": [1, 2, 3, 4, 5, 6, 7, 142, 325, 326, 327, 328, 348, 355, 356, 357, 366, 373, 480, 482, 488, 489], "randomli": [4, 5, 246, 336, 337, 338], "rang": [0, 2, 3, 4, 5, 6, 8, 18, 158, 162, 192, 404, 406, 413, 414, 455, 469, 470, 471, 472, 473, 477, 480, 482, 484, 488], "rank": [0, 125, 126, 127, 431, 481], "rate": [4, 455, 456, 457, 458, 459, 460, 461, 462, 467, 468], "rather": [2, 482, 488], "ratio": [0, 24], "rceil": 90, "re": [6, 8, 450], "readabl": 3, "readi": 2, "real": [0, 152, 153, 154, 155, 156, 157, 182, 183, 185, 186], "realli": 350, "reason": [1, 5, 483], "reboot": 8, "receiv": [125, 126, 306, 471, 485], "reciproc": [0, 260], "reclaim": 215, "recommend": [8, 216, 462], "recompil": [94, 480], "record": [3, 212, 484], "recreat": [313, 455], "rectifi": [351, 385, 386, 405, 406, 419, 438, 439], "recurr": [343, 349, 384], "recurs": [323, 363, 364, 369, 374, 376, 453], "recv": 126, "redirect": 2, "reduc": [0, 1, 8, 15, 17, 26, 27, 122, 202, 204, 206, 220, 234, 279, 283, 299, 312, 328, 400, 430], "reduct": [15, 17, 122, 202, 204, 220, 234, 312, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 481], "redund": 482, "refer": [188, 348, 358, 372, 403, 404, 405, 406, 414, 436, 483], "reflect": [372, 480, 483, 485], "regard": 341, "regardless": [83, 145], "regist": [2, 6], "register_librari": 2, "regress": [7, 430], "regular": [38, 337, 436, 460, 480, 483], "regularli": 2, "reimplement": 2, "rel": [16, 171, 457, 480], "relative_step": 457, "relax": 216, "relev": 2, "reli": [1, 2], "relu": [323, 380, 400, 437, 450], "relu6": 323, "remain": [0, 5, 217, 298, 311, 336, 337, 338, 481], "remaind": [0, 129], "remov": [0, 118, 203, 240, 277, 424], "rep": [0, 291], "repeat": [0, 291], "repeatedli": 4, "repetit": 255, "replac": [0, 5, 224, 377, 378, 400, 434], "replai": 3, "repli": 5, "repo": [4, 6, 8, 480], "report": [210, 216], "repres": [2, 5, 120, 123, 163, 431, 435, 485], "represent": [5, 236, 300, 309, 313], "request": 2, "requir": [1, 2, 5, 323, 481, 484, 485], "requires_grad": 482, "rerun": [480, 484], "rescal": 308, "research": 7, "reset": 214, "reset_peak_memori": 212, "reshap": [0, 5, 188, 401, 483], "resid": 217, "resolv": 2, "resourc": 2, "respect": [2, 4, 6, 141, 143, 162, 163, 164, 236, 298, 310, 323, 328, 341, 344, 348, 350, 453, 482, 486], "respons": 2, "rest": [5, 144, 310, 311, 387], "restart": 8, "restor": 258, "result": [0, 5, 14, 18, 38, 78, 83, 94, 141, 143, 163, 188, 203, 237, 244, 255, 278, 310, 311, 312, 392, 422, 480, 482, 485], "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, 211, 215, 216, 217, 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 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, 323, 343, 349, 359, 360, 361, 363, 364, 365, 366, 367, 368, 369, 373, 374, 376, 377, 378, 384, 402, 403, 404, 405, 406, 407, 408, 409, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 450, 453, 463, 479, 480, 481, 482, 483, 484, 485, 487, 488], "return_metadata": 193, "revers": [0, 2, 41, 42, 43, 44, 83, 108, 109, 110, 111, 294, 392], "rf": 8, "rfft": 152, "rfft2": 153, "rfftn": 154, "rho": 456, "rhs_indic": [0, 162, 163], "rhs_mask": 90, "right": [0, 1, 2, 8, 236, 257, 258, 341, 401, 413, 414, 425, 427, 435], "right_shift": 0, "rm": [5, 8, 143, 457], "rmsnorm": [5, 323], "rmsprop": 455, "rnn": [323, 343], "roadcast": 247, "robust": 430, "roform": [5, 387], "roll": 0, "root": [0, 5, 143, 260, 275, 383], "rope": [5, 323], "rosetta": 8, "rotari": [5, 144, 387], "rotat": [144, 387], "round": [0, 236], "routin": 2, "row": [0, 1, 2, 83, 140, 142, 168, 236, 295], "row_contigu": 2, "rpath": 2, "rsqrt": 0, "rtol": [0, 16, 171], "rule": [2, 455], "run": [1, 2, 3, 5, 6, 7, 8, 9, 142, 230, 314, 328, 359, 456, 457, 459, 460, 461, 480, 481, 484, 488, 489], "runtim": [5, 123, 318, 480, 481], "runtime_error": 2, "safetensor": [8, 193, 263, 366, 370, 455, 484, 487], "sai": [2, 5, 450, 484], "said": 5, "sake": 482, "same": [0, 2, 5, 8, 16, 38, 82, 91, 94, 99, 100, 101, 103, 104, 105, 121, 141, 143, 152, 155, 156, 157, 163, 164, 171, 178, 231, 240, 258, 259, 300, 301, 303, 311, 323, 326, 327, 328, 336, 344, 348, 356, 357, 381, 402, 403, 404, 405, 406, 407, 408, 409, 424, 435, 453, 463, 477, 480, 481, 483, 488], "sampl": [2, 4, 5, 192, 239, 240, 241, 243, 244, 247, 250, 251, 403, 404, 405, 406, 408, 409, 425, 431, 435, 477, 480], "sat": 5, "save": [3, 5, 7, 193, 218, 236, 262, 263, 264, 265, 370, 484], "save_gguf": 487, "save_safetensor": [370, 455, 487], "save_weight": 323, "savez": [5, 370, 487], "savez_compress": 487, "saw": [5, 482], "scalar": [0, 2, 13, 14, 16, 30, 50, 78, 82, 87, 88, 89, 90, 91, 93, 128, 129, 133, 160, 161, 164, 165, 166, 167, 171, 179, 180, 181, 192, 198, 199, 200, 201, 203, 205, 221, 223, 224, 227, 231, 233, 239, 247, 250, 251, 254, 257, 262, 282, 298, 300, 303, 307, 435, 482, 484, 486], "scale": [0, 2, 5, 14, 116, 141, 143, 144, 145, 163, 167, 236, 237, 243, 245, 308, 337, 338, 350, 379, 387, 388, 392, 401, 440, 457], "scale_arr": 2, "scale_factor": 401, "scale_paramet": 457, "scatter": 0, "scatter_add": 0, "scatter_max": 0, "scatter_min": 0, "scatter_prod": 0, "schedul": [2, 216, 455, 469, 470, 471, 472, 473, 475, 488], "schema": 3, "scipi": 167, "scope": 323, "score": [5, 145, 431], "sdk": 8, "se": 1, "second": [5, 8, 118, 177, 179, 199, 201, 203, 257, 284, 293, 298, 326, 327, 356, 357, 423, 431, 457, 459, 460, 461, 482, 488], "second_layer_a": 484, "second_layer_b": 484, "secret": 5, "section": [1, 5, 8, 274, 435, 480, 481, 482], "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, 188, 215, 262, 263, 306, 316, 323, 328, 329, 337, 339, 341, 345, 346, 347, 353, 354, 362, 380, 381, 382, 385, 386, 387, 388, 390, 392, 393, 394, 395, 396, 397, 399, 401, 403, 404, 405, 406, 412, 413, 414, 440, 480, 481, 482, 483, 486, 488], "seed": 242, "seen": 485, "select": [0, 3, 8, 185, 186, 292, 303, 359, 363, 371], "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, 314, 323, 436, 453], "selu": 323, "semant": [13, 87, 88, 89, 91, 128, 129, 133, 165, 166, 179, 180, 181, 198, 203, 205, 221, 223, 227, 233, 254, 257, 282, 488], "semi": [182, 183, 244], "send": 481, "sennrich": 5, "sensit": 430, "sentencepiec": 5, "separ": [5, 65, 79, 344, 431], "sequenc": [5, 15, 17, 33, 34, 56, 57, 58, 59, 63, 71, 74, 75, 76, 80, 83, 91, 101, 125, 138, 142, 147, 148, 150, 151, 153, 154, 156, 157, 161, 202, 204, 206, 220, 228, 234, 239, 240, 241, 243, 244, 245, 247, 250, 251, 256, 272, 274, 277, 279, 283, 290, 291, 294, 299, 304, 328, 330, 333, 343, 349, 384, 400, 477, 488], "sequenti": [323, 450], "seri": 8, "serial": 455, "set": [2, 5, 6, 8, 94, 112, 119, 121, 122, 123, 125, 126, 127, 132, 141, 144, 209, 215, 216, 217, 266, 267, 281, 341, 350, 352, 362, 364, 371, 372, 373, 376, 377, 382, 387, 398, 423, 435, 447, 453, 455, 457, 464, 477, 482, 484], "set_byt": 2, "set_compute_pipeline_st": 2, "set_data": 2, "set_default_devic": 2, "set_dtyp": 323, "set_input_arrai": 2, "set_memory_limit": 215, "set_output_arrai": 2, "set_vector_byt": 2, "setup": [2, 4, 6, 8, 480], "sever": [5, 8, 98, 99, 100, 101, 102, 103, 104, 264, 265, 480, 487], "sgd": [4, 6, 455, 462, 464, 469, 470, 473, 480], "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, 142, 145, 146, 149, 152, 155, 156, 157, 161, 162, 167, 178, 187, 191, 203, 228, 229, 239, 240, 241, 243, 244, 245, 247, 250, 251, 256, 258, 300, 301, 303, 304, 305, 323, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 343, 348, 349, 352, 355, 356, 357, 366, 384, 402, 403, 404, 405, 406, 407, 408, 409, 424, 435, 455, 480, 482, 483, 486, 488], "shapeless": [0, 94], "share": [7, 116, 163, 236, 237, 300, 481], "shazeer": 5, "shift": [0, 179, 257, 258, 328], "shop": 5, "should": [1, 2, 4, 5, 6, 8, 83, 118, 121, 141, 142, 143, 145, 178, 208, 217, 218, 235, 236, 287, 293, 298, 301, 306, 309, 323, 330, 331, 332, 333, 334, 335, 337, 338, 373, 379, 389, 424, 426, 431, 453, 479, 480, 481, 482, 484, 485, 489], "show": [8, 316, 480], "shown": 2, "shuffl": 6, "side": [0, 231, 325, 326, 327, 355, 356, 357, 480], "sigma": [341, 342, 343, 349, 391, 403, 404, 405, 406, 414, 415, 420, 441, 442], "sigmoid": [0, 5, 323, 353, 390, 414, 420, 422, 442], "sign": [0, 16, 171, 316, 462], "signal": [105, 401], "signatur": [1, 142], "signedinteg": [11, 177], "signific": 236, "silent": [155, 156, 157], "silicon": [2, 5, 7, 8, 488], "silu": 323, "simd": 1, "simd_sum": 1, "simdgroup": 1, "simdgroup_s": 1, "similar": [5, 163, 177, 310, 377, 378, 379, 423, 485, 487], "similarli": [2, 8, 203, 482, 484], "simpl": [2, 5, 6, 323, 340, 449, 455, 480, 481, 482, 484], "simple_axpbi": 2, "simple_tim": 2, "simplest": [2, 323, 481], "simpli": [2, 5, 8, 339, 351, 385, 411, 419, 438, 448, 453, 480, 481, 482], "simplic": 0, "simultan": 1, "sin": [0, 112, 392, 482, 486], "sinc": [1, 2, 5, 6, 163, 212, 453, 462, 471, 485, 488], "sine": [0, 21, 22, 270, 271, 482], "sing": 188, "singer": 458, "singl": [2, 6, 136, 178, 193, 207, 231, 301, 326, 327, 356, 357, 480, 483, 487], "singleton": [0, 15, 17, 26, 27, 123, 202, 203, 204, 206, 220, 234, 279, 283, 299], "singular": [188, 190], "sinh": 0, "sinusoid": 392, "sinusoidalpositionalencod": 323, "size": [0, 1, 2, 5, 6, 51, 68, 90, 99, 100, 103, 104, 116, 138, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 161, 163, 167, 168, 177, 184, 188, 211, 216, 217, 236, 237, 240, 256, 274, 277, 300, 306, 323, 325, 326, 327, 330, 331, 332, 333, 334, 335, 340, 348, 355, 356, 357, 381, 382, 401, 457, 481, 484, 485], "size_in_megabyt": 217, "size_t": [0, 2], "skip": [3, 83], "slice": [0, 483], "slice_s": 0, "slice_upd": 0, "slide": [325, 326, 327, 355, 356, 357], "slight": [5, 484], "slightli": [387, 488], "slope": 351, "slot": 481, "slow": 480, "slowli": 5, "small": [5, 139, 141, 143, 328, 344, 350, 383, 425, 430, 435, 480, 481, 488], "smaller": [0, 8, 232, 462, 480], "smallest": 188, "smile": 5, "smooth": [424, 434, 467], "smooth_l1_loss": 323, "sned": 127, "snippet": 481, "so": [1, 2, 5, 8, 164, 167, 298, 336, 401, 455, 480, 481, 484, 488], "softmax": [0, 5, 145, 323, 354, 421, 424], "softmin": 323, "softplu": [323, 358, 436], "softshrink": 323, "softsign": 323, "solv": 323, "some": [0, 2, 4, 5, 6, 364, 376, 455, 464, 480, 482, 484], "someon": 5, "someth": [4, 5, 483], "sonoma": 8, "soon": 5, "sort": [0, 28, 29, 232, 292], "sourc": [0, 1, 2, 3, 60, 125, 126, 142, 222, 294, 481], "space": [0, 2, 192, 422, 433], "spars": [0, 207], "spatial": [99, 100, 101, 103, 104, 325, 326, 327, 344, 355, 356, 357, 401], "speak": [5, 188], "special": 2, "specif": [1, 2, 8, 481, 482], "specifi": [0, 2, 18, 37, 99, 100, 101, 103, 104, 118, 153, 154, 161, 164, 184, 188, 192, 222, 228, 235, 240, 255, 284, 286, 287, 290, 293, 294, 298, 302, 304, 328, 398, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 447, 481, 482, 488], "speed": [1, 2], "spent": 5, "split": [0, 342, 344, 415], "splittabl": 477, "sqrt": [0, 5, 134, 145, 167, 328, 341, 344, 348, 350, 352, 383, 392, 403, 404, 405, 406, 413, 456, 458, 459, 460, 467, 480], "squar": [0, 4, 5, 143, 168, 187, 191, 260, 275, 298, 310, 323, 383, 432, 434, 456, 457, 459, 460, 461, 482, 485], "squeez": [0, 401, 480], "src": [0, 125, 126], "ssh": 481, "stabil": [141, 143, 328, 344, 348, 350, 383, 422, 423, 425, 456, 457, 458, 459, 460, 461, 467], "stabl": [198, 202, 272, 430], "stable_abi": 2, "stack": [0, 480], "standard": [0, 1, 6, 50, 78, 203, 241, 245, 279, 400, 403, 405, 408, 481, 486], "starmap": [5, 310], "start": [0, 1, 2, 4, 5, 7, 8, 18, 144, 192, 218, 274, 312, 480, 483, 488], "start_axi": [0, 49, 158], "start_captur": 3, "state": [5, 6, 323, 343, 349, 384, 455, 464, 477, 480], "static": 8, "static_cast": 2, "std": [0, 2, 408], "step": [0, 3, 5, 6, 18, 323, 343, 349, 384, 457, 464, 469, 471, 472, 473, 480, 481], "step_decai": 455, "step_siz": 473, "still": [5, 8, 188, 480, 484], "stochast": [458, 459, 461, 468, 484], "stood": 5, "stop": [0, 2, 5, 18, 192, 219, 280, 482, 483], "stop_captur": 3, "stop_gradi": [0, 482], "storag": 83, "store": 5, "str": [2, 105, 130, 131, 142, 164, 185, 186, 188, 193, 207, 209, 218, 261, 262, 263, 264, 265, 298, 309, 313, 359, 360, 363, 364, 366, 368, 370, 376, 401, 405, 406, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435], "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, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 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, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 244, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 299, 300, 303, 304, 305, 481, 488], "streamcontext": 281, "streamordevic": [0, 2], "street": 5, "strength": [462, 468], "strict": [123, 165, 180, 364, 366, 376], "strictli": [188, 217], "stride": [0, 2, 83, 98, 99, 100, 101, 102, 103, 104, 325, 326, 327, 330, 331, 332, 333, 334, 335, 355, 356, 357, 387, 483], "string": [0, 2, 131, 142, 209, 231, 485, 487], "structur": [2, 463, 482], "stub": 8, "style": [2, 13, 16, 87, 88, 89, 128, 129, 133, 165, 166, 171, 179, 180, 181, 198, 203, 205, 221, 223, 227, 233, 254, 257, 282], "su": 5, "sub": [0, 6, 118, 249, 293, 306], "subarrai": [118, 274], "subclass": 453, "subdivid": 1, "subdtyp": 177, "subgradi": 458, "sublinear": 457, "submodul": [5, 6, 323, 360, 364, 365, 376, 378], "subscript": [130, 131], "subsect": 5, "subsequ": 455, "subset": [323, 363], "substanti": 8, "subtract": [0, 38], "subtyp": [177, 316], "sudo": [8, 217], "sum": [0, 2, 4, 13, 111, 122, 170, 188, 202, 272, 290, 293, 323, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 481, 483, 485], "sum_": [188, 430], "sum_i": 421, "sum_j": [443, 444], "summat": [130, 131], "super": [5, 6, 323, 453], "superset": [310, 463], "support": [1, 2, 5, 7, 8, 16, 90, 100, 103, 104, 145, 158, 167, 171, 182, 183, 185, 186, 187, 189, 190, 191, 193, 203, 236, 244, 481, 482, 483, 485, 487], "suppos": [482, 488], "sure": [2, 3, 5, 8, 323, 480], "surpass": [405, 406], "surpris": 5, "sw": 1, "swap": [0, 105, 216, 284, 378], "swapax": [0, 112], "swiglu": 5, "swish": [390, 442], "switch": 8, "symbol": 462, "symmetr": [99, 100, 103, 104, 182, 183, 185, 186], "symmetri": [185, 186], "synchron": [2, 480], "syntax": [38, 483], "synthet": 4, "sysctl": 217, "system": [5, 8, 209, 210, 211, 217], "t": [0, 1, 2, 5, 8, 134, 142, 145, 163, 182, 183, 237, 298, 323, 343, 349, 384, 456, 457, 458, 459, 460, 461, 462, 467, 468, 480, 482, 488], "t_kv": 145, "t_q": 145, "tabl": [1, 188, 316, 340], "take": [0, 2, 5, 6, 87, 88, 89, 94, 162, 164, 178, 205, 221, 229, 237, 287, 298, 301, 302, 305, 311, 312, 325, 326, 327, 355, 356, 357, 379, 422, 477, 481, 482, 483, 487, 488, 489], "take_along_axi": [0, 483], "taken": [118, 286, 293], "talk": 481, "tan": 0, "tangent": [0, 2, 23, 24, 25, 112, 178, 288, 289, 399, 448], "tangent_i": 2, "tangent_x": 2, "tanh": [0, 323, 341, 343, 349, 358, 384, 413, 436], "target": [2, 298, 422, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 480], "target_include_directori": 2, "target_link_librari": 2, "target_link_opt": 2, "target_sourc": 2, "task": [216, 430], "tau": 468, "tcp": 481, "tell": [5, 480, 485], "temp": 5, "templat": [0, 1, 2, 142], "ten": 484, "tend": 462, "tensor": [193, 290, 435, 485], "tensordot": 0, "term": [2, 425, 456, 457, 458, 459, 460, 461, 467], "termin": 8, "test": [6, 8, 481], "test_imag": 6, "test_label": 6, "text": [5, 341, 343, 349, 358, 384, 391, 398, 403, 404, 405, 406, 413, 416, 417, 418, 425, 426, 427, 430, 431, 434, 436, 437, 440, 441, 446, 447, 457, 462], "textrm": [236, 341, 342, 412, 415], "tf": 485, "tgp_size": 2, "th": [108, 109, 110, 111, 117, 140, 185, 471], "than": [1, 2, 5, 78, 105, 118, 129, 144, 162, 165, 166, 180, 181, 182, 183, 185, 186, 187, 190, 191, 203, 215, 217, 308, 310, 387, 398, 401, 431, 434, 447, 457, 462, 480, 482, 488], "thank": 484, "thei": [1, 2, 4, 5, 8, 16, 105, 163, 171, 389, 426, 453, 462, 479, 480, 481, 484, 486, 487, 488], "them": [0, 2, 5, 121, 323, 364, 376, 481, 488], "themselv": [2, 480], "thi": [0, 1, 2, 5, 6, 8, 15, 16, 17, 18, 26, 27, 28, 29, 83, 112, 132, 142, 162, 163, 167, 171, 178, 182, 183, 185, 186, 187, 188, 189, 190, 191, 198, 202, 203, 204, 206, 208, 210, 217, 220, 232, 234, 240, 267, 272, 273, 274, 279, 283, 286, 292, 299, 308, 311, 312, 323, 336, 337, 338, 342, 343, 349, 360, 361, 363, 364, 367, 368, 369, 374, 376, 377, 378, 379, 382, 384, 398, 403, 404, 405, 406, 413, 414, 415, 422, 430, 447, 453, 464, 479, 480, 481, 482, 484, 485, 487], "thing": [2, 5, 481], "third": [184, 327, 357], "thompson": 337, "those": [2, 5, 323], "though": [2, 5, 480, 484, 485], "thousand": 484, "thread": [1, 2], "thread_index_in_simdgroup": 1, "thread_position_in_grid": [1, 2, 142], "threadgroup": [1, 2, 142], "threads_per_simdgroup": 1, "three": [5, 86, 327, 357, 401], "threefri": 477, "threshold": [398, 427, 434, 447], "through": [1, 2, 280, 400, 462, 480, 482, 485], "throw": [2, 94, 123], "thu": [5, 323], "thumb": 455, "tic": 480, "tieleman": 467, "tile": [0, 145], "time": [2, 5, 8, 216, 291, 323, 343, 349, 384, 480, 482, 484, 488], "timeit": [480, 482], "titl": 2, "tmp": [1, 142], "to_quant": 306, "to_stream": 2, "toc": 480, "togeth": [0, 1, 2, 6, 236, 310, 311, 481], "tok_embed": 5, "token": [5, 340, 381], "told": 5, "toler": [0, 16, 171], "too": [177, 480, 484], "took": 5, "tool": 8, "top": [2, 292, 352, 401], "topk": 0, "torch": [5, 485], "torch_weight": 5, "total": [217, 482], "total_norm": 308, "tpi": 480, "trace": [0, 3, 480], "trace_fil": 3, "tracer": 377, "track": [2, 323, 328], "track_running_stat": 328, "trade": 484, "tradit": [5, 144, 337, 338, 387], "train": [5, 6, 323, 328, 336, 337, 338, 362, 364, 376, 403, 404], "train_imag": [6, 455], "train_label": [6, 455], "trainabl": [6, 307, 323, 453], "trainable_paramet": [323, 363, 464], "transform": [1, 5, 7, 112, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 167, 307, 323, 328, 344, 350, 352, 363, 364, 376, 382, 387, 483], "transformerencod": 264, "transit": 471, "translat": [141, 350], "transpos": [0, 5, 31, 102, 103, 104, 163, 237, 333, 334, 335], "treat": [0, 2, 153, 154, 156, 157, 286, 401, 480], "tree": [7, 94, 136, 164, 298, 302, 309, 310, 311, 312, 313, 463, 464, 466, 475, 482], "tree_flatten": [264, 310, 313, 323, 455], "tree_map": [311, 323, 481], "tree_unflatten": [5, 455], "trembl": 5, "tri": 0, "triangl": [185, 186, 295], "triangular": [182, 183, 191], "tril": 0, "trilinear": 401, "triplet": 435, "triplet_loss": 323, "triu": 0, "true": [0, 1, 2, 4, 5, 16, 41, 42, 43, 44, 82, 94, 108, 109, 110, 111, 142, 144, 163, 171, 177, 182, 183, 188, 193, 207, 216, 237, 272, 303, 306, 309, 310, 311, 312, 316, 323, 328, 330, 331, 332, 333, 334, 335, 343, 344, 348, 349, 350, 352, 363, 364, 366, 373, 376, 382, 384, 387, 392, 400, 401, 422, 430, 457], "truncat": [146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 250], "truth": [4, 424, 434], "try": [2, 8], "tupl": [0, 30, 65, 68, 79, 95, 99, 100, 101, 103, 104, 125, 129, 131, 136, 138, 178, 185, 188, 189, 190, 231, 236, 256, 258, 277, 298, 301, 309, 310, 311, 312, 313, 325, 326, 327, 331, 332, 334, 335, 355, 356, 357, 366, 368, 389, 401, 457, 459, 460, 461, 462, 479, 482], "tutori": 2, "twice": 488, "two": [0, 2, 13, 14, 16, 24, 82, 85, 87, 88, 89, 90, 118, 128, 133, 147, 150, 156, 162, 163, 165, 166, 171, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 198, 203, 205, 221, 223, 227, 230, 284, 312, 326, 342, 349, 356, 415, 423, 480, 481, 482, 483, 488], "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, 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, 209, 215, 216, 217, 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 260, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 308, 309, 312, 323, 371, 400, 402, 403, 404, 405, 406, 407, 408, 409, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 480, 483], "type_nam": 2, "type_to_nam": 2, "typenam": [0, 1, 2], "typic": [0, 145, 340, 455, 480, 484], "u": [1, 2, 182, 185, 186, 190, 352, 378, 475, 484], "u_": 456, "u_t": 456, "uint": [1, 2, 142], "uint16": [11, 316], "uint3": 1, "uint32": [11, 26, 27, 28, 29, 240, 316], "uint64": [11, 316], "uint8": [11, 316], "ultra": 5, "unabl": 8, "unam": 8, "unari": 480, "unchang": [144, 280, 387], "uncheck": 8, "uncompress": 264, "undefin": [0, 28, 112, 182, 183, 232, 244, 483], "under": [2, 188], "underli": [2, 300], "understand": [5, 403, 404], "unexpect": [2, 18], "unfreez": [323, 364], "unfrozen": 376, "unifi": 7, "uniform": [3, 323, 352, 366, 404, 406, 450, 477, 480, 482, 488], "uniformli": 251, "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, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 175, 176, 177, 185, 186, 209, 262, 281], "uniqu": [2, 477], "unique_ptr": 2, "unit": [329, 339, 341, 342, 343, 351, 385, 386, 388, 390, 403, 404, 405, 406, 410, 411, 412, 413, 414, 415, 419, 438, 439, 440, 442], "unittest": 8, "univers": 188, "unless": [5, 16, 171, 188, 453], "unlik": [5, 16, 171, 337, 338, 372], "unnecessari": [2, 5], "unnorm": [240, 422, 424], "unscal": 457, "unsign": [163, 236, 237, 316], "unsignedinteg": 11, "unspecifi": [15, 17, 18, 26, 27, 28, 29, 95, 108, 109, 110, 111, 161, 202, 204, 206, 220, 228, 232, 234, 255, 272, 273, 279, 283, 286, 292, 293, 299, 304, 489], "unsqueez": 5, "unsupport": 193, "until": [2, 484, 486], "unus": 2, "up": [1, 2, 5, 112, 480], "upcast": 2, "updat": [0, 1, 2, 4, 5, 6, 38, 94, 306, 310, 312, 328, 359, 360, 366, 371, 372, 373, 378, 455, 457, 460, 462, 463, 464, 468, 469, 470, 471, 472, 473, 480, 481, 484], "update_modul": 323, "uplo": [185, 186], "upon": [5, 310, 311], "upper": [182, 183, 185, 186, 191, 236, 247, 250, 251, 409], "upsampl": 323, "us": [0, 3, 4, 5, 6, 7, 8, 18, 38, 83, 112, 116, 119, 121, 122, 125, 126, 127, 129, 142, 144, 158, 163, 179, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 203, 210, 211, 212, 215, 217, 236, 237, 255, 256, 257, 258, 285, 309, 312, 316, 318, 323, 326, 327, 337, 340, 341, 343, 349, 352, 356, 357, 359, 363, 370, 377, 379, 381, 382, 384, 387, 392, 400, 401, 405, 406, 413, 414, 423, 450, 453, 455, 456, 457, 459, 460, 461, 462, 463, 464, 477, 479, 480, 481, 482, 483, 486, 488], "usag": [112, 400, 480], "user": [2, 5, 323], "usual": [340, 381, 479, 484], "util": [1, 2, 5, 7, 8, 264, 323, 455, 481], "v": [5, 105, 145, 185, 323, 364, 485], "v_": [456, 458, 459, 460, 461, 467, 468], "v_t": [456, 458, 459, 460, 461, 467, 468], "val": [0, 30, 161], "valid": [6, 105, 158, 302, 309, 364, 376, 479], "valid_parameter_filt": 359, "valu": [0, 1, 4, 5, 11, 12, 16, 18, 26, 27, 50, 78, 82, 93, 140, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 161, 171, 184, 188, 190, 192, 209, 217, 224, 231, 235, 239, 240, 241, 243, 244, 245, 247, 250, 251, 258, 262, 286, 287, 298, 302, 307, 309, 310, 311, 312, 316, 326, 327, 329, 336, 337, 338, 339, 345, 348, 352, 356, 357, 363, 379, 380, 396, 398, 400, 402, 422, 423, 424, 425, 426, 427, 429, 430, 431, 432, 433, 434, 447, 453, 457, 460, 469, 470, 472, 473, 482], "value_and_grad": [6, 112, 323, 377, 453, 455, 466, 480, 482, 485, 486], "value_and_grad_fn": 484, "value_cach": 5, "value_dim": 379, "value_input_dim": 379, "value_output_dim": 379, "value_proj": 5, "valueerror": [188, 366, 482], "values_hat": 5, "van": 188, "var": [0, 328, 344, 348, 350, 425], "variabl": [8, 94, 119, 132, 164, 178, 298, 301, 302, 481], "varianc": [0, 279, 299, 328, 344, 425], "variant": [5, 434, 461], "variou": 188, "vector": [0, 2, 4, 7, 170, 178, 188, 286, 301, 302, 340, 424, 486], "verbos": [1, 142], "veri": [5, 379, 481, 484, 488], "verifi": [4, 8], "versa": 258, "version": [2, 8, 116, 198, 202, 236, 272, 302, 477, 482, 483], "versu": 480, "via": [8, 112, 463, 466, 481, 484, 485], "vice": 258, "video": 338, "view": [0, 3, 83, 485], "virtual": 2, "vjp": [2, 112, 486], "vmap": [2, 112, 482, 484, 486], "vmap_add": 482, "vocab_s": 5, "vocabulari": [340, 381], "void": [1, 2], "vt": 190, "w": [0, 1, 4, 99, 100, 103, 104, 116, 163, 185, 236, 237, 298, 311, 328, 331, 332, 334, 335, 337, 338, 352, 455, 468, 482], "w1": [5, 308], "w2": [5, 308], "w3": 5, "w_": [343, 349, 384, 456, 457, 458, 459, 460, 461, 462, 467, 468], "w_1": 236, "w_g": 236, "w_i": [116, 236], "w_in": 1, "w_q": 236, "w_star": 4, "w_stride": 1, "w_t": [456, 458, 459, 460, 461, 462, 467, 468], "wa": [5, 83, 125, 126, 481, 484], "wai": [2, 5, 8, 323, 401, 480, 481, 482, 483], "wait": [2, 5, 216], "walk": 5, "walkthrough": 2, "walsh": 167, "want": [1, 5, 481, 482, 488], "warm": [2, 480], "warmup": [471, 472], "warmup_init": 457, "watch": [5, 480], "wd": 462, "we": [0, 1, 2, 4, 5, 6, 116, 125, 126, 163, 236, 237, 323, 340, 381, 389, 460, 462, 477, 479, 480, 481, 482, 484, 488], "weight": [0, 4, 98, 99, 100, 101, 102, 103, 104, 141, 143, 310, 323, 366, 370, 381, 382, 422, 424, 453, 457, 460, 462, 464, 468, 482, 484], "weight_decai": [457, 460, 462, 468], "weight_fil": 5, "weights_fp16": 484, "well": [5, 323, 364, 376, 379, 484], "wen": 5, "went": 5, "were": [5, 488], "wet": 5, "what": [2, 5, 310], "whatsoev": 5, "whc": 337, "when": [0, 1, 2, 5, 7, 8, 94, 101, 112, 127, 182, 183, 185, 186, 187, 188, 190, 191, 193, 330, 331, 332, 333, 334, 335, 401, 405, 406, 422, 428, 434, 453, 455, 471, 477, 480, 481, 488], "where": [0, 6, 140, 171, 183, 236, 298, 302, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 343, 344, 348, 349, 350, 352, 363, 380, 383, 384, 398, 405, 406, 411, 412, 414, 425, 431, 437, 440, 442, 447, 464, 481, 482, 483], "wherea": 482, "whether": [142, 163, 185, 186, 191, 237, 343, 349, 363, 379, 384, 422, 425, 431], "which": [0, 1, 2, 5, 6, 7, 8, 18, 37, 83, 94, 101, 118, 121, 122, 125, 126, 127, 136, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 164, 172, 173, 174, 175, 176, 178, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 193, 207, 218, 236, 240, 241, 255, 256, 258, 261, 262, 263, 264, 265, 277, 278, 286, 293, 298, 301, 302, 306, 326, 327, 337, 338, 341, 356, 357, 359, 363, 387, 422, 424, 427, 431, 434, 450, 463, 464, 477, 480, 481, 482, 483, 484, 488, 489], "while": [2, 3, 5, 8, 256, 387, 484, 485], "whistl": 2, "who": 5, "whose": [140, 306, 307], "why": 5, "wide": 484, "width": [326, 327, 328, 331, 332, 334, 335, 337, 338, 356, 357, 381, 382], "window": [8, 325, 326, 327, 355, 356, 357], "wipe": 8, "wire": 217, "wired_limit_mb": 217, "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, 159, 160, 165, 166, 171, 179, 180, 181, 194, 195, 196, 197, 198, 199, 200, 201, 205, 221, 223, 225, 227, 233, 253, 254, 257, 260, 268, 269, 270, 271, 275, 276, 282, 288, 289, 329, 337, 338, 347, 358, 380, 391, 410, 417, 418, 420, 421, 436, 437, 439, 442, 443, 444, 445, 480], "wish": 8, "with_logit": 422, "within": [0, 3, 28, 171], "without": [1, 5, 7, 280, 379, 449, 479, 480, 481, 484, 485, 488], "wk": 5, "wl": 2, "wo": 5, "word": 0, "work": [2, 3, 5, 216, 480, 481, 482, 483, 484], "workhors": 323, "world": [313, 481], "worri": [1, 484], "would": [2, 5, 401, 481, 483, 484, 485, 488], "wq": 5, "wrap": [112, 323], "write": [0, 1, 2, 5, 323, 485], "written": 2, "wrt": 307, "wv": 5, "x": [0, 1, 2, 4, 5, 6, 38, 90, 112, 121, 122, 126, 127, 134, 139, 141, 142, 143, 163, 167, 168, 188, 237, 241, 246, 259, 264, 268, 296, 297, 303, 310, 312, 323, 325, 326, 327, 328, 329, 339, 341, 342, 344, 348, 350, 351, 352, 355, 356, 357, 358, 359, 380, 383, 385, 391, 392, 398, 401, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 434, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 453, 455, 462, 480, 481, 482, 483, 484, 485, 486, 488], "x1": 423, "x2": 423, "x86_64": 8, "x_1": [423, 431], "x_2": [423, 431], "x_cast": 2, "x_grad": 1, "x_i": [421, 443, 444], "x_j": [443, 444], "x_offset": 2, "x_ptr": 2, "x_shape": 1, "x_stride": 2, "x_t": [343, 349, 384], "x_view": 485, "xcode": 8, "xcodeproj": 3, "xcrun": 8, "xf": 349, "xg": 349, "xi": 349, "xn": 343, "xo": 349, "xor": 89, "xr": 343, "xy": [0, 207], "xz": 343, "x\u00b2": 485, "y": [0, 2, 4, 5, 6, 38, 112, 167, 303, 323, 328, 337, 344, 348, 350, 352, 383, 426, 431, 434, 455, 458, 480, 481, 482, 484, 485], "y_": [426, 430], "y_cast": 2, "y_hat": 323, "y_offset": 2, "y_ptr": 2, "y_stride": 2, "ye": 5, "year": 5, "yet": [5, 188, 323, 453, 464, 482, 483, 484, 486], "yield": [5, 6, 477], "you": [2, 3, 5, 6, 7, 8, 217, 323, 392, 400, 450, 477, 480, 481, 482, 483, 485, 487, 488], "your": [2, 5, 8, 453, 482, 484], "z": [2, 343, 480, 484], "z_t": 343, "zeiler": 456, "zero": [0, 140, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 184, 207, 214, 295, 296, 297, 305, 323, 325, 326, 327, 336, 337, 338, 366, 402, 403, 404, 405, 406, 407, 408, 409, 450, 455, 457, 483], "zero_grad": 482, "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.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.AvgPool3d", "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.MaxPool3d", "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": 488, "In": 483, "The": 323, "ab": [12, 32], "adadelta": 456, "adafactor": 457, "adagrad": 458, "adam": 459, "adamax": 461, "adamw": 460, "add": 13, "addmm": 14, "algebra": 321, "alibi": 324, "all": [5, 15, 33, 481], "all_gath": 121, "all_sum": 122, "allclos": 16, "ani": [17, 34], "api": [7, 8], "appli": 359, "apply_gradi": 463, "apply_to_modul": 360, "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, 315, 483, 487], "array_equ": 82, "as_strid": 83, "astyp": 37, "atleast_1d": 84, "atleast_2d": 85, "atleast_3d": 86, "attent": 5, "automat": 482, "avgpool1d": 325, "avgpool2d": 326, "avgpool3d": 327, "back": 2, "basic": [480, 486], "batchnorm": 328, "benchmark": 5, "bernoulli": 239, "binari": 8, "binary_cross_entropi": 422, "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": 240, "ceil": 92, "celu": [329, 410], "children": 361, "choleski": 182, "cholesky_inv": 183, "class": 323, "clear_cach": 208, "clip": 93, "clip_grad_norm": 308, "cmake": 2, "co": [40, 106], "code": [2, 5], "common": 474, "commun": [318, 481], "compil": [94, 480], "complex": 1, "comput": 484, "concaten": 95, "conj": [39, 96], "conjug": 97, "constant": 402, "conv1d": [98, 330], "conv2d": [99, 331], "conv3d": [100, 332], "conv_gener": 101, "conv_transpose1d": 102, "conv_transpose2d": 103, "conv_transpose3d": 104, "convers": 485, "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, 314], "cosh": 107, "cosine_decai": 469, "cosine_similarity_loss": 423, "cpu": 2, "cross": 184, "cross_entropi": 424, "cummax": [41, 108], "cummin": [42, 109], "cumprod": [43, 110], "cumsum": [44, 111], "custom": [1, 2], "custom_funct": 112, "data": 316, "debug": 480, "debugg": 3, "default_devic": 113, "default_stream": 114, "degre": 115, "dequant": 116, "devic": [9, 317], "device_info": 209, "diag": [45, 117], "diagon": [46, 118], "differ": 483, "differenti": 482, "disable_compil": 119, "distribut": [120, 121, 122, 123, 124, 125, 126, 127, 318, 481], "divid": 128, "divmod": 129, "download": [2, 5], "dropout": 336, "dropout2d": 337, "dropout3d": 338, "dtype": [10, 47], "dtypecategori": 11, "eigh": 185, "eigvalsh": 186, "einsum": 130, "einsum_path": 131, "elu": [339, 411], "embed": 340, "enable_compil": 132, "encod": 5, "end": 2, "equal": 133, "erf": 134, "erfinv": 135, "eval": [136, 362], "evalu": 484, "exampl": [1, 2, 7, 480, 481, 488], "exp": [48, 137], "expand_dim": 138, "expm1": 139, "exponential_decai": 470, "extens": 2, "ey": 140, "fast": [141, 142, 143, 144, 145, 319], "fft": [146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 320], "fft2": 147, "fftn": 148, "filter_and_map": 363, "flatten": [49, 158], "floor": 159, "floor_divid": 160, "format": 487, "found": 8, "framework": 485, "freez": 364, "from": [8, 483], "full": [5, 161], "function": [449, 452, 480, 482, 486], "further": 7, "gather_mm": 162, "gather_qmm": 163, "gaussian_nll_loss": 425, "gelu": [341, 412], "gelu_approx": 413, "gelu_fast_approx": 414, "gener": 5, "get": 481, "get_active_memori": 210, "get_cache_memori": 211, "get_peak_memori": 212, "glorot_norm": 403, "glorot_uniform": 404, "glu": [342, 415], "gpu": 2, "grad": [164, 323], "graph": [480, 484, 486], "greater": 165, "greater_equ": 166, "grid": 1, "group": 120, "groupnorm": 344, "gru": 343, "guid": 486, "gumbel": 241, "hadamard_transform": 167, "hard_shrink": 416, "hard_tanh": 417, "hardshrink": 345, "hardswish": [347, 418], "hardtanh": 346, "he_norm": 405, "he_uniform": 406, "hinge_loss": 426, "host": 481, "huber_loss": 427, "ident": [168, 407], "ifft": 149, "ifft2": 150, "ifftn": 151, "imag": 169, "implement": [2, 5], "index": 483, "infer": 5, "init": [123, 402, 403, 404, 405, 406, 407, 408, 409, 464], "initi": 450, "inner": 170, "inspect": 323, "instal": [7, 8, 481], "instancenorm": 348, "introduc": 2, "inv": 187, "irfft": 152, "irfft2": 153, "irfftn": 154, "is_avail": [124, 213], "isclos": 171, "isfinit": 172, "isinf": 173, "isnan": 174, "isneginf": 175, "isposinf": 176, "issubdtyp": 177, "item": 50, "items": 51, "jax": 485, "join_schedul": 471, "jvp": 178, "kei": 242, "kernel": 1, "kl_div_loss": 428, "l1_loss": 429, "laplac": 243, "layer": [5, 6, 451], "layer_norm": 141, "layernorm": 350, "lazi": 484, "leaf_modul": 365, "leaky_relu": 419, "leakyrelu": 351, "left_shift": 179, "less": 180, "less_equ": 181, "linalg": [182, 183, 184, 185, 186, 187, 188, 189, 190, 191], "linear": [4, 321, 352], "linear_schedul": 472, "linspac": 192, "lion": 462, "llm": 5, "load": [5, 193, 455, 487], "load_weight": 366, "log": [52, 194], "log10": [53, 195], "log1p": [54, 196], "log2": [55, 197], "log_cosh_loss": 430, "log_sigmoid": 420, "log_softmax": 421, "logaddexp": 198, "logical_and": 199, "logical_not": 200, "logical_or": 201, "logsigmoid": 353, "logsoftmax": 354, "logsumexp": [56, 202], "loss": [422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 452], "lstm": 349, "margin_ranking_loss": 431, "matmul": 203, "max": [57, 204], "maximum": 205, "maxpool1d": 355, "maxpool2d": 356, "maxpool3d": 357, "mean": [58, 206], "memori": 488, "meshgrid": 207, "metal": [1, 3, 8, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 322], "metal_kernel": 142, "min": [59, 220], "minim": 8, "minimum": 221, "mish": [358, 436], "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, 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, 445, 446, 447, 448, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473], "model": 5, "modul": [323, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 453], "moveaxi": [60, 222], "mpi": 481, "mse_loss": 432, "multi": 6, "multiheadattent": 379, "multipli": 223, "multivariate_norm": 244, "named_modul": 368, "nan_to_num": 224, "nbyte": 61, "ndim": 62, "neg": 225, "network": 323, "neural": 323, "new_stream": 226, "nll_loss": 433, "nn": [306, 307, 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, 445, 446, 447, 448], "norm": 188, "normal": [245, 408], "not_equ": 227, "numpi": [483, 485], "ones": 228, "ones_lik": 229, "onli": 484, "oper": [0, 2, 454], "optim": [308, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475], "option": 8, "other": 485, "outer": 230, "pad": 231, "paramet": [323, 369], "partit": 232, "perceptron": 6, "permut": 246, "place": 483, "power": 233, "prelu": [380, 437], "primit": 2, "prod": [63, 234], "pure": 480, "put": 5, "put_along_axi": 235, "python": [2, 7, 8], "pytorch": 485, "qr": 189, "quantiz": [236, 306], "quantized_matmul": 237, "quantizedembed": 381, "quantizedlinear": 382, "quick": [323, 486], "radian": 238, "randint": 247, "random": [239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 477], "read": 7, "real": 252, "reciproc": [64, 253], "recv": 125, "recv_lik": 126, "reduc": 481, "refer": 7, "regress": 4, "relu": [385, 438], "relu6": [386, 439], "remaind": 254, "remot": 481, "repeat": 255, "requir": 8, "reset_peak_memori": 214, "reshap": [65, 256], "result": 2, "rfft": 155, "rfft2": 156, "rfftn": 157, "right_shift": 257, "rms_norm": 143, "rmsnorm": 383, "rmsprop": 467, "rnn": 384, "roll": 258, "rope": [144, 387], "round": [66, 259], "rsqrt": [67, 260], "sampl": 1, "save": [261, 455, 487], "save_gguf": 262, "save_safetensor": 263, "save_weight": 370, "savez": 264, "savez_compress": 265, "scaled_dot_product_attent": 145, "schedul": 476, "script": [2, 5], "seed": 248, "selu": [388, 440], "send": 127, "sequenti": 389, "serial": 487, "set": 481, "set_cache_limit": 215, "set_default_devic": 266, "set_default_stream": 267, "set_dtyp": 371, "set_memory_limit": 216, "set_wired_limit": 217, "setuptool": 2, "sgd": 468, "shape": [1, 68], "shell": 8, "sigmoid": [268, 391, 441], "sign": 269, "silu": [390, 442], "simpl": [1, 488], "sin": [69, 270], "sinh": 271, "sinusoidalpositionalencod": 392, "size": [8, 70], "smooth_l1_loss": 434, "softmax": [272, 393, 443], "softmin": [394, 444], "softplu": [395, 445], "softshrink": [396, 446], "softsign": 397, "sort": 273, "sourc": 8, "specifi": 489, "speedup": 480, "split": [71, 249, 274], "sqrt": [72, 275], "squar": [73, 276], "squeez": [74, 277], "stack": 278, "start": [323, 481, 486], "start_captur": 218, "state": [372, 465], "std": [75, 279], "step": [398, 447], "step_decai": 473, "stop_captur": 219, "stop_gradi": 280, "stream": [281, 314, 317, 489], "stride": 1, "subtract": 282, "sum": [76, 283], "support": 316, "svd": 190, "swapax": [77, 284], "synchron": 285, "t": 31, "take": 286, "take_along_axi": 287, "tan": 288, "tanh": [289, 399, 448], "tensordot": 290, "tensorflow": 485, "tile": 291, "togeth": 5, "tolist": 78, "topk": 292, "trace": 293, "train": [373, 375, 480, 481], "trainable_paramet": 374, "transform": [2, 400, 478, 480, 482, 484, 486], "transpos": [79, 294], "tree": 479, "tree_flatten": 309, "tree_map": 310, "tree_map_with_path": 311, "tree_reduc": 312, "tree_unflatten": 313, "tri": 295, "tri_inv": 191, "tril": 296, "triplet_loss": 435, "triu": 297, "troubleshoot": 8, "truncated_norm": 250, "tune": 481, "type": 316, "unfreez": 376, "unifi": 488, "uniform": [251, 409], "up": 481, "updat": [323, 377, 466, 483], "update_modul": 378, "upsampl": 401, "us": [1, 2, 484, 489], "usag": [2, 7], "util": [309, 310, 311, 312, 313, 479], "valu": 323, "value_and_grad": [298, 307], "var": [80, 299], "vector": 482, "view": [81, 300], "vjp": [1, 301], "vmap": 302, "weight": 5, "what": 484, "when": 484, "where": 303, "why": 484, "workflow": 3, "x86": 8, "xcode": 3, "you": 484, "zero": 304, "zeros_lik": 305}}) \ No newline at end of file diff --git a/docs/build/html/sort_8h_source.html b/docs/build/html/sort_8h_source.html index 374bc71d..8fbbbc12 100644 --- a/docs/build/html/sort_8h_source.html +++ b/docs/build/html/sort_8h_source.html @@ -464,8 +464,8 @@ $(function(){ initResizable(false); });
    352 using val_t = typename sort_kernel::val_t;
    353 using idx_t = typename sort_kernel::idx_t;
    354
    -
    355 auto in_block_idx = elem_to_loc(tid.y, nc_shape, in_nc_strides, nc_dim);
    -
    356 auto out_block_idx = elem_to_loc(tid.y, nc_shape, out_nc_strides, nc_dim);
    +
    355 auto in_block_idx = elem_to_loc(tid.y, nc_shape, in_nc_strides, nc_dim);
    +
    356 auto out_block_idx = elem_to_loc(tid.y, nc_shape, out_nc_strides, nc_dim);
    357 inp += in_block_idx;
    358 out += out_block_idx;
    359
    @@ -616,7 +616,7 @@ $(function(){ initResizable(false); });
    496 BLOCK_THREADS,
    497 N_PER_THREAD>;
    498
    -
    499 auto block_idx = elem_to_loc(tid.y, nc_shape, nc_strides, nc_dim);
    +
    499 auto block_idx = elem_to_loc(tid.y, nc_shape, nc_strides, nc_dim);
    500 inp += block_idx;
    501 out_vals += tid.y * size_sorted_axis;
    502 out_idxs += tid.y * size_sorted_axis;
    @@ -818,11 +818,11 @@ $(function(){ initResizable(false); });
    694 }
    695}
    -
    METAL_FUNC stride_t elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim)
    Definition utils.h:87
    +
    METAL_FUNC IdxT elem_to_loc(uint elem, constant const int *shape, constant const StrideT *strides, int ndim)
    Definition utils.h:93
    Op op
    Definition binary.h:129
    -
    Definition bf16.h:265
    -
    METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:234
    -
    METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:234
    +
    Definition bf16_math.h:226
    +
    METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:232
    +
    METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:232
    #define MLX_MTL_CONST
    Definition sort.h:3
    void mb_block_partition(device idx_t *block_partitions, const device val_t *dev_vals, const device idx_t *dev_idxs, const constant int &size_sorted_axis, const constant int &merge_tiles, const constant int &n_blocks, uint3 tid, uint3 lid, uint3 tgp_dims)
    Definition sort.h:525
    void block_sort_nc(const device T *inp, device U *out, const constant int &size_sorted_axis, const constant int &in_stride_sorted_axis, const constant int &out_stride_sorted_axis, const constant int &nc_dim, const constant int *nc_shape, const constant size_t *in_nc_strides, const constant size_t *out_nc_strides, uint3 tid, uint3 lid)
    Definition sort.h:338
    @@ -848,7 +848,7 @@ $(function(){ initResizable(false); });
    Definition sort.h:23
    METAL_FUNC bool operator()(T a, T b)
    Definition sort.h:26
    static constexpr constant T init
    Definition sort.h:24
    -
    Definition utils.h:17
    +
    Definition utils.h:23
    Definition sort.h:37
    static METAL_FUNC void sort(thread val_t(&vals)[N_PER_THREAD], thread idx_t(&idxs)[N_PER_THREAD])
    Definition sort.h:38
    diff --git a/docs/build/html/steel__attention_8h.html b/docs/build/html/steel__attention_8h.html new file mode 100644 index 00000000..3fc19645 --- /dev/null +++ b/docs/build/html/steel__attention_8h.html @@ -0,0 +1,226 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/kernels/steel_attention.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MLX +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    + +
    steel_attention.h File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + + + + + + + + + +

    +Classes

    struct  TransformScale< T >
     
    struct  MaxOp
     
    struct  SumOp
     
    struct  MulOp
     
    struct  SubOp
     
    struct  ExpSubOp
     
    struct  DivOp
     
    + + + + +

    +Functions

    template<typename T , int BQ, int BK, int BD, int WM, int WN, typename AccumType = float>
    void attention (const device T *Q, const device T *K, const device T *V, device T *O, const constant AttnParams *params, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)
     
    + + + + + +

    +Variables

    constant bool align_Q
     
    constant bool align_K
     
    +

    Function Documentation

    + +

    ◆ attention()

    + +
    +
    +
    +template<typename T , int BQ, int BK, int BD, int WM, int WN, typename AccumType = float>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void attention (const device T * Q,
    const device T * K,
    const device T * V,
    device T * O,
    const constant AttnParams * params,
    uint simd_lane_id,
    uint simd_group_id,
    uint3 tid,
    uint3 lid )
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ align_K

    + +
    +
    + + + + +
    constant bool align_K
    +
    + +
    +
    + +

    ◆ align_Q

    + +
    +
    + + + + +
    constant bool align_Q
    +
    + +
    +
    +
    + + +
    + + diff --git a/docs/build/html/steel__attention_8h_source.html b/docs/build/html/steel__attention_8h_source.html new file mode 100644 index 00000000..d38622d0 --- /dev/null +++ b/docs/build/html/steel__attention_8h_source.html @@ -0,0 +1,508 @@ + + + + + + + +MLX: mlx/backend/metal/kernels/steel/attn/kernels/steel_attention.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MLX +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    steel_attention.h
    +
    +
    +Go to the documentation of this file.
    1// Copyright © 2024 Apple Inc.
    +
    2
    +
    3using namespace mlx::steel;
    +
    4
    +
    6// GEMM kernels
    +
    8
    +
    9constant bool align_Q [[function_constant(200)]];
    +
    10constant bool align_K [[function_constant(201)]];
    +
    11
    +
    12template <typename T>
    +
    + + +
    15 METAL_FUNC TransformScale(T scale_) : scale(scale_) {}
    +
    16
    +
    +
    17 METAL_FUNC T apply(T x) const {
    +
    18 return scale * x;
    +
    19 }
    +
    +
    20};
    +
    +
    21
    +
    +
    22struct MaxOp {
    +
    23 template <typename T>
    +
    +
    24 METAL_FUNC static constexpr T apply(T x, T y) {
    +
    25 return metal::max(x, y);
    +
    26 }
    +
    +
    27};
    +
    +
    28
    +
    +
    29struct SumOp {
    +
    30 template <typename T>
    +
    +
    31 METAL_FUNC static constexpr T apply(T x, T y) {
    +
    32 return x + y;
    +
    33 }
    +
    +
    34};
    +
    +
    35
    +
    +
    36struct MulOp {
    +
    37 template <typename T>
    +
    +
    38 METAL_FUNC static constexpr T apply(T x, T y) {
    +
    39 return x * y;
    +
    40 }
    +
    +
    41};
    +
    +
    42
    +
    +
    43struct SubOp {
    +
    44 template <typename T>
    +
    +
    45 METAL_FUNC static constexpr T apply(T x, T y) {
    +
    46 return x - y;
    +
    47 }
    +
    +
    48};
    +
    +
    49
    +
    +
    50struct ExpSubOp {
    +
    51 template <typename T>
    +
    +
    52 METAL_FUNC static constexpr T apply(T x, T y) {
    +
    53 return fast::exp(x - y);
    +
    54 }
    +
    +
    55};
    +
    +
    56
    +
    +
    57struct DivOp {
    +
    58 template <typename T>
    +
    +
    59 METAL_FUNC static constexpr T apply(T x, T y) {
    +
    60 return x / y;
    +
    61 }
    +
    +
    62};
    +
    +
    63
    +
    64// clang-format off
    +
    65template <
    +
    66 typename T,
    +
    67 int BQ,
    +
    68 int BK,
    +
    69 int BD,
    +
    70 int WM,
    +
    71 int WN,
    +
    72 typename AccumType = float>
    +
    +
    73[[kernel, max_total_threads_per_threadgroup(WM * WN * 32)]] void attention(
    +
    74 const device T* Q [[buffer(0)]],
    +
    75 const device T* K [[buffer(1)]],
    +
    76 const device T* V [[buffer(2)]],
    +
    77 device T* O [[buffer(3)]],
    +
    78 const constant AttnParams* params [[buffer(4)]],
    +
    79 uint simd_lane_id [[thread_index_in_simdgroup]],
    +
    80 uint simd_group_id [[simdgroup_index_in_threadgroup]],
    +
    81 uint3 tid [[threadgroup_position_in_grid]],
    +
    82 uint3 lid [[thread_position_in_threadgroup]]) { // clang-format on
    +
    83
    +
    84 // Pacifying compiler
    +
    85 (void)lid;
    +
    86
    +
    87 // Move to correct block
    +
    88 ulong3 tidl{tid.x, tid.y, tid.z};
    +
    89
    +
    90 Q += tidl.z * params->Q_strides[0] + // Batch
    +
    91 tidl.y * params->Q_strides[1] + // Head
    +
    92 tidl.x * BQ * params->Q_strides[2]; // Seqeunce
    +
    93
    +
    94 ulong kv_head_idx = int(tid.y) / params->gqa_factor;
    +
    95 K += tidl.z * params->K_strides[0] + // Batch
    +
    96 kv_head_idx * params->K_strides[1]; // Head
    +
    97
    +
    98 V += tidl.z * params->V_strides[0] + // Batch
    +
    99 kv_head_idx * params->V_strides[1]; // Head
    +
    100
    +
    101 O += tidl.z * params->O_strides[0] + // Batch
    +
    102 tidl.y * params->O_strides[1] + // Head
    +
    103 tidl.x * BQ * params->O_strides[2]; // Seqeunce
    +
    104
    +
    105 // Prepare threadgroup memory
    +
    106 constexpr short padQ = 0; // 16 / sizeof(T);
    +
    107 constexpr short padK = 0; // 16 / sizeof(T);
    +
    108 constexpr short padV = 0; // 16 / sizeof(T);
    +
    109
    +
    110 constexpr short LDQ_tgp = BD + padQ;
    +
    111 constexpr short LDK_tgp = BK + padK;
    +
    112 constexpr short LDV_tgp = BD + padV;
    +
    113
    +
    114 threadgroup T Qs[BQ * (BD + padQ)];
    +
    115 threadgroup T Ks[(BK + padK) * BD];
    +
    116 threadgroup T Vs[BK * (BD + padV)];
    +
    117
    +
    118 // Prepare block loaders
    +
    119 using QBlockLoader = BlockLoaderT<
    +
    120 /* typename T = */ T,
    +
    121 /* short BROWS = */ BQ,
    +
    122 /* short BCOLS = */ BD,
    +
    123 /* short kDstStrRow = */ LDQ_tgp,
    +
    124 /* short kDstStrCol = */ 1,
    +
    125 /* short reduction_dim = */ 1,
    +
    126 /* short tgp_size = */ WM * WN * 32>;
    +
    127
    +
    128 // K is loaded in transposed
    +
    129 using KBlockLoader = BlockLoaderT<
    +
    130 /* typename T = */ T,
    +
    131 /* short BROWS = */ BK,
    +
    132 /* short BCOLS = */ BD,
    +
    133 /* short kDstStrRow = */ 1,
    +
    134 /* short kDstStrCol = */ LDK_tgp,
    +
    135 /* short reduction_dim = */ 0,
    +
    136 /* short tgp_size = */ WM * WN * 32>;
    +
    137
    +
    138 using VBlockLoader = BlockLoaderT<
    +
    139 /* typename T = */ T,
    +
    140 /* short BROWS = */ BK,
    +
    141 /* short BCOLS = */ BD,
    +
    142 /* short kDstStrRow = */ LDV_tgp,
    +
    143 /* short kDstStrCol = */ 1,
    +
    144 /* short reduction_dim = */ 0,
    +
    145 /* short tgp_size = */ WM * WN * 32>;
    +
    146
    +
    147 QBlockLoader loader_q(
    +
    148 Q, params->Q_strides[2], Qs, simd_group_id, simd_lane_id);
    +
    149 KBlockLoader loader_k(
    +
    150 K, params->K_strides[2], Ks, simd_group_id, simd_lane_id);
    +
    151 VBlockLoader loader_v(
    +
    152 V, params->V_strides[2], Vs, simd_group_id, simd_lane_id);
    +
    153
    +
    154 TransformScale<T> ts(static_cast<T>(params->scale));
    +
    155
    +
    156 // Prepare MMA tiles
    +
    157 constexpr short kFragSize = 8; // MMAFrag size
    + +
    159
    +
    160 constexpr int kNWarps = WM * WN;
    +
    161 static_assert(
    +
    162 BQ >= (kNWarps * kFragSize) && BQ % (kNWarps * kFragSize) == 0,
    +
    163 "Each simdgroup must host atleast 1 simdgroup matrix along Q sequence.");
    +
    164
    +
    165 // Q seq frags per warp
    +
    166 constexpr int TQ = BQ / (kNWarps * kFragSize);
    +
    167 // KV sequence frags (all warps load the same frags)
    +
    168 constexpr int TK = BK / kFragSize;
    +
    169 // HeadDim frags (all warps load the same frags)
    +
    170 constexpr int TD = BD / kFragSize;
    +
    171
    +
    172 static_assert(TQ == 1, "Check TQ");
    +
    173
    + + + + + +
    179
    +
    180 Otile.clear();
    +
    181
    +
    182 // Prepare mma tile offsets
    +
    183 const short2 simd_coord = MMAFrag_acc_t::get_coord(simd_lane_id);
    +
    184 const short sm = simd_coord.y;
    +
    185 const short sn = simd_coord.x;
    +
    186 const short tm = kFragSize * TQ * simd_group_id;
    +
    187
    +
    188 const short Qs_offset = (tm + sm) * LDQ_tgp + sn;
    +
    189 const short Ks_offset = sm * LDK_tgp + sn;
    +
    190 const short Vs_offset = sm * LDV_tgp + sn;
    +
    191
    +
    192 constexpr short Qs_tile_stride = kFragSize;
    +
    193 constexpr short Ks_tile_stride = kFragSize * LDK_tgp;
    +
    194
    +
    195 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    196
    +
    197 // Load Q blocks apply scale
    +
    198 if (!align_Q && int(tid.x) == (params->NQ_aligned)) {
    +
    199 loader_q.load_safe(short2(BD, params->qL - params->NQ_aligned * BQ));
    +
    200 } else {
    +
    201 loader_q.load_unsafe();
    +
    202 }
    +
    203 loader_q.apply_inplace_op(ts);
    +
    204
    +
    205 // Init row reduction variables
    +
    206 constexpr short kRowsPT = decltype(Stile)::kRowsPerThread;
    +
    207
    +
    208 AccumType max_score[kRowsPT];
    +
    209 AccumType sum_score[kRowsPT] = {0};
    +
    210
    +
    211 // Init to -Inf
    + +
    213 for (short i = 0; i < kRowsPT; ++i) {
    +
    214 max_score[i] = Limits<AccumType>::min;
    +
    215 }
    +
    216
    +
    217 // Loop over KV seq length
    +
    218 for (int kb = 0; kb < params->NK; kb++) {
    +
    219 // Load K block and apply scale
    +
    220 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    221 if (!align_K && kb == (params->NK_aligned)) {
    +
    222 loader_k.load_safe(short2(BD, params->kL - params->NK_aligned * BK));
    +
    223 } else {
    +
    224 loader_k.load_unsafe();
    +
    225 }
    +
    226
    +
    227 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    228
    +
    229 // Do S = Q @ K.T
    +
    230 Stile.clear();
    +
    231
    +
    232 for (short dd = 0; dd < TD; dd++) {
    +
    233 simdgroup_barrier(mem_flags::mem_none);
    +
    234
    +
    235 Qtile.template load<T, 1, 1, LDQ_tgp, 1>(
    +
    236 &Qs[Qs_offset + dd * Qs_tile_stride]);
    +
    237 Ktile.template load<T, 1, 1, LDK_tgp, 1>(
    +
    238 &Ks[Ks_offset + dd * Ks_tile_stride]);
    +
    239
    +
    240 simdgroup_barrier(mem_flags::mem_none);
    +
    241
    +
    242 tile_matmad(Stile, Qtile, Ktile, Stile);
    +
    243 }
    +
    244
    +
    245 // Mask out of length sequence
    +
    246 if (!align_K && kb == (params->NK_aligned)) {
    +
    247 using stile_t = decltype(Stile);
    +
    248 using selem_t = typename stile_t::elem_type;
    +
    249 constexpr auto neg_inf = -metal::numeric_limits<selem_t>::infinity();
    +
    250 const short lim = params->kL - params->NK_aligned * BK;
    +
    251
    + +
    253 for (short i = 0; i < stile_t::kTileRows; i++) {
    + +
    255 for (short j = 0; j < stile_t::kTileCols; j++) {
    +
    256 short col_pos = sn + (j * stile_t::kFragCols);
    + +
    258 for (short jj = 0; jj < stile_t::MMAFrag_t::kElemCols; jj++) {
    +
    259 if ((col_pos + jj) >= lim) {
    +
    260 Stile.frag_at(i, j)[jj] = neg_inf;
    +
    261 }
    +
    262 }
    +
    263 }
    +
    264 }
    +
    265 }
    +
    266
    +
    267 simdgroup_barrier(mem_flags::mem_none);
    +
    268
    +
    269 // Load V blocks
    +
    270 if (!align_K && kb == (params->NK_aligned)) {
    +
    271 loader_v.load_safe(short2(BD, params->kL - params->NK_aligned * BK));
    +
    272 } else {
    +
    273 loader_v.load_unsafe();
    +
    274 }
    +
    275
    +
    276 // Do softmax
    +
    277
    +
    278 // Temp variables
    +
    279 AccumType new_max[kRowsPT];
    +
    280 AccumType factor[kRowsPT];
    + +
    282 for (short i = 0; i < kRowsPT; ++i) {
    +
    283 new_max[i] = max_score[i];
    +
    284 }
    +
    285
    +
    286 // Row max
    +
    287 Stile.template row_reduce<MaxOp>(new_max);
    +
    288
    +
    289 // exp(Si - rowmax(Si))
    +
    290 Stile.template row_bin_op<ExpSubOp>(new_max);
    +
    291
    +
    292 // Factor exp(rowmax(Si) - rowmax(Si-1))
    + +
    294 for (short i = 0; i < kRowsPT; ++i) {
    +
    295 factor[i] = fast::exp(max_score[i] - new_max[i]);
    +
    296 }
    +
    297
    +
    298 // Save max for next iteration
    + +
    300 for (short i = 0; i < kRowsPT; ++i) {
    +
    301 max_score[i] = new_max[i];
    +
    302 }
    +
    303
    +
    304 // Row Sum
    +
    305 AccumType sum_score_tmp[kRowsPT] = {0};
    +
    306 Stile.template row_reduce<SumOp>(sum_score_tmp);
    +
    307
    +
    308 // Update norm
    + +
    310 for (short i = 0; i < kRowsPT; ++i) {
    +
    311 sum_score[i] = sum_score[i] * factor[i] + sum_score_tmp[i];
    +
    312 }
    +
    313
    +
    314 // Update O
    +
    315 Otile.template row_bin_op<MulOp>(factor);
    +
    316
    +
    317 // Load V into registers
    +
    318 threadgroup_barrier(mem_flags::mem_threadgroup);
    +
    319 Vtile.template load<T, 1, 1, LDV_tgp, 1>(&Vs[Vs_offset]);
    +
    320
    +
    321 simdgroup_barrier(mem_flags::mem_none);
    +
    322
    +
    323 // Do O = S @ V
    +
    324 tile_matmad(Otile, Stile, Vtile, Otile);
    +
    325
    +
    326 // Prepare for next iteration
    +
    327 loader_k.next();
    +
    328 loader_v.next();
    +
    329 }
    +
    330
    +
    331 // Normalize output
    +
    332 Otile.template row_bin_op<DivOp>(sum_score);
    +
    333 threadgroup_barrier(mem_flags::mem_none);
    +
    334
    +
    335 // Store results
    +
    336 O += (tm + sm) * params->O_strides[2] + sn;
    +
    337
    +
    338 if (!align_Q && int(tid.x) == (params->NQ_aligned)) {
    +
    339 auto dst_tile_dims =
    +
    340 short2(BD - sn, params->qL - BQ * params->NQ_aligned - (tm + sm));
    +
    341
    +
    342 if (dst_tile_dims.x <= 0 || dst_tile_dims.y <= 0)
    +
    343 return;
    +
    344
    +
    345 Otile.template store_safe<T, 1, 1>(O, params->O_strides[2], dst_tile_dims);
    +
    346 } else {
    +
    347 Otile.template store<T, 1, 1>(O, params->O_strides[2]);
    +
    348 }
    +
    349}
    +
    +
    METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:232
    +
    Definition attn.h:19
    +
    METAL_FUNC void tile_matmad(thread MMATile< T, M, N > &D, thread MMATile< U, M, K > &A, thread MMATile< U, K, N > &B, thread MMATile< T, M, N > &C)
    Definition mma.h:413
    +
    #define STEEL_PRAGMA_UNROLL
    Definition defines.h:4
    +
    constant bool align_Q
    Definition steel_attention.h:9
    +
    void attention(const device T *Q, const device T *K, const device T *V, device T *O, const constant AttnParams *params, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)
    Definition steel_attention.h:73
    +
    constant bool align_K
    Definition steel_attention.h:10
    +
    Definition steel_attention.h:57
    +
    static METAL_FUNC constexpr T apply(T x, T y)
    Definition steel_attention.h:59
    +
    Definition steel_attention.h:50
    +
    static METAL_FUNC constexpr T apply(T x, T y)
    Definition steel_attention.h:52
    +
    Definition utils.h:23
    +
    Definition steel_attention.h:22
    +
    static METAL_FUNC constexpr T apply(T x, T y)
    Definition steel_attention.h:24
    +
    Definition steel_attention.h:36
    +
    static METAL_FUNC constexpr T apply(T x, T y)
    Definition steel_attention.h:38
    +
    Definition steel_attention.h:43
    +
    static METAL_FUNC constexpr T apply(T x, T y)
    Definition steel_attention.h:45
    +
    Definition steel_attention.h:29
    +
    static METAL_FUNC constexpr T apply(T x, T y)
    Definition steel_attention.h:31
    +
    Definition steel_attention.h:13
    +
    METAL_FUNC T apply(T x) const
    Definition steel_attention.h:17
    +
    T scale
    Definition steel_attention.h:14
    +
    METAL_FUNC TransformScale(T scale_)
    Definition steel_attention.h:15
    +
    Definition params.h:12
    +
    Definition mma.h:23
    +
    Definition loader.h:153
    +
    Definition mma.h:178
    +
    METAL_FUNC constexpr thread frag_type & frag_at(const short i, const short j)
    Definition mma.h:256
    +
    METAL_FUNC constexpr void clear()
    Definition mma.h:249
    +
    + + +
    + + diff --git a/docs/build/html/steel__gemm__fused_8h_source.html b/docs/build/html/steel__gemm__fused_8h_source.html index d758f32b..685b0c30 100644 --- a/docs/build/html/steel__gemm__fused_8h_source.html +++ b/docs/build/html/steel__gemm__fused_8h_source.html @@ -196,7 +196,7 @@ $(function(){ initResizable(false); });
    104 if (use_out_source) {
    105 const constant size_t* indx_C_bstrides =
    106 indx_B_bstrides + params->batch_ndim;
    -
    107 auto indx_offset_C = elem_to_loc(
    +
    107 auto indx_offset_C = elem_to_loc(
    108 tid.z, batch_shape, indx_C_bstrides, params->batch_ndim);
    109 indx_C = C_indices[indx_offset_C];
    110 }
    @@ -213,18 +213,18 @@ $(function(){ initResizable(false); });
    121 int batch_ndim_A = operand_batch_ndim.x;
    122 const constant int* batch_shape_A = operand_shape;
    123 const constant size_t* batch_strides_A = operand_strides;
    -
    124 A += elem_to_loc(indx_A, batch_shape_A, batch_strides_A, batch_ndim_A);
    +
    124 A += elem_to_loc(indx_A, batch_shape_A, batch_strides_A, batch_ndim_A);
    125
    126 int batch_ndim_B = operand_batch_ndim.y;
    127 const constant int* batch_shape_B = batch_shape_A + batch_ndim_A;
    128 const constant size_t* batch_strides_B = batch_strides_A + batch_ndim_A;
    -
    129 B += elem_to_loc(indx_B, batch_shape_B, batch_strides_B, batch_ndim_B);
    +
    129 B += elem_to_loc(indx_B, batch_shape_B, batch_strides_B, batch_ndim_B);
    130
    131 if (use_out_source) {
    132 int batch_ndim_C = operand_batch_ndim.z;
    133 const constant int* batch_shape_C = batch_shape_B + batch_ndim_B;
    134 const constant size_t* batch_strides_C = batch_strides_B + batch_ndim_B;
    -
    135 C += elem_to_loc(indx_C, batch_shape_C, batch_strides_C, batch_ndim_C);
    +
    135 C += elem_to_loc(indx_C, batch_shape_C, batch_strides_C, batch_ndim_C);
    136 }
    137
    138 }
    @@ -243,7 +243,7 @@ $(function(){ initResizable(false); });
    151
    152 if (use_out_source) {
    153 const constant size_t* C_bstrides = B_bstrides + params->batch_ndim;
    -
    154 C += elem_to_loc(tid.z, batch_shape, C_bstrides, params->batch_ndim);
    +
    154 C += elem_to_loc(tid.z, batch_shape, C_bstrides, params->batch_ndim);
    155 }
    156 } else {
    157 A += params->batch_stride_a * tid.z;
    @@ -505,8 +505,8 @@ $(function(){ initResizable(false); });
    415}
    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
    -
    METAL_FUNC stride_t elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim)
    Definition utils.h:87
    -
    Definition loader_channel_l.h:14
    +
    METAL_FUNC IdxT elem_to_loc(uint elem, constant const int *shape, constant const StrideT *strides, int ndim)
    Definition utils.h:93
    +
    Definition attn.h:19
    constant bool use_out_source
    Definition steel_gemm_fused.h:11
    constant bool align_M
    Definition steel_gemm_fused.h:14
    constant bool do_gather
    Definition steel_gemm_fused.h:18
    diff --git a/docs/build/html/steel__gemm__masked_8h_source.html b/docs/build/html/steel__gemm__masked_8h_source.html index 2b8e6003..a609873d 100644 --- a/docs/build/html/steel__gemm__masked_8h_source.html +++ b/docs/build/html/steel__gemm__masked_8h_source.html @@ -211,7 +211,7 @@ $(function(){ initResizable(false); });
    109
    110 if (params->batch_ndim > 1) {
    111 if (has_output_mask) {
    -
    112 out_mask += elem_to_loc(
    +
    112 out_mask += elem_to_loc(
    113 tid.z, batch_shape, mask_batch_strides, params->batch_ndim);
    114
    115 mask_batch_strides += params->batch_ndim;
    @@ -580,7 +580,7 @@ $(function(){ initResizable(false); });
    479 const constant size_t* mask_batch_strides =
    480 batch_strides + 2 * params->batch_ndim;
    481 out_mask +=
    -
    482 elem_to_loc(tid.z, batch_shape, mask_batch_strides, params->batch_ndim);
    +
    482 elem_to_loc(tid.z, batch_shape, mask_batch_strides, params->batch_ndim);
    483
    484 if (has_operand_mask) {
    485 const constant size_t* mask_strides_lhs =
    @@ -818,10 +818,10 @@ $(function(){ initResizable(false); });
    719}
    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
    -
    METAL_FUNC stride_t elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim)
    Definition utils.h:87
    -
    Definition bf16.h:265
    -
    METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:234
    -
    Definition loader_channel_l.h:14
    +
    METAL_FUNC IdxT elem_to_loc(uint elem, constant const int *shape, constant const StrideT *strides, int ndim)
    Definition utils.h:93
    +
    Definition bf16_math.h:226
    +
    METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
    Definition bf16_math.h:232
    +
    Definition attn.h:19
    #define STEEL_PRAGMA_UNROLL
    Definition defines.h:4
    void block_masked_gemm(const device T *A, const device T *B, device T *D, const constant GEMMParams *params, const constant int *batch_shape, const constant size_t *batch_strides, const device out_mask_t *out_mask, const device op_mask_t *lhs_mask, const device op_mask_t *rhs_mask, const constant int *mask_strides, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)
    Definition steel_gemm_masked.h:53
    diff --git a/docs/build/html/steel__gemm__splitk_8h_source.html b/docs/build/html/steel__gemm__splitk_8h_source.html index 1a0d5936..c5844e58 100644 --- a/docs/build/html/steel__gemm__splitk_8h_source.html +++ b/docs/build/html/steel__gemm__splitk_8h_source.html @@ -321,7 +321,7 @@ $(function(){ initResizable(false); });
    227}
    Op op
    Definition binary.h:129
    -
    Definition loader_channel_l.h:14
    +
    Definition attn.h:19
    void gemm_splitk(const device T *A, const device T *B, device U *C, const constant GEMMSpiltKParams *params, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)
    Definition steel_gemm_splitk.h:21
    void gemm_splitk_accum(const device AccT *C_split, device OutT *D, const constant int &k_partitions, const constant int &partition_stride, const constant int &ldd, uint2 gid)
    Definition steel_gemm_splitk.h:172
    void gemm_splitk_accum_axpby(const device AccT *C_split, device OutT *D, const constant int &k_partitions, const constant int &partition_stride, const constant int &ldd, const device OutT *C, const constant int &ldc, const constant int &fdc, const constant float &alpha, const constant float &beta, uint2 gid)
    Definition steel_gemm_splitk.h:199
    diff --git a/docs/build/html/struct___m_l_x___b_float16.html b/docs/build/html/struct___m_l_x___b_float16.html index 3a69ede2..33440915 100644 --- a/docs/build/html/struct___m_l_x___b_float16.html +++ b/docs/build/html/struct___m_l_x___b_float16.html @@ -94,7 +94,7 @@ $(function(){ initResizable(false); });
    -

    #include <bf16.h>

    +

    #include <bf16.h>

    @@ -536,7 +536,7 @@ template<typename T , typename = typename enable_if<can_convert_from_bflo
    The documentation for this struct was generated from the following file:
      -
    • mlx/backend/metal/kernels/bf16.h
    • +
    • mlx/backend/metal/kernels/metal_3_0/bf16.h
    diff --git a/docs/build/html/struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html b/docs/build/html/struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html index e340d914..06872a35 100644 --- a/docs/build/html/struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html +++ b/docs/build/html/struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html @@ -92,9 +92,9 @@ $(function(){ initResizable(false); });
    -

    #include <bf16.h>

    +

    #include <bf16.h>


    The documentation for this struct was generated from the following file:
      -
    • mlx/backend/metal/kernels/bf16.h
    • +
    • mlx/backend/metal/kernels/metal_3_0/bf16.h
    diff --git a/docs/build/html/structlooped__elem__to__loc_3_010_00_01offset__t_01_4-members.html b/docs/build/html/struct_div_op-members.html similarity index 70% rename from docs/build/html/structlooped__elem__to__loc_3_010_00_01offset__t_01_4-members.html rename to docs/build/html/struct_div_op-members.html index f77f8a50..d1a8235f 100644 --- a/docs/build/html/structlooped__elem__to__loc_3_010_00_01offset__t_01_4-members.html +++ b/docs/build/html/struct_div_op-members.html @@ -84,15 +84,13 @@ $(function(){ initResizable(false); });
    -
    looped_elem_to_loc< 0, offset_t > Member List
    +
    DivOp Member List
    -

    This is the complete list of members for looped_elem_to_loc< 0, offset_t >, including all inherited members.

    +

    This is the complete list of members for DivOp, including all inherited members.

    Classes

    - - - +
    location(offset_t idx, const constant int *shape, const constant size_t *strides, int ndim)looped_elem_to_loc< 0, offset_t >inline
    next(const constant int *, const constant size_t *)looped_elem_to_loc< 0, offset_t >inline
    next(int, const constant int *, const constant size_t *)looped_elem_to_loc< 0, offset_t >inline
    apply(T x, T y)DivOpinlinestatic