@@ -140,7 +140,10 @@ def _rmatvec(self, x: NDArray) -> NDArray:
140140 y = y .astype (self .rdtype )
141141 return y
142142
143- def __truediv__ (self , y : NDArray ) -> NDArray :
143+ def __truediv__ (self , y : NDArray | float ) -> NDArray | LinearOperator :
144+ if np .isscalar (y ):
145+ # A scalar divisor scales the operator (see LinearOperator.div)
146+ return super ().__truediv__ (y )
144147 if self .norm is not _FFTNorms .ORTHO :
145148 return self ._rmatvec (y ) / self ._scale
146149 return self ._rmatvec (y )
@@ -238,7 +241,10 @@ def _rmatvec(self, x: NDArray) -> NDArray:
238241 y = scipy .fft .fftshift (y , axes = self .axis )
239242 return y
240243
241- def __truediv__ (self , y : NDArray ) -> NDArray :
244+ def __truediv__ (self , y : NDArray | float ) -> NDArray | LinearOperator :
245+ if np .isscalar (y ):
246+ # A scalar divisor scales the operator (see LinearOperator.div)
247+ return super ().__truediv__ (y )
242248 if self .norm is not _FFTNorms .ORTHO :
243249 return self ._rmatvec (y ) / self ._scale
244250 return self ._rmatvec (y )
@@ -403,7 +409,10 @@ def _rmatvec(self, x: NDArray) -> NDArray:
403409 y = np .real (y )
404410 return y
405411
406- def __truediv__ (self , y : NDArray ) -> NDArray :
412+ def __truediv__ (self , y : NDArray | float ) -> NDArray | LinearOperator :
413+ if np .isscalar (y ):
414+ # A scalar divisor scales the operator (see LinearOperator.div)
415+ return super ().__truediv__ (y )
407416 if self .norm is _FFTNorms .ORTHO :
408417 return self ._rmatvec (y )
409418 return self ._rmatvec (y ) / self ._scale
@@ -495,7 +504,10 @@ def _rmatvec(self, x: NDArray) -> NDArray:
495504 y = scipy .fft .fftshift (y , axes = self .axis )
496505 return y
497506
498- def __truediv__ (self , y : NDArray ) -> NDArray :
507+ def __truediv__ (self , y : NDArray | float ) -> NDArray | LinearOperator :
508+ if np .isscalar (y ):
509+ # A scalar divisor scales the operator (see LinearOperator.div)
510+ return super ().__truediv__ (y )
499511 if self .norm is not _FFTNorms .ORTHO :
500512 return self ._rmatvec (y ) / self ._scale
501513 return self ._rmatvec (y )
0 commit comments