complex_dtype

odl.util.utility.complex_dtype(dtype, default=None)[source]

Return complex counterpart of dtype if existing, else default.

Parameters
dtype :

Real or complex floating point data type. It can be given in any way the numpy.dtype constructor understands.

default :

Object to be returned if no complex counterpart is found for dtype, except for None, in which case an error is raised.

Returns
complex_dtypenumpy.dtype

The complex counterpart of dtype.

Raises
ValueError

if there is no complex counterpart to the given data type and default == None.

Examples

Convert scalar dtypes:

>>> complex_dtype(float)
dtype('complex128')
>>> complex_dtype('float32')
dtype('complex64')
>>> complex_dtype(complex)
dtype('complex128')

Dtypes with shape are also supported:

>>> complex_dtype(np.dtype((float, (3,))))
dtype(('<c16', (3,)))
>>> complex_dtype(('float32', (3,)))
dtype(('<c8', (3,)))