diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index b92778bcc..c20792bb3 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 ecb418468..196f8bf65 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 7c68942f4..1566d1f2c 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 9daa5e111..000000000 --- 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 30ade264e..f78f40563 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 000000000..71dc765d5 --- /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 000000000..2656eef35 --- /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 fc24d410b..4eb14b088 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 9769fceaa..045c36c93 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 a531c3d56..75c0fd73e 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 87141e0a0..cbd46ef82 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 796c0a05e..a5c220e83 100644 --- a/docs/build/html/atomic_8h_source.html +++ b/docs/build/html/atomic_8h_source.html @@ -472,9 +472,9 @@ $(function(){ initResizable(false); });
mlx_atomic_fetch_mul_explicit
METAL_FUNC void mlx_atomic_fetch_mul_explicit(device mlx_atomic< T > *object, T val, size_t offset)
Definition atomic.h:91
op
Op op
Definition binary.h:129
mlx::core::identity
array identity(int n, Dtype dtype, StreamOrDevice s={})
Create a square matrix of shape (n,n) of zeros, and ones in the major diagonal.
-
metal
Definition bf16.h:265
-
metal::min
METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:234
-
metal::max
METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:234
+
metal
Definition bf16_math.h:226
+
metal::min
METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:232
+
metal::max
METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)
Definition bf16_math.h:232
mlx::core::distributed::init
Group init(bool strict=false)
Initialize the distributed backend and return the group containing all discoverable processes.
mlx::core::random::bits
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.
mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >::val
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 000000000..882286aea --- /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
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Classes

struct  mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >
 
struct  mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >::ReadVector
 
struct  mlx::steel::CShape< R, C >
 
struct  mlx::steel::BlockLoaderT< T, BROWS, BCOLS, kDstStrRow, kDstStrCol, reduction_dim, tgp_size, n_reads, TCOLS, TROWS >
 
+ + + + + +

+Namespaces

namespace  mlx
 
namespace  mlx::steel
 
+
+ + +
+ + 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 000000000..311bc1556 --- /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 000000000..9c7def403 --- /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 000000000..156ab79e8 --- /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 000000000..e7fe51aab --- /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 000000000..b7657a3ee --- /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 000000000..e7a1ad19a --- /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
+
+
+ +

Go to the source code of this file.

+ + + + + + +

+Classes

struct  mlx::steel::LoopAlignment< M_aligned, N_aligned, K_aligned >
 
struct  mlx::steel::GEMMKernel< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue >
 
+ + + + + +

+Namespaces

namespace  mlx
 
namespace  mlx::steel
 
