@@ -193,6 +193,51 @@ def __matmul__(self, other: Array, /) -> Array:
193
193
# TODO
194
194
return NotImplemented
195
195
196
+ def __radd__ (self , other : Array , / ) -> Array :
197
+ # TODO discuss either we need to support complex and bool as other input type
198
+ """
199
+ Return other + self.
200
+ """
201
+ return _process_c_function (other , self , backend .get ().af_add )
202
+
203
+ def __rsub__ (self , other : Array , / ) -> Array :
204
+ """
205
+ Return other - self.
206
+ """
207
+ return _process_c_function (other , self , backend .get ().af_sub )
208
+
209
+ def __rmul__ (self , other : Array , / ) -> Array :
210
+ """
211
+ Return other * self.
212
+ """
213
+ return _process_c_function (other , self , backend .get ().af_mul )
214
+
215
+ def __rtruediv__ (self , other : Array , / ) -> Array :
216
+ """
217
+ Return other / self.
218
+ """
219
+ return _process_c_function (other , self , backend .get ().af_div )
220
+
221
+ def __rfloordiv__ (self , other : Array , / ) -> Array :
222
+ # TODO
223
+ return NotImplemented
224
+
225
+ def __rmod__ (self , other : Array , / ) -> Array :
226
+ """
227
+ Return other / self.
228
+ """
229
+ return _process_c_function (other , self , backend .get ().af_mod )
230
+
231
+ def __rpow__ (self , other : Array , / ) -> Array :
232
+ """
233
+ Return other ** self.
234
+ """
235
+ return _process_c_function (other , self , backend .get ().af_pow )
236
+
237
+ def __rmatmul__ (self , other : Array , / ) -> Array :
238
+ # TODO
239
+ return NotImplemented
240
+
196
241
def __getitem__ (self , key : int | slice | tuple [int | slice ] | Array , / ) -> Array :
197
242
# TODO: API Specification - key: int | slice | ellipsis | tuple[int | slice] | Array
198
243
# TODO: refactor
0 commit comments