+
+ + +
+ + diff --git a/docs/build/html/attn_8h_source.html b/docs/build/html/attn_8h_source.html new file mode 100644 index 000000000..c8e033f33 --- /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 e5c00a23f..f09f54813 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 0e6718d7f..be28e1484 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
array.h
mlx::core::array
Definition array.h:20
mlx::core::array::flags
const Flags & flags() const
Get the Flags bit-field.
Definition array.h:302
@@ -312,6 +321,7 @@ $(function(){ initResizable(false); });
mlx::core::collapse_contiguous_dims
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())
mlx::core::check_contiguity
auto check_contiguity(const std::vector< int > &shape, const std::vector< StrideT > &strides)
Definition utils.h:151
mlx::core::elem_to_loc
StrideT elem_to_loc(int elem, const std::vector< int > &shape, const std::vector< StrideT > &strides)
Definition utils.h:12
+
mlx::core::move_or_copy
void move_or_copy(const array &in, array &out)
mlx::core::is_donatable
bool is_donatable(const array &in, const array &out)
Definition utils.h:174
mlx::core::enable_for_arrays_t
typename std::enable_if_t< is_arrays_v< T... > > enable_for_arrays_t
Definition array.h:611
mlx::core::ContiguousIterator
Definition utils.h:89
@@ -322,6 +332,7 @@ $(function(){ initResizable(false); });
mlx::core::ContiguousIterator::ContiguousIterator
ContiguousIterator()
Definition utils.h:120
mlx::core::ContiguousIterator::ContiguousIterator
ContiguousIterator(const array &a)
Definition utils.h:122
mlx::core::ContiguousIterator::step
void step()
Definition utils.h:90
+
mlx::core::array::Flags
Definition array.h:221
mlx::core::array::Flags::row_contiguous
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 bb0b3537b..7cf8c3750 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);
+
65 void maybeInsertBarrier();
+
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);
-
69 void maybeInsertBarrier();
70
- -
72 return ConcurrentContext(*this);
+
71 void wait_for_fence(MTL::Fence* fence) {
+
72 enc_->waitForFence(fence);
73 }
-
74 ~CommandEncoder();
-
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 c29e3c420..9c4dd6bcd 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 3bd0aa0c8..35b73c8b1 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 000000000..9e8b79ebe --- /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 000000000..38d8120ab --- /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 e5a0a3b9d..c8295ad7f 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 390670848..90774282d 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 ddb1325ce..66c8011c3 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 0795ecb30..32b2bae63 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 c7b8985d2..e060315d9 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 31672a75b..77d6a0d14 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 000000000..49a90d86e --- /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 000000000..98a3d0d20 --- /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 000000000..13ba3febe Binary files /dev/null and b/docs/build/html/classmlx_1_1core_1_1_contiguous.png differ 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 b59585a8d..0a127787f 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 8335de9db..610953b50 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 fa6e8dc0f..d36a3f474 100644 Binary files a/docs/build/html/classmlx_1_1core_1_1_unary_primitive.png and b/docs/build/html/classmlx_1_1core_1_1_unary_primitive.png differ 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 11e1dd754..adeb73e45 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 940fe29c3..ca6128e8e 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 0f20b7922..5727d9696 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 020b90fd1..ba238defa 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 f673ac747..f35a8c3e4 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 df66e3310..17bfc4bcb 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 f8e1ac230..71ad84825 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 41ee05ff9..c342bdf55 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 61d2c14e9..0268bea8b 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 31fe3dfbe..d7ef311ba 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 c2695c4c0..2001241f8 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 2c23d6630..4bc85b3b1 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 85eb93c5e..e88fa7636 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 a10d315e1..374387cf7 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 000000000..7383c68c1 --- /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 000000000..bd8458eac --- /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 000000000..904ba2fa9 --- /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 000000000..000f91aaa --- /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 0236914c1..a4d1775a8 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 720eda103..d1fa7b458 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 f5f704fa9..0cb7ddf61 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 fe42132f5..286a271a1 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 e30b0d5e5..254db7d81 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 990ee371b..f584102d8 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 90326ce03..3a1a368a8 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 5780e0cde..68274176a 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 72eac8b79..1396ec6b3 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 b787da34e..be7c06ba6 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 df574bf22..70032b09e 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 e605ad367..0df9ec530 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 fda8c19de..e3626ae4b 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 f09c31456..a5868be0f 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 56f88041b..d0276be4d 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 e99403c15..fffb9cd7a 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 6e8b1ebbe..7eece817f 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 09d0138cd..d8106c7ec 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 33d877a08..c51ad5fbf 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 f7fb19db3..f5ad13fdc 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 44ca8b803..724da0a5c 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 9be45cb9f..e0e70e22f 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 6880a2f55..cdb0253b6 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 054191205..b39005e39 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 bb3dad61c..2dae62855 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 fc9d6c8b2..d50509576 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 7734e0414..3766992ec 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 4a0c9f620..59ae6cdb8 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 01ee928ee..aa0ab59d6 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 51d90ad51..4b5d7b57b 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 55429324e..0d0ef608f 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 672285f5f..eac1b8fd4 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 b41fdcaa9..c93c32892 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 3c23cfcdb..22b8db91c 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 1f181bac6..290bb4161 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 6937d2090..1df0424e4 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 8760ff11f..d10427fab 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 a094833bf..b98398486 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 d6fb39f7c..9fd367af6 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 b0724fa97..6075ece26 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 215e72d16..1dbde8ff2 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 ab538dc58..f2f8bb881 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 641c46e0f..8bfc2aa74 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 7198a13e7..e95fd586a 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 ecfdcf812..da06c777c 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 1d7069ea7..fbd2a504b 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 43ee33bb8..27d0ced20 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 cf916121d..452c646a5 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 53e45ee46..e08ca16fa 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 2073d1b14..38cf2a26a 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 2f5348a48..4cdb34853 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 f146ab4f1..31a318bca 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 b19d84637..b0af6c341 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 777211684..23fb14a7a 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 e3231b4e9..ecab8d722 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 586bb60e4..2a29a331c 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 ba45ef7a3..7320fa855 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 c548e2fc3..887b4f5b6 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 d617b8cd9..74d3f557e 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 a1040c73d..109aae10b 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 2a9e88cd1..8db6bcec0 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 addc17473..f4998d263 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 10bf96610..5e3febb6d 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 de817a37e..4827e3d4c 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 e67f1483d..70d0cab55 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 3adb74a57..dd533e845 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 9a1652734..43748a896 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 c3196d28a..981e63d70 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 90094c782..60b4d88bb 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 2129d0950..890e8ab91 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 a4d93838f..88495c6f1 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 a30eb23c0..aa2138436 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 350e05485..8a60615ba 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 d605a18f3..268c43c62 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 1e649bb5e..b525be193 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 02b1710ab..56b0ddc03 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 1383dcdf6..b19b0029e 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 6ce5e835f..0a2332212 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 4645ee22d..ba1427708 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 9a6db9d70..52bc08cbf 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 b257add25..081facb95 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 89d8ec513..10c1f54f0 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 ee859738e..6d1e91b7e 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 49dedf680..424da05f0 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 8bf408c1d..e1b12a6c6 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 889374130..bac030d8e 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 02f2c841e..0dfcf51a0 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 e76508566..498049319 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 7cd25caa2..dc7854cb8 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 93582c4c3..da0efcf15 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 bb346b089..a7d1e2271 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 1f1ab296e..b230f5957 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 7b11d52e8..54dbaaa59 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 a80fc090a..d4c71f158 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 76dcb8689..866f2fe87 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 0248d1efd..774d4f60b 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 937a3601a..a32708932 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 4aebefda8..064502332 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 768402874..edf5ad7c7 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 aa0dfbd17..e47056925 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 f70ed7381..5f679d624 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 2ed7ba24f..8bca4c6af 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 44f7641bb..a081abcdb 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 cc094e30e..68619f039 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 33b59fa07..2f3c5c3e1 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 c45c175ba..96a641c47 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 00fdf34f6..7756c0853 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 3a62ce7e6..9309ab73e 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 b9f54b978..20d142702 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 a8a6ad987..5013c6f7d 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 cc2e2e95d..5fd2b8e07 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 7964c6336..58e7d920b 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 6072d889b..1a429936f 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 d0c717202..24d4ae240 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 f038e1d45..b1c041860 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 17f091146..7c3f2c7b1 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 bcbf313e4..bf8765ca7 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 d96b5b68b..23025f942 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 56370f9b8..87d53ef6f 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 24d7cd5f9..d7d9f0f5d 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 4c79155ce..ff20c514c 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 d1afe6dca..04e99c394 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 13838d8e5..768562fa2 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 a31cecb7f..e948c82d7 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 e8595f66e..55b834591 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 d032011e8..33d1a8047 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 9745beba2..c7473c799 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 1fdf82fa5..b6de85f32 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 e2da256e4..94d2fb680 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 aedf3d963..7ab351c4a 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 e3ba93c5b..cd3bc6982 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 1eb50bf1b..b4a83ce5f 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 9056493d3..ef1eac2b4 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 c77dfef3e..604cdddf9 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 c6e8045ac..e21db6291 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 2f62ec5a0..b5a1d9234 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 5ed322a6c..d84684d3f 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 46201a50b..222182000 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 56baf4694..de9ac682e 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 38661609d..b8b89f8fb 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 581356a5f..0e13be2d3 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 05ac1a8e0..0e746d96a 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 cbeab2c47..46f818d5f 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 b90a6e18b..b7e8aa973 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 bf5b124d6..457160b9d 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 7202e7e82..354d179d7 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 fe8fbd46a..8575dd099 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 4e0a97c51..b5975ef0f 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 73f41fe93..2ab1d703e 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 57b56fb68..000000000 --- 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 972875960..3f04d8c85 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 0a1c7d6cc..727c2f48e 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 2c6c22d88..67698d35e 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 1a8ec936b..17c65c442 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 6fa043492..b040467ed 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 ab9b7a00c..3f91a21ef 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 41210f046..d165e2323 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 64718c95a..7e633dcca 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 77277593c..750a8a98e 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 40868024a..f5e5b2f25 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 d60e55610..dec9d88ae 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 acba21bce..5e61afe7d 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 d1b14d382..c67bc7bc7 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 9bd83216c..bbe18751d 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 31781b966..83bb49c07 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 ea80c133d..fc752df0d 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 ba05386b6..6a02a304d 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 f302dd5df..3133de92f 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 4b9f0d16f..46f020f64 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 a78f8bb7f..8c8b67d24 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 4ff9702c1..dbf6052b6 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 5f3e3cb3c..fe599fe23 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 bff71576e..05b0eb694 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 c132fd28a..0c9db7f9c 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 27afd96b1..c50e31dfb 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 8f9ef1fbe..a1190f54d 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 c65c927d6..127234cfa 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 b6556c078..56c8e67b1 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 6bda4af5e..2371e2211 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 32a33bbad..50c41fb6c 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 c2351b15a..23ef27ef3 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 36d1bb9c8..db2d1cb8b 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 d0e4e03a5..78d6fec31 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 564482811..85528dca1 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 34ab27294..6d366a24f 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 b922fcb81..29746498d 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 a8e672a49..ac833fa0d 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 f08d839a5..4d44d35bc 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 f9aac6dd6..9b0ab9018 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 8431edbe4..ea7e87236 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 37e6c97e1..39d7bcba2 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 537472e28..6db52db0f 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 e60f70ffc..fbf8dd71e 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 2f3d2c1dc..f3c935135 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 df988dc53..ff88174c8 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 bad9dc47b..21107cab4 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 d8b9beb43..bcf97ca91 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 7c28021fa..bc9715c41 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 05d6ca0b8..d0b08c368 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 e0953762c..d570221b7 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 bcbc81f66..e777279c1 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 67dc7aed9..b8e6fe8a2 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 218e28544..7da9fd9e3 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 cccd93b4c..6b89cbd2b 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 64124d759..7c4eaab8f 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 a0327394e..402aee173 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 a12075db6..fa8d3693b 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 a45bf29ab..b42d4c20f 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 e28a858d7..d7b68e15a 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 6dd3ead1d..7e3d12077 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 340ec9990..e366a1406 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 30a2e8db9..a4d6cdcf5 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 e8e9ed95d..2d753fd73 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 94540aec4..905a56796 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 d913aa888..407e1355f 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 8076eef3e..4f1b4bd51 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 2bfe05a3f..61af65008 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 1cf6d14be..f902a2f72 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 6c0738148..d7df40722 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 dba50670a..e862a4369 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 c82a07515..405fc9ee8 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 c3dd502ba..9f569225f 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 c77c24104..08b8899e1 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 d74293c46..eceee3b82 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 0782b4043..b9274bd50 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 3caa647a2..a128c02c4 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 bd9b77b87..92164abe9 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 b1d547efc..c6235717f 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 299e2e57e..79ab3f5eb 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 fac9d2969..d5c62cd7a 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 27a98b8e8..752e47586 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 fd9d7c784..e5e047015 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 71fc64d2e..6aa383ae5 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 bc47c1e90..604582f8a 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 93c7b6ddb..6966b0650 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 5dc9f9548..34088ed97 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 130ac326f..6a636b60d 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 e8fcda564..2d70f7ea8 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 f64988f90..3b42da8af 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 6e6379f0f..257261da7 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 0eb470c3a..f0d0bf52a 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 1ab38085f..f1156b4f7 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 fde44364c..c58ee3680 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 8d9b5da93..1ea8c032f 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 355df6315..062ad8279 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 084a47864..199dab1b6 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 66f81ca88..e40c69c83 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 bae4cd133..a778d2b41 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 270b1d5a3..090a397ba 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 780f5fc6d..3b5641897 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 c7fe74d47..d8ed1563e 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 49c74b436..debc0b904 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 392d7ef26..aa1e1130d 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 8b53a37f9..18f71685b 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 ed8fe1631..06e5a06e6 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 585610331..6cf230065 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 1685e59e9..3439b8a01 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 12432f389..98639b5d0 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 6a3e43bee..71ddd9e17 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 2a28834ed..f24e47032 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 35c90fd0f..97f14bbe1 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 98684163f..916942806 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 d808f2b74..623e2c84a 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 fa40bdc1e..2e35cc60a 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 b0805d3c5..1529bd888 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 f1a4da0f3..d4602616a 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 d7fc4582c..0f022bcb5 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 7b2238dee..4eddc4a49 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 f7bbc9fae..faf229dbc 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 9aa30abb2..a64cbd5d0 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 563d0f6bc..eb47b6049 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 ee029ec24..1c1abf5bc 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 7640aabcf..9180168bf 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 bd8493592..5d3b133cc 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 c97ec5a0d..3d9e5dda3 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 dfedfe67a..3837bce68 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 33ef71904..e440fb688 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 c7c7fceea..326d2b7aa 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 04802634a..ea1bf29b2 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 ba2882361..72ea18f3c 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 ecddacb30..8143ce0c4 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 2fee164eb..2178bc208 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 089ca9ab2..d4d5a2ad9 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 17b71396c..049f15b9c 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 2c1744cc8..afd87c2b6 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 bc7872dda..b931d91c0 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 5c0abc8dd..de1b8e82f 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 de426f720..e8c2cdd72 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 179024325..aed67e20f 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 4873de9ff..5240a01fb 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 045ec832d..e61c94a51 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 634b87a0d..c4ad7a65b 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 c8d04d959..2e0de6a74 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 d9fadf6f3..cfa0d2b86 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 f1ca89535..89a73d77a 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 d2de8adad..3eeea1ceb 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 a076304c6..4ca135839 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 2af7b83a0..8dc142955 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 3b3d25e5c..b64ef0565 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 fad037fef..87ac74c16 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 e73e7a924..b2410d020 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 5a74d9859..ff19ad578 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 8d8b566e9..6b6f8f760 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 2478717ce..f795c230f 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 0edbb8b44..4de21ff78 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 68b97a59e..ea3797fe9 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 0fe2616a9..97a5c09f7 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 ad97c98f3..1032ee0bd 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 b89041a29..1689f53a8 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 b13115fa3..11b92db8e 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 8052b6cb6..93c10e501 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 1813d2c26..a64a3b50a 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 c1520db51..de6306b3b 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 e054c8a45..00b237fcf 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 9a10f872d..1590da631 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 028185ba1..1db6357bc 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 349275974..beb942b1e 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 92a1e43d3..bce5080db 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 caa881e54..78daab29d 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 8a2ca794b..6a9a3c210 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 a0ba468d8..3570b4266 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 b9d1b59c3..61309f4fd 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 c277ce614..6600af163 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 0609bafdf..64bd5bb4c 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 11d36e95a..f3d768073 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 2c708cfcb..e7a828196 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 e7990efdf..55787a80e 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 f296cc90e..c27b9023e 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 3ada9a8e1..256538c7d 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 ba425dbf0..8c27548b7 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 a9ef81111..eae7ebda6 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 3c1b19ff6..afa53bd05 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 aaf20607c..48e8650d9 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 1a1be97bd..762afeb6f 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 0f3ac611c..4ecff76d7 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 818eea496..a8129fe82 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 f348dd7a8..99c2f5b25 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 a8c5a859a..4cd2ff2b1 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 4b96b967e..dd149a60a 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 71cb52491..70e389478 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 c870efc05..798ce3d7d 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 66cf6cf07..85bcffd50 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 fbe6f4539..2a5fa07cf 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 6cca8ff19..76d0ab41a 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 6ad6cf84a..13bc9464a 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 3d3728c33..aecf5c76e 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 935b65dee..5f48216cc 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 247d82f2c..0782c6644 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 cbcf0a61d..774445ca5 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 70216bd4d..22f18d7d3 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 61f2a2282..aa37d5054 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 144403ca6..89e9fa0a9 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 ef845846c..28aa440e4 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 b8a42a847..c2dfe360f 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 b89a1105d..ae82553f9 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 dd7a0214d..70f7b85a1 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 704d1a175..abc49b8c3 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 92ff8f4d8..9844d84ab 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 7ea70fd22..36ee5b93f 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 9e76efb3a..41ee622d5 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 174653acc..e4966cb1e 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 f45b3cd01..6b940f164 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 afcf06ddb..4b9d3b5db 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 9db4ac9b4..b000446e0 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 fc68eebb8..7227830d1 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 8f14e3eb9..b5dd1e4e6 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 1033693e1..83221a7c1 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 2ed019938..799c3718f 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 a698e2adb..f8c3a25ab 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 c114d99f7..48d4b6192 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 d3202cc4c..a334c79dd 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 bef2a9619..62825d8b4 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 338a37bdd..6e0115384 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 a4eb5b94a..499f7de56 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 6c5361b5a..902f7b626 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 488da0acf..24cce0132 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 ccc43907f..e8a61e710 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 d6904b197..0a59a1cbe 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 03e0a1c18..66d16983f 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 86ce32eab..6e3168cc7 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 d90e7f800..e213b30a1 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 449c0fe62..0951d2165 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 1449d66b6..3836d66f9 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 ba0ff6184..66d4abb8e 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 4a6ab03a8..d26ff9795 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 8b3a11ac4..76b5531d6 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 a4ee9e210..29e0c2d6c 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 f64346d75..0ec51dd81 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 43c2042b1..a28ac22ef 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 cdfba246a..479a981c1 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 028e8fbf2..6b69eb2ed 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 3889266da..d2f8c49da 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 cafb4fbe6..6a004c01a 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 7e7047400..5c1326527 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 1800ffffb..08872ef64 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 3fef69ddf..a392a2baa 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 39ecaa3bc..60b68bda7 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 a59b2fc5a..61a7b4b9c 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 dbfb8992d..dfdf9f2fa 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 34f4fbaee..95ece6203 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 3fce344c9..6b79d2b14 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 e5ac75e4b..634538f47 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 430bf2b0f..55a667654 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 f9ad04a4e..2efd1b5cc 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 6c4102294..5542f139d 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 b8a2268de..ab915a167 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 c43f839f2..0a6ab3e09 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 04fb56f62..5dbea1045 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 ac2dff523..29474534b 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 101d0d30e..beca6ab6e 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 4ef3016a0..71431a740 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 a9314d349..db68625ab 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 bcfd24674..dd784037f 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 1767b8151..860592e4a 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 e6fdf4a4d..68726795b 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 4ea327edd..ff7ad66f5 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 390b4457e..de376385f 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 486555aab..777b762ea 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 3562c4eb1..19e54485d 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 77baca5fa..c204c54aa 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 d48443836..d2ecf4822 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 3a79f3b29..64d3cc571 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 abd40ae13..51b9a9872 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 c9a4f9e6a..0c8f04a97 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 004324f9f..7a359861d 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 f8ec2e8f9..c6e23f6bb 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 491630b5b..0752aa7c6 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 719c74740..05ec94449 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 039f394f2..683b0f9a4 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 cc1371e1e..a6627b7c5 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 9f3d6989d..971c11929 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 a9dd67cf0..cc0497871 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 c156be499..7e04217e4 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 f9c6e9614..10d1c64f8 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 2a006bb42..c2c1128ed 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 494c5d00e..d514134ba 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 e7ee4d69a..db573a9b3 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 f4f6ecd65..568ece30e 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 e9c24b3e9..ffbeae9ed 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 8f8541b56..978588293 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 8e0d623df..af4cd6f8b 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 eb551ed04..9ac117097 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 fb410c874..b1375a673 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 7faaa8172..140916c61 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 86f496ee1..cb1d71541 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 b733d85fc..ec4f035b2 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 004fa6c3b..a33c66275 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 05b431fc6..c786292b7 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 727fd2fa9..3fe365074 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 706e78f28..ea4bccaa1 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 3211a1751..d7bf4d498 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 063f25e9a..6bcb3e2d2 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 aae6a250b..67d369607 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 6e5de370e..5724cd061 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 40c6b94d5..16b007d23 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 68ba455fe..157a77583 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 3f77dd8b8..539ded7da 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 273674033..c512a138e 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 7a270fa7d..167d5cdcc 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 59a679adf..e37f18c37 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 4e2a31bf9..1bdbab44b 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 6b24ad2e0..8387ba6db 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 c918b564c..d064cce2a 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 79ee469ad..5a0c4585a 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 69ca61ec1..36c98ad07 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 bf3501699..437527ffc 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 74817b91a..2dbf4cba5 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 a9ab1a3ec..434586016 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 efbe0a18a..bffeb270f 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 e5e1aa65b..ebb608198 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 8e7d1b0e4..74dfdbdb5 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 654c49769..c46a28db9 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 d150ccb47..21f7f3555 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 931e6e292..3df4fbea4 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 e9aec67bf..807bed1f0 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 0f20abc6e..3b9c5b4ee 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 4e40764b6..6dc07a35d 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 4e080517e..5aa499585 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 c38b9e941..e5c19102b 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 82efd6af1..2d606a547 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 4ee6f2445..ccedbe16f 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 233c7296c..be8a0239a 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 c0e18903c..15c398275 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 0a08db757..4562088ee 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 22d91ce00..8ec8e64be 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 9b6e62dd4..39ba91cab 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 1b115a393..ed33e10fc 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 013cf7141..34ab309f3 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 caf4a5f82..3531ccde7 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 d59088ed9..588211d06 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 d4dce074e..17c2b3459 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 ed748db26..0aa061ea5 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 390193135..8785dfc94 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 2feceb6ce..0b76d81d5 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 9ae5f957e..d5786df44 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 1d12b31b2..4d6d6dc39 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 2f420b984..c8a65d504 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 38e2a2c7f..28a0076aa 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 aadbb7343..b9e7c8c6e 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 2b9eaeeb7..a19220bcd 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 7c6cf43a6..ffbd5899f 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 40e854311..7b4dff754 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 29d404044..01d6f2885 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 adac75852..726ce7d55 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 17515ff9f..cfaf8fd68 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 1fb21449f..d3f39741c 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 76b0e44f0..c0265cd59 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 50f643bac..379fa3f61 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 385c5b72f..b27d6beed 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 0c49121e5..70e12696f 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 21bfc5e15..97a0c9517 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 d9a4955de..708cda096 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 fc3efb463..7377a7751 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 b1b018f5f..63018b94f 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 4beb98b3d..908443b77 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 b03a5aeec..68df8ad47 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 f2ad7365e..1a29858f0 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 d3f29cb20..e06ca618b 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 a256f73b1..5de3436bf 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 61d4233f0..d6904d06d 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 102a52448..1dbd6b015 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 27b04fa53..5f3a1df7f 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 bc95defd4..e98deee58 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 07d520fdd..0a104128e 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 4fa74563a..e52c9fe34 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 51c520bfc..03e79577b 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 09218ba2b..9e2f63e4c 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 5aca25aba..09218ba2b 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 b1a537eca..5aca25aba 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 3a705c846..b1a537eca 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 822e6ecf7..3a705c846 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 257073d85..8570df320 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 7a4072998..af8aecb92 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 103b9ebd4..01964bcf5 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 6f77b5ab2..b7521b551 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 599d21dfb..a0282c4c3 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 e87b82274..d836b920a 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 506b3e167..0ea2bf8fb 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 b4193ba2a..51915fc81 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 33c9ec6d7..2bbadabe6 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 f07193647..592d7f95a 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 a859e8b37..99c84c46a 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 5342f6271..d6e60eb7d 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 132353d8c..884f5242e 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 3f6a191f5..db9d76bdf 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 3642762f0..48658abe0 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 7c63226fb..67970a5d0 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 10a541d60..afd8977e5 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 2e834b06f..b74b4a074 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 8254b96c0..974863786 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 88db21482..2552a4e74 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 fd72ead01..2cfc4370e 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 91a1bdfb7..ad5526ce0 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 e1edfbb0f..f6f0725a4 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 e37825181..b44679d9d 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 87249a7a0..2d9b9d4a9 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 7967de990..eb37eb174 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 76ac25c56..d8bf69263 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 9142546c7..976a1fc85 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 b24736856..8c537988d 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 454a00fcb..89f749d22 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 55f2dcb7d..085c54578 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 f95e553f0..98974c15a 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 8bf519014..ed86072e8 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 60de4b6f5..8bf519014 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 b89c3c5a3..e1ab7d1f1 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 e5f6b91fb..68428d4ab 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 80c07e679..e5f6b91fb 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 d546c2d24..80c07e679 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 9f1e64bc3..507c562e7 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 335d411ea..412c684b5 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 d34992426..335d411ea 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 ba03c67d8..d34992426 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 d427dcde6..c7ffdc21a 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 fd5deb26c..d427dcde6 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 cfd1d3816..fd5deb26c 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 000000000..cfd1d3816 --- /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 50c42d58b..475304b92 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 f430517e8..ee78d0f3d 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 fcebac343..8befeac4c 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 13d67e5d4..570e8bc57 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 4bbcefb02..3d3df5564 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 364d08b90..2de578ca0 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 0910291ae..46e04f590 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 dda638a30..3f19611c8 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 c6190bec3..1a58473d7 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 f61b85531..24d74db52 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 33bcc018d..7d6caf6df 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 aa38b6cb3..7cd417b8e 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 ec7e0d5fb..4f98f1ced 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 9b85264b1..56c02572c 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 1d872a1e7..c2e221058 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 733ac0ae1..d7f442308 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 ed7d09cf6..4d4ca8fb6 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 09019b7d5..a53200a55 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 374bc71d8..8fbbbc12e 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 000000000..3fc196451 --- /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 000000000..d38622d02 --- /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 d758f32b0..685b0c304 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 2b8e60031..a609873d2 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 1a0d5936a..c5844e588 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 3a69ede2a..334409152 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 e340d914d..06872a354 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 f77f8a500..d1a8235f3 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