diff --git a/pull/2070/.buildinfo b/pull/2070/.buildinfo new file mode 100644 index 00000000000..f5c87614047 --- /dev/null +++ b/pull/2070/.buildinfo @@ -0,0 +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: 443c27c07ba0b73bb15e3bc04b789b21 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/pull/2070/.nojekyll b/pull/2070/.nojekyll new file mode 100644 index 00000000000..e69de29bb2d diff --git a/pull/2070/_modules/dpnp/dpnp_array.html b/pull/2070/_modules/dpnp/dpnp_array.html new file mode 100644 index 00000000000..0f8a62bceda --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_array.html @@ -0,0 +1,1949 @@ + + + + + + + + + + dpnp.dpnp_array — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_array

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+import dpctl.tensor as dpt
+
+import dpnp
+
+
+def _get_unwrapped_index_key(key):
+    """
+    Get an unwrapped index key.
+
+    Return a key where each nested instance of DPNP array is unwrapped into USM ndarray
+    for further processing in DPCTL advanced indexing functions.
+
+    """
+
+    if isinstance(key, tuple):
+        if any(isinstance(x, dpnp_array) for x in key):
+            # create a new tuple from the input key with unwrapped DPNP arrays
+            return tuple(
+                x.get_array() if isinstance(x, dpnp_array) else x for x in key
+            )
+    elif isinstance(key, dpnp_array):
+        return key.get_array()
+    return key
+
+
+
+[docs] +class dpnp_array: + """ + Multi-dimensional array object. + + This is a wrapper around dpctl.tensor.usm_ndarray that provides + methods to be compliant with original NumPy. + + """ + + def __init__( + self, + shape, + dtype=None, + buffer=None, + offset=0, + strides=None, + order="C", + device=None, + usm_type="device", + sycl_queue=None, + ): + if order is None: + order = "C" + + if buffer is not None: + buffer = dpnp.get_usm_ndarray(buffer) + + if dtype is None: + dtype = buffer.dtype + else: + buffer = usm_type + + sycl_queue_normalized = dpnp.get_normalized_queue_device( + device=device, sycl_queue=sycl_queue + ) + + self._array_obj = dpt.usm_ndarray( + shape, + dtype=dtype, + strides=strides, + buffer=buffer, + offset=offset, + order=order, + buffer_ctor_kwargs={"queue": sycl_queue_normalized}, + ) + + @property + def __sycl_usm_array_interface__(self): + return self._array_obj.__sycl_usm_array_interface__ + +
+[docs] + def get_array(self): + """Get usm_ndarray object.""" + return self._array_obj
+ + + @property + def T(self): + """View of the transposed array.""" + return self.transpose() + +
+[docs] + def to_device(self, target_device): + """Transfer array to target device.""" + + return dpnp_array( + shape=self.shape, buffer=self.get_array().to_device(target_device) + )
+ + + @property + def sycl_queue(self): + return self._array_obj.sycl_queue + + @property + def sycl_device(self): + return self._array_obj.sycl_device + + @property + def sycl_context(self): + return self._array_obj.sycl_context + + @property + def device(self): + return self._array_obj.device + + @property + def usm_type(self): + return self._array_obj.usm_type + + def __abs__(self): + r"""Return ``\|self\|``.""" + return dpnp.abs(self) + + def __add__(self, other): + """Return ``self+value``.""" + return dpnp.add(self, other) + + def __and__(self, other): + """Return ``self&value``.""" + return dpnp.bitwise_and(self, other) + + # '__array__', + # '__array_finalize__', + # '__array_function__', + # '__array_interface__', + # '__array_prepare__', + # '__array_priority__', + # '__array_struct__', + # '__array_ufunc__', + # '__array_wrap__', + + def __bool__(self): + """``True`` if self else ``False``.""" + return self._array_obj.__bool__() + + # '__class__', + + def __complex__(self): + return self._array_obj.__complex__() + + # '__contains__', + + def __copy__(self): + """ + Used if :func:`copy.copy` is called on an array. Returns a copy of the array. + + Equivalent to ``a.copy(order="K")``. + + """ + return self.copy(order="K") + + # '__deepcopy__', + # '__delattr__', + # '__delitem__', + # '__dir__', + # '__divmod__', + # '__doc__', + + def __dlpack__( + self, *, stream=None, max_version=None, dl_device=None, copy=None + ): + """ + Produces DLPack capsule. + + Parameters + ---------- + stream : {:class:`dpctl.SyclQueue`, None}, optional + Execution queue to synchronize with. If ``None``, synchronization + is not performed. + Default: ``None``. + max_version {tuple of ints, None}, optional + The maximum DLPack version the consumer (caller of ``__dlpack__``) + supports. As ``__dlpack__`` may not always return a DLPack capsule + with version `max_version`, the consumer must verify the version + even if this argument is passed. + Default: ``None``. + dl_device {tuple, None}, optional: + The device the returned DLPack capsule will be placed on. The + device must be a 2-tuple matching the format of + ``__dlpack_device__`` method, an integer enumerator representing + the device type followed by an integer representing the index of + the device. + Default: ``None``. + copy {bool, None}, optional: + Boolean indicating whether or not to copy the input. + + * If `copy` is ``True``, the input will always be copied. + * If ``False``, a ``BufferError`` will be raised if a copy is + deemed necessary. + * If ``None``, a copy will be made only if deemed necessary, + otherwise, the existing memory buffer will be reused. + + Default: ``None``. + + Raises + ------ + MemoryError: + when host memory can not be allocated. + DLPackCreationError: + when array is allocated on a partitioned SYCL device, or with + a non-default context. + BufferError: + when a copy is deemed necessary but `copy` is ``False`` or when + the provided `dl_device` cannot be handled. + + """ + + return self._array_obj.__dlpack__( + stream=stream, + max_version=max_version, + dl_device=dl_device, + copy=copy, + ) + + def __dlpack_device__(self): + """ + Gives a tuple (``device_type``, ``device_id``) corresponding to + ``DLDevice`` entry in ``DLTensor`` in DLPack protocol. + + The tuple describes the non-partitioned device where the array has been + allocated, or the non-partitioned parent device of the allocation + device. + + Raises + ------ + DLPackCreationError: + when the ``device_id`` could not be determined. + + """ + + return self._array_obj.__dlpack_device__() + +
+[docs] + def __eq__(self, other): + """Return ``self==value``.""" + return dpnp.equal(self, other)
+ + + def __float__(self): + return self._array_obj.__float__() + + def __floordiv__(self, other): + """Return ``self//value``.""" + return dpnp.floor_divide(self, other) + + # '__format__', + +
+[docs] + def __ge__(self, other): + """Return ``self>=value``.""" + return dpnp.greater_equal(self, other)
+ + + # '__getattribute__', + +
+[docs] + def __getitem__(self, key): + """Return ``self[key]``.""" + key = _get_unwrapped_index_key(key) + + item = self._array_obj.__getitem__(key) + if not isinstance(item, dpt.usm_ndarray): + raise RuntimeError( + "Expected dpctl.tensor.usm_ndarray, got {}" + "".format(type(item)) + ) + + res = self.__new__(dpnp_array) + res._array_obj = item + return res
+ + +
+[docs] + def __gt__(self, other): + """Return ``self>value``.""" + return dpnp.greater(self, other)
+ + + # '__hash__', + + def __iadd__(self, other): + """Return ``self+=value``.""" + dpnp.add(self, other, out=self) + return self + + def __iand__(self, other): + """Return ``self&=value``.""" + dpnp.bitwise_and(self, other, out=self) + return self + + def __ifloordiv__(self, other): + """Return ``self//=value``.""" + dpnp.floor_divide(self, other, out=self) + return self + + def __ilshift__(self, other): + """Return ``self<<=value``.""" + dpnp.left_shift(self, other, out=self) + return self + + # '__imatmul__', + + def __imod__(self, other): + """Return ``self%=value``.""" + dpnp.remainder(self, other, out=self) + return self + + def __imul__(self, other): + """Return ``self*=value``.""" + dpnp.multiply(self, other, out=self) + return self + + def __index__(self): + return self._array_obj.__index__() + + # '__init__', + # '__init_subclass__', + + def __int__(self): + return self._array_obj.__int__() + + def __invert__(self): + """Return ``~self``.""" + return dpnp.invert(self) + + def __ior__(self, other): + """Return ``self|=value``.""" + dpnp.bitwise_or(self, other, out=self) + return self + + def __ipow__(self, other): + """Return ``self**=value``.""" + dpnp.power(self, other, out=self) + return self + + def __irshift__(self, other): + """Return ``self>>=value``.""" + dpnp.right_shift(self, other, out=self) + return self + + def __isub__(self, other): + """Return ``self-=value``.""" + dpnp.subtract(self, other, out=self) + return self + + # '__iter__', + + def __itruediv__(self, other): + """Return ``self/=value``.""" + dpnp.true_divide(self, other, out=self) + return self + + def __ixor__(self, other): + """Return ``self^=value``.""" + dpnp.bitwise_xor(self, other, out=self) + return self + +
+[docs] + def __le__(self, other): + """Return ``self<=value``.""" + return dpnp.less_equal(self, other)
+ + +
+[docs] + def __len__(self): + """Return ``len(self)``.""" + return self._array_obj.__len__()
+ + + def __lshift__(self, other): + """Return ``self<<value``.""" + return dpnp.left_shift(self, other) + +
+[docs] + def __lt__(self, other): + """Return ``self<value``.""" + return dpnp.less(self, other)
+ + + def __matmul__(self, other): + """Return ``self@value``.""" + return dpnp.matmul(self, other) + + def __mod__(self, other): + """Return ``self%value``.""" + return dpnp.remainder(self, other) + + def __mul__(self, other): + """Return ``self*value``.""" + return dpnp.multiply(self, other) + +
+[docs] + def __ne__(self, other): + """Return ``self!=value``.""" + return dpnp.not_equal(self, other)
+ + + def __neg__(self): + """Return ``-self``.""" + return dpnp.negative(self) + + # '__new__', + + def __or__(self, other): + """Return ``self|value``.""" + return dpnp.bitwise_or(self, other) + + def __pos__(self): + """Return ``+self``.""" + return dpnp.positive(self) + + def __pow__(self, other): + """Return ``self**value``.""" + return dpnp.power(self, other) + + def __radd__(self, other): + return dpnp.add(other, self) + + def __rand__(self, other): + return dpnp.bitwise_and(other, self) + + # '__rdivmod__', + # '__reduce__', + # '__reduce_ex__', + + def __repr__(self): + """Return ``repr(self)``.""" + return dpt.usm_ndarray_repr(self._array_obj, prefix="array") + + def __rfloordiv__(self, other): + return dpnp.floor_divide(self, other) + + def __rlshift__(self, other): + return dpnp.left_shift(other, self) + + def __rmatmul__(self, other): + return dpnp.matmul(other, self) + + def __rmod__(self, other): + return dpnp.remainder(other, self) + + def __rmul__(self, other): + return dpnp.multiply(other, self) + + def __ror__(self, other): + return dpnp.bitwise_or(other, self) + + def __rpow__(self, other): + return dpnp.power(other, self) + + def __rrshift__(self, other): + return dpnp.right_shift(other, self) + + def __rshift__(self, other): + """Return ``self>>value``.""" + return dpnp.right_shift(self, other) + + def __rsub__(self, other): + return dpnp.subtract(other, self) + + def __rtruediv__(self, other): + return dpnp.true_divide(other, self) + + def __rxor__(self, other): + return dpnp.bitwise_xor(other, self) + + # '__setattr__', + +
+[docs] + def __setitem__(self, key, val): + """Set ``self[key]`` to value.""" + key = _get_unwrapped_index_key(key) + + if isinstance(val, dpnp_array): + val = val.get_array() + + self._array_obj.__setitem__(key, val)
+ + + # '__setstate__', + # '__sizeof__', + + __slots__ = ("_array_obj",) + + def __str__(self): + """Return ``str(self)``.""" + return self._array_obj.__str__() + + def __sub__(self, other): + """Return ``self-value``.""" + return dpnp.subtract(self, other) + + # '__subclasshook__', + + def __truediv__(self, other): + """Return ``self/value``.""" + return dpnp.true_divide(self, other) + + def __xor__(self, other): + """Return ``self^value``.""" + return dpnp.bitwise_xor(self, other) + + @staticmethod + def _create_from_usm_ndarray(usm_ary: dpt.usm_ndarray): + if not isinstance(usm_ary, dpt.usm_ndarray): + raise TypeError( + f"Expected dpctl.tensor.usm_ndarray, got {type(usm_ary)}" + ) + res = dpnp_array.__new__(dpnp_array) + res._array_obj = usm_ary + return res + +
+[docs] + def all(self, axis=None, out=None, keepdims=False, *, where=True): + """ + Returns True if all elements evaluate to True. + + Refer to :obj:`dpnp.all` for full documentation. + + See Also + -------- + :obj:`dpnp.all` : equivalent function + + """ + + return dpnp.all( + self, axis=axis, out=out, keepdims=keepdims, where=where + )
+ + +
+[docs] + def any(self, axis=None, out=None, keepdims=False, *, where=True): + """ + Returns True if any of the elements of `a` evaluate to True. + + Refer to :obj:`dpnp.any` for full documentation. + + See Also + -------- + :obj:`dpnp.any` : equivalent function + + """ + + return dpnp.any( + self, axis=axis, out=out, keepdims=keepdims, where=where + )
+ + +
+[docs] + def argmax(self, axis=None, out=None, *, keepdims=False): + """ + Returns array of indices of the maximum values along the given axis. + + Refer to :obj:`dpnp.argmax` for full documentation. + + """ + + return dpnp.argmax(self, axis=axis, out=out, keepdims=keepdims)
+ + +
+[docs] + def argmin(self, axis=None, out=None, *, keepdims=False): + """ + Return array of indices to the minimum values along the given axis. + + Refer to :obj:`dpnp.argmin` for full documentation. + + """ + + return dpnp.argmin(self, axis=axis, out=out, keepdims=keepdims)
+ + + # 'argpartition', + +
+[docs] + def argsort(self, axis=-1, kind=None, order=None): + """ + Return an ndarray of indices that sort the array along the specified axis. + + Refer to :obj:`dpnp.argsort` for full documentation. + + """ + return dpnp.argsort(self, axis, kind, order)
+ + +
+[docs] + def asnumpy(self): + """ + Copy content of the array into :class:`numpy.ndarray` instance of the same shape and data type. + + Returns + ------- + numpy.ndarray + An instance of :class:`numpy.ndarray` populated with the array content. + + """ + + return dpt.asnumpy(self._array_obj)
+ + +
+[docs] + def astype( + self, + dtype, + order="K", + casting="unsafe", + subok=True, + copy=True, + device=None, + ): + """ + Copy the array with data type casting. + + Refer to :obj:`dpnp.astype` for full documentation. + + Parameters + ---------- + x1 : {dpnp.ndarray, usm_ndarray} + Array data type casting. + dtype : dtype + Target data type. + order : {"C", "F", "A", "K"}, optional + Row-major (C-style) or column-major (Fortran-style) order. + When ``order`` is 'A', it uses 'F' if ``a`` is column-major and uses 'C' otherwise. + And when ``order`` is 'K', it keeps strides as closely as possible. + copy : bool + If it is False and no cast happens, then this method returns the array itself. + Otherwise, a copy is returned. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur. + Defaults to ``'unsafe'`` for backwards compatibility. + + - 'no' means the data types should not be cast at all. + - 'equiv' means only byte-order changes are allowed. + - 'safe' means only casts which can preserve values are allowed. + - 'same_kind' means only safe casts or casts within a kind, like + float64 to float32, are allowed. + - 'unsafe' means any data conversions may be done. + + copy : {bool}, optional + By default, ``astype`` always returns a newly allocated array. If + this is set to ``False``, and the `dtype`, `order`, and `subok` + requirements are satisfied, the input array is returned instead of + a copy. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. Default: ``None``. + + Returns + ------- + arr_t : dpnp.ndarray + Unless `copy` is ``False`` and the other conditions for returning the input array + are satisfied, `arr_t` is a new array of the same shape as the input array, + with dtype, order given by dtype, order. + + Limitations + ----------- + Parameter `subok` is supported with default value. + Otherwise ``NotImplementedError`` exception will be raised. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([1, 2, 2.5]) + >>> x + array([1. , 2. , 2.5]) + >>> x.astype(int) + array([1, 2, 2]) + + """ + + if subok is not True: + raise NotImplementedError( + f"subok={subok} is currently not supported" + ) + + return dpnp.astype( + self, dtype, order=order, casting=casting, copy=copy, device=device + )
+ + + # 'base', + # 'byteswap', + +
+[docs] + def choose(input, choices, out=None, mode="raise"): + """ + Construct an array from an index array and a set of arrays to choose from. + + Refer to :obj:`dpnp.choose` for full documentation. + + """ + + return dpnp.choose(input, choices, out, mode)
+ + +
+[docs] + def clip(self, min=None, max=None, out=None, **kwargs): + """ + Clip (limit) the values in an array. + + Refer to :obj:`dpnp.clip` for full documentation. + + """ + + return dpnp.clip(self, min, max, out=out, **kwargs)
+ + + # 'compress', + +
+[docs] + def conj(self): + """ + Complex-conjugate all elements. + + Refer to :obj:`dpnp.conjugate` for full documentation. + + """ + + if not dpnp.issubdtype(self.dtype, dpnp.complexfloating): + return self + else: + return dpnp.conjugate(self)
+ + +
+[docs] + def conjugate(self): + """ + Return the complex conjugate, element-wise. + + Refer to :obj:`dpnp.conjugate` for full documentation. + + """ + + if not dpnp.issubdtype(self.dtype, dpnp.complexfloating): + return self + else: + return dpnp.conjugate(self)
+ + +
+[docs] + def copy(self, order="C", device=None, usm_type=None, sycl_queue=None): + """ + Return a copy of the array. + + Refer to :obj:`dpnp.copy` for full documentation. + + Parameters + ---------- + order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter + selector string, an instance of :class:`dpctl.SyclDevice` + corresponding to a non-partitioned SYCL device, an instance of + :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + Default: ``None``. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + A copy of the array. + + See also + -------- + :obj:`dpnp.copy` : Similar function with different default behavior + :obj:`dpnp.copyto` : Copies values from one array to another. + + Notes + ----- + This function is the preferred method for creating an array copy. + The function :func:`dpnp.copy` is similar, but it defaults to using + order ``"K"``. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[1, 2, 3], [4, 5, 6]], order='F') + >>> y = x.copy() + >>> x.fill(0) + + >>> x + array([[0, 0, 0], + [0, 0, 0]]) + + >>> y + array([[1, 2, 3], + [4, 5, 6]]) + + >>> y.flags['C_CONTIGUOUS'] + True + + """ + + return dpnp.copy( + self, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + # 'ctypes', + +
+[docs] + def cumprod(self, axis=None, dtype=None, out=None): + """ + Return the cumulative product of the elements along the given axis. + + Refer to :obj:`dpnp.cumprod` for full documentation. + + """ + + return dpnp.cumprod(self, axis=axis, dtype=dtype, out=out)
+ + +
+[docs] + def cumsum(self, axis=None, dtype=None, out=None): + """ + Return the cumulative sum of the elements along the given axis. + + Refer to :obj:`dpnp.cumsum` for full documentation. + + """ + + return dpnp.cumsum(self, axis=axis, dtype=dtype, out=out)
+ + + # 'data', + +
+[docs] + def diagonal(self, offset=0, axis1=0, axis2=1): + """ + Return specified diagonals. + + Refer to :obj:`dpnp.diagonal` for full documentation. + + See Also + -------- + :obj:`dpnp.diagonal` : Equivalent function. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(4).reshape(2,2) + >>> a.diagonal() + array([0, 3]) + + """ + + return dpnp.diagonal(self, offset=offset, axis1=axis1, axis2=axis2)
+ + +
+[docs] + def dot(self, b, out=None): + """ + Dot product of two arrays. + + Refer to :obj:`dpnp.dot` for full documentation. + + Examples + -------- + >>> import dpnp as np + >>> a = np.eye(2) + >>> b = np.ones((2, 2)) * 2 + >>> a.dot(b) + array([[2., 2.], + [2., 2.]]) + + This array method can be conveniently chained: + + >>> a.dot(b).dot(b) + array([[8., 8.], + [8., 8.]]) + """ + + return dpnp.dot(self, b, out)
+ + + @property + def dtype(self): + """Returns NumPy's dtype corresponding to the type of the array elements.""" + + return self._array_obj.dtype + + # 'dump', + # 'dumps', + +
+[docs] + def fill(self, value): + """ + Fill the array with a scalar value. + + Parameters + ---------- + value : scalar + All elements of `a` will be assigned this value. + + Examples + -------- + >>> a = np.array([1, 2]) + >>> a.fill(0) + >>> a + array([0, 0]) + >>> a = np.empty(2) + >>> a.fill(1) + >>> a + array([1., 1.]) + + """ + + for i in range(self.size): + self.flat[i] = value
+ + + @property + def flags(self): + """Return information about the memory layout of the array.""" + + return self._array_obj.flags + + @property + def flat(self): + """Return a flat iterator, or set a flattened version of self to value.""" + + return dpnp.flatiter(self) + +
+[docs] + def flatten(self, order="C"): + """ + Return a copy of the array collapsed into one dimension. + + For full documentation refer to :obj:`numpy.ndarray.flatten`. + + Parameters + ---------- + order : {"C", "F"}, optional + Read the elements using this index order, and place the elements + into the reshaped array using this index order. + + - ``"C"`` means to read / write the elements using C-like index + order, with the last axis index changing fastest, back to the + first axis index changing slowest. + - ``"F"`` means to read / write the elements using Fortran-like + index order, with the first index changing fastest, and the + last index changing slowest. + + Default: ``"C"``. + + Returns + ------- + out: dpnp.ndarray + A copy of the input array, flattened to one dimension. + + See Also + -------- + :obj:`dpnp.ravel` : Return a flattened array. + :obj:`dpnp.flat` : A 1-D flat iterator over the array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, 4]]) + >>> a.flatten() + array([1, 2, 3, 4]) + >>> a.flatten("F") + array([1, 3, 2, 4]) + + """ + + return self.reshape(-1, order=order, copy=True)
+ + + # 'getfield', + + @property + def imag(self): + """ + The imaginary part of the array. + + For full documentation refer to :obj:`numpy.ndarray.imag`. + + Examples + -------- + >>> import dpnp as np + >>> x = np.sqrt(np.array([1+0j, 0+1j])) + >>> x.imag + array([0. , 0.70710677]) + + """ + return dpnp_array._create_from_usm_ndarray( + dpnp.get_usm_ndarray(self).imag + ) + + @imag.setter + def imag(self, value): + """ + Set the imaginary part of the array. + + For full documentation refer to :obj:`numpy.ndarray.imag`. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1+2j, 3+4j, 5+6j]) + >>> a.imag = 9 + >>> a + array([1.+9.j, 3.+9.j, 5.+9.j]) + + """ + if dpnp.issubdtype(self.dtype, dpnp.complexfloating): + dpnp.copyto(self._array_obj.imag, value) + else: + raise TypeError("array does not have imaginary part to set") + +
+[docs] + def item(self, id=None): + """ + Copy an element of an array to a standard Python scalar and return it. + + For full documentation refer to :obj:`numpy.ndarray.item`. + + Examples + -------- + >>> np.random.seed(123) + >>> x = np.random.randint(9, size=(3, 3)) + >>> x + array([[2, 2, 6], + [1, 3, 6], + [1, 0, 1]]) + >>> x.item(3) + 1 + >>> x.item(7) + 0 + >>> x.item((0, 1)) + 2 + >>> x.item((2, 2)) + 1 + + """ + + if id is None: + if self.size != 1: + raise ValueError( + "DPNP ndarray::item(): can only convert an array of size 1 to a Python scalar" + ) + else: + id = 0 + + return self.flat[id]
+ + + # 'itemset', + + @property + def itemsize(self): + """Size of one array element in bytes.""" + + return self._array_obj.itemsize + +
+[docs] + def max( + self, + axis=None, + out=None, + keepdims=False, + initial=None, + where=True, + ): + """ + Return the maximum along an axis. + + Refer to :obj:`dpnp.max` for full documentation. + + """ + + return dpnp.max( + self, + axis=axis, + out=out, + keepdims=keepdims, + initial=initial, + where=where, + )
+ + +
+[docs] + def mean( + self, axis=None, dtype=None, out=None, keepdims=False, *, where=True + ): + """ + Returns the average of the array elements. + + Refer to :obj:`dpnp.mean` for full documentation. + + """ + + return dpnp.mean(self, axis, dtype, out, keepdims, where=where)
+ + +
+[docs] + def min( + self, + axis=None, + out=None, + keepdims=False, + initial=None, + where=True, + ): + """ + Return the minimum along a given axis. + + Refer to :obj:`dpnp.min` for full documentation. + + """ + + return dpnp.min( + self, + axis=axis, + out=out, + keepdims=keepdims, + initial=initial, + where=where, + )
+ + + @property + def nbytes(self): + """Total bytes consumed by the elements of the array.""" + + return self._array_obj.nbytes + + @property + def ndim(self): + """ + Return the number of dimensions of an array. + + For full documentation refer to :obj:`numpy.ndarray.ndim`. + + Returns + ------- + number_of_dimensions : int + The number of dimensions in `a`. + + See Also + -------- + :obj:`dpnp.ndim` : Equivalent method for any array-like input. + :obj:`dpnp.shape` : Return the shape of an array. + :obj:`dpnp.ndarray.shape` : Return the shape of an array. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([1, 2, 3]) + >>> x.ndim + 1 + >>> y = np.zeros((2, 3, 4)) + >>> y.ndim + 3 + + """ + + return self._array_obj.ndim + + # 'newbyteorder', + +
+[docs] + def nonzero(self): + """ + Return the indices of the elements that are non-zero. + + Refer to :obj:`dpnp.nonzero` for full documentation. + + """ + + return dpnp.nonzero(self)
+ + +
+[docs] + def partition(self, kth, axis=-1, kind="introselect", order=None): + """ + Return a partitioned copy of an array. + + Rearranges the elements in the array in such a way that the value of + the element in `kth` position is in the position it would be in + a sorted array. + + All elements smaller than the `kth` element are moved before this + element and all equal or greater are moved behind it. The ordering + of the elements in the two partitions is undefined. + + Refer to `dpnp.partition` for full documentation. + + See Also + -------- + :obj:`dpnp.partition` : Return a partitioned copy of an array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([3, 4, 2, 1]) + >>> a.partition(3) + >>> a + array([1, 2, 3, 4]) + + """ + + self._array_obj = dpnp.partition( + self, kth, axis=axis, kind=kind, order=order + ).get_array()
+ + +
+[docs] + def prod( + self, + axis=None, + dtype=None, + out=None, + keepdims=False, + initial=None, + where=True, + ): + """ + Returns the prod along a given axis. + + Refer to :obj:`dpnp.prod` for full documentation. + + """ + + return dpnp.prod( + self, + axis=axis, + dtype=dtype, + out=out, + keepdims=keepdims, + initial=initial, + where=where, + )
+ + +
+[docs] + def put(self, indices, vals, /, *, axis=None, mode="wrap"): + """ + Puts values of an array into another array along a given axis. + + Refer to :obj:`dpnp.put` for full documentation. + + """ + + return dpnp.put(self, indices, vals, axis=axis, mode=mode)
+ + +
+[docs] + def ravel(self, order="C"): + """ + Return a contiguous flattened array. + + Refer to :obj:`dpnp.ravel` for full documentation. + + """ + + return dpnp.ravel(self, order=order)
+ + + @property + def real(self): + """ + The real part of the array. + + For full documentation refer to :obj:`numpy.ndarray.real`. + + Examples + -------- + >>> import dpnp as np + >>> x = np.sqrt(np.array([1+0j, 0+1j])) + >>> x.real + array([1. , 0.70710677]) + + """ + + if dpnp.issubdtype(self.dtype, dpnp.complexfloating): + return dpnp_array._create_from_usm_ndarray( + dpnp.get_usm_ndarray(self).real + ) + return self + + @real.setter + def real(self, value): + """ + Set the real part of the array. + + For full documentation refer to :obj:`numpy.ndarray.real`. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1+2j, 3+4j, 5+6j]) + >>> a.real = 9 + >>> a + array([9.+2.j, 9.+4.j, 9.+6.j]) + + """ + + dpnp.copyto(self._array_obj.real, value) + +
+[docs] + def repeat(self, repeats, axis=None): + """ + Repeat elements of an array. + + Refer to :obj:`dpnp.repeat` for full documentation. + + """ + + return dpnp.repeat(self, repeats, axis=axis)
+ + +
+[docs] + def reshape(self, *sh, **kwargs): + """ + Returns an array containing the same data with a new shape. + + Refer to :obj:`dpnp.reshape` for full documentation. + + Returns + ------- + y : dpnp.ndarray + This will be a new view object if possible; + otherwise, it will be a copy. + + See Also + -------- + :obj:`dpnp.reshape` : Equivalent function. + + Notes + ----- + Unlike the free function `dpnp.reshape`, this method on `ndarray` allows + the elements of the shape parameter to be passed in as separate arguments. + For example, ``a.reshape(10, 11)`` is equivalent to + ``a.reshape((10, 11))``. + + """ + + if len(sh) == 1: + sh = sh[0] + return dpnp.reshape(self, sh, **kwargs)
+ + + # 'resize', + +
+[docs] + def round(self, decimals=0, out=None): + """ + Return array with each element rounded to the given number of decimals. + + Refer to :obj:`dpnp.round` for full documentation. + + """ + + return dpnp.around(self, decimals, out)
+ + +
+[docs] + def searchsorted(self, v, side="left", sorter=None): + """ + Find indices where elements of `v` should be inserted in `a` + to maintain order. + + Refer to :obj:`dpnp.searchsorted` for full documentation + + """ + + return dpnp.searchsorted(self, v, side=side, sorter=sorter)
+ + + # 'setfield', + # 'setflags', + + @property + def shape(self): + """ + Tuple of array dimensions. + + The shape property is usually used to get the current shape of an array, + but may also be used to reshape the array in-place by assigning a tuple + of array dimensions to it. Unlike :obj:`dpnp.reshape`, only non-negative + values are supported to be set as new shape. Reshaping an array in-place + will fail if a copy is required. + + For full documentation refer to :obj:`numpy.ndarray.shape`. + + Note + ---- + Using :obj:`dpnp.ndarray.reshape` or :obj:`dpnp.reshape` is the + preferred approach to set new shape of an array. + + See Also + -------- + :obj:`dpnp.shape` : Equivalent getter function. + :obj:`dpnp.reshape` : Function similar to setting `shape`. + :obj:`dpnp.ndarray.reshape` : Method similar to setting `shape`. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([1, 2, 3, 4]) + >>> x.shape + (4,) + >>> y = np.zeros((2, 3, 4)) + >>> y.shape + (2, 3, 4) + + >>> y.shape = (3, 8) + >>> y + array([[ 0., 0., 0., 0., 0., 0., 0., 0.], + [ 0., 0., 0., 0., 0., 0., 0., 0.], + [ 0., 0., 0., 0., 0., 0., 0., 0.]]) + >>> y.shape = (3, 6) + ... + TypeError: Can not reshape array of size 24 into (3, 6) + + """ + + return self._array_obj.shape + + @shape.setter + def shape(self, newshape): + """ + Set new lengths of axes. + + Modifies array instance in-place by changing its metadata about the + shape and the strides of the array, or raises `AttributeError` + exception if in-place change is not possible. + + Whether the array can be reshape in-place depends on its strides. Use + :obj:`dpnp.reshape` function which always succeeds to reshape the array + by performing a copy if necessary. + + For full documentation refer to :obj:`numpy.ndarray.shape`. + + Parameters + ---------- + newshape : {tuple, int} + New shape. Only non-negative values are supported. The new shape + may not lead to the change in the number of elements in the array. + + """ + + self._array_obj.shape = newshape + + @property + def size(self): + """ + Number of elements in the array. + + Returns + ------- + element_count : int + Number of elements in the array. + + See Also + -------- + :obj:`dpnp.size` : Return the number of elements along a given axis. + :obj:`dpnp.shape` : Return the shape of an array. + :obj:`dpnp.ndarray.shape` : Return the shape of an array. + + Examples + -------- + >>> import dpnp as np + >>> x = np.zeros((3, 5, 2), dtype=np.complex64) + >>> x.size + 30 + + """ + + return self._array_obj.size + +
+[docs] + def sort(self, axis=-1, kind=None, order=None): + """ + Sort an array in-place. + + Refer to :obj:`dpnp.sort` for full documentation. + + Note + ---- + `axis` in :obj:`dpnp.sort` could be integer or ``None``. If ``None``, + the array is flattened before sorting. However, `axis` in + :obj:`dpnp.ndarray.sort` can only be integer since it sorts an array + in-place. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1,4],[3,1]]) + >>> a.sort(axis=1) + >>> a + array([[1, 4], + [1, 3]]) + >>> a.sort(axis=0) + >>> a + array([[1, 1], + [3, 4]]) + + """ + + if axis is None: + raise TypeError( + "'NoneType' object cannot be interpreted as an integer" + ) + self[...] = dpnp.sort(self, axis=axis, kind=kind, order=order)
+ + +
+[docs] + def squeeze(self, axis=None): + """ + Remove single-dimensional entries from the shape of an array. + + Refer to :obj:`dpnp.squeeze` for full documentation + + """ + + return dpnp.squeeze(self, axis)
+ + +
+[docs] + def std( + self, + axis=None, + dtype=None, + out=None, + ddof=0, + keepdims=False, + *, + where=True, + ): + """ + Returns the standard deviation of the array elements, along given axis. + + Refer to :obj:`dpnp.std` for full documentation. + + """ + + return dpnp.std(self, axis, dtype, out, ddof, keepdims, where=where)
+ + + @property + def strides(self): + """ + Returns memory displacement in array elements, upon unit + change of respective index. + + For example, for strides ``(s1, s2, s3)`` and multi-index + ``(i1, i2, i3)`` position of the respective element relative + to zero multi-index element is ``s1*s1 + s2*i2 + s3*i3``. + + """ + + return self._array_obj.strides + +
+[docs] + def sum( + self, + axis=None, + dtype=None, + out=None, + keepdims=False, + initial=None, + where=True, + ): + """ + Returns the sum along a given axis. + + Refer to :obj:`dpnp.sum` for full documentation. + + """ + + return dpnp.sum( + self, + axis=axis, + dtype=dtype, + out=out, + keepdims=keepdims, + initial=initial, + where=where, + )
+ + +
+[docs] + def swapaxes(self, axis1, axis2): + """ + Interchange two axes of an array. + + Refer to :obj:`dpnp.swapaxes` for full documentation. + + """ + + return dpnp.swapaxes(self, axis1=axis1, axis2=axis2)
+ + +
+[docs] + def take(self, indices, axis=None, out=None, mode="wrap"): + """ + Take elements from an array along an axis. + + Refer to :obj:`dpnp.take` for full documentation. + + """ + + return dpnp.take(self, indices, axis=axis, out=out, mode=mode)
+ + + # 'tobytes', + # 'tofile', + # 'tolist', + # 'tostring', + +
+[docs] + def trace(self, offset=0, axis1=0, axis2=1, dtype=None, out=None): + """ + Return the sum along diagonals of the array. + + Refer to :obj:`dpnp.trace` for full documentation. + + """ + + return dpnp.trace( + self, offset=offset, axis1=axis1, axis2=axis2, dtype=dtype, out=out + )
+ + +
+[docs] + def transpose(self, *axes): + """ + Returns a view of the array with axes transposed. + + For full documentation refer to :obj:`numpy.ndarray.transpose`. + + Parameters + ---------- + axes : None, tuple or list of ints, n ints, optional + * ``None`` or no argument: reverses the order of the axes. + * ``tuple or list of ints``: `i` in the `j`-th place in the + tuple/list means that the array’s `i`-th axis becomes the + transposed array’s `j`-th axis. + * ``n ints``: same as an n-tuple/n-list of the same integers (this + form is intended simply as a “convenience” alternative to the + tuple form). + + Returns + ------- + out : dpnp.ndarray + View of the array with its axes suitably permuted. + + See Also + -------- + :obj:`dpnp.transpose` : Equivalent function. + :obj:`dpnp.ndarray.ndarray.T` : Array property returning the array transposed. + :obj:`dpnp.ndarray.reshape` : Give a new shape to an array without changing its data. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, 4]]) + >>> a + array([[1, 2], + [3, 4]]) + >>> a.transpose() + array([[1, 3], + [2, 4]]) + >>> a.transpose((1, 0)) + array([[1, 3], + [2, 4]]) + + >>> a = np.array([1, 2, 3, 4]) + >>> a + array([1, 2, 3, 4]) + >>> a.transpose() + array([1, 2, 3, 4]) + + """ + + ndim = self.ndim + if ndim < 2: + return self + + axes_len = len(axes) + if axes_len == 1 and isinstance(axes[0], (tuple, list)): + axes = axes[0] + + res = self.__new__(dpnp_array) + if ndim == 2 and axes_len == 0: + res._array_obj = self._array_obj.T + else: + if len(axes) == 0 or axes[0] is None: + # self.transpose().shape == self.shape[::-1] + # self.transpose(None).shape == self.shape[::-1] + axes = tuple((ndim - x - 1) for x in range(ndim)) + + res._array_obj = dpt.permute_dims(self._array_obj, axes) + return res
+ + +
+[docs] + def var( + self, + axis=None, + dtype=None, + out=None, + ddof=0, + keepdims=False, + *, + where=True, + ): + """ + Returns the variance of the array elements, along given axis. + + Refer to :obj:`dpnp.var` for full documentation. + + """ + + return dpnp.var(self, axis, dtype, out, ddof, keepdims, where=where)
+
+ + + +# 'view' +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_flatiter.html b/pull/2070/_modules/dpnp/dpnp_flatiter.html new file mode 100644 index 00000000000..ec86f5bce14 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_flatiter.html @@ -0,0 +1,223 @@ + + + + + + + + + + dpnp.dpnp_flatiter — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_flatiter

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""Implementation of flatiter."""
+
+import dpnp
+
+
+
+[docs] +class flatiter: + """Flat iterator object to iterate over arrays.""" + + def __init__(self, X): + if type(X) is not dpnp.ndarray: + raise TypeError( + "Argument must be of type dpnp.ndarray, got {}".format(type(X)) + ) + self.arr_ = X + self.size_ = X.size + self.i_ = 0 + + def _multiindex(self, i): + nd = self.arr_.ndim + if nd == 0: + if i == 0: + return () + raise KeyError + elif nd == 1: + return (i,) + sh = self.arr_.shape + i_ = i + multi_index = [0] * nd + for k in reversed(range(1, nd)): + si = sh[k] + q = i_ // si + multi_index[k] = i_ - q * si + i_ = q + multi_index[0] = i_ + return tuple(multi_index) + +
+[docs] + def __getitem__(self, key): + idx = getattr(key, "__index__", None) + if not callable(idx): + raise TypeError(key) + i = idx() + mi = self._multiindex(i) + return self.arr_.__getitem__(mi)
+ + +
+[docs] + def __setitem__(self, key, val): + idx = getattr(key, "__index__", None) + if not callable(idx): + raise TypeError(key) + i = idx() + mi = self._multiindex(i) + return self.arr_.__setitem__(mi, val)
+ + +
+[docs] + def __iter__(self): + return self
+ + +
+[docs] + def __next__(self): + if self.i_ < self.size_: + val = self.__getitem__(self.i_) + self.i_ = self.i_ + 1 + return val + else: + raise StopIteration
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface.html b/pull/2070/_modules/dpnp/dpnp_iface.html new file mode 100644 index 00000000000..0b1f4dc2038 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface.html @@ -0,0 +1,944 @@ + + + + + + + + + + dpnp.dpnp_iface — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+# pylint: disable=protected-access
+
+import os
+
+import dpctl
+import dpctl.tensor as dpt
+import dpctl.tensor._tensor_impl as ti
+import dpctl.utils as dpu
+import numpy
+from dpctl.tensor._device import normalize_queue_device
+
+import dpnp
+from dpnp.dpnp_algo import *
+from dpnp.dpnp_array import dpnp_array
+from dpnp.fft import *
+from dpnp.linalg import *
+from dpnp.random import *
+
+__all__ = [
+    "are_same_logical_tensors",
+    "asnumpy",
+    "astype",
+    "as_usm_ndarray",
+    "check_limitations",
+    "check_supported_arrays_type",
+    "convert_single_elem_array_to_scalar",
+    "default_float_type",
+    "from_dlpack",
+    "get_dpnp_descriptor",
+    "get_include",
+    "get_normalized_queue_device",
+    "get_result_array",
+    "get_usm_ndarray",
+    "get_usm_ndarray_or_scalar",
+    "is_supported_array_or_scalar",
+    "is_supported_array_type",
+    "synchronize_array_data",
+]
+
+from dpnp import float64
+from dpnp.dpnp_iface_arraycreation import *
+from dpnp.dpnp_iface_arraycreation import __all__ as __all__arraycreation
+from dpnp.dpnp_iface_bitwise import *
+from dpnp.dpnp_iface_bitwise import __all__ as __all__bitwise
+from dpnp.dpnp_iface_counting import *
+from dpnp.dpnp_iface_counting import __all__ as __all__counting
+from dpnp.dpnp_iface_histograms import *
+from dpnp.dpnp_iface_histograms import __all__ as __all__histograms
+from dpnp.dpnp_iface_indexing import *
+from dpnp.dpnp_iface_indexing import __all__ as __all__indexing
+from dpnp.dpnp_iface_libmath import *
+from dpnp.dpnp_iface_libmath import __all__ as __all__libmath
+from dpnp.dpnp_iface_linearalgebra import *
+from dpnp.dpnp_iface_linearalgebra import __all__ as __all__linearalgebra
+from dpnp.dpnp_iface_logic import *
+from dpnp.dpnp_iface_logic import __all__ as __all__logic
+from dpnp.dpnp_iface_manipulation import *
+from dpnp.dpnp_iface_manipulation import __all__ as __all__manipulation
+from dpnp.dpnp_iface_mathematical import *
+from dpnp.dpnp_iface_mathematical import __all__ as __all__mathematical
+from dpnp.dpnp_iface_nanfunctions import *
+from dpnp.dpnp_iface_nanfunctions import __all__ as __all__nanfunctions
+from dpnp.dpnp_iface_searching import *
+from dpnp.dpnp_iface_searching import __all__ as __all__searching
+from dpnp.dpnp_iface_sorting import *
+from dpnp.dpnp_iface_sorting import __all__ as __all__sorting
+from dpnp.dpnp_iface_statistics import *
+from dpnp.dpnp_iface_statistics import __all__ as __all__statistics
+from dpnp.dpnp_iface_trigonometric import *
+from dpnp.dpnp_iface_trigonometric import __all__ as __all__trigonometric
+
+# pylint: disable=no-name-in-module
+from .dpnp_utils import (
+    dpnp_descriptor,
+    map_dtype_to_device,
+    use_origin_backend,
+)
+
+__all__ += __all__arraycreation
+__all__ += __all__bitwise
+__all__ += __all__counting
+__all__ += __all__histograms
+__all__ += __all__indexing
+__all__ += __all__libmath
+__all__ += __all__linearalgebra
+__all__ += __all__logic
+__all__ += __all__manipulation
+__all__ += __all__mathematical
+__all__ += __all__nanfunctions
+__all__ += __all__searching
+__all__ += __all__sorting
+__all__ += __all__statistics
+__all__ += __all__trigonometric
+
+
+def are_same_logical_tensors(ar1, ar2):
+    """
+    Check if two arrays are logical views into the same memory.
+
+    Parameters
+    ----------
+    ar1 : {dpnp.ndarray, usm_ndarray}
+        First input array.
+    ar2 : {dpnp.ndarray, usm_ndarray}
+        Second input array.
+
+    Returns
+    -------
+    out : bool
+        ``True`` if two arrays are logical views into the same memory,
+        ``False`` otherwise.
+
+    Examples
+    --------
+    >>> import dpnp as np
+    >>> a = np.array([1, 2, 3])
+    >>> b = a[:]
+    >>> a is b
+    False
+    >>> np.are_same_logical_tensors(a, b)
+    True
+    >>> b[0] = 0
+    >>> a
+    array([0, 2, 3])
+
+    >>> c = a.copy()
+    >>> np.are_same_logical_tensors(a, c)
+    False
+
+    """
+
+    return ti._same_logical_tensors(
+        dpnp.get_usm_ndarray(ar1), dpnp.get_usm_ndarray(ar2)
+    )
+
+
+
+[docs] +def asnumpy(a, order="C"): + """ + Returns the NumPy array with input data. + + Parameters + ---------- + a : {array_like} + Arbitrary object that can be converted to :obj:`numpy.ndarray`. + order : {'C', 'F', 'A', 'K'} + The desired memory layout of the converted array. + When `order` is ``A``, it uses ``F`` if `a` is column-major and uses + ``C`` otherwise. And when `order` is ``K``, it keeps strides as closely + as possible. + + Returns + ------- + out : numpy.ndarray + NumPy interpretation of input array `a`. + + Notes + ----- + This function works exactly the same as :obj:`numpy.asarray`. + + """ + + if isinstance(a, dpnp_array): + return a.asnumpy() + + if isinstance(a, dpt.usm_ndarray): + return dpt.asnumpy(a) + + return numpy.asarray(a, order=order)
+ + + +# pylint: disable=redefined-outer-name +
+[docs] +def astype(x1, dtype, order="K", casting="unsafe", copy=True, device=None): + """ + Copy the array with data type casting. + + Parameters + ---------- + x1 : {dpnp.ndarray, usm_ndarray} + Array data type casting. + dtype : dtype + Target data type. + order : {'C', 'F', 'A', 'K'} + Row-major (C-style) or column-major (Fortran-style) order. + When `order` is ``A``, it uses ``F`` if `a` is column-major and uses + ``C`` otherwise. And when `order` is ``K``, it keeps strides as closely + as possible. + copy : bool + If it is ``False`` and no cast happens, then this method returns + the array itself. Otherwise, a copy is returned. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur. Defaults to ``unsafe`` + for backwards compatibility. + + - 'no' means the data types should not be cast at all. + - 'equiv' means only byte-order changes are allowed. + - 'safe' means only casts which can preserve values are allowed. + - 'same_kind' means only safe casts or casts within a kind, like + float64 to float32, are allowed. + - 'unsafe' means any data conversions may be done. + + copy : {bool}, optional + By default, ``astype`` always returns a newly allocated array. If this + is set to ``False``, and the `dtype`, `order`, and `subok` requirements + are satisfied, the input array is returned instead of a copy. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. Default: ``None``. + + Returns + ------- + arr_t : dpnp.ndarray + Unless `copy` is ``False`` and the other conditions for returning + the input array are satisfied, `arr_t` is a new array of the same shape + as the input array, with dtype, order given by dtype, order. + + """ + + if order is None: + order = "K" + + x1_obj = dpnp.get_usm_ndarray(x1) + array_obj = dpt.astype( + x1_obj, dtype, order=order, casting=casting, copy=copy, device=device + ) + + if array_obj is x1_obj and isinstance(x1, dpnp_array): + # return x1 if dpctl returns a zero copy of x1_obj + return x1 + return dpnp_array._create_from_usm_ndarray(array_obj)
+ + + +def as_usm_ndarray(a, dtype=None, device=None, usm_type=None, sycl_queue=None): + """ + Return :class:`dpctl.tensor.usm_ndarray` from input object `a`. + + Parameters + ---------- + a : {array_like, scalar} + Input array or scalar. + dtype : {None, dtype}, optional + The desired dtype for the result array if new array is creating. If not + given, a default dtype will be used that can represent the values (by + considering Promotion Type Rule and device capabilities when necessary). + Default: ``None``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the result array is created if + required. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + Default: ``None``. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the result array if new array + is created. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for result array allocation if required. + Default: ``None``. + + Returns + ------- + out : usm_ndarray + A dpctl USM ndarray from input array or scalar `a`. + If `a` is instance of :class:`dpnp.ndarray` + or :class:`dpctl.tensor.usm_ndarray`, no array allocation will be done + and `dtype`, `device`, `usm_type`, `sycl_queue` keywords + will be ignored. + + """ + + if is_supported_array_type(a): + return get_usm_ndarray(a) + + return dpt.asarray( + a, dtype=dtype, device=device, usm_type=usm_type, sycl_queue=sycl_queue + ) + + +def check_limitations( + order=None, subok=False, like=None, initial=None, where=True +): + """ + Checking limitation kwargs for their supported values. + + Parameter `order` is only supported with values ``"C"``, ``"F"``, + and ``None``. + Parameter `subok` is only supported with default value ``False``. + Parameter `like` is only supported with default value ``None``. + Parameter `initial` is only supported with default value ``None``. + Parameter `where` is only supported with default value ``True``. + + Raises + ------ + NotImplementedError + If any input kwargs is of unsupported value. + + """ + + if order in ("A", "a", "K", "k"): + raise NotImplementedError( + "Keyword argument `order` is supported only with " + f"values 'C' and 'F', but got '{order}'" + ) + if order not in ("C", "c", "F", "f", None): + raise ValueError( + "Unrecognized `order` keyword value, expecting " + f"'C' or 'F', but got '{order}'" + ) + if like is not None: + raise NotImplementedError( + "Keyword argument `like` is supported only with " + f"default value ``None``, but got {like}" + ) + if subok is not False: + raise NotImplementedError( + "Keyword argument `subok` is supported only with " + f"default value ``False``, but got {subok}" + ) + if initial is not None: + raise NotImplementedError( + "Keyword argument `initial` is only supported with " + f"default value ``None``, but got {initial}" + ) + if where is not True: + raise NotImplementedError( + "Keyword argument `where` is supported only with " + f"default value ``True``, but got {where}" + ) + + +def check_supported_arrays_type(*arrays, scalar_type=False, all_scalars=False): + """ + Return ``True`` if each array has either type of scalar, + :class:`dpnp.ndarray` or :class:`dpctl.tensor.usm_ndarray`. + But if any array has unsupported type, ``TypeError`` will be raised. + + Parameters + ---------- + arrays : {dpnp.ndarray, usm_ndarray} + Input arrays to check for supported types. + scalar_type : {bool}, optional + A scalar type is also considered as supported if flag is ``True``. + all_scalars : {bool}, optional + All the input arrays can be scalar if flag is ``True``. + + Returns + ------- + out : bool + ``True`` if each type of input `arrays` is supported type, + ``False`` otherwise. + + Raises + ------ + TypeError + If any input array from `arrays` is of unsupported array type. + + """ + + any_is_array = False + for a in arrays: + if is_supported_array_type(a): + any_is_array = True + continue + + if scalar_type and dpnp.isscalar(a): + continue + + raise TypeError( + f"An array must be any of supported type, but got {type(a)}" + ) + + if len(arrays) > 0 and not (all_scalars or any_is_array): + raise TypeError( + "At least one input must be of supported array type, " + "but got all scalars." + ) + return True + + +def convert_single_elem_array_to_scalar(obj, keepdims=False): + """Convert array with single element to scalar.""" + + if (obj.ndim > 0) and (obj.size == 1) and (keepdims is False): + return obj.dtype.type(obj[0]) + + return obj + + +def default_float_type(device=None, sycl_queue=None): + """ + Return a floating type used by default in DPNP depending on device + capabilities. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where an array of default floating type + might be created. The `device` can be ``None`` (the default), an OneAPI + filter selector string, an instance of :class:`dpctl.SyclDevice` + corresponding to a non-partitioned SYCL device, an instance of + :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + The value ``None`` is interpreted as to use a default device. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue which might be used to create an array of default floating + type. The `sycl_queue` can be ``None`` (the default), which is + interpreted as to get the SYCL queue from `device` keyword if present + or to use a default queue. + + Returns + ------- + dt : dtype + A default DPNP floating type. + + """ + + _sycl_queue = get_normalized_queue_device( + device=device, sycl_queue=sycl_queue + ) + return map_dtype_to_device(float64, _sycl_queue.sycl_device) + + +
+[docs] +def from_dlpack(obj, /, *, device=None, copy=None): + """ + Create a dpnp array from a Python object implementing the ``__dlpack__`` + protocol. + + See https://dmlc.github.io/dlpack/latest/ for more details. + + Parameters + ---------- + obj : object + A Python object representing an array that implements the ``__dlpack__`` + and ``__dlpack_device__`` methods. + device : {:class:`dpctl.SyclDevice`, :class:`dpctl.SyclQueue`, + :class:`dpctl.tensor.Device`, tuple, None}, optional + Array API concept of a device where the output array is to be placed. + ``device`` can be ``None``, an oneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + a :class:`dpctl.tensor.Device` object returned by + :attr:`dpctl.tensor.usm_ndarray.device`, or a 2-tuple matching + the format of the output of the ``__dlpack_device__`` method, + an integer enumerator representing the device type followed by + an integer representing the index of the device. + Default: ``None``. + copy {bool, None}, optional + Boolean indicating whether or not to copy the input. + + * If `copy``is ``True``, the input will always be copied. + * If ``False``, a ``BufferError`` will be raised if a copy is deemed + necessary. + * If ``None``, a copy will be made only if deemed necessary, otherwise, + the existing memory buffer will be reused. + + Default: ``None``. + + Returns + ------- + out : dpnp_array + Returns a new dpnp array containing the data from another array + (obj) with the ``__dlpack__`` method on the same device as object. + + Raises + ------ + TypeError: + if `obj` does not implement ``__dlpack__`` method + ValueError: + if the input array resides on an unsupported device + + """ + + usm_res = dpt.from_dlpack(obj, device=device, copy=copy) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +def get_dpnp_descriptor( + ext_obj, + copy_when_strides=True, + copy_when_nondefault_queue=True, + alloc_dtype=None, + alloc_usm_type=None, + alloc_queue=None, +): + """ + Return True: + never + Return DPNP internal data descriptor object if: + 1. We can proceed with input data object with DPNP + 2. We want to handle input data object + Return False if: + 1. We do not want to work with input data object + 2. We can not handle with input data object + """ + + if use_origin_backend(): + return False + + # If input object is a scalar, it means it was allocated on host memory. + # We need to copy it to USM memory according to compute follows data. + if dpnp.isscalar(ext_obj): + ext_obj = array( + ext_obj, + dtype=alloc_dtype, + usm_type=alloc_usm_type, + sycl_queue=alloc_queue, + ) + + # while dpnp functions have no implementation with strides support + # we need to create a non-strided copy + # if function get implementation for strides case + # then this behavior can be disabled with setting "copy_when_strides" + if copy_when_strides and getattr(ext_obj, "strides", None) is not None: + # TODO: replace this workaround when usm_ndarray will provide + # such functionality + shape_offsets = tuple( + numpy.prod(ext_obj.shape[i + 1 :], dtype=numpy.int64) + for i in range(ext_obj.ndim) + ) + + if hasattr(ext_obj, "__sycl_usm_array_interface__"): + ext_obj_offset = ext_obj.__sycl_usm_array_interface__.get( + "offset", 0 + ) + else: + ext_obj_offset = 0 + + if ext_obj.strides != shape_offsets or ext_obj_offset != 0: + ext_obj = array(ext_obj, order="C") + + # while dpnp functions are based on DPNP_QUEUE + # we need to create a copy on device associated with DPNP_QUEUE + # if function get implementation for different queue + # then this behavior can be disabled with setting + # "copy_when_nondefault_queue" + queue = getattr(ext_obj, "sycl_queue", None) + if queue is not None and copy_when_nondefault_queue: + default_queue = dpctl.SyclQueue() + queue_is_default = ( + dpctl.utils.get_execution_queue([queue, default_queue]) is not None + ) + if not queue_is_default: + ext_obj = array(ext_obj, sycl_queue=default_queue) + + dpnp_desc = dpnp_descriptor(ext_obj) + if dpnp_desc.is_valid: # pylint: disable=using-constant-test + return dpnp_desc + + return False + + +
+[docs] +def get_include(): + r""" + Return the directory that contains \*.h header files of dpnp C++ backend. + + An extension module that needs to be compiled against dpnp backend + should use this function to locate the appropriate include directory. + + """ + + return os.path.join(os.path.dirname(__file__), "backend", "include")
+ + + +def get_normalized_queue_device(obj=None, device=None, sycl_queue=None): + """ + Utility to process complementary keyword arguments 'device' and 'sycl_queue' + in subsequent calls of functions from `dpctl.tensor` module. + + If both arguments 'device' and 'sycl_queue' have default value ``None`` + and 'obj' has `sycl_queue` attribute, it assumes that Compute Follows Data + approach has to be applied and so the resulting SYCL queue will be + normalized based on the queue value from 'obj'. + + Parameters + ---------- + obj : object, optional + A python object. Can be an instance of `dpnp_array`, + `dpctl.tensor.usm_ndarray`, an object representing SYCL USM allocation + and implementing `__sycl_usm_array_interface__` protocol, an instance + of `numpy.ndarray`, an object supporting Python buffer protocol, + a Python scalar, or a (possibly nested) sequence of Python scalars. + sycl_queue : class:`dpctl.SyclQueue`, optional + A queue which explicitly indicates where USM allocation is done + and the population code (if any) is executed. + Value ``None`` is interpreted as to get the SYCL queue from either + `obj` parameter if not ``None`` or from `device` keyword, + or to use default queue. + device : {string, :class:`dpctl.SyclDevice`, :class:`dpctl.SyclQueue, + :class:`dpctl.tensor.Device`}, optional + An array-API keyword indicating non-partitioned SYCL device + where array is allocated. + + Returns + ------- + sycl_queue: dpctl.SyclQueue + A :class:`dpctl.SyclQueue` object normalized by + `normalize_queue_device` call of `dpctl.tensor` module invoked with + `device` and `sycl_queue` values. If both incoming `device` and + `sycl_queue` are ``None`` and `obj` has `sycl_queue` attribute, + the normalization will be performed for `obj.sycl_queue` value. + + """ + + if ( + device is None + and sycl_queue is None + and obj is not None + and hasattr(obj, "sycl_queue") + ): + sycl_queue = obj.sycl_queue + + return normalize_queue_device(sycl_queue=sycl_queue, device=device) + + +def get_result_array(a, out=None, casting="safe"): + """ + If `out` is provided, value of `a` array will be copied into the + `out` array according to ``safe`` casting rule. + Otherwise, the input array `a` is returned. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + out : {dpnp.ndarray, usm_ndarray} + If provided, value of `a` array will be copied into it + according to ``safe`` casting rule. + It should be of the appropriate shape. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur. + + Returns + ------- + out : {dpnp_array} + Return `out` if provided, otherwise return `a`. + + """ + + if out is None: + if isinstance(a, dpt.usm_ndarray): + return dpnp_array._create_from_usm_ndarray(a) + return a + + if isinstance(out, dpt.usm_ndarray): + out = dpnp_array._create_from_usm_ndarray(out) + + if a is out or dpnp.are_same_logical_tensors(a, out): + return out + + if out.shape != a.shape: + raise ValueError( + f"Output array of shape {a.shape} is needed, got {out.shape}." + ) + + dpnp.copyto(out, a, casting=casting) + return out + + +def get_usm_ndarray(a): + """ + Return :class:`dpctl.tensor.usm_ndarray` from input array `a`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array of supported type :class:`dpnp.ndarray` + or :class:`dpctl.tensor.usm_ndarray`. + + Returns + ------- + out : usm_ndarray + A dpctl USM ndarray of input array `a`. + + Raises + ------ + TypeError + If input parameter `a` is of unsupported array type. + + """ + + if isinstance(a, dpnp_array): + return a.get_array() + if isinstance(a, dpt.usm_ndarray): + return a + raise TypeError( + f"An array must be any of supported type, but got {type(a)}" + ) + + +def get_usm_ndarray_or_scalar(a): + """ + Return scalar or :class:`dpctl.tensor.usm_ndarray` from input object `a`. + + Parameters + ---------- + a : {scalar, dpnp_array, usm_ndarray} + Input of any supported type: scalar, :class:`dpnp.ndarray` + or :class:`dpctl.tensor.usm_ndarray`. + + Returns + ------- + out : scalar, usm_ndarray + A scalar if the input `a` is scalar. + A dpctl USM ndarray if the input `a` is array. + + Raises + ------ + TypeError + If input parameter `a` is of unsupported object type. + + """ + + return a if dpnp.isscalar(a) else get_usm_ndarray(a) + + +def is_supported_array_or_scalar(a): + """ + Return ``True`` if `a` is a scalar or an array of either + :class:`dpnp.ndarray` or :class:`dpctl.tensor.usm_ndarray` type, + ``False`` otherwise. + + Parameters + ---------- + a : {scalar, dpnp_array, usm_ndarray} + An input scalar or an array to check the type of. + + Returns + ------- + out : bool + ``True`` if input `a` is a scalar or an array of supported type, + ``False`` otherwise. + + """ + + return dpnp.isscalar(a) or is_supported_array_type(a) + + +def is_supported_array_type(a): + """ + Return ``True`` if an array of either type :class:`dpnp.ndarray` + or :class:`dpctl.tensor.usm_ndarray` type, ``False`` otherwise. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + An input array to check the type. + + Returns + ------- + out : bool + ``True`` if type of array `a` is supported array type, + ``False`` otherwise. + + """ + + return isinstance(a, (dpnp_array, dpt.usm_ndarray)) + + +def synchronize_array_data(a): + """ + The dpctl interface was reworked to make asynchronous execution. + That function makes a synchronization call to ensure array data is valid + before exit from dpnp interface function. + + """ + + check_supported_arrays_type(a) + dpu.SequentialOrderManager[a.sycl_queue].wait() +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_arraycreation.html b/pull/2070/_modules/dpnp/dpnp_iface_arraycreation.html new file mode 100644 index 00000000000..23a61afd09d --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_arraycreation.html @@ -0,0 +1,4089 @@ + + + + + + + + + + dpnp.dpnp_iface_arraycreation — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for dpnp.dpnp_iface_arraycreation

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the array creation function of the dpnp
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+
+import operator
+
+import dpctl.tensor as dpt
+import numpy
+
+import dpnp
+from dpnp import dpnp_container
+
+from .dpnp_algo.dpnp_arraycreation import (
+    dpnp_geomspace,
+    dpnp_linspace,
+    dpnp_logspace,
+    dpnp_nd_grid,
+)
+from .dpnp_array import dpnp_array
+
+# pylint: disable=no-name-in-module
+from .dpnp_utils import get_usm_allocations, map_dtype_to_device
+
+__all__ = [
+    "arange",
+    "array",
+    "asanyarray",
+    "asarray",
+    "ascontiguousarray",
+    "asfortranarray",
+    "copy",
+    "diag",
+    "diagflat",
+    "empty",
+    "empty_like",
+    "eye",
+    "frombuffer",
+    "fromfile",
+    "fromfunction",
+    "fromiter",
+    "fromstring",
+    "full",
+    "full_like",
+    "geomspace",
+    "identity",
+    "linspace",
+    "loadtxt",
+    "logspace",
+    "meshgrid",
+    "mgrid",
+    "ogrid",
+    "ones",
+    "ones_like",
+    "trace",
+    "tri",
+    "tril",
+    "triu",
+    "vander",
+    "zeros",
+    "zeros_like",
+]
+
+
+
+[docs] +def arange( + start, + /, + stop=None, + step=1, + *, + dtype=None, + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Returns an array with evenly spaced values within a given interval. + + For full documentation refer to :obj:`numpy.arange`. + + Parameters + ---------- + start : {int, real}, optional + Start of interval. The interval includes this value. + The default start value is 0. + stop : {int, real} + End of interval. The interval does not include this value, except + in some cases where `step` is not an integer and floating point + round-off affects the length of out. + step : {int, real}, optional + Spacing between values. The default `step` size is 1. If `step` + is specified as a position argument, `start` must also be given. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The 1-D array containing evenly spaced values. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.linspace` : Evenly spaced numbers with careful handling of + endpoints. + + Examples + -------- + >>> import dpnp as np + >>> np.arange(3) + array([0, 1, 2]) + >>> np.arange(3, 7) + array([3, 4, 5, 6]) + >>> np.arange(3, 7, 2) + array([3, 5]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.arange(3) # default case + >>> x, x.device, x.usm_type + (array([0, 1, 2]), Device(level_zero:gpu:0), 'device') + + >>> y = np.arange(3, device="cpu") + >>> y, y.device, y.usm_type + (array([0, 1, 2]), Device(opencl:cpu:0), 'device') + + >>> z = np.arange(3, usm_type="host") + >>> z, z.device, z.usm_type + (array([0, 1, 2]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + if usm_type is None: + usm_type = "device" + + return dpnp_container.arange( + start, + stop=stop, + step=step, + dtype=dtype, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +# pylint: disable=redefined-outer-name +
+[docs] +def array( + a, + dtype=None, + *, + copy=True, + order="K", + subok=False, + ndmin=0, + like=None, + device=None, + usm_type=None, + sycl_queue=None, +): + """ + Create an array. + + For full documentation refer to :obj:`numpy.array`. + + Parameters + ---------- + a : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + Default: ``None``. + copy : {None, bool}, optional + If ``True``, then the array data is copied. If ``None``, a copy will + only be made if a copy is needed to satisfy any of the requirements + (``dtype``, ``order``, etc.). For ``False`` it raises a ``ValueError`` + exception if a copy can not be avoided. + Default: ``True``. + order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array. + Default: ``"K"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + Default: ``None``. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + An array object satisfying the specified requirements. + + Limitations + ----------- + Parameter `subok` is supported only with default value ``False``. + Parameter `ndmin` is supported only with default value ``0``. + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.empty_like` : Return an empty array with shape and type of + input. + :obj:`dpnp.ones_like` : Return an array of ones with shape and type of + input. + :obj:`dpnp.zeros_like` : Return an array of zeros with shape and type of + input. + :obj:`dpnp.full_like` : Return a new array with shape of input filled with + value. + :obj:`dpnp.empty` : Return a new uninitialized array. + :obj:`dpnp.ones` : Return a new array setting values to one. + :obj:`dpnp.zeros` : Return a new array setting values to zero. + :obj:`dpnp.full` : Return a new array of given shape filled with value. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([1, 2, 3]) + >>> x.ndim, x.size, x.shape + (1, 3, (3,)) + >>> x + array([1, 2, 3]) + + More than one dimension: + + >>> x2 = np.array([[1, 2], [3, 4]]) + >>> x2.ndim, x2.size, x2.shape + (2, 4, (2, 2)) + >>> x2 + array([[1, 2], + [3, 4]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.array([1, 2, 3]) # default case + >>> x, x.device, x.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'device') + + >>> y = np.array([1, 2, 3], device="cpu") + >>> y, y.device, y.usm_type + (array([1, 2, 3]), Device(opencl:cpu:0), 'device') + + >>> z = np.array([1, 2, 3], usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(subok=subok, like=like) + if ndmin != 0: + raise NotImplementedError( + "Keyword argument `ndmin` is supported only with " + f"default value ``0``, but got {ndmin}" + ) + + return dpnp_container.asarray( + a, + dtype=dtype, + copy=copy, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def asanyarray( + a, + dtype=None, + order=None, + *, + like=None, + device=None, + usm_type=None, + sycl_queue=None, +): + """ + Convert the input to an :class:`dpnp.ndarray`. + + For full documentation refer to :obj:`numpy.asanyarray`. + + Parameters + ---------- + a : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + order : {None, "C", "F", "A", "K"}, optional + Memory layout of the newly output array. + Default: ``"K"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array interpretation of `a`. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.asarray` : Similar function which always returns ndarrays. + :obj:`dpnp.ascontiguousarray` : Convert input to a contiguous array. + :obj:`dpnp.asfarray` : Convert input to a floating point ndarray. + :obj:`dpnp.asfortranarray` : Convert input to an ndarray with column-major + memory order. + :obj:`dpnp.asarray_chkfinite` : Similar function which checks input + for NaNs and Infs. + :obj:`dpnp.fromiter` : Create an array from an iterator. + :obj:`dpnp.fromfunction` : Construct an array by executing a function + on grid positions. + + Examples + -------- + >>> import dpnp as np + >>> np.asanyarray([1, 2, 3]) + array([1, 2, 3]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.asanyarray([1, 2, 3]) # default case + >>> x, x.device, x.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'device') + + >>> y = np.asanyarray([1, 2, 3], device="cpu") + >>> y, y.device, y.usm_type + (array([1, 2, 3]), Device(opencl:cpu:0), 'device') + + >>> z = np.asanyarray([1, 2, 3], usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + return asarray( + a, + dtype=dtype, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def asarray( + a, + dtype=None, + order=None, + *, + device=None, + usm_type=None, + sycl_queue=None, + copy=None, + like=None, +): + """ + Converts an input object into array. + + For full documentation refer to :obj:`numpy.asarray`. + + Parameters + ---------- + a : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + Default: ``None``. + order : {None, "C", "F", "A", "K"}, optional + Memory layout of the newly output array. + Default: ``"K"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + Default: ``None``. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + copy : {None, bool}, optional + If ``True``, then the array data is copied. If ``None``, a copy will + only be made if a copy is needed to satisfy any of the requirements + (``dtype``, ``order``, etc.). For ``False`` it raises a ``ValueError`` + exception if a copy can not be avoided. + Default: ``True``. + + Returns + ------- + out : dpnp.ndarray + Array interpretation of `a`. No copy is performed if the input + is already an ndarray with matching dtype and order. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.asanyarray` : Similar function which passes through subclasses. + :obj:`dpnp.ascontiguousarray` : Convert input to a contiguous array. + :obj:`dpnp.asfarray` : Convert input to a floating point ndarray. + :obj:`dpnp.asfortranarray` : Convert input to an ndarray with column-major + memory order. + :obj:`dpnp.asarray_chkfinite` : Similar function which checks input + for NaNs and Infs. + :obj:`dpnp.fromiter` : Create an array from an iterator. + :obj:`dpnp.fromfunction` : Construct an array by executing a function + on grid positions. + + Examples + -------- + >>> import dpnp as np + >>> np.asarray([1, 2, 3]) + array([1, 2, 3]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.asarray([1, 2, 3]) # default case + >>> x, x.device, x.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'device') + + >>> y = np.asarray([1, 2, 3], device="cpu") + >>> y, y.device, y.usm_type + (array([1, 2, 3]), Device(opencl:cpu:0), 'device') + + >>> z = np.asarray([1, 2, 3], usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + return dpnp_container.asarray( + a, + dtype=dtype, + copy=copy, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def ascontiguousarray( + a, dtype=None, *, like=None, device=None, usm_type=None, sycl_queue=None +): + """ + Return a contiguous array in memory (C order). + + For full documentation refer to :obj:`numpy.ascontiguousarray`. + + Parameters + ---------- + a : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Contiguous array of same shape and content as `a`, with type `dtype` + if specified. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.asfortranarray` : Convert input to an ndarray with column-major + memory order. + :obj:`dpnp.require` : Return an ndarray that satisfies requirements. + :obj:`dpnp.ndarray.flags` : Information about the memory layout + of the array. + + Examples + -------- + >>> import dpnp as np + >>> x = np.ones((2, 3), order='F') + >>> x.flags['F_CONTIGUOUS'] + True + + Calling ``ascontiguousarray`` makes a C-contiguous copy: + + >>> y = np.ascontiguousarray(x) + >>> y.flags['F_CONTIGUOUS'] + True + >>> x is y + False + + Now, starting with a C-contiguous array: + + >>> x = np.ones((2, 3), order='C') + >>> x.flags['C_CONTIGUOUS'] + True + + Then, calling ``ascontiguousarray`` returns the same object: + + >>> y = np.ascontiguousarray(x) + >>> x is y + True + + Creating an array on a different device or with a specified usm_type + + >>> x0 = np.asarray([1, 2, 3]) + >>> x = np.ascontiguousarray(x0) # default case + >>> x, x.device, x.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'device') + + >>> y = np.ascontiguousarray(x0, device="cpu") + >>> y, y.device, y.usm_type + (array([1, 2, 3]), Device(opencl:cpu:0), 'device') + + >>> z = np.ascontiguousarray(x0, usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + # at least 1-d array has to be returned + if dpnp.isscalar(a) or hasattr(a, "ndim") and a.ndim == 0: + a = [a] + + return asarray( + a, + dtype=dtype, + order="C", + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def asfortranarray( + a, dtype=None, *, like=None, device=None, usm_type=None, sycl_queue=None +): + """ + Return an array ``(ndim >= 1)`` laid out in Fortran order in memory. + + For full documentation refer to :obj:`numpy.asfortranarray`. + + Parameters + ---------- + a : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The input `a` in Fortran, or column-major, order. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.ascontiguousarray` : Convert input to a contiguous (C order) + array. + :obj:`dpnp.asanyarray` : Convert input to an ndarray with either row or + column-major memory order. + :obj:`dpnp.require` : Return an ndarray that satisfies requirements. + :obj:`dpnp.ndarray.flags` : Information about the memory layout + of the array. + + Examples + -------- + >>> import dpnp as np + + Starting with a C-contiguous array: + + >>> x = np.ones((2, 3), order='C') + >>> x.flags['C_CONTIGUOUS'] + True + + Calling ``asfortranarray`` makes a Fortran-contiguous copy: + + >>> y = np.asfortranarray(x) + >>> y.flags['F_CONTIGUOUS'] + True + >>> x is y + False + + Now, starting with a Fortran-contiguous array: + + >>> x = np.ones((2, 3), order='F') + >>> x.flags['F_CONTIGUOUS'] + True + + Then, calling ``asfortranarray`` returns the same object: + + >>> y = np.asfortranarray(x) + >>> x is y + True + + Creating an array on a different device or with a specified usm_type + + >>> x0 = np.asarray([1, 2, 3]) + >>> x = np.asfortranarray(x0) # default case + >>> x, x.device, x.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'device') + + >>> y = np.asfortranarray(x0, device="cpu") + >>> y, y.device, y.usm_type + (array([1, 2, 3]), Device(opencl:cpu:0), 'device') + + >>> z = np.asfortranarray(x0, usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + # at least 1-d array has to be returned + if dpnp.isscalar(a) or hasattr(a, "ndim") and a.ndim == 0: + a = [a] + + return asarray( + a, + dtype=dtype, + order="F", + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def copy( + a, order="K", subok=False, device=None, usm_type=None, sycl_queue=None +): + """ + Return an array copy of the given object. + + For full documentation refer to :obj:`numpy.copy`. + + Parameters + ---------- + a : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array. + Default: ``"K"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Limitations + ----------- + Parameter `subok` is supported only with default value ``False``. + Otherwise, the function raises `NotImplementedError` exception. + + Returns + ------- + out : dpnp.ndarray + Array interpretation of `a`. + + See Also + -------- + :obj:`dpnp.ndarray.copy` : Preferred method for creating an array copy + + Notes + ----- + This is equivalent to: + + >>> dpnp.array(a, copy=True) + + Examples + -------- + Create an array `x`, with a reference `y` and a copy `z`: + + >>> import dpnp as np + >>> x = np.array([1, 2, 3]) + >>> y = x + >>> z = np.copy(x) + + Note that, when we modify `x`, `y` will change, but not `z`: + + >>> x[0] = 10 + >>> x[0] == y[0] + array(True) + >>> x[0] == z[0] + array(False) + + Creating an array on a different device or with a specified usm_type + + >>> x0 = np.array([1, 2, 3]) + >>> x = np.copy(x0) # default case + >>> x, x.device, x.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'device') + + >>> y = np.copy(x0, device="cpu") + >>> y, y.device, y.usm_type + (array([1, 2, 3]), Device(opencl:cpu:0), 'device') + + >>> z = np.copy(x0, usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(subok=subok) + + if dpnp.is_supported_array_type(a): + sycl_queue_normalized = dpnp.get_normalized_queue_device( + a, device=device, sycl_queue=sycl_queue + ) + if ( + usm_type is None or usm_type == a.usm_type + ) and sycl_queue_normalized == a.sycl_queue: + return dpnp_container.copy(a, order=order) + + return array( + a, + order=order, + subok=subok, + copy=True, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def diag(v, /, k=0, *, device=None, usm_type=None, sycl_queue=None): + """ + Extract a diagonal or construct a diagonal array. + + For full documentation refer to :obj:`numpy.diag`. + + Parameters + ---------- + v : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + If `v` is a 1-D array, return a 2-D array with `v` + on the `k`-th diagonal. + If `v` is a 2-D array and is an instance of + {dpnp.ndarray, usm_ndarray}, then: + + - If `device`, `usm_type`, and `sycl_queue` are set to their + default values, returns a read/write view of its k-th diagonal. + - Otherwise, returns a copy of its k-th diagonal. + + k : int, optional + Diagonal in question. Use k > 0 for diagonals above + the main diagonal, and k < 0 for diagonals below the main diagonal. + Default: ``0``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The extracted diagonal or constructed diagonal array. + + See Also + -------- + :obj:`diagonal` : Return specified diagonals. + :obj:`diagflat` : Create a 2-D array with the flattened input as a diagonal. + :obj:`trace` : Return the sum along diagonals of the array. + :obj:`triu` : Upper triangle of an array. + :obj:`tril` : Lower triangle of an array. + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(9).reshape((3, 3)) + >>> x + array([[0, 1, 2], + [3, 4, 5], + [6, 7, 8]]) + + >>> np.diag(x) + array([0, 4, 8]) + >>> np.diag(x, k=1) + array([1, 5]) + >>> np.diag(x, k=-1) + array([3, 7]) + + >>> np.diag(np.diag(x)) + array([[0, 0, 0], + [0, 4, 0], + [0, 0, 8]]) + + Creating an array on a different device or with a specified usm_type + + >>> res = np.diag(x) # default case + >>> res, res.device, res.usm_type + (array([0, 4, 8]), Device(level_zero:gpu:0), 'device') + + >>> res_cpu = np.diag(x, device="cpu") + >>> res_cpu, res_cpu.device, res_cpu.usm_type + (array([0, 4, 8]), Device(opencl:cpu:0), 'device') + + >>> res_host = np.diag(x, usm_type="host") + >>> res_host, res_host.device, res_host.usm_type + (array([0, 4, 8]), Device(level_zero:gpu:0), 'host') + + """ + + if not isinstance(k, int): + raise TypeError(f"An integer is required, but got {type(k)}") + + v = dpnp.asanyarray( + v, device=device, usm_type=usm_type, sycl_queue=sycl_queue + ) + + if v.ndim == 1: + size = v.shape[0] + abs(k) + ret = dpnp.zeros_like(v, shape=(size, size)) + ret.diagonal(k)[:] = v + return ret + + if v.ndim == 2: + return v.diagonal(k) + + raise ValueError("Input must be a 1-D or 2-D array.")
+ + + +
+[docs] +def diagflat(v, /, k=0, *, device=None, usm_type=None, sycl_queue=None): + """ + Create a two-dimensional array with the flattened input as a diagonal. + + For full documentation refer to :obj:`numpy.diagflat`. + + Parameters + ---------- + v : array_like + Input data, which is flattened and set as the k-th diagonal of the + output, in any form that can be converted to an array. This includes + scalars, lists, lists of tuples, tuples, tuples of tuples, tuples of + lists, and ndarrays. + k : int, optional + Diagonal to set; 0, the default, corresponds to the "main" diagonal, + a positive (negative) k giving the number of the diagonal above (below) + the main. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The 2-D output array. + + See Also + -------- + :obj:`dpnp.diag` : Extract a diagonal or construct a diagonal array. + :obj:`dpnp.diagonal` : Return specified diagonals. + :obj:`dpnp.trace` : Return sum along diagonals. + + Examples + -------- + >>> import dpnp as np + >>> x0 = np.array([[1, 2], [3, 4]]) + >>> np.diagflat(x0) + array([[1, 0, 0, 0], + [0, 2, 0, 0], + [0, 0, 3, 0], + [0, 0, 0, 4]]) + + >>> np.diagflat(x0, 1) + array([[0, 1, 0, 0, 0], + [0, 0, 2, 0, 0], + [0, 0, 0, 3, 0], + [0, 0, 0, 0, 4], + [0, 0, 0, 0, 0]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.diagflat(x0) # default case + >>> x, x.device, x.usm_type + array([[1, 0, 0, 0], + [0, 2, 0, 0], + [0, 0, 3, 0], + [0, 0, 0, 4]]), Device(level_zero:gpu:0), 'device') + + >>> y = np.diagflat(x0, device="cpu") + >>> y, y.device, y.usm_type + array([[1, 0, 0, 0], + [0, 2, 0, 0], + [0, 0, 3, 0], + [0, 0, 0, 4]]), Device(opencl:cpu:0), 'device') + + >>> z = np.diagflat(x0, usm_type="host") + >>> z, z.device, z.usm_type + array([[1, 0, 0, 0], + [0, 2, 0, 0], + [0, 0, 3, 0], + [0, 0, 0, 4]]), Device(level_zero:gpu:0), 'host') + + """ + + if not isinstance(k, int): + raise TypeError(f"An integer is required, but got {type(k)}") + + v = dpnp.asarray(v, device=device, usm_type=usm_type, sycl_queue=sycl_queue) + v = dpnp.ravel(v) + return dpnp.diag(v, k, usm_type=v.usm_type, sycl_queue=v.sycl_queue)
+ + + +
+[docs] +def empty( + shape, + *, + dtype=None, + order="C", + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return a new array of given shape and type, without initializing entries. + + For full documentation refer to :obj:`numpy.empty`. + + Parameters + ---------- + shape : {int, sequence of ints} + Shape of the new array, e.g., (2, 3) or 2. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of uninitialized data of the given shape, dtype, and order. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.empty_like` : Return an empty array with shape and type of + input. + :obj:`dpnp.ones` : Return a new array setting values to one. + :obj:`dpnp.zeros` : Return a new array setting values to zero. + :obj:`dpnp.full` : Return a new array of given shape filled with value. + + Examples + -------- + >>> import dpnp as np + >>> np.empty(4) + array([9.03088525e-312, 9.03088525e-312, 9.03088525e-312, 9.03088525e-312]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.empty((3, 3)) # default case + >>> x.shape, x.device, x.usm_type + ((3, 3), Device(level_zero:gpu:0), 'device') + + >>> y = np.empty((3, 3), device="cpu") + >>> y.shape, y.device, y.usm_type + ((3, 3), Device(opencl:cpu:0), 'device') + + >>> z = np.empty((3, 3), usm_type="host") + >>> z.shape, z.device, z.usm_type + ((3, 3), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + if usm_type is None: + usm_type = "device" + + return dpnp_container.empty( + shape, + dtype=dtype, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def empty_like( + a, + /, + *, + dtype=None, + order="C", + subok=False, + shape=None, + device=None, + usm_type=None, + sycl_queue=None, +): + """ + Return a new array with the same shape and type as a given array. + + For full documentation refer to :obj:`numpy.empty_like`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The shape and dtype of `a` define these same attributes + of the returned array. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + shape : {None, int, sequence of ints} + Overrides the shape of the result. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of uninitialized data with the same shape and type as prototype. + + Limitations + ----------- + Parameter `order` is supported only with values ``"C"``, ``"F"`` and + ``None``. + Parameter `subok` is supported only with default value ``False``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.ones_like` : Return an array of ones with shape and type of + input. + :obj:`dpnp.zeros_like` : Return an array of zeros with shape and type of + input. + :obj:`dpnp.full_like` : Return a new array with shape of input filled with + value. + :obj:`dpnp.empty` : Return a new uninitialized array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 2, 3]) + >>> np.empty_like(a) + array([1, 2, 3]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.empty_like(a) # default case + >>> x.shape, x.device, x.usm_type + ((3, ), Device(level_zero:gpu:0), 'device') + + >>> y = np.empty_like(a, device="cpu") + >>> y.shape, y.device, y.usm_type + ((3, ), Device(opencl:cpu:0), 'device') + + >>> z = np.empty_like(a, usm_type="host") + >>> z.shape, z.device, z.usm_type + ((3, ), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_supported_arrays_type(a) + dpnp.check_limitations(order=order, subok=subok) + + _shape = a.shape if shape is None else shape + _dtype = a.dtype if dtype is None else dtype + _usm_type = a.usm_type if usm_type is None else usm_type + _sycl_queue = dpnp.get_normalized_queue_device( + a, sycl_queue=sycl_queue, device=device + ) + return dpnp_container.empty( + _shape, + dtype=_dtype, + order=order, + usm_type=_usm_type, + sycl_queue=_sycl_queue, + )
+ + + +# pylint: disable=invalid-name +
+[docs] +def eye( + N, + /, + M=None, + k=0, + dtype=None, + order="C", + *, + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return a 2-D array with ones on the diagonal and zeros elsewhere. + + For full documentation refer to :obj:`numpy.eye`. + + Parameters + ---------- + N : int + Number of rows in the output. + M : {None, int}, optional + Number of columns in the output. If None, defaults to `N`. + k : int, optional + Index of the diagonal: 0 (the default) refers to the main diagonal, + a positive value refers to an upper diagonal, and a negative value to + a lower diagonal. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + An array where all elements are equal to zero, except for the k-th + diagonal, whose values are equal to one. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.identity` : Return the identity array. + :obj:`dpnp.diag` : Extract a diagonal or construct a diagonal array. + + Examples + -------- + >>> import dpnp as np + >>> np.eye(2, dtype=int) + array([[1, 0], + [0, 1]]) + + >>> np.eye(3, k=1) + array([[0., 1., 0.], + [0., 0., 1.], + [0., 0., 0.]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.eye(2, dtype=int) # default case + >>> x, x.device, x.usm_type + (array([[1, 0], + [0, 1]]), Device(level_zero:gpu:0), 'device') + + >>> y = np.eye(2, dtype=int, device="cpu") + >>> y, y.device, y.usm_type + (array([[1, 0], + [0, 1]]), Device(opencl:cpu:0), 'device') + + >>> z = np.eye(2, dtype=int, usm_type="host") + >>> z, z.device, z.usm_type + (array([[1, 0], + [0, 1]]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + if usm_type is None: + usm_type = "device" + + return dpnp_container.eye( + N, + M, + k=k, + dtype=dtype, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def frombuffer( + buffer, + dtype=float, + count=-1, + offset=0, + *, + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + r""" + Interpret a buffer as a 1-dimensional array. + + For full documentation refer to :obj:`numpy.frombuffer`. + + Parameters + ---------- + buffer : buffer_like + An object that exposes the buffer interface. + dtype : data-type, optional + Data-type of the returned array. + Default is the default floating point data type for the device where + the returned array is allocated. + count : int, optional + Number of items to read. ``-1`` means all data in the buffer. + offset : int, optional + Start reading the buffer from this offset (in bytes). + Default: ``0``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + A 1-dimensional array created from input buffer object. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + Notes + ----- + This uses :obj:`numpy.frombuffer` and coerces the result to a DPNP array. + + See also + -------- + :obj:`dpnp.fromfile` : Construct array from data in a text or binary file. + :obj:`dpnp.fromiter` : Construct array from an iterable object. + :obj:`dpnp.fromstring` : Construct array from the text data in a string. + + Examples + -------- + >>> import dpnp as np + >>> s = b'\x01\x02\x03\x04' + >>> np.frombuffer(s, dtype=np.int32) + array([67305985], dtype=int32) + >>> np.frombuffer(b'\x01\x02\x03\x04\x05', dtype='u1', count=3) + array([1, 2, 3], dtype=uint8) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.frombuffer(s, dtype=np.int32) # default case + >>> x.device, x.usm_type + (Device(level_zero:gpu:0), 'device') + + >>> y = np.frombuffer(s, dtype=np.int32, device='cpu') + >>> y.device, y.usm_type + (Device(opencl:cpu:0), 'device') + + >>> z = np.frombuffer(s, dtype=np.int32, usm_type="host") + >>> z.device, z.usm_type + (Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + return asarray( + numpy.frombuffer(buffer, dtype=dtype, count=count, offset=offset), + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def fromfile( + file, + dtype=float, + count=-1, + sep="", + offset=0, + *, + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + r""" + Construct an array from data in a text or binary file. + + A highly efficient way of reading binary data with a known data-type, + as well as parsing simply formatted text files. Data written using the + `tofile` method can be read using this function. + + For full documentation refer to :obj:`numpy.fromfile`. + + Parameters + ---------- + file : file or str or Path + Open file object or filename. + dtype : data-type, optional + Data type of the returned array. + For binary files, it is used to determine the size and byte-order + of the items in the file. + Default is the default floating point data type for the device where + the returned array is allocated. + count : int, optional + Number of items to read. ``-1`` means all items (i.e., the complete + file). + sep : str, optional + Separator between items if `file` is a text file. + Empty ("") separator means the file should be treated as binary. + Spaces (" ") in the separator match zero or more whitespace characters. + A separator consisting only of spaces must match at least one + whitespace. + offset : int, optional + The offset (in bytes) from the file's current position. Defaults to 0. + Only permitted for binary files. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + A 1-dimensional array created from data in a text or binary file. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + Notes + ----- + This uses :obj:`numpy.fromfile` and coerces the result to a DPNP array. + + See also + -------- + :obj:`dpnp.frombuffer` : Construct array from the buffer data. + :obj:`dpnp.fromiter` : Construct array from an iterable object. + :obj:`dpnp.fromstring` : Construct array from the text data in a string. + :obj:`dpnp.load` : Load arrays or pickled objects from files. + :obj:`dpnp.save` : Save an array to a binary file. + :obj:`dpnp.ndarray.tofile` : Write array to a file as text or binary. + :obj:`dpnp.loadtxt` : More flexible way of loading data from a text file. + + Examples + -------- + Save the data to a temporary file: + + >>> import tempfile + >>> fh = tempfile.TemporaryFile() + >>> fh.write(b"\x00\x01\x02\x03\x04") + >>> fh.flush() + >>> fh.seek(0) + + Construct an array: + + >>> import dpnp as np + >>> np.fromfile(fh, dtype="u1") + array([0, 1, 2, 3, 4], dtype=uint8) + + Creating an array on a different device or with a specified usm_type + + >>> fh.seek(0) + >>> x = np.fromfile(fh, dtype="u1") # default case + >>> x.device, x.usm_type + (Device(level_zero:gpu:0), 'device') + + >>> fh.seek(0) + >>> y = np.fromfile(fh, dtype="u1", device='cpu') + >>> y.device, y.usm_type + (Device(opencl:cpu:0), 'device') + + >>> fh.seek(0) + >>> z = np.fromfile(fh, dtype="u1", usm_type="host") + >>> z.device, z.usm_type + (Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + return asarray( + numpy.fromfile(file, dtype=dtype, count=count, sep=sep, offset=offset), + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def fromfunction( + function, + shape, + *, + dtype=float, + like=None, + device=None, + usm_type="device", + sycl_queue=None, + **kwargs, +): + """ + Construct an array by executing a function over each coordinate. + + The resulting array therefore has a value ``fn(x, y, z)`` at + coordinate ``(x, y, z)``. + + For full documentation refer to :obj:`numpy.fromfunction`. + + Parameters + ---------- + function : callable + The function is called with N parameters, where N is the rank of + `shape`. Each parameter represents the coordinates of the array varying + along a specific axis. For example, if `shape` were ``(2, 2)``, then + the parameters would be ``array([[0, 0], [1, 1]])`` and + ``array([[0, 1], [0, 1]])``. + shape : (N,) tuple of ints + Shape of the output array, which also determines the shape of + the coordinate arrays passed to `function`. + dtype : data-type, optional + Data-type of the coordinate arrays passed to `function`. + Default is the default floating point data type for the device where + the returned array is allocated. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The result of the call to `function` is passed back directly. + Therefore the shape of `fromfunction` is completely determined by + `function`. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + Notes + ----- + This uses :obj:`numpy.fromfunction` and coerces the result to a DPNP array. + Keywords other than `dtype` and `like` are passed to `function`. + + See also + -------- + :obj:`dpnp.indices` : Return an array representing the indices of a grid. + :obj:`dpnp.meshgrid` : Return coordinate matrices from coordinate vectors. + + Examples + -------- + >>> import dpnp as np + >>> np.fromfunction(lambda i, j: i, (2, 2), dtype=float) + array([[0., 0.], + [1., 1.]]) + + >>> np.fromfunction(lambda i, j: j, (2, 2), dtype=float) + array([[0., 1.], + [0., 1.]]) + + >>> np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int) + array([[ True, False, False], + [False, True, False], + [False, False, True]]) + + >>> np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int) + array([[0, 1, 2], + [1, 2, 3], + [2, 3, 4]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.fromfunction(lambda i, j: i - j, (3, 3)) # default case + >>> x.device, x.usm_type + (Device(level_zero:gpu:0), 'device') + + >>> y = np.fromfunction(lambda i, j: i - j, (3, 3), device='cpu') + >>> y.device, y.usm_type + (Device(opencl:cpu:0), 'device') + + >>> z = np.fromfunction(lambda i, j: i - j, (3, 3), usm_type="host") + >>> z.device, z.usm_type + (Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + return asarray( + numpy.fromfunction(function, shape, dtype=dtype, **kwargs), + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def fromiter( + iter, + dtype, + count=-1, + *, + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Create a new 1-dimensional array from an iterable object. + + For full documentation refer to :obj:`numpy.fromiter`. + + Parameters + ---------- + iter : iterable object + An iterable object providing data for the array. + dtype : data-type + The data-type of the returned array. + count : int, optional + The number of items to read from *iterable*. The default is -1, + which means all data is read. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The output array. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + Notes + ----- + This uses :obj:`numpy.fromiter` and coerces the result to a DPNP array. + + See also + -------- + :obj:`dpnp.frombuffer` : Construct array from the buffer data. + :obj:`dpnp.fromfile` : Construct array from data in a text or binary file. + :obj:`dpnp.fromstring` : Construct array from the text data in a string. + + Examples + -------- + >>> import dpnp as np + >>> iterable = (a * a for a in range(5)) + >>> np.fromiter(iterable, float) + array([ 0., 1., 4., 9., 16.]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.fromiter(iterable, np.int32) # default case + >>> x.device, x.usm_type + (Device(level_zero:gpu:0), 'device') + + >>> y = np.fromiter(iterable, np.int32, device='cpu') + >>> y.device, y.usm_type + (Device(opencl:cpu:0), 'device') + + >>> z = np.fromiter(iterable, np.int32, usm_type="host") + >>> z.device, z.usm_type + (Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + return asarray( + numpy.fromiter(iter, dtype, count=count), + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def fromstring( + string, + dtype=float, + count=-1, + *, + sep, + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + A new 1-D array initialized from text data in a string. + + For full documentation refer to :obj:`numpy.fromstring`. + + Parameters + ---------- + string : str + A string containing the data. + dtype : data-type, optional + The data type of the array. + For binary input data, the data must be in exactly this format. + Default is the default floating point data type for the device where + the returned array is allocated. + count : int, optional + Read this number of `dtype` elements from the data. If this is negative + (the default), the count will be determined from the length of the data. + sep : str, optional + The string separating numbers in the data; extra whitespace between + elements is also ignored. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The constructed array. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + Notes + ----- + This uses :obj:`numpy.fromstring` and coerces the result to a DPNP array. + + See also + -------- + :obj:`dpnp.frombuffer` : Construct array from the buffer data. + :obj:`dpnp.fromfile` : Construct array from data in a text or binary file. + :obj:`dpnp.fromiter` : Construct array from an iterable object. + + Examples + -------- + >>> import dpnp as np + >>> np.fromstring('1 2', dtype=int, sep=' ') + array([1, 2]) + >>> np.fromstring('1, 2', dtype=int, sep=',') + array([1, 2]) + + """ + + dpnp.check_limitations(like=like) + return asarray( + numpy.fromstring(string, dtype=dtype, count=count, sep=sep), + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def full( + shape, + fill_value, + *, + dtype=None, + order="C", + like=None, + device=None, + usm_type=None, + sycl_queue=None, +): + """ + Return a new array of given shape and type, filled with `fill_value`. + + For full documentation refer to :obj:`numpy.full`. + + Parameters + ---------- + shape : {int, sequence of ints} + Shape of the new array, e.g., (2, 3) or 2. + fill_value : {scalar, array_like} + Fill value, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of `fill_value` with the given shape, dtype, and order. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.full_like` : Return a new array with shape of input filled with + value. + :obj:`dpnp.empty` : Return a new uninitialized array. + :obj:`dpnp.ones` : Return a new array setting values to one. + :obj:`dpnp.zeros` : Return a new array setting values to zero. + + Examples + -------- + >>> import dpnp as np + >>> np.full(4, 10) + array([10, 10, 10, 10]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.full(4, 10) # default case + >>> x, x.device, x.usm_type + (array([10, 10, 10, 10]), Device(level_zero:gpu:0), 'device') + + >>> y = np.full(4, 10, device="cpu") + >>> y, y.device, y.usm_type + (array([10, 10, 10, 10]), Device(opencl:cpu:0), 'device') + + >>> z = np.full(4, 10, usm_type="host") + >>> z, z.device, z.usm_type + (array([10, 10, 10, 10]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + return dpnp_container.full( + shape, + fill_value, + dtype=dtype, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def full_like( + a, + /, + fill_value, + *, + dtype=None, + order="C", + subok=False, + shape=None, + device=None, + usm_type=None, + sycl_queue=None, +): + """ + Return a full array with the same shape and type as a given array. + + For full documentation refer to :obj:`numpy.full_like`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The shape and dtype of `a` define these same attributes + of the returned array. + fill_value : {scalar, array_like} + Fill value, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + shape : {None, int, sequence of ints} + Overrides the shape of the result. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of `fill_value` with the same shape and type as `a`. + + Limitations + ----------- + Parameter `order` is supported only with values ``"C"``, ``"F"`` and + ``None``. + Parameter `subok` is supported only with default value ``False``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.empty_like` : Return an empty array with shape and type of + input. + :obj:`dpnp.ones_like` : Return an array of ones with shape and type of + input. + :obj:`dpnp.zeros_like` : Return an array of zeros with shape and type of + input. + :obj:`dpnp.full` : Return a new array of given shape filled with value. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(6) + >>> np.full_like(a, 1) + array([1, 1, 1, 1, 1, 1]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.full_like(a, 1) # default case + >>> x, x.device, x.usm_type + (array([1, 1, 1, 1, 1, 1]), Device(level_zero:gpu:0), 'device') + + >>> y = np.full_like(a, 1, device="cpu") + >>> y, y.device, y.usm_type + (array([1, 1, 1, 1, 1, 1]), Device(opencl:cpu:0), 'device') + + >>> z = np.full_like(a, 1, usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 1, 1, 1, 1, 1]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_supported_arrays_type(a) + dpnp.check_limitations(order=order, subok=subok) + + _shape = a.shape if shape is None else shape + _dtype = a.dtype if dtype is None else dtype + _usm_type = a.usm_type if usm_type is None else usm_type + _sycl_queue = dpnp.get_normalized_queue_device( + a, sycl_queue=sycl_queue, device=device + ) + + return dpnp_container.full( + _shape, + fill_value, + dtype=_dtype, + order=order, + usm_type=_usm_type, + sycl_queue=_sycl_queue, + )
+ + + +
+[docs] +def geomspace( + start, + stop, + /, + num=50, + *, + dtype=None, + device=None, + usm_type=None, + sycl_queue=None, + endpoint=True, + axis=0, +): + """ + Return numbers spaced evenly on a log scale (a geometric progression). + + For full documentation refer to :obj:`numpy.geomspace`. + + Parameters + ---------- + start : array_like + The starting value of the sequence, in any form that can be converted + to an array. This includes scalars, lists, lists of tuples, tuples, + tuples of tuples, tuples of lists, and ndarrays. + stop : array_like + The final value of the sequence, in any form that can be converted to + an array. This includes scalars, lists, lists of tuples, tuples, tuples + of tuples, tuples of lists, and ndarrays. If `endpoint` is ``False`` + ``num + 1`` values are spaced over the interval in log-space, of which + all but the last (a sequence of length `num`) are returned. + num : int, optional + Number of samples to generate. + Default: ``50``. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. + endpoint : bool, optional + If ``True``, `stop` is the last sample. Otherwise, it is not included. + Default: ``True``. + axis : int, optional + The axis in the result to store the samples. Relevant only if start or + stop are array-like. By default (0), the samples will be along a new + axis inserted at the beginning. Use -1 to get an axis at the end. + + Returns + ------- + out : dpnp.ndarray + `num` samples, equally spaced on a log scale. + + See Also + -------- + :obj:`dpnp.logspace` : Similar to :obj:`dpnp.geomspace`, but with endpoints + specified using log and base. + :obj:`dpnp.linspace` : Similar to :obj:`dpnp.geomspace`, but with + arithmetic instead of geometric progression. + :obj:`dpnp.arange` : Similar to :obj:`dpnp.linspace`, with the step size + specified instead of the number of samples. + + Examples + -------- + >>> import dpnp as np + >>> np.geomspace(1, 1000, num=4) + array([ 1., 10., 100., 1000.]) + >>> np.geomspace(1, 1000, num=3, endpoint=False) + array([ 1., 10., 100.]) + >>> np.geomspace(1, 1000, num=4, endpoint=False) + array([ 1. , 5.62341325, 31.6227766 , 177.827941 ]) + >>> np.geomspace(1, 256, num=9) + array([ 1., 2., 4., 8., 16., 32., 64., 128., 256.]) + + >>> np.geomspace(1, 256, num=9, dtype=int) + array([ 1, 2, 4, 7, 16, 32, 63, 127, 256]) + >>> np.around(np.geomspace(1, 256, num=9)).astype(int) + array([ 1, 2, 4, 8, 16, 32, 64, 128, 256]) + + >>> np.geomspace(1000, 1, num=4) + array([1000., 100., 10., 1.]) + >>> np.geomspace(-1000, -1, num=4) + array([-1000., -100., -10., -1.]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.geomspace(1000, 1, num=4) # default case + >>> x, x.device, x.usm_type + (array([1000., 100., 10., 1.]), Device(level_zero:gpu:0), 'device') + + >>> y = np.geomspace(1000, 1, num=4, device="cpu") + >>> y, y.device, y.usm_type + (array([1000., 100., 10., 1.]), Device(opencl:cpu:0), 'device') + + >>> z = np.geomspace(1000, 1, num=4, usm_type="host") + >>> z, z.device, z.usm_type + (array([1000., 100., 10., 1.]), Device(level_zero:gpu:0), 'host') + + """ + + return dpnp_geomspace( + start, + stop, + num, + dtype=dtype, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + endpoint=endpoint, + axis=axis, + )
+ + + +
+[docs] +def identity( + n, + /, + dtype=None, + *, + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return the identity array. + + The identity array is a square array with ones on the main diagonal. + + For full documentation refer to :obj:`numpy.identity`. + + Parameters + ---------- + n : int + Number of rows (and columns) in `n` x `n` output. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + `n` x `n` array with its main diagonal set to one, + and all other elements 0. + + Limitations + ----------- + Parameter `like` is currently not supported. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.eye` : Return a 2-D array with ones on the diagonal and zeros + elsewhere. + :obj:`dpnp.ones` : Return a new array setting values to one. + :obj:`dpnp.diag` : Extract a diagonal or construct a diagonal array. + + Examples + -------- + >>> import dpnp as np + >>> np.identity(3) + array([[1., 0., 0.], + [0., 1., 0.], + [0., 0., 1.]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.identity(3) # default case + >>> x, x.device, x.usm_type + (array([[1., 0., 0.], + [0., 1., 0.], + [0., 0., 1.]]), Device(level_zero:gpu:0), 'device') + + >>> y = np.identity(3, device="cpu") + >>> y, y.device, y.usm_type + (array([[1., 0., 0.], + [0., 1., 0.], + [0., 0., 1.]]), Device(opencl:cpu:0), 'device') + + >>> z = np.identity(3, usm_type="host") + >>> z, z.device, z.usm_type + (array([[1., 0., 0.], + [0., 1., 0.], + [0., 0., 1.]]), Device(level_zero:gpu:0), 'host') + + """ + + if n < 0: + raise ValueError("negative dimensions are not allowed") + + dpnp.check_limitations(like=like) + + _dtype = dpnp.default_float_type() if dtype is None else dtype + return dpnp.eye( + n, + dtype=_dtype, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def linspace( + start, + stop, + /, + num, + *, + dtype=None, + device=None, + usm_type=None, + sycl_queue=None, + endpoint=True, + retstep=False, + axis=0, +): + """ + Return evenly spaced numbers over a specified interval. + + For full documentation refer to :obj:`numpy.linspace`. + + Parameters + ---------- + start : array_like + The starting value of the sequence, in any form that can be converted + to an array. This includes scalars, lists, lists of tuples, tuples, + tuples of tuples, tuples of lists, and ndarrays. + stop : array_like + The end value of the sequence, in any form that can be converted to + an array. This includes scalars, lists, lists of tuples, tuples, tuples + of tuples, tuples of lists, and ndarrays. If `endpoint` is set to + ``False`` the sequence consists of all but the last of ``num + 1`` + evenly spaced samples, so that `stop` is excluded. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. + endpoint : bool, optional + If ``True``, `stop` is the last sample. Otherwise, it is not included. + Default: ``True``. + retstep : bool, optional + If ``True``, return (samples, step), where step is the spacing between + samples. + axis : int, optional + The axis in the result to store the samples. Relevant only if start or + stop are array-like. By default (0), the samples will be along a new + axis inserted at the beginning. Use -1 to get an axis at the end. + + Returns + ------- + out : dpnp.ndarray + There are `num` equally spaced samples in the closed interval + [`start`, `stop`] or the half-open interval [`start`, `stop`) + (depending on whether `endpoint` is ``True`` or ``False``). + step : float, optional + Only returned if `retstep` is ``True``. + Size of spacing between samples. + + See Also + -------- + :obj:`dpnp.arange` : Similar to :obj:`dpnp.linspace`, but uses a step size + (instead of the number of samples). + :obj:`dpnp.geomspace` : Similar to :obj:`dpnp.linspace`, but with numbers + spaced evenly on a log scale (a geometric progression). + :obj:`dpnp.logspace` : Similar to :obj:`dpnp.geomspace`, but with the end + points specified as logarithms. + + Examples + -------- + >>> import dpnp as np + >>> np.linspace(2.0, 3.0, num=5) + array([2. , 2.25, 2.5 , 2.75, 3. ]) + + >>> np.linspace(2.0, 3.0, num=5, endpoint=False) + array([2. , 2.2, 2.4, 2.6, 2.8]) + + >>> np.linspace(2.0, 3.0, num=5, retstep=True) + (array([2. , 2.25, 2.5 , 2.75, 3. ]), array(0.25)) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.linspace(2.0, 3.0, num=3) # default case + >>> x, x.device, x.usm_type + (array([2. , 2.5, 3. ]), Device(level_zero:gpu:0), 'device') + + >>> y = np.linspace(2.0, 3.0, num=3, device="cpu") + >>> y, y.device, y.usm_type + (array([2. , 2.5, 3. ]), Device(opencl:cpu:0), 'device') + + >>> z = np.linspace(2.0, 3.0, num=3, usm_type="host") + >>> z, z.device, z.usm_type + (array([2. , 2.5, 3. ]), Device(level_zero:gpu:0), 'host') + + """ + + return dpnp_linspace( + start, + stop, + num, + dtype=dtype, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + endpoint=endpoint, + retstep=retstep, + axis=axis, + )
+ + + +
+[docs] +def loadtxt( + fname, + dtype=float, + like=None, + device=None, + usm_type="device", + sycl_queue=None, + **kwargs, +): + r""" + Load data from a text file. + + For full documentation refer to :obj:`numpy.loadtxt`. + + Parameters + ---------- + fname : file, str, pathlib.Path, list of str, generator + File, filename, list, or generator to read. If the filename extension + is ``.gz`` or ``.bz2``, the file is first decompressed. Note that + generators must return bytes or strings. The strings in a list or + produced by a generator are treated as lines. + dtype : data-type, optional + Data-type of the resulting array. + Default is the default floating point data type for the device where + the returned array is allocated. + A structured data-type is not supported. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Data read from the text file. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + Notes + ----- + This uses :obj:`numpy.loadtxt` and coerces the result to a DPNP array. + + See also + -------- + :obj:`dpnp.frombuffer` : Construct array from the buffer data. + :obj:`dpnp.fromstring` : Construct array from the text data in a string. + :obj:`dpnp.fromregex` : Construct an array from a text file, + using regular expression parsing. + :obj:`dpnp.load` : Load arrays or pickled objects from files. + :obj:`dpnp.genfromtxt` : Load data with missing values handled as specified. + + Examples + -------- + >>> import dpnp as np + >>> from io import StringIO # StringIO behaves like a file object + >>> c = StringIO("0 1\n2 3") + >>> np.loadtxt(c) + array([[0., 1.], + [2., 3.]]) + + Creating an array on a different device or with a specified usm_type + + >>> c = StringIO("0 1\n2 3") + >>> x = np.loadtxt(c, dtype=np.int32) # default case + >>> x.device, x.usm_type + (Device(level_zero:gpu:0), 'device') + + >>> c = StringIO("0 1\n2 3") + >>> y = np.loadtxt(c, dtype=np.int32, device='cpu') + >>> y.device, y.usm_type + (Device(opencl:cpu:0), 'device') + + >>> c = StringIO("0 1\n2 3") + >>> z = np.loadtxt(c, dtype=np.int32, usm_type="host") + >>> z.device, z.usm_type + (Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + return asarray( + numpy.loadtxt(fname, dtype=dtype, **kwargs), + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def logspace( + start, + stop, + /, + num=50, + *, + device=None, + usm_type=None, + sycl_queue=None, + endpoint=True, + base=10.0, + dtype=None, + axis=0, +): + """ + Return numbers spaced evenly on a log scale. + + For full documentation refer to :obj:`numpy.logspace`. + + Parameters + ---------- + start : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. `base` ** `start` is the starting value + of the sequence. + stop : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. `base` ** `stop` is the final value of + the sequence, unless `endpoint` is ``False``. In that case, ``num + 1`` + values are spaced over the interval in log-space, of which all but + the last (a sequence of length `num`) are returned. + num : int, optional + Number of samples to generate. + Default: ``50``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. + endpoint : {bool}, optional + If ``True``, stop is the last sample. Otherwise, it is not included. + Default: ``True``. + base : {array_like}, optional + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. The base of the log space, in any form + that can be converted to an array.This includes scalars, lists, lists + of tuples, tuples, tuples of tuples, tuples of lists, and ndarrays. + The `step` size between the elements in ``ln(samples) / ln(base)`` + (or log_base(samples)) is uniform. + Default: ``10.0``. + dtype : {None, dtype}, optional + The desired dtype for the array. If not given, a default dtype will be + used that can represent the values (by considering Promotion Type Rule + and device capabilities when necessary). + axis : int, optional + The axis in the result to store the samples. Relevant only if start, + stop, or base are array-like. By default (0), the samples will be along + a new axis inserted at the beginning. Use -1 to get an axis at the end. + + Returns + ------- + out: dpnp.ndarray + `num` samples, equally spaced on a log scale. + + See Also + -------- + :obj:`dpnp.arange` : Similar to :obj:`dpnp.linspace`, with the step size + specified instead of the number of samples. Note that, when used with + a float endpoint, the endpoint may or may not be included. + :obj:`dpnp.linspace` : Similar to :obj:`dpnp.logspace`, but with the + samples uniformly distributed in linear space, instead of log space. + :obj:`dpnp.geomspace` : Similar to :obj:`dpnp.logspace`, but with endpoints + specified directly. + + Examples + -------- + >>> import dpnp as np + >>> np.logspace(2.0, 3.0, num=4) + array([ 100. , 215.443469 , 464.15888336, 1000. ]) + + >>> np.logspace(2.0, 3.0, num=4, endpoint=False) + array([100. , 177.827941 , 316.22776602, 562.34132519]) + + >>> np.logspace(2.0, 3.0, num=4, base=2.0) + array([4. , 5.0396842 , 6.34960421, 8. ]) + + >>> np.logspace(2.0, 3.0, num=4, base=[2.0, 3.0], axis=-1) + array([[ 4. , 5.0396842 , 6.34960421, 8. ], + [ 9. , 12.98024613, 18.72075441, 27. ]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.logspace(1.0, 3.0, num=3) # default case + >>> x, x.device, x.usm_type + (array([ 10., 100., 1000.]), Device(level_zero:gpu:0), 'device') + + >>> y = np.logspace(1.0, 3.0, num=3, device="cpu") + >>> y, y.device, y.usm_type + (array([ 10., 100., 1000.]), Device(opencl:cpu:0), 'device') + + >>> z = np.logspace(1.0, 3.0, num=3, usm_type="host") + >>> z, z.device, z.usm_type + (array([ 10., 100., 1000.]), Device(level_zero:gpu:0), 'host') + + """ + + return dpnp_logspace( + start, + stop, + num=num, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + endpoint=endpoint, + base=base, + dtype=dtype, + axis=axis, + )
+ + + +# pylint: disable=redefined-outer-name +
+[docs] +def meshgrid(*xi, copy=True, sparse=False, indexing="xy"): + """ + Return coordinate matrices from coordinate vectors. + + Make N-D coordinate arrays for vectorized evaluations of + N-D scalar/vector fields over N-D grids, given + one-dimensional coordinate arrays ``x1, x2,..., xn``. + + For full documentation refer to :obj:`numpy.meshgrid`. + + Parameters + ---------- + x1, x2,..., xn : {dpnp.ndarray, usm_ndarray} + 1-D arrays representing the coordinates of a grid. + indexing : {'xy', 'ij'}, optional + Cartesian (``'xy'``, default) or matrix (``'ij'``) indexing of output. + sparse : bool, optional + If ``True`` the shape of the returned coordinate array for dimension `i` + is reduced from ``(N1, ..., Ni, ... Nn)`` to + ``(1, ..., 1, Ni, 1, ..., 1)``. + Default: ``False``. + copy : bool, optional + If ``False``, a view into the original arrays are returned in order to + conserve memory. + Default: ``True``. + + Returns + ------- + X1, X2,..., XN : tuple of dpnp.ndarrays + For vectors `x1`, `x2`,..., `xn` with lengths ``Ni=len(xi)``, returns + ``(N1, N2, N3,..., Nn)`` shaped arrays if ``indexing='ij'`` or + ``(N2, N1, N3,..., Nn)`` shaped arrays if ``indexing='xy'`` with + the elements of `xi` repeated to fill the matrix along the first + dimension for `x1`, the second for `x2` and so on. + + Examples + -------- + >>> import dpnp as np + >>> nx, ny = (3, 2) + >>> x = np.linspace(0, 1, nx) + >>> y = np.linspace(0, 1, ny) + >>> xv, yv = np.meshgrid(x, y) + >>> xv + array([[0. , 0.5, 1. ], + [0. , 0.5, 1. ]]) + >>> yv + array([[0., 0., 0.], + [1., 1., 1.]]) + >>> xv, yv = np.meshgrid(x, y, sparse=True) # make sparse output arrays + >>> xv + array([[0. , 0.5, 1. ]]) + >>> yv + array([[0.], + [1.]]) + + `meshgrid` is very useful to evaluate functions on a grid. + + >>> import matplotlib.pyplot as plt + >>> x = np.arange(-5, 5, 0.1) + >>> y = np.arange(-5, 5, 0.1) + >>> xx, yy = np.meshgrid(x, y, sparse=True) + >>> z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2) + >>> h = plt.contourf(x,y,z) + >>> plt.show() + + """ + + dpnp.check_supported_arrays_type(*xi) + + ndim = len(xi) + + if indexing not in ["xy", "ij"]: + raise ValueError( + "Unrecognized indexing keyword value, expecting 'xy' or 'ij'." + ) + + if ndim < 1: + return [] + + s0 = (1,) * ndim + output = [ + dpt.reshape(dpnp.get_usm_ndarray(x), s0[:i] + (-1,) + s0[i + 1 :]) + for i, x in enumerate(xi) + ] + + # input arrays must be allocated on the same queue + _, _ = get_usm_allocations(output) + + if indexing == "xy" and ndim > 1: + output[0] = dpt.reshape(output[0], (1, -1) + s0[2:]) + output[1] = dpt.reshape(output[1], (-1, 1) + s0[2:]) + + if not sparse: + output = dpt.broadcast_arrays(*output) + + if copy: + output = [dpt.copy(x) for x in output] + + return [dpnp_array._create_from_usm_ndarray(x) for x in output]
+ + + +class MGridClass: + """ + Construct a dense multi-dimensional "meshgrid". + + For full documentation refer to :obj:`numpy.mgrid`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : one dpnp.ndarray or tuple of dpnp.ndarray + Returns one array of grid indices, + ``grid.shape = (len(dimensions),) + tuple(dimensions)``. + + Examples + -------- + >>> import dpnp as np + >>> np.mgrid[0:5,0:5] + array([[[0, 0, 0, 0, 0], + [1, 1, 1, 1, 1], + [2, 2, 2, 2, 2], + [3, 3, 3, 3, 3], + [4, 4, 4, 4, 4]], + [[0, 1, 2, 3, 4], + [0, 1, 2, 3, 4], + [0, 1, 2, 3, 4], + [0, 1, 2, 3, 4], + [0, 1, 2, 3, 4]]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.mgrid[-1:1:5j] # default case + >>> x, x.device, x.usm_type + (array([-1. , -0.5, 0. , 0.5, 1. ]), Device(level_zero:gpu:0), 'device') + + >>> y = np.mgrid(device="cpu")[-1:1:5j] + >>> y, y.device, y.usm_type + (array([-1. , -0.5, 0. , 0.5, 1. ]), Device(opencl:cpu:0), 'device') + + >>> z = np.mgrid(usm_type="host")[-1:1:5j] + >>> z, z.device, z.usm_type + (array([-1. , -0.5, 0. , 0.5, 1. ]), Device(level_zero:gpu:0), 'host') + + """ + + def __getitem__(self, key): + return dpnp_nd_grid(sparse=False)[key] + + def __call__(self, device=None, usm_type="device", sycl_queue=None): + return dpnp_nd_grid( + sparse=False, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + + +mgrid = MGridClass() + + +class OGridClass: + """ + Construct an open multi-dimensional "meshgrid". + + For full documentation refer to :obj:`numpy.ogrid`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : one dpnp.ndarray or tuple of dpnp.ndarray + Returns a tuple of arrays, + with grid[i].shape = (1, ..., 1, dimensions[i], 1, ..., 1) + with dimensions[i] in the i-th place. + + Examples + -------- + >>> import dpnp as np + >>> np.ogrid[0:5, 0:5] + [array([[0], + [1], + [2], + [3], + [4]]), array([[0, 1, 2, 3, 4]])] + + Creating an array on a different device or with a specified usm_type + + >>> x = np.ogrid[-1:1:5j] # default case + >>> x, x.device, x.usm_type + (array([-1. , -0.5, 0. , 0.5, 1. ]), Device(level_zero:gpu:0), 'device') + + >>> y = np.ogrid(device="cpu")[-1:1:5j] + >>> y, y.device, y.usm_type + (array([-1. , -0.5, 0. , 0.5, 1. ]), Device(opencl:cpu:0), 'device') + + >>> z = np.ogrid(usm_type="host")[-1:1:5j] + >>> z, z.device, z.usm_type + (array([-1. , -0.5, 0. , 0.5, 1. ]), Device(level_zero:gpu:0), 'host') + + """ + + def __getitem__(self, key): + return dpnp_nd_grid(sparse=True)[key] + + def __call__(self, device=None, usm_type="device", sycl_queue=None): + return dpnp_nd_grid( + sparse=True, device=device, usm_type=usm_type, sycl_queue=sycl_queue + ) + + +ogrid = OGridClass() + + +
+[docs] +def ones( + shape, + *, + dtype=None, + order="C", + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return a new array of given shape and type, filled with ones. + + For full documentation refer to :obj:`numpy.ones`. + + Parameters + ---------- + shape : {int, sequence of ints} + Shape of the new array, e.g., (2, 3) or 2. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of ones with the given shape, dtype, and order. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.ones_like` : Return an array of ones with shape and type of + input. + :obj:`dpnp.empty` : Return a new uninitialized array. + :obj:`dpnp.zeros` : Return a new array setting values to zero. + :obj:`dpnp.full` : Return a new array of given shape filled with value. + + Examples + -------- + >>> import dpnp as np + >>> np.ones(5) + array([1., 1., 1., 1., 1.]) + >>> x = np.ones((2, 1)) + >>> x.ndim, x.size, x.shape + (2, 2, (2, 1)) + >>> x + array([[1.], + [1.]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.ones(3) # default case + >>> x, x.device, x.usm_type + (array([1., 1., 1.]), Device(level_zero:gpu:0), 'device') + + >>> y = np.ones(3, device="cpu") + >>> y, y.device, y.usm_type + (array([1., 1., 1.]), Device(opencl:cpu:0), 'device') + + >>> z = np.ones(3, usm_type="host") + >>> z, z.device, z.usm_type + (array([1., 1., 1.]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + if usm_type is None: + usm_type = "device" + + return dpnp_container.ones( + shape, + dtype=dtype, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def ones_like( + a, + /, + *, + dtype=None, + order="C", + subok=False, + shape=None, + device=None, + usm_type=None, + sycl_queue=None, +): + """ + Return an array of ones with the same shape and type as a given array. + + For full documentation refer to :obj:`numpy.ones_like`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The shape and dtype of `a` define these same attributes + of the returned array. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + shape : {None, int, sequence of ints} + Overrides the shape of the result. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of ones with the same shape and type as `a`. + + Limitations + ----------- + Parameter `order` is supported only with values ``"C"``, ``"F"`` and + ``None``. + Parameter `subok` is supported only with default value ``False``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.empty_like` : Return an empty array with shape and type of + input. + :obj:`dpnp.zeros_like` : Return an array of zeros with shape and type of + input. + :obj:`dpnp.full_like` : Return a new array with shape of input filled with + value. + :obj:`dpnp.ones` : Return a new array setting values to one. + + Examples + -------- + >>> import dpnp as np + >>> x0 = np.arange(6) + >>> x0 + array([0, 1, 2, 3, 4, 5]) + >>> np.ones_like(x0) + array([1, 1, 1, 1, 1, 1]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.ones_like(x0) # default case + >>> x, x.device, x.usm_type + (array([1, 1, 1, 1, 1, 1]), Device(level_zero:gpu:0), 'device') + + >>> y = np.ones_like(x0, device="cpu") + >>> y, y.device, y.usm_type + (array([1, 1, 1, 1, 1, 1]), Device(opencl:cpu:0), 'device') + + >>> z = np.ones_like(x0, usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 1, 1, 1, 1, 1]), Device(level_zero:gpu:0), 'host') + + """ + dpnp.check_supported_arrays_type(a) + dpnp.check_limitations(order=order, subok=subok) + + _shape = a.shape if shape is None else shape + _dtype = a.dtype if dtype is None else dtype + _usm_type = a.usm_type if usm_type is None else usm_type + _sycl_queue = dpnp.get_normalized_queue_device( + a, sycl_queue=sycl_queue, device=device + ) + return dpnp_container.ones( + _shape, + dtype=_dtype, + order=order, + usm_type=_usm_type, + sycl_queue=_sycl_queue, + )
+ + + +
+[docs] +def trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None): + """ + Return the sum along diagonals of the array. + + For full documentation refer to :obj:`numpy.trace`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, from which the diagonals are taken. + offset : int, optional + Offset of the diagonal from the main diagonal. Can be both positive and + negative. + Default: ``0``. + axis1, axis2 : int, optional + Axes to be used as the first and second axis of the 2-D sub-arrays from + which the diagonals should be taken. Defaults are the first two axes of + `a`. + dtype : dtype, optional + Determines the data-type of the returned array and of the accumulator + where the elements are summed. If `dtype` has the value ``None`` and + `a` is of integer type of precision less than the default integer + precision, then the default integer precision is used. Otherwise, the + precision is the same as that of `a`. + Default: ``None``. + out : {dpnp.ndarray, usm_ndarray}, optional + Array into which the output is placed. Its type is preserved and it + must be of the right shape to hold the output. + Default: ``None``. + + Returns + ------- + sum_along_diagonals : dpnp.ndarray + If `a` is 2-D, the sum along the diagonal is returned. If `a` has + larger dimensions, then an array of sums along diagonals is returned. + + See Also + -------- + :obj:`dpnp.diag` : Extract a diagonal or construct a diagonal array. + :obj:`dpnp.diagonal` : Return specified diagonals. + :obj:`dpnp.diagflat` : Create a 2-D array with the flattened input as + a diagonal. + + Examples + -------- + >>> import dpnp as np + >>> np.trace(np.eye(3)) + array(3.) + >>> a = np.arange(8).reshape((2, 2, 2)) + >>> np.trace(a) + array([6, 8]) + + >>> a = np.arange(24).reshape((2, 2, 2, 3)) + >>> np.trace(a).shape + (2, 3) + + """ + + d = dpnp.diagonal(a, offset=offset, axis1=axis1, axis2=axis2) + return dpnp.sum(d, axis=-1, dtype=dtype, out=out, keepdims=False)
+ + + +# pylint: disable=invalid-name +
+[docs] +def tri( + N, + /, + M=None, + k=0, + dtype=float, + *, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + An array with ones at and below the given diagonal and zeros elsewhere. + + For full documentation refer to :obj:`numpy.tri`. + + Parameters + ---------- + N : int + Number of rows in the array. + M : {None, int}, optional + Number of columns in the array. By default, `M` is taken equal to `N`. + k : int, optional + The sub-diagonal at and below which the array is filled. k = 0 is + the main diagonal, while k < 0 is below it, and k > 0 is above. + Default: ``0``. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of shape (N, M) + Array with its lower triangle filled with ones and zeros elsewhere. + + See Also + -------- + :obj:`dpnp.tril` : Return lower triangle of an array. + :obj:`dpnp.triu` : Return upper triangle of an array. + + Examples + -------- + >>> import dpnp as np + >>> np.tri(3, 5, 2, dtype=int) + array([[1, 1, 1, 0, 0], + [1, 1, 1, 1, 0], + [1, 1, 1, 1, 1]]) + + >>> np.tri(3, 5, -1) + array([[0., 0., 0., 0., 0.], + [1., 0., 0., 0., 0.], + [1., 1., 0., 0., 0.]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.tri(3, 2) # default case + >>> x, x.device, x.usm_type + (array([[1., 0.], + [1., 1.], + [1., 1.]]), Device(level_zero:gpu:0), 'device') + + >>> y = np.tri(3, 2, device="cpu") + >>> y, y.device, y.usm_type + (array([[1., 0.], + [1., 1.], + [1., 1.]]), Device(opencl:cpu:0), 'device') + + >>> z = np.tri(3, 2, usm_type="host") + >>> z, z.device, z.usm_type + (array([[1., 0.], + [1., 1.], + [1., 1.]]), Device(level_zero:gpu:0), 'host') + + """ + + if not isinstance(N, int): + raise TypeError(f"`N` must be a integer data type, but got {type(N)}") + if N < 0: + raise ValueError("negative dimensions are not allowed") + + if M is not None: + if not isinstance(M, int): + raise TypeError( + f"`M` must be a integer data type, but got {type(M)}" + ) + if M < 0: + raise ValueError("negative dimensions are not allowed") + else: + M = N + + _k = None + try: + _k = operator.index(k) + except TypeError: + pass + if _k is None: + raise TypeError(f"`k` must be a integer data type, but got {type(k)}") + + sycl_dev = dpnp.get_normalized_queue_device( + sycl_queue=sycl_queue, device=device + ).sycl_device + _dtype = map_dtype_to_device(dtype, sycl_dev) + + if usm_type is None: + usm_type = "device" + + m = dpt.ones( + (N, M), + dtype=_dtype, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + return dpnp.tril(m, k=_k)
+ + + +
+[docs] +def tril(m, /, *, k=0): + """ + Lower triangle of an array. + + Return a copy of an array with elements above the `k`-th diagonal zeroed. + + For full documentation refer to :obj:`numpy.tril`. + + Parameters + ---------- + m : {dpnp.ndarray, usm_ndarray}, shape (…, M, N) + Input array. + k : int, optional + Diagonal above which to zero elements. k = 0 (the default) is + the main diagonal, k < 0 is below it and k > 0 is above. + + Returns + ------- + out : dpnp.ndarray of shape (N, M) + Lower triangle of `m`, of same shape and dtype as `m`. + + Examples + -------- + >>> import dpnp as np + >>> m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) + >>> np.tril(m, k=-1) + array([[ 0, 0, 0], + [ 4, 0, 0], + [ 7, 8, 0], + [10, 11, 12]]) + + """ + + _k = None + try: + _k = operator.index(k) + except TypeError: + pass + if _k is None: + raise TypeError(f"`k` must be a integer data type, but got {type(k)}") + + dpnp.check_supported_arrays_type(m) + + if m.ndim == 0: + raise ValueError("Input array must have 1 or more dimensions") + + if m.ndim == 1: + m = dpnp.broadcast_to(m, (m.shape[0], m.shape[0])) + + return dpnp_container.tril(m, k=_k)
+ + + +
+[docs] +def triu(m, /, *, k=0): + """ + Upper triangle of an array. + + Return a copy of a matrix with the elements below the `k`-th diagonal + zeroed. + + For full documentation refer to :obj:`numpy.triu`. + + Parameters + ---------- + m : {dpnp.ndarray, usm_ndarray}, shape (…, M, N) + Input array. + k : int, optional + Diagonal below which to zero elements. k = 0 (the default) is + the main diagonal, k < 0 is below it and k > 0 is above. + + Returns + ------- + out : dpnp.ndarray of shape (N, M) + Upper triangle of `m`, of same shape and dtype as `m`. + + Examples + -------- + >>> import dpnp as np + >>> m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) + >>> np.triu(m, k=-1) + array([[ 1, 2, 3], + [ 4, 5, 6], + [ 0, 8, 9], + [ 0, 0, 12]]) + + """ + + _k = None + try: + _k = operator.index(k) + except TypeError: + pass + if _k is None: + raise TypeError(f"`k` must be a integer data type, but got {type(k)}") + + dpnp.check_supported_arrays_type(m) + + if m.ndim == 0: + raise ValueError("Input array must have 1 or more dimensions") + + if m.ndim == 1: + m = dpnp.broadcast_to(m, (m.shape[0], m.shape[0])) + + return dpnp_container.triu(m, k=_k)
+ + + +# pylint: disable=invalid-name +
+[docs] +def vander( + x, + /, + N=None, + increasing=False, + *, + device=None, + usm_type=None, + sycl_queue=None, +): + """ + Generate a Vandermonde matrix. + + For full documentation refer to :obj:`numpy.vander`. + + Parameters + ---------- + x : array_like + 1-D input array, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + N : {None, int}, optional + Number of columns in the output. If `N` is not specified, a square + array is returned ``(N = len(x))``. + increasing : bool, optional + Order of the powers of the columns. If ``True,`` the powers increase + from left to right, if ``False`` (the default) they are reversed. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Vandermonde matrix. + + Examples + -------- + >>> import dpnp as np + >>> x0 = np.array([1, 2, 3, 5]) + >>> N = 3 + >>> np.vander(x0, N) + array([[ 1, 1, 1], + [ 4, 2, 1], + [ 9, 3, 1], + [25, 5, 1]]) + + >>> np.vander(x0) + array([[ 1, 1, 1, 1], + [ 8, 4, 2, 1], + [ 27, 9, 3, 1], + [125, 25, 5, 1]]) + + >>> np.vander(x0, increasing=True) + array([[ 1, 1, 1, 1], + [ 1, 2, 4, 8], + [ 1, 3, 9, 27], + [ 1, 5, 25, 125]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.vander(x0) # default case + >>> x, x.device, x.usm_type + (array([[ 1, 1, 1, 1], + [ 8, 4, 2, 1], + [ 27, 9, 3, 1], + [125, 25, 5, 1]]), Device(level_zero:gpu:0), 'device') + + >>> y = np.vander(x0, device="cpu") + >>> y, y.device, y.usm_type + (array([[ 1, 1, 1, 1], + [ 8, 4, 2, 1], + [ 27, 9, 3, 1], + [125, 25, 5, 1]]), Device(opencl:cpu:0), 'device') + + >>> z = np.vander(x0, usm_type="host") + >>> z, z.device, z.usm_type + (array([[ 1, 1, 1, 1], + [ 8, 4, 2, 1], + [ 27, 9, 3, 1], + [125, 25, 5, 1]]), Device(level_zero:gpu:0), 'host') + """ + + if dpnp.is_supported_array_type(x): + x = dpnp.get_usm_ndarray(x) + usm_x = dpt.asarray( + x, device=device, usm_type=usm_type, sycl_queue=sycl_queue + ) + + x_sycl_queue = usm_x.sycl_queue + x_usm_type = usm_x.usm_type + + if N is not None and not isinstance(N, int): + raise TypeError(f"An integer is required, but got {type(N)}") + + if usm_x.ndim != 1: + raise ValueError("`x` must be a one-dimensional array or sequence.") + + if N is None: + N = usm_x.size + + _dtype = numpy.promote_types(usm_x.dtype, int) + _dtype = map_dtype_to_device(_dtype, x_sycl_queue.sycl_device) + m = dpnp.empty_like(usm_x, shape=(usm_x.size, N), dtype=_dtype) + + tmp = m[:, ::-1] if not increasing else m + dpnp.power( + dpt.reshape(usm_x, (-1, 1)), + dpt.arange( + N, dtype=_dtype, usm_type=x_usm_type, sycl_queue=x_sycl_queue + ), + out=tmp, + ) + return m
+ + + +
+[docs] +def zeros( + shape, + *, + dtype=None, + order="C", + like=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return a new array of given shape and type, filled with zeros. + + For full documentation refer to :obj:`numpy.zeros`. + + Parameters + ---------- + shape : {int, sequence of ints} + Shape of the new array, e.g., (2, 3) or 2. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., `dpnp.int32`. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``"device"``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of zeros with the given shape, dtype, and order. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.zeros_like` : Return an array of zeros with shape and type of + input. + :obj:`dpnp.empty` : Return a new uninitialized array. + :obj:`dpnp.ones` : Return a new array setting values to one. + :obj:`dpnp.full` : Return a new array of given shape filled with value. + + Examples + -------- + >>> import dpnp as np + >>> np.zeros(5) + array([0., 0., 0., 0., 0.]) + >>> x = np.zeros((2, 1)) + >>> x.ndim, x.size, x.shape + (2, 2, (2, 1)) + >>> x + array([[0.], + [0.]]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.zeros(3) # default case + >>> x, x.device, x.usm_type + (array([0., 0., 0.]), Device(level_zero:gpu:0), 'device') + + >>> y = np.zeros(3, device="cpu") + >>> y, y.device, y.usm_type + (array([0., 0., 0.]), Device(opencl:cpu:0), 'device') + + >>> z = np.zeros(3, usm_type="host") + >>> z, z.device, z.usm_type + (array([0., 0., 0.]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_limitations(like=like) + + if usm_type is None: + usm_type = "device" + + return dpnp_container.zeros( + shape, + dtype=dtype, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + )
+ + + +
+[docs] +def zeros_like( + a, + /, + *, + dtype=None, + order="C", + subok=False, + shape=None, + device=None, + usm_type=None, + sycl_queue=None, +): + """ + Return an array of zeros with the same shape and type as a given array. + + For full documentation refer to :obj:`numpy.zeros_like`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The shape and dtype of `a` define these same attributes + of the returned array. + dtype : {None, dtype}, optional + The desired dtype for the array, e.g., dpnp.int32. + Default is the default floating point data type for the device where + input array is allocated. + order : {None, "C", "F"}, optional + Memory layout of the newly output array. + Default: ``"C"``. + shape : {None, int, sequence of ints} + Overrides the shape of the result. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of zeros with the same shape and type as `a`. + + Limitations + ----------- + Parameter `order` is supported only with values ``"C"``, ``"F"`` and + ``None``. + Parameter `subok` is supported only with default value ``False``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.empty_like` : Return an empty array with shape and type of + input. + :obj:`dpnp.ones_like` : Return an array of ones with shape and type of + input. + :obj:`dpnp.full_like` : Return a new array with shape of input filled + with value. + :obj:`dpnp.zeros` : Return a new array setting values to zero. + + Examples + -------- + >>> import dpnp as np + >>> x0 = np.arange(6) + >>> x0 + array([0, 1, 2, 3, 4, 5]) + >>> np.zeros_like(x0) + array([0, 0, 0, 0, 0, 0]) + + Creating an array on a different device or with a specified usm_type + + >>> x = np.zeros_like(x0) # default case + >>> x, x.device, x.usm_type + (array([0, 0, 0, 0, 0, 0]), Device(level_zero:gpu:0), 'device') + + >>> y = np.zeros_like(x0, device="cpu") + >>> y, y.device, y.usm_type + (array([0, 0, 0, 0, 0, 0]), Device(opencl:cpu:0), 'device') + + >>> z = np.zeros_like(x0, usm_type="host") + >>> z, z.device, z.usm_type + (array([0, 0, 0, 0, 0, 0]), Device(level_zero:gpu:0), 'host') + + """ + + dpnp.check_supported_arrays_type(a) + dpnp.check_limitations(order=order, subok=subok) + + _shape = a.shape if shape is None else shape + _dtype = a.dtype if dtype is None else dtype + _usm_type = a.usm_type if usm_type is None else usm_type + _sycl_queue = dpnp.get_normalized_queue_device( + a, sycl_queue=sycl_queue, device=device + ) + return dpnp_container.zeros( + _shape, + dtype=_dtype, + order=order, + usm_type=_usm_type, + sycl_queue=_sycl_queue, + )
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_counting.html b/pull/2070/_modules/dpnp/dpnp_iface_counting.html new file mode 100644 index 00000000000..38280bbeec6 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_counting.html @@ -0,0 +1,232 @@ + + + + + + + + + + dpnp.dpnp_iface_counting — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_counting

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the counting function of the dpnp
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+import dpctl.tensor as dpt
+
+import dpnp
+
+__all__ = ["count_nonzero"]
+
+
+
+[docs] +def count_nonzero(a, axis=None, *, keepdims=False, out=None): + """ + Counts the number of non-zero values in the array `a`. + + For full documentation refer to :obj:`numpy.count_nonzero`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The array for which to count non-zeros. + axis : {None, int, tuple}, optional + Axis or tuple of axes along which to count non-zeros. + Default value means that non-zeros will be counted along a flattened + version of `a`. + Default: ``None``. + keepdims : bool, optional + If this is set to ``True``, the axes that are counted are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the input array. + Default: ``False``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + The array into which the result is written. The data type of `out` must + match the expected shape and the expected data type of the result. + If ``None`` then a new array is returned. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Number of non-zero values in the array along a given axis. + Otherwise, a zero-dimensional array with the total number of non-zero + values in the array is returned. + + See Also + -------- + :obj:`dpnp.nonzero` : Return the coordinates of all the non-zero values. + + Examples + -------- + >>> import dpnp as np + >>> np.count_nonzero(np.eye(4)) + array(4) + >>> a = np.array([[0, 1, 7, 0], + [3, 0, 2, 19]]) + >>> np.count_nonzero(a) + array(5) + >>> np.count_nonzero(a, axis=0) + array([1, 1, 2, 1]) + >>> np.count_nonzero(a, axis=1) + array([2, 3]) + >>> np.count_nonzero(a, axis=1, keepdims=True) + array([[2], + [3]]) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + usm_out = None if out is None else dpnp.get_usm_ndarray(out) + + usm_res = dpt.count_nonzero( + usm_a, axis=axis, keepdims=keepdims, out=usm_out + ) + return dpnp.get_result_array(usm_res, out)
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_histograms.html b/pull/2070/_modules/dpnp/dpnp_iface_histograms.html new file mode 100644 index 00000000000..50105c36550 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_histograms.html @@ -0,0 +1,654 @@ + + + + + + + + + + dpnp.dpnp_iface_histograms — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_histograms

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of histogram-related DPNP functions
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+import operator
+import warnings
+
+import dpctl.utils as dpu
+import numpy
+
+import dpnp
+
+__all__ = [
+    "digitize",
+    "histogram",
+    "histogram_bin_edges",
+]
+
+# range is a keyword argument to many functions, so save the builtin so they can
+# use it.
+_range = range
+
+
+def _ravel_check_a_and_weights(a, weights):
+    """
+    Check input `a` and `weights` arrays, and ravel both.
+    The returned array have :class:`dpnp.ndarray` type always.
+
+    """
+
+    # ensure that `a` array has supported type
+    dpnp.check_supported_arrays_type(a)
+    usm_type = a.usm_type
+
+    # ensure that the array is a "subtractable" dtype
+    if a.dtype == dpnp.bool:
+        warnings.warn(
+            f"Converting input from {a.dtype} to {numpy.uint8} "
+            "for compatibility.",
+            RuntimeWarning,
+            stacklevel=3,
+        )
+        a = dpnp.astype(a, numpy.uint8)
+
+    if weights is not None:
+        # check that `weights` array has supported type
+        dpnp.check_supported_arrays_type(weights)
+        usm_type = dpu.get_coerced_usm_type([usm_type, weights.usm_type])
+
+        # check that arrays have the same allocation queue
+        if dpu.get_execution_queue([a.sycl_queue, weights.sycl_queue]) is None:
+            raise ValueError(
+                "a and weights must be allocated on the same SYCL queue"
+            )
+
+        if weights.shape != a.shape:
+            raise ValueError("weights should have the same shape as a.")
+        weights = dpnp.ravel(weights)
+
+    a = dpnp.ravel(a)
+    return a, weights, usm_type
+
+
+def _get_outer_edges(a, range):
+    """
+    Determine the outer bin edges to use, from either the data or the range
+    argument.
+
+    """
+
+    if range is not None:
+        first_edge, last_edge = range
+        if first_edge > last_edge:
+            raise ValueError("max must be larger than min in range parameter.")
+
+        if not (numpy.isfinite(first_edge) and numpy.isfinite(last_edge)):
+            raise ValueError(
+                f"supplied range of [{first_edge}, {last_edge}] is not finite"
+            )
+
+    elif a.size == 0:
+        # handle empty arrays. Can't determine range, so use 0-1.
+        first_edge, last_edge = 0, 1
+
+    else:
+        first_edge, last_edge = a.min(), a.max()
+        if not (dpnp.isfinite(first_edge) and dpnp.isfinite(last_edge)):
+            raise ValueError(
+                f"autodetected range of [{first_edge}, {last_edge}] "
+                "is not finite"
+            )
+
+    # expand empty range to avoid divide by zero
+    if first_edge == last_edge:
+        first_edge = first_edge - 0.5
+        last_edge = last_edge + 0.5
+
+    return first_edge, last_edge
+
+
+def _get_bin_edges(a, bins, range, usm_type):
+    """Computes the bins used internally by `histogram`."""
+
+    # parse the overloaded bins argument
+    n_equal_bins = None
+    bin_edges = None
+    sycl_queue = a.sycl_queue
+
+    if isinstance(bins, str):
+        # TODO: implement support of string bins
+        raise NotImplementedError("only integer and array bins are implemented")
+
+    if numpy.ndim(bins) == 0:
+        try:
+            n_equal_bins = operator.index(bins)
+        except TypeError as e:
+            raise TypeError("`bins` must be an integer or an array") from e
+        if n_equal_bins < 1:
+            raise ValueError("`bins` must be positive, when an integer")
+
+        first_edge, last_edge = _get_outer_edges(a, range)
+
+    elif numpy.ndim(bins) == 1:
+        if dpnp.is_supported_array_type(bins):
+            if dpu.get_execution_queue([a.sycl_queue, bins.sycl_queue]) is None:
+                raise ValueError(
+                    "a and bins must be allocated on the same SYCL queue"
+                )
+
+            bin_edges = bins
+        else:
+            bin_edges = dpnp.asarray(
+                bins, sycl_queue=sycl_queue, usm_type=usm_type
+            )
+
+        if dpnp.any(bin_edges[:-1] > bin_edges[1:]):
+            raise ValueError(
+                "`bins` must increase monotonically, when an array"
+            )
+
+    else:
+        raise ValueError("`bins` must be 1d, when an array")
+
+    if n_equal_bins is not None:
+        # numpy's gh-10322 means that type resolution rules are dependent on
+        # array shapes. To avoid this causing problems, we pick a type now and
+        # stick with it throughout.
+        # pylint: disable=possibly-used-before-assignment
+        bin_type = dpnp.result_type(first_edge, last_edge, a)
+        if dpnp.issubdtype(bin_type, dpnp.integer):
+            bin_type = dpnp.result_type(
+                bin_type, dpnp.default_float_type(sycl_queue=sycl_queue), a
+            )
+
+        # bin edges must be computed
+        bin_edges = dpnp.linspace(
+            first_edge,
+            last_edge,
+            n_equal_bins + 1,
+            endpoint=True,
+            dtype=bin_type,
+            sycl_queue=sycl_queue,
+            usm_type=usm_type,
+        )
+        return bin_edges, (first_edge, last_edge, n_equal_bins)
+    return bin_edges, None
+
+
+def _search_sorted_inclusive(a, v):
+    """
+    Like :obj:`dpnp.searchsorted`, but where the last item in `v` is placed
+    on the right.
+    In the context of a histogram, this makes the last bin edge inclusive
+
+    """
+
+    return dpnp.concatenate(
+        (a.searchsorted(v[:-1], "left"), a.searchsorted(v[-1:], "right"))
+    )
+
+
+
+[docs] +def digitize(x, bins, right=False): + """ + Return the indices of the bins to which each value in input array belongs. + + For full documentation refer to :obj:`numpy.digitize`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array to be binned. + bins : {dpnp.ndarray, usm_ndarray} + Array of bins. It has to be 1-dimensional and monotonic + increasing or decreasing. + right : bool, optional + Indicates whether the intervals include the right or the left bin edge. + Default: ``False``. + + Returns + ------- + indices : dpnp.ndarray + Array of indices with the same shape as `x`. + + Notes + ----- + This will not raise an exception when the input array is + not monotonic. + + See Also + -------- + :obj:`dpnp.bincount` : Count number of occurrences of each value in array + of non-negative integers. + :obj:`dpnp.histogram` : Compute the histogram of a data set. + :obj:`dpnp.unique` : Find the unique elements of an array. + :obj:`dpnp.searchsorted` : Find indices where elements should be inserted + to maintain order. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([0.2, 6.4, 3.0, 1.6]) + >>> bins = np.array([0.0, 1.0, 2.5, 4.0, 10.0]) + >>> inds = np.digitize(x, bins) + >>> inds + array([1, 4, 3, 2]) + >>> for n in range(x.size): + ... print(bins[inds[n]-1], "<=", x[n], "<", bins[inds[n]]) + ... + 0. <= 0.2 < 1. + 4. <= 6.4 < 10. + 2.5 <= 3. < 4. + 1. <= 1.6 < 2.5 + + >>> x = np.array([1.2, 10.0, 12.4, 15.5, 20.]) + >>> bins = np.array([0, 5, 10, 15, 20]) + >>> np.digitize(x, bins, right=True) + array([1, 2, 3, 4, 4]) + >>> np.digitize(x, bins, right=False) + array([1, 3, 3, 4, 5]) + + """ + + dpnp.check_supported_arrays_type(x, bins) + + if dpnp.issubdtype(x.dtype, dpnp.complexfloating): + raise TypeError("x may not be complex") + + if bins.ndim > 1: + raise ValueError("object too deep for desired array") + if bins.ndim < 1: + raise ValueError("object of too small depth for desired array") + + # This is backwards because the arguments below are swapped + side = "left" if right else "right" + + # Check if bins are monotonically increasing. + # If bins is empty, the array is considered to be increasing. + # If all bins are NaN, the array is considered to be decreasing. + if bins.size == 0: + bins_increasing = True + else: + bins_increasing = bins[0] <= bins[-1] or ( + not dpnp.isnan(bins[0]) and dpnp.isnan(bins[-1]) + ) + + if bins_increasing: + # Use dpnp.searchsorted directly if bins are increasing + return dpnp.searchsorted(bins, x, side=side) + + # Reverse bins and adjust indices if bins are decreasing + return bins.size - dpnp.searchsorted(bins[::-1], x, side=side)
+ + + +
+[docs] +def histogram(a, bins=10, range=None, density=None, weights=None): + """ + Compute the histogram of a data set. + + For full documentation refer to :obj:`numpy.histogram`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input data. The histogram is computed over the flattened array. + bins : {int, dpnp.ndarray, usm_ndarray, sequence of scalars}, optional + If `bins` is an int, it defines the number of equal-width bins in the + given range. + If `bins` is a sequence, it defines a monotonically increasing array + of bin edges, including the rightmost edge, allowing for non-uniform + bin widths. + Default: ``10``. + range : {None, 2-tuple of float}, optional + The lower and upper range of the bins. If not provided, range is simply + ``(a.min(), a.max())``. Values outside the range are ignored. The first + element of the range must be less than or equal to the second. `range` + affects the automatic bin computation as well. While bin width is + computed to be optimal based on the actual data within `range`, the bin + count will fill the entire range including portions containing no data. + Default: ``None``. + density : {None, bool}, optional + If ``False`` or ``None``, the result will contain the number of samples + in each bin. If ``True``, the result is the value of the probability + *density* function at the bin, normalized such that the *integral* over + the range is ``1``. Note that the sum of the histogram values will not + be equal to ``1`` unless bins of unity width are chosen; it is not + a probability *mass* function. + Default: ``None``. + weights : {None, dpnp.ndarray, usm_ndarray}, optional + An array of weights, of the same shape as `a`. Each value in `a` only + contributes its associated weight towards the bin count (instead of 1). + If `density` is ``True``, the weights are normalized, so that the + integral of the density over the range remains ``1``. + Please note that the ``dtype`` of `weights` will also become the + ``dtype`` of the returned accumulator (`hist`), so it must be large + enough to hold accumulated values as well. + Default: ``None``. + + Returns + ------- + hist : {dpnp.ndarray} + The values of the histogram. See `density` and `weights` for a + description of the possible semantics. If `weights` are given, + ``hist.dtype`` will be taken from `weights`. + bin_edges : {dpnp.ndarray of floating data type} + Return the bin edges ``(length(hist) + 1)``. + + See Also + -------- + :obj:`dpnp.histogramdd` : Compute the multidimensional histogram. + :obj:`dpnp.bincount` : Count number of occurrences of each value in array + of non-negative integers. + :obj:`dpnp.searchsorted` : Find indices where elements should be inserted + to maintain order. + :obj:`dpnp.digitize` : Return the indices of the bins to which each value + in input array belongs. + :obj:`dpnp.histogram_bin_edges` : Return only the edges of the bins used + by the obj:`dpnp.histogram` function. + + Examples + -------- + >>> import dpnp as np + >>> np.histogram(np.array([1, 2, 1]), bins=[0, 1, 2, 3]) + (array([0, 2, 1]), array([0, 1, 2, 3])) + >>> np.histogram(np.arange(4), bins=np.arange(5), density=True) + (array([0.25, 0.25, 0.25, 0.25]), array([0, 1, 2, 3, 4])) + >>> np.histogram(np.array([[1, 2, 1], [1, 0, 1]]), bins=[0, 1, 2, 3]) + (array([1, 4, 1]), array([0, 1, 2, 3])) + + >>> a = np.arange(5) + >>> hist, bin_edges = np.histogram(a, density=True) + >>> hist + array([0.5, 0. , 0.5, 0. , 0. , 0.5, 0. , 0.5, 0. , 0.5]) + >>> hist.sum() + array(2.5) + >>> np.sum(hist * np.diff(bin_edges)) + array(1.) + + """ + + a, weights, usm_type = _ravel_check_a_and_weights(a, weights) + + bin_edges, uniform_bins = _get_bin_edges(a, bins, range, usm_type) + + # Histogram is an integer or a float array depending on the weights. + if weights is None: + ntype = dpnp.dtype(dpnp.intp) + else: + ntype = weights.dtype + + # The fast path uses bincount, but that only works for certain types + # of weight + # simple_weights = ( + # weights is None or + # dpnp.can_cast(weights.dtype, dpnp.double) or + # dpnp.can_cast(weights.dtype, complex) + # ) + # TODO: implement a fast path + simple_weights = False + + if uniform_bins is not None and simple_weights: + # TODO: implement fast algorithm for equal bins + pass + else: + # Compute via cumulative histogram + if weights is None: + sa = dpnp.sort(a) + cum_n = _search_sorted_inclusive(sa, bin_edges) + else: + zero = dpnp.zeros( + 1, dtype=ntype, sycl_queue=a.sycl_queue, usm_type=usm_type + ) + sorting_index = dpnp.argsort(a) + sa = a[sorting_index] + sw = weights[sorting_index] + cw = dpnp.concatenate((zero, sw.cumsum(dtype=ntype))) + bin_index = _search_sorted_inclusive(sa, bin_edges) + cum_n = cw[bin_index] + + n = dpnp.diff(cum_n) + + if density: + # pylint: disable=possibly-used-before-assignment + db = dpnp.diff(bin_edges).astype(dpnp.default_float_type()) + return n / db / n.sum(), bin_edges + + return n, bin_edges
+ + + +
+[docs] +def histogram_bin_edges(a, bins=10, range=None, weights=None): + """ + Function to calculate only the edges of the bins used by the + :obj:`dpnp.histogram` function. + + For full documentation refer to :obj:`numpy.histogram_bin_edges`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input data. The histogram is computed over the flattened array. + bins : {int, dpnp.ndarray, usm_ndarray, sequence of scalars}, optional + If `bins` is an int, it defines the number of equal-width bins in the + given range. + If `bins` is a sequence, it defines the bin edges, including the + rightmost edge, allowing for non-uniform bin widths. + Default: ``10``. + range : {None, 2-tuple of float}, optional + The lower and upper range of the bins. If not provided, range is simply + ``(a.min(), a.max())``. Values outside the range are ignored. The first + element of the range must be less than or equal to the second. `range` + affects the automatic bin computation as well. While bin width is + computed to be optimal based on the actual data within `range`, the bin + count will fill the entire range including portions containing no data. + Default: ``None``. + weights : {None, dpnp.ndarray, usm_ndarray}, optional + An array of weights, of the same shape as `a`. Each value in `a` only + contributes its associated weight towards the bin count (instead of 1). + This is currently not used by any of the bin estimators, but may be in + the future. + Default: ``None``. + + Returns + ------- + bin_edges : {dpnp.ndarray of floating data type} + The edges to pass into :obj:`dpnp.histogram`. + + See Also + -------- + :obj:`dpnp.histogram` : Compute the histogram of a data set. + + Examples + -------- + >>> import dpnp as np + >>> arr = np.array([0, 0, 0, 1, 2, 3, 3, 4, 5]) + >>> np.histogram_bin_edges(arr, bins=2) + array([0. , 2.5, 5. ]) + + For consistency with histogram, an array of pre-computed bins is + passed through unmodified: + + >>> np.histogram_bin_edges(arr, [1, 2]) + array([1, 2]) + + This function allows one set of bins to be computed, and reused across + multiple histograms: + + >>> shared_bins = np.histogram_bin_edges(arr, bins=5) + >>> shared_bins + array([0., 1., 2., 3., 4., 5.]) + + >>> gid = np.array([0, 1, 1, 0, 1, 1, 0, 1, 1]) + >>> hist_0, _ = np.histogram(arr[gid == 0], bins=shared_bins) + >>> hist_1, _ = np.histogram(arr[gid == 1], bins=shared_bins) + + >>> hist_0, hist_1 + (array([1, 1, 0, 1, 0]), array([2, 0, 1, 1, 2])) + + Which gives more easily comparable results than using separate bins for + each histogram: + + >>> hist_0, bins_0 = np.histogram(arr[gid == 0], bins=3) + >>> hist_1, bins_1 = np.histogram(arr[gid == 1], bins=4) + >>> hist_0, hist_1 + (array([1, 1, 1]), array([2, 1, 1, 2])) + >>> bins_0, bins_1 + (array([0., 1., 2., 3.]), array([0. , 1.25, 2.5 , 3.75, 5. ])) + + """ + + a, weights, usm_type = _ravel_check_a_and_weights(a, weights) + bin_edges, _ = _get_bin_edges(a, bins, range, usm_type) + return bin_edges
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_indexing.html b/pull/2070/_modules/dpnp/dpnp_iface_indexing.html new file mode 100644 index 00000000000..3ab1d4fc42f --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_indexing.html @@ -0,0 +1,2585 @@ + + + + + + + + + + dpnp.dpnp_iface_indexing — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_indexing

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the Indexing part of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+import operator
+
+import dpctl.tensor as dpt
+import numpy
+from dpctl.tensor._numpy_helper import normalize_axis_index
+
+import dpnp
+
+# pylint: disable=no-name-in-module
+from .dpnp_algo import (
+    dpnp_choose,
+    dpnp_putmask,
+)
+from .dpnp_array import dpnp_array
+from .dpnp_utils import (
+    call_origin,
+    get_usm_allocations,
+)
+
+__all__ = [
+    "choose",
+    "diag_indices",
+    "diag_indices_from",
+    "diagonal",
+    "extract",
+    "fill_diagonal",
+    "flatnonzero",
+    "indices",
+    "ix_",
+    "mask_indices",
+    "nonzero",
+    "place",
+    "put",
+    "put_along_axis",
+    "putmask",
+    "ravel_multi_index",
+    "select",
+    "take",
+    "take_along_axis",
+    "tril_indices",
+    "tril_indices_from",
+    "triu_indices",
+    "triu_indices_from",
+    "unravel_index",
+]
+
+
+def _build_along_axis_index(a, ind, axis):
+    """
+    Build a fancy index used by a family of `_along_axis` functions.
+
+    The fancy index consists of orthogonal arranges, with the
+    requested index inserted at the right location.
+
+    The resulting index is going to be used inside `dpnp.put_along_axis`
+    and `dpnp.take_along_axis` implementations.
+
+    """
+
+    if not dpnp.issubdtype(ind.dtype, dpnp.integer):
+        raise IndexError("`indices` must be an integer array")
+
+    # normalize array shape and input axis
+    if axis is None:
+        a_shape = (a.size,)
+        axis = 0
+    else:
+        a_shape = a.shape
+        axis = normalize_axis_index(axis, a.ndim)
+
+    if len(a_shape) != ind.ndim:
+        raise ValueError(
+            "`indices` and `a` must have the same number of dimensions"
+        )
+
+    # compute dimensions to iterate over
+    dest_dims = list(range(axis)) + [None] + list(range(axis + 1, ind.ndim))
+    shape_ones = (1,) * ind.ndim
+
+    # build the index
+    fancy_index = []
+    for dim, n in zip(dest_dims, a_shape):
+        if dim is None:
+            fancy_index.append(ind)
+        else:
+            ind_shape = shape_ones[:dim] + (-1,) + shape_ones[dim + 1 :]
+            fancy_index.append(
+                dpnp.arange(
+                    n,
+                    dtype=ind.dtype,
+                    usm_type=ind.usm_type,
+                    sycl_queue=ind.sycl_queue,
+                ).reshape(ind_shape)
+            )
+
+    return tuple(fancy_index)
+
+
+def _ravel_multi_index_checks(multi_index, dims, order):
+    dpnp.check_supported_arrays_type(*multi_index)
+    ndim = len(dims)
+    if len(multi_index) != ndim:
+        raise ValueError(
+            f"parameter multi_index must be a sequence of length {ndim}"
+        )
+    dim_mul = 1.0
+    for d in dims:
+        if not isinstance(d, int):
+            raise TypeError(
+                f"{type(d)} object cannot be interpreted as an integer"
+            )
+        dim_mul *= d
+
+    if dim_mul > dpnp.iinfo(dpnp.int64).max:
+        raise ValueError(
+            "invalid dims: array size defined by dims is larger than the "
+            "maximum possible size"
+        )
+    if order not in ("C", "c", "F", "f", None):
+        raise ValueError(
+            "Unrecognized `order` keyword value, expecting "
+            f"'C' or 'F', but got '{order}'"
+        )
+
+
+
+[docs] +def choose(x1, choices, out=None, mode="raise"): + """ + Construct an array from an index array and a set of arrays to choose from. + + For full documentation refer to :obj:`numpy.choose`. + + See also + -------- + :obj:`dpnp.take_along_axis` : Preferable if choices is an array. + + """ + x1_desc = dpnp.get_dpnp_descriptor(x1, copy_when_nondefault_queue=False) + + choices_list = [] + for choice in choices: + choices_list.append( + dpnp.get_dpnp_descriptor(choice, copy_when_nondefault_queue=False) + ) + + if x1_desc: + if any(not desc for desc in choices_list): + pass + elif out is not None: + pass + elif mode != "raise": + pass + elif any(not choices[0].dtype == choice.dtype for choice in choices): + pass + elif not choices_list: + pass + else: + size = x1_desc.size + choices_size = choices_list[0].size + if any( + choice.size != choices_size or choice.size != size + for choice in choices + ): + pass + elif any(x >= choices_size for x in dpnp.asnumpy(x1)): + pass + else: + return dpnp_choose(x1_desc, choices_list).get_pyobj() + + return call_origin(numpy.choose, x1, choices, out, mode)
+ + + +
+[docs] +def diag_indices(n, ndim=2, device=None, usm_type="device", sycl_queue=None): + """ + Return the indices to access the main diagonal of an array. + + This returns a tuple of indices that can be used to access the main + diagonal of an array `a` with ``a.ndim >= 2`` dimensions and shape + (n, n, ..., n). For ``a.ndim = 2`` this is the usual diagonal, for + ``a.ndim > 2`` this is the set of indices to access ``a[i, i, ..., i]`` + for ``i = [0..n-1]``. + + For full documentation refer to :obj:`numpy.diag_indices`. + + Parameters + ---------- + n : int + The size, along each dimension, of the arrays for which the returned + indices can be used. + ndim : int, optional + The number of dimensions. Default: ``2``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : tuple of dpnp.ndarray + The indices to access the main diagonal of an array. + + See also + -------- + :obj:`dpnp.diag_indices_from` : Return the indices to access the main + diagonal of an n-dimensional array. + + Examples + -------- + Create a set of indices to access the diagonal of a (4, 4) array: + + >>> import dpnp as np + >>> di = np.diag_indices(4) + >>> di + (array([0, 1, 2, 3]), array([0, 1, 2, 3])) + >>> a = np.arange(16).reshape(4, 4) + >>> a + array([[ 0, 1, 2, 3], + [ 4, 5, 6, 7], + [ 8, 9, 10, 11], + [12, 13, 14, 15]]) + >>> a[di] = 100 + >>> a + array([[100, 1, 2, 3], + [ 4, 100, 6, 7], + [ 8, 9, 100, 11], + [ 12, 13, 14, 100]]) + + Now, we create indices to manipulate a 3-D array: + + >>> d3 = np.diag_indices(2, 3) + >>> d3 + (array([0, 1]), array([0, 1]), array([0, 1])) + + And use it to set the diagonal of an array of zeros to 1: + + >>> a = np.zeros((2, 2, 2), dtype=int) + >>> a[d3] = 1 + >>> a + array([[[1, 0], + [0, 0]], + [[0, 0], + [0, 1]]]) + + """ + + idx = dpnp.arange( + n, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + return (idx,) * ndim
+ + + +
+[docs] +def diag_indices_from(arr): + """ + Return the indices to access the main diagonal of an n-dimensional array. + + For full documentation refer to :obj:`numpy.diag_indices_from`. + + Parameters + ---------- + arr : {dpnp.ndarray, usm_ndarray} + Array at least 2-D. + + Returns + ------- + out : tuple of dpnp.ndarray + The indices to access the main diagonal of an n-dimensional array. + + See also + -------- + :obj:`dpnp.diag_indices` : Return the indices to access the main diagonal + of an array. + + Examples + -------- + Create a 4 by 4 array. + + >>> import dpnp as np + >>> a = np.arange(16).reshape(4, 4) + >>> a + array([[ 0, 1, 2, 3], + [ 4, 5, 6, 7], + [ 8, 9, 10, 11], + [12, 13, 14, 15]]) + + Get the indices of the diagonal elements. + + >>> di = np.diag_indices_from(a) + >>> di + (array([0, 1, 2, 3]), array([0, 1, 2, 3])) + + >>> a[di] + array([ 0, 5, 10, 15]) + + This is simply syntactic sugar for diag_indices. + + >>> np.diag_indices(a.shape[0]) + (array([0, 1, 2, 3]), array([0, 1, 2, 3])) + + """ + + dpnp.check_supported_arrays_type(arr) + + if not arr.ndim >= 2: + raise ValueError("input array must be at least 2-d") + + if not numpy.all(numpy.diff(arr.shape) == 0): + raise ValueError("All dimensions of input must be of equal length") + + return diag_indices( + arr.shape[0], + arr.ndim, + usm_type=arr.usm_type, + sycl_queue=arr.sycl_queue, + )
+ + + +
+[docs] +def diagonal(a, offset=0, axis1=0, axis2=1): + """ + Return specified diagonals. + + This function always returns a read/write view, and writing to + the returned array will alter your original array. + + If you need to modify the array returned by this function without affecting + the original array, we suggest copying the returned array explicitly, i.e., + use ``dpnp.diagonal(a).copy()`` instead of ``dpnp.diagonal(a)``. + + For full documentation refer to :obj:`numpy.diagonal`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Array from which the diagonals are taken. + offset : int, optional + Offset of the diagonal from the main diagonal. Can be positive or + negative. Defaults to main diagonal (``0``). + axis1 : int, optional + Axis to be used as the first axis of the 2-D sub-arrays from which + the diagonals should be taken. Defaults to first axis (``0``). + axis2 : int, optional + Axis to be used as the second axis of the 2-D sub-arrays from + which the diagonals should be taken. Defaults to second axis (``1``). + + Returns + ------- + array_of_diagonals : dpnp.ndarray + Array is a read/write view. + If `a` is 2-D, then a 1-D array containing the diagonal and of the + same type as `a` is returned. + If ``a.ndim > 2``, then the dimensions specified by `axis1` and `axis2` + are removed, and a new axis inserted at the end corresponding to the + diagonal. + + See Also + -------- + :obj:`dpnp.diag` : Extract a diagonal or construct a diagonal array. + :obj:`dpnp.diagflat` : Create a two-dimensional array + with the flattened input as a diagonal. + :obj:`dpnp.trace` : Return the sum along diagonals of the array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(4).reshape(2,2) + >>> a + array([[0, 1], + [2, 3]]) + >>> a.diagonal() + array([0, 3]) + >>> a.diagonal(1) + array([1]) + + A 3-D example: + + >>> a = np.arange(8).reshape(2,2,2) + >>> a + array([[[0, 1], + [2, 3]], + [[4, 5], + [6, 7]]]) + >>> a.diagonal(0, # Main diagonals of two arrays created by skipping + ... 0, # across the outer(left)-most axis last and + ... 1) # the "middle" (row) axis first. + array([[0, 6], + [1, 7]]) + + The sub-arrays whose main diagonals we just obtained; note that each + corresponds to fixing the right-most (column) axis, and that the + diagonals are "packed" in rows. + + >>> a[:,:,0] # main diagonal is [0 6] + array([[0, 2], + [4, 6]]) + >>> a[:,:,1] # main diagonal is [1 7] + array([[1, 3], + [5, 7]]) + + The anti-diagonal can be obtained by reversing the order of elements + using either `dpnp.flipud` or `dpnp.fliplr`. + + >>> a = np.arange(9).reshape(3, 3) + >>> a + array([[0, 1, 2], + [3, 4, 5], + [6, 7, 8]]) + >>> np.fliplr(a).diagonal() # Horizontal flip + array([2, 4, 6]) + >>> np.flipud(a).diagonal() # Vertical flip + array([6, 4, 2]) + + Note that the order in which the diagonal is retrieved varies depending + on the flip function. + + """ + + dpnp.check_supported_arrays_type(a) + a_ndim = a.ndim + + if a_ndim < 2: + raise ValueError("diag requires an array of at least two dimensions") + + if not isinstance(offset, int): + raise TypeError( + f"`offset` must be an integer data type, but got {type(offset)}" + ) + + axis1 = normalize_axis_index(axis1, a_ndim) + axis2 = normalize_axis_index(axis2, a_ndim) + + if axis1 == axis2: + raise ValueError("`axis1` and `axis2` cannot be the same") + + # get list of the order of all axes excluding the two target axes + axes_order = [i for i in range(a_ndim) if i not in [axis1, axis2]] + + # transpose the input array to put the target axes at the end + # to simplify diagonal extraction + if offset >= 0: + a = dpnp.transpose(a, axes_order + [axis1, axis2]) + else: + a = dpnp.transpose(a, axes_order + [axis2, axis1]) + offset = -offset + + a_shape = a.shape + a_straides = a.strides + n, m = a_shape[-2:] + st_n, st_m = a_straides[-2:] + # pylint: disable=W0212 + a_element_offset = a.get_array()._element_offset + + # Compute shape, strides and offset of the resulting diagonal array + # based on the input offset + if offset == 0: + out_shape = a_shape[:-2] + (min(n, m),) + out_strides = a_straides[:-2] + (st_n + st_m,) + out_offset = a_element_offset + elif 0 < offset < m: + out_shape = a_shape[:-2] + (min(n, m - offset),) + out_strides = a_straides[:-2] + (st_n + st_m,) + out_offset = a_element_offset + st_m * offset + else: + out_shape = a_shape[:-2] + (0,) + out_strides = a_straides[:-2] + (1,) + out_offset = a_element_offset + + return dpnp_array._create_from_usm_ndarray( + dpt.usm_ndarray( + out_shape, + dtype=a.dtype, + buffer=a.get_array(), + strides=out_strides, + offset=out_offset, + ) + )
+ + + +
+[docs] +def extract(condition, a): + """ + Return the elements of an array that satisfy some condition. + + This is equivalent to + ``dpnp.compress(dpnp.ravel(condition), dpnp.ravel(a))``. If `condition` + is boolean :obj:`dpnp.extract` is equivalent to ``a[condition]``. + + Note that :obj:`dpnp.place` does the exact opposite of :obj:`dpnp.extract`. + + For full documentation refer to :obj:`numpy.extract`. + + Parameters + ---------- + condition : {array_like, scalar} + An array whose non-zero or ``True`` entries indicate the element of `a` + to extract. + a : {dpnp.ndarray, usm_ndarray} + Input array of the same size as `condition`. + + Returns + ------- + out : dpnp.ndarray + Rank 1 array of values from `a` where `condition` is ``True``. + + See Also + -------- + :obj:`dpnp.take` : Take elements from an array along an axis. + :obj:`dpnp.put` : Replaces specified elements of an array with given values. + :obj:`dpnp.copyto` : Copies values from one array to another, broadcasting + as necessary. + :obj:`dpnp.compress` : Return selected slices of an array along given axis. + :obj:`dpnp.place` : Change elements of an array based on conditional and + input values. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(12).reshape((3, 4)) + >>> a + array([[ 0, 1, 2, 3], + [ 4, 5, 6, 7], + [ 8, 9, 10, 11]]) + >>> condition = np.mod(a, 3) == 0 + >>> condition + array([[ True, False, False, True], + [False, False, True, False], + [False, True, False, False]]) + >>> np.extract(condition, a) + array([0, 3, 6, 9]) + + If `condition` is boolean: + + >>> a[condition] + array([0, 3, 6, 9]) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + usm_cond = dpnp.as_usm_ndarray( + condition, + dtype=dpnp.bool, + usm_type=usm_a.usm_type, + sycl_queue=usm_a.sycl_queue, + ) + + if usm_cond.size != usm_a.size: + usm_a = dpt.reshape(usm_a, -1) + usm_cond = dpt.reshape(usm_cond, -1) + + usm_res = dpt.take(usm_a, dpt.nonzero(usm_cond)[0]) + else: + if usm_cond.shape != usm_a.shape: + usm_a = dpt.reshape(usm_a, -1) + usm_cond = dpt.reshape(usm_cond, -1) + + usm_res = dpt.extract(usm_cond, usm_a) + + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +
+[docs] +def fill_diagonal(a, val, wrap=False): + """ + Fill the main diagonal of the given array of any dimensionality. + + For an array `a` with ``a.ndim >= 2``, the diagonal is the list of values + ``a[i, ..., i]`` with indices ``i`` all identical. This function modifies + the input array in-place without returning a value. + + For full documentation refer to :obj:`numpy.fill_diagonal`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Array whose diagonal is to be filled in-place. It must be at least 2-D. + val : {dpnp.ndarray, usm_ndarray, scalar} + Value(s) to write on the diagonal. If `val` is scalar, the value is + written along the diagonal. If array, the flattened `val` is + written along the diagonal, repeating if necessary to fill all + diagonal entries. + wrap : bool + It enables the diagonal "wrapped" after N columns. This affects only + tall matrices. Default: ``False``. + + See Also + -------- + :obj:`dpnp.diag_indices` : Return the indices to access the main diagonal + of an array. + :obj:`dpnp.diag_indices_from` : Return the indices to access the main + diagonal of an n-dimensional array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.zeros((3, 3), dtype=int) + >>> np.fill_diagonal(a, 5) + >>> a + array([[5, 0, 0], + [0, 5, 0], + [0, 0, 5]]) + + The same function can operate on a 4-D array: + + >>> a = np.zeros((3, 3, 3, 3), dtype=int) + >>> np.fill_diagonal(a, 4) + + We only show a few blocks for clarity: + + >>> a[0, 0] + array([[4, 0, 0], + [0, 0, 0], + [0, 0, 0]]) + >>> a[1, 1] + array([[0, 0, 0], + [0, 4, 0], + [0, 0, 0]]) + >>> a[2, 2] + array([[0, 0, 0], + [0, 0, 0], + [0, 0, 4]]) + + The `wrap` option affects only tall matrices: + + >>> # tall matrices no wrap + >>> a = np.zeros((5, 3), dtype=int) + >>> np.fill_diagonal(a, 4) + >>> a + array([[4, 0, 0], + [0, 4, 0], + [0, 0, 4], + [0, 0, 0], + [0, 0, 0]]) + + >>> # tall matrices wrap + >>> a = np.zeros((5, 3), dtype=int) + >>> np.fill_diagonal(a, 4, wrap=True) + >>> a + array([[4, 0, 0], + [0, 4, 0], + [0, 0, 4], + [0, 0, 0], + [4, 0, 0]]) + + >>> # wide matrices + >>> a = np.zeros((3, 5), dtype=int) + >>> np.fill_diagonal(a, 4, wrap=True) + >>> a + array([[4, 0, 0, 0, 0], + [0, 4, 0, 0, 0], + [0, 0, 4, 0, 0]]) + + The anti-diagonal can be filled by reversing the order of elements + using either `dpnp.flipud` or `dpnp.fliplr`. + + >>> a = np.zeros((3, 3), dtype=int) + >>> val = np.array([1, 2, 3]) + >>> np.fill_diagonal(np.fliplr(a), val) # Horizontal flip + >>> a + array([[0, 0, 1], + [0, 2, 0], + [3, 0, 0]]) + >>> np.fill_diagonal(np.flipud(a), val) # Vertical flip + >>> a + array([[0, 0, 3], + [0, 2, 0], + [1, 0, 0]]) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + usm_val = dpnp.get_usm_ndarray_or_scalar(val) + + if a.ndim < 2: + raise ValueError("array must be at least 2-d") + + end = a.size + if a.ndim == 2: + step = a.shape[1] + 1 + if not wrap and a.shape[0] > a.shape[1]: + end = a.shape[1] * a.shape[1] + else: + if not numpy.all(numpy.diff(a.shape) == 0): + raise ValueError("All dimensions of input must be of equal length") + step = sum(a.shape[0] ** x for x in range(a.ndim)) + + # TODO: implement flatiter for slice key + # a.flat[:end:step] = val + # but need to consider use case when `a` is usm_ndarray also + a_sh = a.shape + tmp_a = dpt.reshape(usm_a, -1) + if dpnp.isscalar(usm_val): + tmp_a[:end:step] = usm_val + else: + usm_val = dpt.reshape(usm_val, -1) + + # Setitem can work only if index size equal val size. + # Using loop for general case without dependencies of val size. + for i in range(0, usm_val.size): + tmp_a[step * i : end : step * (i + 1)] = usm_val[i] + + tmp_a = dpt.reshape(tmp_a, a_sh) + usm_a[:] = tmp_a
+ + + +
+[docs] +def flatnonzero(a): + """ + Return indices that are non-zero in the flattened version of `a`. + + This is equivalent to ``dpnp.nonzero(dpnp.ravel(a))[0]``. + + For full documentation refer to :obj:`numpy.flatnonzero`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input data. + + Returns + ------- + out : dpnp.ndarray + Output array, containing the indices of the elements of ``a.ravel()`` + that are non-zero. + + See Also + -------- + :obj:`dpnp.nonzero` : Return the indices of the non-zero elements of + the input array. + :obj:`dpnp.ravel` : Return a 1-D array containing the elements of + the input array. + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(-2, 3) + >>> x + array([-2, -1, 0, 1, 2]) + >>> np.flatnonzero(x) + array([0, 1, 3, 4]) + + Use the indices of the non-zero elements as an index array to extract + these elements: + + >>> x.ravel()[np.flatnonzero(x)] + array([-2, -1, 1, 2]) + + """ + + return dpnp.nonzero(dpnp.ravel(a))[0]
+ + + +
+[docs] +def indices( + dimensions, + dtype=int, + sparse=False, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return an array representing the indices of a grid. + + Compute an array where the subarrays contain index values 0, 1, … + varying only along the corresponding axis. + + For full documentation refer to :obj:`numpy.indices`. + + Parameters + ---------- + dimensions : sequence of ints + The shape of the grid. + dtype : {None, dtype}, optional + Data type of the result. + sparse : {None, boolean}, optional + Return a sparse representation of the grid instead of a dense + representation. Default is ``False``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : one dpnp.ndarray or tuple of dpnp.ndarray + If sparse is ``False``: + Returns one array of grid indices, + ``grid.shape = (len(dimensions),) + tuple(dimensions)``. + + If sparse is ``True``: + Returns a tuple of arrays, + with grid[i].shape = (1, ..., 1, dimensions[i], 1, ..., 1) + with dimensions[i] in the i-th place. + + See Also + -------- + :obj:`dpnp.mgrid` : Return a dense multi-dimensional “meshgrid”. + :obj:`dpnp.ogrid` : Return an open multi-dimensional “meshgrid”. + :obj:`dpnp.meshgrid` : Return a tuple of coordinate matrices from + coordinate vectors. + + Examples + -------- + >>> import dpnp as np + >>> grid = np.indices((2, 3)) + >>> grid.shape + (2, 2, 3) + >>> grid[0] + array([[0, 0, 0], + [1, 1, 1]]) + >>> grid[1] + array([[0, 1, 2], + [0, 1, 2]]) + + The indices can be used as an index into an array. + + >>> x = np.arange(20).reshape(5, 4) + >>> row, col = np.indices((2, 3)) + >>> x[row, col] + array([[0, 1, 2], + [4, 5, 6]]) + + Note that it would be more straightforward in the above example to + extract the required elements directly with ``x[:2, :3]``. + If sparse is set to ``True``, the grid will be returned in a sparse + representation. + + >>> i, j = np.indices((2, 3), sparse=True) + >>> i.shape + (2, 1) + >>> j.shape + (1, 3) + >>> i + array([[0], + [1]]) + >>> j + array([[0, 1, 2]]) + + """ + + dimensions = tuple(dimensions) + n = len(dimensions) + shape = (1,) * n + + if sparse: + res = () + else: + res = dpnp.empty( + (n,) + dimensions, + dtype=dtype, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + + for i, dim in enumerate(dimensions): + idx = dpnp.arange( + dim, + dtype=dtype, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ).reshape(shape[:i] + (dim,) + shape[i + 1 :]) + + if sparse: + res = res + (idx,) + else: + res[i] = idx + return res
+ + + +
+[docs] +def ix_(*args): + """Construct an open mesh from multiple sequences. + + This function takes N 1-D sequences and returns N outputs with N + dimensions each, such that the shape is 1 in all but one dimension + and the dimension with the non-unit shape value cycles through all + N dimensions. + + Using :obj:`dpnp.ix_` one can quickly construct index arrays that will + index the cross product. ``a[dpnp.ix_([1,3],[2,5])]`` returns the array + ``[[a[1,2] a[1,5]], [a[3,2] a[3,5]]]``. + + Parameters + ---------- + x1, x2,..., xn : {dpnp.ndarray, usm_ndarray} + 1-D sequences. Each sequence should be of integer or boolean type. + Boolean sequences will be interpreted as boolean masks for the + corresponding dimension (equivalent to passing in + ``dpnp.nonzero(boolean_sequence)``). + + Returns + ------- + out : tuple of dpnp.ndarray + N arrays with N dimensions each, with N the number of input sequences. + Together these arrays form an open mesh. + + See Also + -------- + :obj:`dpnp.mgrid` : Return a dense multi-dimensional “meshgrid”. + :obj:`dpnp.ogrid` : Return an open multi-dimensional “meshgrid”. + :obj:`dpnp.meshgrid` : Return a tuple of coordinate matrices from + coordinate vectors. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(10).reshape(2, 5) + >>> a + array([[0, 1, 2, 3, 4], + [5, 6, 7, 8, 9]]) + >>> x1 = np.array([0, 1]) + >>> x2 = np.array([2, 4]) + >>> ixgrid = np.ix_(x1, x2) + >>> ixgrid + (array([[0], + [1]]), array([[2, 4]])) + >>> ixgrid[0].shape, ixgrid[1].shape + ((2, 1), (1, 2)) + >>> a[ixgrid] + array([[2, 4], + [7, 9]]) + + >>> x1 = np.array([True, True]) + >>> x2 = np.array([2, 4]) + >>> ixgrid = np.ix_(x1, x2) + >>> a[ixgrid] + array([[2, 4], + [7, 9]]) + >>> x1 = np.array([True, True]) + >>> x2 = np.array([False, False, True, False, True]) + >>> ixgrid = np.ix_(x1, x2) + >>> a[ixgrid] + array([[2, 4], + [7, 9]]) + + """ + + dpnp.check_supported_arrays_type(*args) + + out = [] + nd = len(args) + for k, new in enumerate(args): + if new.ndim != 1: + raise ValueError("Cross index must be 1 dimensional") + if dpnp.issubdtype(new.dtype, dpnp.bool): + (new,) = dpnp.nonzero(new) + new = dpnp.reshape(new, (1,) * k + (new.size,) + (1,) * (nd - k - 1)) + out.append(new) + return tuple(out)
+ + + +
+[docs] +def mask_indices( + n, + mask_func, + k=0, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return the indices to access (n, n) arrays, given a masking function. + + Assume `mask_func` is a function that, for a square array a of size + ``(n, n)`` with a possible offset argument `k`, when called as + ``mask_func(a, k=k)`` returns a new array with zeros in certain locations + (functions like :obj:`dpnp.triu` or :obj:`dpnp.tril` do precisely this). + Then this function returns the indices where the non-zero values would be + located. + + Parameters + ---------- + n : int + The returned indices will be valid to access arrays of shape (n, n). + mask_func : callable + A function whose call signature is similar to that of :obj:`dpnp.triu`, + :obj:`dpnp.tril`. That is, ``mask_func(x, k=k)`` returns a boolean + array, shaped like `x`.`k` is an optional argument to the function. + k : scalar + An optional argument which is passed through to `mask_func`. Functions + like :obj:`dpnp.triu`, :obj:`dpnp.tril` take a second argument that is + interpreted as an offset. Default: ``0``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + indices : tuple of dpnp.ndarray + The `n` arrays of indices corresponding to the locations where + ``mask_func(np.ones((n, n)), k)`` is True. + + See Also + -------- + :obj:`dpnp.tril` : Return lower triangle of an array. + :obj:`dpnp.triu` : Return upper triangle of an array. + :obj:`dpnp.triu_indices` : Return the indices for the upper-triangle of an + (n, m) array. + :obj:`dpnp.tril_indices` : Return the indices for the lower-triangle of an + (n, m) array. + + Examples + -------- + These are the indices that would allow you to access the upper triangular + part of any 3x3 array: + + >>> import dpnp as np + >>> iu = np.mask_indices(3, np.triu) + + For example, if `a` is a 3x3 array: + + >>> a = np.arange(9).reshape(3, 3) + >>> a + array([[0, 1, 2], + [3, 4, 5], + [6, 7, 8]]) + >>> a[iu] + array([0, 1, 2, 4, 5, 8]) + + An offset can be passed also to the masking function. This gets us the + indices starting on the first diagonal right of the main one: + + >>> iu1 = np.mask_indices(3, np.triu, 1) + + with which we now extract only three elements: + + >>> a[iu1] + array([1, 2, 5]) + + """ + + m = dpnp.ones( + (n, n), + dtype=int, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + a = mask_func(m, k=k) + return nonzero(a != 0)
+ + + +
+[docs] +def nonzero(a): + """ + Return the indices of the elements that are non-zero. + + Returns a tuple of arrays, one for each dimension of `a`, containing + the indices of the non-zero elements in that dimension. The values in `a` + are always tested and returned in row-major, C-style order. + + To group the indices by element, rather than dimension, use + :obj:`dpnp.argwhere`, which returns a row for each non-zero element. + + For full documentation refer to :obj:`numpy.nonzero`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + + Returns + ------- + out : tuple[dpnp.ndarray] + Indices of elements that are non-zero. + + See Also + -------- + :obj:`dpnp.flatnonzero` : Return indices that are non-zero in + the flattened version of the input array. + :obj:`dpnp.ndarray.nonzero` : Equivalent ndarray method. + :obj:`dpnp.count_nonzero` : Counts the number of non-zero elements + in the input array. + + Notes + ----- + While the nonzero values can be obtained with ``a[nonzero(a)]``, it is + recommended to use ``a[a.astype(bool)]`` or ``a[a != 0]`` instead, which + will correctly handle 0-d arrays. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[3, 0, 0], [0, 4, 0], [5, 6, 0]]) + >>> x + array([[3, 0, 0], + [0, 4, 0], + [5, 6, 0]]) + >>> np.nonzero(x) + (array([0, 1, 2, 2]), array([0, 1, 0, 1])) + + >>> x[np.nonzero(x)] + array([3, 4, 5, 6]) + >>> np.stack(np.nonzero(x)).T + array([[0, 0], + [1, 1], + [2, 0], + [2, 1]]) + + A common use for ``nonzero`` is to find the indices of an array, where + a condition is ``True``. Given an array `a`, the condition `a` > 3 is + a boolean array and since ``False`` is interpreted as ``0``, + ``np.nonzero(a > 3)`` yields the indices of the `a` where the condition is + true. + + >>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) + >>> a > 3 + array([[False, False, False], + [ True, True, True], + [ True, True, True]]) + >>> np.nonzero(a > 3) + (array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2])) + + Using this result to index `a` is equivalent to using the mask directly: + + >>> a[np.nonzero(a > 3)] + array([4, 5, 6, 7, 8, 9]) + >>> a[a > 3] # prefer this spelling + array([4, 5, 6, 7, 8, 9]) + + ``nonzero`` can also be called as a method of the array. + + >>> (a > 3).nonzero() + (array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2])) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + return tuple( + dpnp_array._create_from_usm_ndarray(y) for y in dpt.nonzero(usm_a) + )
+ + + +
+[docs] +def place(a, mask, vals): + """ + Change elements of an array based on conditional and input values. + + Similar to ``dpnp.copyto(a, vals, where=mask)``, the difference is that + :obj:`dpnp.place` uses the first N elements of `vals`, where N is + the number of ``True`` values in `mask`, while :obj:`dpnp.copyto` uses + the elements where `mask` is ``True``. + + Note that :obj:`dpnp.extract` does the exact opposite of :obj:`dpnp.place`. + + For full documentation refer to :obj:`numpy.place`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Array to put data into. + mask : {array_like, scalar} + Boolean mask array. Must have the same size as `a`. + vals : {array_like, scalar} + Values to put into `a`. Only the first N elements are used, where N is + the number of ``True`` values in `mask`. If `vals` is smaller than N, + it will be repeated, and if elements of `a` are to be masked, this + sequence must be non-empty. + + See Also + -------- + :obj:`dpnp.copyto` : Copies values from one array to another. + :obj:`dpnp.put` : Replaces specified elements of an array with given values. + :obj:`dpnp.take` : Take elements from an array along an axis. + :obj:`dpnp.extract` : Return the elements of an array that satisfy some + condition. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(6).reshape(2, 3) + >>> np.place(a, a > 2, [44, 55]) + >>> a + array([[ 0, 1, 2], + [44, 55, 44]]) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + usm_mask = dpnp.as_usm_ndarray( + mask, + dtype=dpnp.bool, + usm_type=usm_a.usm_type, + sycl_queue=usm_a.sycl_queue, + ) + usm_vals = dpnp.as_usm_ndarray( + vals, + dtype=usm_a.dtype, + usm_type=usm_a.usm_type, + sycl_queue=usm_a.sycl_queue, + ) + + if usm_vals.ndim != 1: + # dpt.place supports only 1-D array of values + usm_vals = dpt.reshape(usm_vals, -1) + + if usm_vals.dtype != usm_a.dtype: + # dpt.place casts values to a.dtype with "unsafe" rule, + # while numpy.place does that with "safe" casting rule + usm_vals = dpt.astype(usm_vals, usm_a.dtype, casting="safe", copy=False) + + dpt.place(usm_a, usm_mask, usm_vals)
+ + + +
+[docs] +def put(a, ind, v, /, *, axis=None, mode="wrap"): + """ + Puts values of an array into another array along a given axis. + + For full documentation refer to :obj:`numpy.put`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The array the values will be put into. + ind : {array_like} + Target indices, interpreted as integers. + v : {scalar, array_like} + Values to be put into `a`. Must be broadcastable to the result shape + ``a.shape[:axis] + ind.shape + a.shape[axis+1:]``. + axis : {None, int}, optional + The axis along which the values will be placed. If `a` is 1-D array, + this argument is optional. + Default: ``None``. + mode : {'wrap', 'clip'}, optional + Specifies how out-of-bounds indices will behave. + + - 'wrap': clamps indices to (``-n <= i < n``), then wraps negative + indices. + - 'clip': clips indices to (``0 <= i < n``). + + Default: ``'wrap'``. + + See Also + -------- + :obj:`dpnp.putmask` : Changes elements of an array based on conditional + and input values. + :obj:`dpnp.place` : Change elements of an array based on conditional and + input values. + :obj:`dpnp.put_along_axis` : Put values into the destination array + by matching 1d index and data slices. + + Notes + ----- + In contrast to :obj:`numpy.put` `wrap` mode which wraps indices around + the array for cyclic operations, :obj:`dpnp.put` `wrap` mode clamps indices + to a fixed range within the array boundaries (-n <= i < n). + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(5) + >>> np.put(a, [0, 2], [-44, -55]) + >>> a + array([-44, 1, -55, 3, 4]) + + >>> a = np.arange(5) + >>> np.put(a, 22, -5, mode='clip') + >>> a + array([ 0, 1, 2, 3, -5]) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + + if not (axis is None or isinstance(axis, int)): + raise TypeError(f"`axis` must be of integer type, got {type(axis)}") + + if mode not in ("wrap", "clip"): + raise ValueError( + f"clipmode must be one of 'clip' or 'wrap' (got '{mode}')" + ) + + usm_v = dpnp.as_usm_ndarray( + v, + dtype=usm_a.dtype, + usm_type=usm_a.usm_type, + sycl_queue=usm_a.sycl_queue, + ) + if usm_v.size == 0: + return + + usm_ind = dpnp.as_usm_ndarray( + ind, + dtype=dpnp.intp, + usm_type=usm_a.usm_type, + sycl_queue=usm_a.sycl_queue, + ) + + if usm_ind.ndim != 1: + # dpt.put supports only 1-D array of indices + usm_ind = dpt.reshape(usm_ind, -1, copy=False) + + if not dpnp.issubdtype(usm_ind.dtype, dpnp.integer): + # dpt.put supports only integer dtype for array of indices + usm_ind = dpt.astype(usm_ind, dpnp.intp, casting="safe") + + in_usm_a = usm_a + if axis is None and usm_a.ndim > 1: + usm_a = dpt.reshape(usm_a, -1) + + dpt.put(usm_a, usm_ind, usm_v, axis=axis, mode=mode) + if in_usm_a._pointer != usm_a._pointer: # pylint: disable=protected-access + in_usm_a[:] = dpt.reshape(usm_a, in_usm_a.shape, copy=False)
+ + + +
+[docs] +def put_along_axis(a, ind, values, axis): + """ + Put values into the destination array by matching 1d index and data slices. + + This iterates over matching 1d slices oriented along the specified axis in + the index and data arrays, and uses the former to place values into the + latter. These slices can be different lengths. + + Functions returning an index along an `axis`, like :obj:`dpnp.argsort` and + :obj:`dpnp.argpartition`, produce suitable indices for this function. + + For full documentation refer to :obj:`numpy.put_along_axis`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray}, (Ni..., M, Nk...) + Destination array. + ind : {dpnp.ndarray, usm_ndarray}, (Ni..., J, Nk...) + Indices to change along each 1d slice of `a`. This must match the + dimension of input array, but dimensions in ``Ni`` and ``Nj`` + may be 1 to broadcast against `a`. + values : {scalar, array_like}, (Ni..., J, Nk...) + Values to insert at those indices. Its shape and dimension are + broadcast to match that of `ind`. + axis : int + The axis to take 1d slices along. If axis is ``None``, the destination + array is treated as if a flattened 1d view had been created of it. + + See Also + -------- + :obj:`dpnp.put` : Put values along an axis, using the same indices + for every 1d slice. + :obj:`dpnp.take_along_axis` : Take values from the input array + by matching 1d index and data slices. + + Examples + -------- + For this sample array + + >>> import dpnp as np + >>> a = np.array([[10, 30, 20], [60, 40, 50]]) + + We can replace the maximum values with: + + >>> ai = np.argmax(a, axis=1, keepdims=True) + >>> ai + array([[1], + [0]]) + >>> np.put_along_axis(a, ai, 99, axis=1) + >>> a + array([[10, 99, 20], + [99, 40, 50]]) + + """ + + dpnp.check_supported_arrays_type(a, ind) + + if axis is None: + a = a.ravel() + + a[_build_along_axis_index(a, ind, axis)] = values
+ + + +
+[docs] +def putmask(x1, mask, values): + """ + Changes elements of an array based on conditional and input values. + + For full documentation refer to :obj:`numpy.putmask`. + + Limitations + ----------- + Input arrays ``arr``, ``mask`` and ``values`` are supported + as :obj:`dpnp.ndarray`. + + """ + + x1_desc = dpnp.get_dpnp_descriptor( + x1, copy_when_strides=False, copy_when_nondefault_queue=False + ) + mask_desc = dpnp.get_dpnp_descriptor(mask, copy_when_nondefault_queue=False) + values_desc = dpnp.get_dpnp_descriptor( + values, copy_when_nondefault_queue=False + ) + if x1_desc and mask_desc and values_desc: + return dpnp_putmask(x1_desc, mask_desc, values_desc) + + return call_origin(numpy.putmask, x1, mask, values, dpnp_inplace=True)
+ + + +
+[docs] +def ravel_multi_index(multi_index, dims, mode="raise", order="C"): + """ + Converts a tuple of index arrays into an array of flat indices, applying + boundary modes to the multi-index. + + For full documentation refer to :obj:`numpy.ravel_multi_index`. + + Parameters + ---------- + multi_index : tuple of {dpnp.ndarray, usm_ndarray} + A tuple of integer arrays, one array for each dimension. + dims : tuple or list of ints + The shape of array into which the indices from `multi_index` apply. + mode : {"raise", "wrap" or "clip'}, optional + Specifies how out-of-bounds indices are handled. Can specify either + one mode or a tuple of modes, one mode per index: + + - "raise" -- raise an error + - "wrap" -- wrap around + - "clip" -- clip to the range + + In ``"clip"`` mode, a negative index which would normally wrap will + clip to 0 instead. + Default: ``"raise"``. + order : {None, "C", "F"}, optional + Determines whether the multi-index should be viewed as indexing in + row-major (C-style) or column-major (Fortran-style) order. + Default: ``"C"``. + + Returns + ------- + raveled_indices : dpnp.ndarray + An array of indices into the flattened version of an array of + dimensions `dims`. + + See Also + -------- + :obj:`dpnp.unravel_index` : Converts array of flat indices into a tuple of + coordinate arrays. + + Examples + -------- + >>> import dpnp as np + >>> arr = np.array([[3, 6, 6], [4, 5, 1]]) + >>> np.ravel_multi_index(arr, (7, 6)) + array([22, 41, 37]) + >>> np.ravel_multi_index(arr, (7, 6), order="F") + array([31, 41, 13]) + >>> np.ravel_multi_index(arr, (4, 6), mode="clip") + array([22, 23, 19]) + >>> np.ravel_multi_index(arr, (4, 4), mode=("clip", "wrap")) + array([12, 13, 13]) + + >>> arr = np.array([3, 1, 4, 1]) + >>> np.ravel_multi_index(arr, (6, 7, 8, 9)) + array(1621) + + """ + + _ravel_multi_index_checks(multi_index, dims, order) + + ndim = len(dims) + if isinstance(mode, str): + mode = (mode,) * ndim + + s = 1 + ravel_strides = [1] * ndim + + multi_index = tuple(multi_index) + usm_type_alloc, sycl_queue_alloc = get_usm_allocations(multi_index) + + order = "C" if order is None else order.upper() + if order == "C": + for i in range(ndim - 2, -1, -1): + s = s * dims[i + 1] + ravel_strides[i] = s + else: + for i in range(1, ndim): + s = s * dims[i - 1] + ravel_strides[i] = s + + multi_index = dpnp.broadcast_arrays(*multi_index) + raveled_indices = dpnp.zeros( + multi_index[0].shape, + dtype=dpnp.int64, + usm_type=usm_type_alloc, + sycl_queue=sycl_queue_alloc, + ) + for d, stride, idx, _mode in zip(dims, ravel_strides, multi_index, mode): + if not dpnp.can_cast(idx, dpnp.int64, "same_kind"): + raise TypeError( + f"multi_index entries could not be cast from dtype({idx.dtype})" + f" to dtype({dpnp.int64}) according to the rule 'same_kind'" + ) + idx = idx.astype(dpnp.int64, copy=False) + + if _mode == "raise": + if dpnp.any(dpnp.logical_or(idx >= d, idx < 0)): + raise ValueError("invalid entry in coordinates array") + elif _mode == "clip": + idx = dpnp.clip(idx, 0, d - 1) + elif _mode == "wrap": + idx = idx % d + else: + raise ValueError(f"Unrecognized mode: {_mode}") + raveled_indices += stride * idx + return raveled_indices
+ + + +
+[docs] +def select(condlist, choicelist, default=0): + """ + Return an array drawn from elements in `choicelist`, depending on + conditions. + + For full documentation refer to :obj:`numpy.select`. + + Parameters + ---------- + condlist : list of bool dpnp.ndarray or usm_ndarray + The list of conditions which determine from which array in `choicelist` + the output elements are taken. When multiple conditions are satisfied, + the first one encountered in `condlist` is used. + choicelist : list of dpnp.ndarray or usm_ndarray + The list of arrays from which the output elements are taken. It has + to be of the same length as `condlist`. + default : {scalar, dpnp.ndarray, usm_ndarray}, optional + The element inserted in `output` when all conditions evaluate to + ``False``. Default: ``0``. + + Returns + ------- + out : dpnp.ndarray + The output at position m is the m-th element of the array in + `choicelist` where the m-th element of the corresponding array in + `condlist` is ``True``. + + See Also + -------- + :obj:`dpnp.where` : Return elements from one of two arrays depending on + condition. + :obj:`dpnp.take` : Take elements from an array along an axis. + :obj:`dpnp.choose` : Construct an array from an index array and a set of + arrays to choose from. + :obj:`dpnp.compress` : Return selected slices of an array along given axis. + :obj:`dpnp.diag` : Extract a diagonal or construct a diagonal array. + :obj:`dpnp.diagonal` : Return specified diagonals. + + Examples + -------- + >>> import dpnp as np + + Beginning with an array of integers from 0 to 5 (inclusive), + elements less than ``3`` are negated, elements greater than ``3`` + are squared, and elements not meeting either of these conditions + (exactly ``3``) are replaced with a `default` value of ``42``. + + >>> x = np.arange(6) + >>> condlist = [x<3, x>3] + >>> choicelist = [x, x**2] + >>> np.select(condlist, choicelist, 42) + array([ 0, 1, 2, 42, 16, 25]) + + When multiple conditions are satisfied, the first one encountered in + `condlist` is used. + + >>> condlist = [x<=4, x>3] + >>> choicelist = [x, x**2] + >>> np.select(condlist, choicelist, 55) + array([ 0, 1, 2, 3, 4, 25]) + + """ + + if len(condlist) != len(choicelist): + raise ValueError( + "list of cases must be same length as list of conditions" + ) + + if len(condlist) == 0: + raise ValueError("select with an empty condition list is not possible") + + dpnp.check_supported_arrays_type(*condlist) + dpnp.check_supported_arrays_type(*choicelist) + + if not dpnp.isscalar(default) and not ( + dpnp.is_supported_array_type(default) and default.ndim == 0 + ): + raise TypeError( + "A default value must be any of scalar or 0-d supported array type" + ) + + dtype = dpnp.result_type(*choicelist, default) + + usm_type_alloc, sycl_queue_alloc = get_usm_allocations( + condlist + choicelist + [default] + ) + + for i, cond in enumerate(condlist): + if not dpnp.issubdtype(cond, dpnp.bool): + raise TypeError( + f"invalid entry {i} in condlist: should be boolean ndarray" + ) + + # Convert conditions to arrays and broadcast conditions and choices + # as the shape is needed for the result + condlist = dpnp.broadcast_arrays(*condlist) + choicelist = dpnp.broadcast_arrays(*choicelist) + + result_shape = dpnp.broadcast_arrays(condlist[0], choicelist[0])[0].shape + + result = dpnp.full( + result_shape, + default, + dtype=dtype, + usm_type=usm_type_alloc, + sycl_queue=sycl_queue_alloc, + ) + + # Do in reverse order since the first choice should take precedence. + choicelist = choicelist[::-1] + condlist = condlist[::-1] + for choice, cond in zip(choicelist, condlist): + dpnp.where(cond, choice, result, out=result) + + return result
+ + + +# pylint: disable=redefined-outer-name +
+[docs] +def take(a, indices, /, *, axis=None, out=None, mode="wrap"): + """ + Take elements from an array along an axis. + + When `axis` is not ``None``, this function does the same thing as "fancy" + indexing (indexing arrays using arrays); however, it can be easier to use + if you need elements along a given axis. A call such as + ``dpnp.take(a, indices, axis=3)`` is equivalent to + ``a[:, :, :, indices, ...]``. + + For full documentation refer to :obj:`numpy.take`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray}, (Ni..., M, Nk...) + The source array. + indices : {array_like, scalars}, (Nj...) + The indices of the values to extract. + Also allow scalars for `indices`. + axis : {None, int, bool, 0-d array of integer dtype}, optional + The axis over which to select values. By default, the flattened + input array is used. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional (Ni..., Nj..., Nk...) + If provided, the result will be placed in this array. It should + be of the appropriate shape and dtype. + Default: ``None``. + mode : {"wrap", "clip"}, optional + Specifies how out-of-bounds indices will be handled. Possible values + are: + + - ``"wrap"``: clamps indices to (``-n <= i < n``), then wraps + negative indices. + - ``"clip"``: clips indices to (``0 <= i < n``). + + Default: ``"wrap"``. + + Returns + ------- + out : dpnp.ndarray, (Ni..., Nj..., Nk...) + The returned array has the same type as `a`. + + See Also + -------- + :obj:`dpnp.compress` : Take elements using a boolean mask. + :obj:`dpnp.ndarray.take` : Equivalent method. + :obj:`dpnp.take_along_axis` : Take elements by matching the array and + the index arrays. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([4, 3, 5, 7, 6, 8]) + >>> indices = np.array([0, 1, 4]) + >>> np.take(x, indices) + array([4, 3, 6]) + + In this example "fancy" indexing can be used. + + >>> x[indices] + array([4, 3, 6]) + + >>> indices = dpnp.array([-1, -6, -7, 5, 6]) + >>> np.take(x, indices) + array([8, 4, 4, 8, 8]) + + >>> np.take(x, indices, mode="clip") + array([4, 4, 4, 8, 8]) + + If `indices` is not one dimensional, the output also has these dimensions. + + >>> np.take(x, [[0, 1], [2, 3]]) + array([[4, 3], + [5, 7]]) + + """ + + if mode not in ("wrap", "clip"): + raise ValueError(f"`mode` must be 'wrap' or 'clip', but got `{mode}`.") + + usm_a = dpnp.get_usm_ndarray(a) + if not dpnp.is_supported_array_type(indices): + usm_ind = dpt.asarray( + indices, usm_type=a.usm_type, sycl_queue=a.sycl_queue + ) + else: + usm_ind = dpnp.get_usm_ndarray(indices) + + a_ndim = a.ndim + if axis is None: + res_shape = usm_ind.shape + + if a_ndim > 1: + # dpt.take requires flattened input array + usm_a = dpt.reshape(usm_a, -1) + elif a_ndim == 0: + axis = normalize_axis_index(operator.index(axis), 1) + res_shape = usm_ind.shape + else: + axis = normalize_axis_index(operator.index(axis), a_ndim) + a_sh = a.shape + res_shape = a_sh[:axis] + usm_ind.shape + a_sh[axis + 1 :] + + if usm_ind.ndim != 1: + # dpt.take supports only 1-D array of indices + usm_ind = dpt.reshape(usm_ind, -1) + + if not dpnp.issubdtype(usm_ind.dtype, dpnp.integer): + # dpt.take supports only integer dtype for array of indices + usm_ind = dpt.astype(usm_ind, dpnp.intp, copy=False, casting="safe") + + usm_res = dpt.take(usm_a, usm_ind, axis=axis, mode=mode) + + # need to reshape the result if shape of indices array was changed + result = dpnp.reshape(usm_res, res_shape) + return dpnp.get_result_array(result, out)
+ + + +
+[docs] +def take_along_axis(a, indices, axis, mode="wrap"): + """ + Take values from the input array by matching 1d index and data slices. + + This iterates over matching 1d slices oriented along the specified axis in + the index and data arrays, and uses the former to look up values in the + latter. These slices can be different lengths. + + Functions returning an index along an `axis`, like :obj:`dpnp.argsort` and + :obj:`dpnp.argpartition`, produce suitable indices for this function. + + For full documentation refer to :obj:`numpy.take_along_axis`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray}, (Ni..., M, Nk...) + Source array + indices : {dpnp.ndarray, usm_ndarray}, (Ni..., J, Nk...) + Indices to take along each 1d slice of `a`. This must match the + dimension of the input array, but dimensions ``Ni`` and ``Nj`` + only need to broadcast against `a`. + axis : {None, int} + The axis to take 1d slices along. If axis is ``None``, the input + array is treated as if it had first been flattened to 1d, + for consistency with :obj:`dpnp.sort` and :obj:`dpnp.argsort`. + mode : {"wrap", "clip"}, optional + Specifies how out-of-bounds indices will be handled. Possible values + are: + + - ``"wrap"``: clamps indices to (``-n <= i < n``), then wraps + negative indices. + - ``"clip"``: clips indices to (``0 <= i < n``). + + Default: ``"wrap"``. + + Returns + ------- + out : dpnp.ndarray + The indexed result of the same data type as `a`. + + See Also + -------- + :obj:`dpnp.take` : Take along an axis, using the same indices for + every 1d slice. + :obj:`dpnp.put_along_axis` : Put values into the destination array + by matching 1d index and data slices. + :obj:`dpnp.argsort` : Return the indices that would sort an array. + + Examples + -------- + For this sample array + + >>> import dpnp as np + >>> a = np.array([[10, 30, 20], [60, 40, 50]]) + + We can sort either by using :obj:`dpnp.sort` directly, or + :obj:`dpnp.argsort` and this function: + + >>> np.sort(a, axis=1) + array([[10, 20, 30], + [40, 50, 60]]) + >>> ai = np.argsort(a, axis=1) + >>> ai + array([[0, 2, 1], + [1, 2, 0]]) + >>> np.take_along_axis(a, ai, axis=1) + array([[10, 20, 30], + [40, 50, 60]]) + + The same works for max and min, if you maintain the trivial dimension + with ``keepdims``: + + >>> np.max(a, axis=1, keepdims=True) + array([[30], + [60]]) + >>> ai = np.argmax(a, axis=1, keepdims=True) + >>> ai + array([[1], + [0]]) + >>> np.take_along_axis(a, ai, axis=1) + array([[30], + [60]]) + + If we want to get the max and min at the same time, we can stack the + indices first: + + >>> ai_min = np.argmin(a, axis=1, keepdims=True) + >>> ai_max = np.argmax(a, axis=1, keepdims=True) + >>> ai = np.concatenate([ai_min, ai_max], axis=1) + >>> ai + array([[0, 1], + [1, 0]]) + >>> np.take_along_axis(a, ai, axis=1) + array([[10, 30], + [40, 60]]) + + """ + + if axis is None: + dpnp.check_supported_arrays_type(indices) + if indices.ndim != 1: + raise ValueError( + "when axis=None, `indices` must have a single dimension." + ) + + a = dpnp.ravel(a) + axis = 0 + + usm_a = dpnp.get_usm_ndarray(a) + usm_ind = dpnp.get_usm_ndarray(indices) + + usm_res = dpt.take_along_axis(usm_a, usm_ind, axis=axis, mode=mode) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +
+[docs] +def tril_indices( + n, + k=0, + m=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return the indices for the lower-triangle of an (n, m) array. + + For full documentation refer to :obj:`numpy.tril_indices`. + + Parameters + ---------- + n : int + The row dimension of the arrays for which the returned + indices will be valid. + k : int, optional + Diagonal offset (see :obj:`dpnp.tril` for details). Default: ``0``. + m : {None, int}, optional + The column dimension of the arrays for which the returned + arrays will be valid. + By default `m` is taken equal to `n`. Default: ``None``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + inds : tuple of dpnp.ndarray + The indices for the triangle. The returned tuple contains two arrays, + each with the indices along one dimension of the array. + + See Also + -------- + :obj:`dpnp.triu_indices` : similar function, for upper-triangular. + :obj:`dpnp.mask_indices` : generic function accepting an arbitrary mask + function. + :obj:`dpnp.tril` : Return lower triangle of an array. + :obj:`dpnp.triu` : Return upper triangle of an array. + + Examples + -------- + Compute two different sets of indices to access 4x4 arrays, one for the + lower triangular part starting at the main diagonal, and one starting two + diagonals further right: + + >>> import dpnp as np + >>> il1 = np.tril_indices(4) + >>> il2 = np.tril_indices(4, 2) + + Here is how they can be used with a sample array: + + >>> a = np.arange(16).reshape(4, 4) + >>> a + array([[ 0, 1, 2, 3], + [ 4, 5, 6, 7], + [ 8, 9, 10, 11], + [12, 13, 14, 15]]) + + Both for indexing: + + >>> a[il1] + array([ 0, 4, 5, ..., 13, 14, 15]) + + And for assigning values: + + >>> a[il1] = -1 + >>> a + array([[-1, 1, 2, 3], + [-1, -1, 6, 7], + [-1, -1, -1, 11], + [-1, -1, -1, -1]]) + + These cover almost the whole array (two diagonals right of the main one): + + >>> a[il2] = -10 + >>> a + array([[-10, -10, -10, 3], + [-10, -10, -10, -10], + [-10, -10, -10, -10], + [-10, -10, -10, -10]]) + + """ + + tri_ = dpnp.tri( + n, + m, + k=k, + dtype=bool, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + + return tuple( + dpnp.broadcast_to(inds, tri_.shape)[tri_] + for inds in indices( + tri_.shape, + sparse=True, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + )
+ + + +
+[docs] +def tril_indices_from(arr, k=0): + """ + Return the indices for the lower-triangle of arr. + + For full documentation refer to :obj:`numpy.tril_indices_from`. + + Parameters + ---------- + arr : {dpnp.ndarray, usm_ndarray} + The indices will be valid for square arrays whose dimensions are + the same as arr. + k : int, optional + Diagonal offset (see :obj:`dpnp.tril` for details). Default: ``0``. + + Returns + ------- + inds : tuple of dpnp.ndarray + The indices for the triangle. The returned tuple contains two arrays, + each with the indices along one dimension of the array. + + See Also + -------- + :obj:`dpnp.tril_indices` : Return the indices for the lower-triangle of an + (n, m) array. + :obj:`dpnp.tril` : Return lower triangle of an array. + :obj:`dpnp.triu_indices_from` : similar function, for upper-triangular. + + Examples + -------- + Create a 4 by 4 array. + + >>> import dpnp as np + >>> a = np.arange(16).reshape(4, 4) + >>> a + array([[ 0, 1, 2, 3], + [ 4, 5, 6, 7], + [ 8, 9, 10, 11], + [12, 13, 14, 15]]) + + Pass the array to get the indices of the lower triangular elements. + + >>> trili = np.tril_indices_from(a) + >>> trili + (array([0, 1, 1, 2, 2, 2, 3, 3, 3, 3]), + array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3])) + + >>> a[trili] + array([ 0, 4, 5, 8, 9, 10, 12, 13, 14, 15]) + + This is syntactic sugar for tril_indices(). + + >>> np.tril_indices(a.shape[0]) + (array([0, 1, 1, 2, 2, 2, 3, 3, 3, 3]), + array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3])) + + Use the `k` parameter to return the indices for the lower triangular array + up to the k-th diagonal. + + >>> trili1 = np.tril_indices_from(a, k=1) + >>> a[trili1] + array([ 0, 1, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15]) + + """ + + dpnp.check_supported_arrays_type(arr) + + if arr.ndim != 2: + raise ValueError("input array must be 2-d") + + return tril_indices( + arr.shape[-2], + k=k, + m=arr.shape[-1], + usm_type=arr.usm_type, + sycl_queue=arr.sycl_queue, + )
+ + + +
+[docs] +def triu_indices( + n, + k=0, + m=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return the indices for the upper-triangle of an (n, m) array. + + For full documentation refer to :obj:`numpy.triu_indices`. + + Parameters + ---------- + n : int + The size of the arrays for which the returned indices will + be valid. + k : int, optional + Diagonal offset (see :obj:`dpnp.triu` for details). Default: ``0``. + m : int, optional + The column dimension of the arrays for which the returned + arrays will be valid. + By default `m` is taken equal to `n`. Default: ``None``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + inds : tuple of dpnp.ndarray + The indices for the triangle. The returned tuple contains two arrays, + each with the indices along one dimension of the array. Can be used + to slice a ndarray of shape(`n`, `n`). + + See Also + -------- + :obj:`dpnp.tril_indices` : similar function, for lower-triangular. + :obj:`dpnp.mask_indices` : generic function accepting an arbitrary mask + function. + :obj:`dpnp.tril` : Return lower triangle of an array. + :obj:`dpnp.triu` : Return upper triangle of an array. + + Examples + -------- + Compute two different sets of indices to access 4x4 arrays, one for the + upper triangular part starting at the main diagonal, and one starting two + diagonals further right: + + >>> import dpnp as np + >>> iu1 = np.triu_indices(4) + >>> iu2 = np.triu_indices(4, 2) + + Here is how they can be used with a sample array: + + >>> a = np.arange(16).reshape(4, 4) + >>> a + array([[ 0, 1, 2, 3], + [ 4, 5, 6, 7], + [ 8, 9, 10, 11], + [12, 13, 14, 15]]) + + Both for indexing: + + >>> a[iu1] + array([ 0, 1, 2, ..., 10, 11, 15]) + + And for assigning values: + + >>> a[iu1] = -1 + >>> a + array([[-1, -1, -1, -1], + [ 4, -1, -1, -1], + [ 8, 9, -1, -1], + [12, 13, 14, -1]]) + + These cover only a small part of the whole array (two diagonals right + of the main one): + + >>> a[iu2] = -10 + >>> a + array([[ -1, -1, -10, -10], + [ 4, -1, -1, -10], + [ 8, 9, -1, -1], + [ 12, 13, 14, -1]]) + + """ + + tri_ = ~dpnp.tri( + n, + m, + k=k - 1, + dtype=bool, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + + return tuple( + dpnp.broadcast_to(inds, tri_.shape)[tri_] + for inds in indices( + tri_.shape, + sparse=True, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + )
+ + + +
+[docs] +def triu_indices_from(arr, k=0): + """ + Return the indices for the lower-triangle of arr. + + For full documentation refer to :obj:`numpy.triu_indices_from`. + + Parameters + ---------- + arr : {dpnp.ndarray, usm_ndarray} + The indices will be valid for square arrays whose dimensions are + the same as arr. + k : int, optional + Diagonal offset (see :obj:`dpnp.triu` for details). Default: ``0``. + + Returns + ------- + inds : tuple of dpnp.ndarray + The indices for the triangle. The returned tuple contains two arrays, + each with the indices along one dimension of the array. Can be used + to slice a ndarray of shape(`n`, `n`). + + See Also + -------- + :obj:`dpnp.triu_indices` : Return the indices for the upper-triangle of an + (n, m) array. + :obj:`dpnp.triu` : Return upper triangle of an array. + :obj:`dpnp.tril_indices_from` : similar function, for lower-triangular. + + Examples + -------- + Create a 4 by 4 array. + + >>> import dpnp as np + >>> a = np.arange(16).reshape(4, 4) + >>> a + array([[ 0, 1, 2, 3], + [ 4, 5, 6, 7], + [ 8, 9, 10, 11], + [12, 13, 14, 15]]) + + Pass the array to get the indices of the upper triangular elements. + + >>> triui = np.triu_indices_from(a) + >>> triui + (array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]), + array([0, 1, 2, 3, 1, 2, 3, 2, 3, 3])) + + >>> a[triui] + array([ 0, 1, 2, 3, 5, 6, 7, 10, 11, 15]) + + This is syntactic sugar for triu_indices(). + + >>> np.triu_indices(a.shape[0]) + (array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]), + array([0, 1, 2, 3, 1, 2, 3, 2, 3, 3])) + + Use the `k` parameter to return the indices for the upper triangular array + from the k-th diagonal. + + >>> triuim1 = np.triu_indices_from(a, k=1) + >>> a[triuim1] + array([ 1, 2, 3, 6, 7, 11]) + + """ + + dpnp.check_supported_arrays_type(arr) + + if arr.ndim != 2: + raise ValueError("input array must be 2-d") + + return triu_indices( + arr.shape[-2], + k=k, + m=arr.shape[-1], + usm_type=arr.usm_type, + sycl_queue=arr.sycl_queue, + )
+ + + +
+[docs] +def unravel_index(indices, shape, order="C"): + """ + Converts array of flat indices into a tuple of coordinate arrays. + + For full documentation refer to :obj:`numpy.unravel_index`. + + Parameters + ---------- + indices : {dpnp.ndarray, usm_ndarray} + An integer array whose elements are indices into the flattened version + of an array of dimensions `shape`. + shape : tuple or list of ints + The shape of the array to use for unraveling `indices`. + order : {None, "C", "F"}, optional + Determines whether the indices should be viewed as indexing in + row-major (C-style) or column-major (Fortran-style) order. + Default: ``"C"``. + + Returns + ------- + unraveled_coords : tuple of dpnp.ndarray + Each array in the tuple has the same shape as the indices array. + + See Also + -------- + :obj:`dpnp.ravel_multi_index` : Converts a tuple of index arrays into an + array of flat indices. + + Examples + -------- + >>> import dpnp as np + >>> np.unravel_index(np.array([22, 41, 37]), (7, 6)) + (array([3, 6, 6]), array([4, 5, 1])) + >>> np.unravel_index(np.array([31, 41, 13]), (7, 6), order="F") + (array([3, 6, 6]), array([4, 5, 1])) + + >>> np.unravel_index(np.array(1621), (6, 7, 8, 9)) + (array(3), array(1), array(4), array(1)) + + """ + + dpnp.check_supported_arrays_type(indices) + + if order not in ("C", "c", "F", "f", None): + raise ValueError( + "Unrecognized `order` keyword value, expecting " + f"'C' or 'F', but got '{order}'" + ) + order = "C" if order is None else order.upper() + if order == "C": + shape = reversed(shape) + + if not dpnp.can_cast(indices, dpnp.int64, "same_kind"): + raise TypeError( + "Iterator operand 0 dtype could not be cast from dtype(" + f"{indices.dtype}) to dtype({dpnp.int64}) according to the rule " + "'same_kind'" + ) + + if (indices < 0).any(): + raise ValueError("invalid entry in index array") + + unraveled_coords = [] + for dim in shape: + unraveled_coords.append(indices % dim) + indices = indices // dim + + if (indices > 0).any(): + raise ValueError("invalid entry in index array") + + if order == "C": + unraveled_coords = reversed(unraveled_coords) + return tuple(unraveled_coords)
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_libmath.html b/pull/2070/_modules/dpnp/dpnp_iface_libmath.html new file mode 100644 index 00000000000..a1307ba88a0 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_libmath.html @@ -0,0 +1,216 @@ + + + + + + + + + + dpnp.dpnp_iface_libmath — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_libmath

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the function from Python Math library
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+import math
+
+import dpnp
+
+# pylint: disable=no-name-in-module
+from .dpnp_algo import (
+    dpnp_erf,
+)
+from .dpnp_utils import (
+    create_output_descriptor_py,
+)
+
+__all__ = ["erf"]
+
+
+
+[docs] +def erf(in_array1): + """ + Returns the error function of complex argument. + + For full documentation refer to :obj:`scipy.special.erf`. + + Limitations + ----------- + Parameter `in_array1` is supported as :obj:`dpnp.ndarray`. + Otherwise the function will be executed sequentially on CPU. + Input array data types are limited by supported DPNP :ref:`Data types`. + + .. seealso:: :obj:`math.erf` + + Examples + -------- + >>> import dpnp as np + >>> x = np.linspace(2.0, 3.0, num=5) + >>> [i for i in x] + [2.0, 2.25, 2.5, 2.75, 3.0] + >>> out = np.erf(x) + >>> [i for i in out] + [0.99532227, 0.99853728, 0.99959305, 0.99989938, 0.99997791] + + """ + + x1_desc = dpnp.get_dpnp_descriptor( + in_array1, copy_when_strides=False, copy_when_nondefault_queue=False + ) + if x1_desc: + return dpnp_erf(x1_desc).get_pyobj() + + result = create_output_descriptor_py( + in_array1.shape, in_array1.dtype, None + ).get_pyobj() + for i in range(result.size): + result[i] = math.erf(in_array1[i]) + + return result
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_linearalgebra.html b/pull/2070/_modules/dpnp/dpnp_iface_linearalgebra.html new file mode 100644 index 00000000000..a5dc2fd051f --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_linearalgebra.html @@ -0,0 +1,1292 @@ + + + + + + + + + + dpnp.dpnp_iface_linearalgebra — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for dpnp.dpnp_iface_linearalgebra

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the Linear Algebra part of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+
+import numpy
+from dpctl.tensor._numpy_helper import normalize_axis_tuple
+
+import dpnp
+
+from .dpnp_utils.dpnp_utils_einsum import dpnp_einsum
+from .dpnp_utils.dpnp_utils_linearalgebra import (
+    dpnp_dot,
+    dpnp_kron,
+    dpnp_matmul,
+)
+
+__all__ = [
+    "dot",
+    "einsum",
+    "einsum_path",
+    "inner",
+    "kron",
+    "matmul",
+    "outer",
+    "tensordot",
+    "vdot",
+]
+
+
+
+[docs] +def dot(a, b, out=None): + """ + Dot product of `a` and `b`. + + For full documentation refer to :obj:`numpy.dot`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray, scalar} + First input array. Both inputs `a` and `b` can not be scalars + at the same time. + b : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. Both inputs `a` and `b` can not be scalars + at the same time. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape and data type as the expected output and should be + C-contiguous. If these conditions are not met, an exception is + raised, instead of attempting to be flexible. + + Returns + ------- + out : dpnp.ndarray + Returns the dot product of `a` and `b`. + If `out` is given, then it is returned. + + See Also + -------- + :obj:`dpnp.ndarray.dot` : Equivalent method. + :obj:`dpnp.tensordot` : Sum products over arbitrary axes. + :obj:`dpnp.vdot` : Complex-conjugating dot product. + :obj:`dpnp.einsum` : Einstein summation convention. + :obj:`dpnp.matmul` : Matrix product of two arrays. + :obj:`dpnp.linalg.multi_dot` : Chained dot product. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 2, 3]) + >>> b = np.array([1, 2, 3]) + >>> np.dot(a, b) + array(14) + + Neither argument is complex-conjugated: + + >>> np.dot(np.array([2j, 3j]), np.array([2j, 3j])) + array(-13+0j) + + For 2-D arrays it is the matrix product: + + >>> a = np.array([[1, 0], [0, 1]]) + >>> b = np.array([[4, 1], [2, 2]]) + >>> np.dot(a, b) + array([[4, 1], + [2, 2]]) + + >>> a = np.arange(3 * 4 * 5 * 6).reshape((3, 4, 5, 6)) + >>> b = np.arange(3 * 4 * 5 * 6)[::-1].reshape((5, 4, 6, 3)) + >>> np.dot(a, b)[2, 3, 2, 1, 2, 2] + array(499128) + >>> sum(a[2, 3, 2, :] * b[1, 2, :, 2]) + array(499128) + + """ + + dpnp.check_supported_arrays_type(a, b, scalar_type=True) + + if out is not None: + dpnp.check_supported_arrays_type(out) + if not out.flags.c_contiguous: + raise ValueError("Only C-contiguous array is acceptable.") + + if dpnp.isscalar(a) or dpnp.isscalar(b): + # TODO: use specific scalar-vector kernel + return dpnp.multiply(a, b, out=out) + + a_ndim = a.ndim + b_ndim = b.ndim + if a_ndim == 0 or b_ndim == 0: + # TODO: use specific scalar-vector kernel + return dpnp.multiply(a, b, out=out) + + if a_ndim == 1 and b_ndim == 1: + return dpnp_dot(a, b, out=out) + + # NumPy does not allow casting even if it is safe + # casting="no" is used in the following + if a_ndim == 2 and b_ndim == 2: + return dpnp.matmul(a, b, out=out, casting="no") + + if a_ndim == 1 or b_ndim == 1: + return dpnp.matmul(a, b, out=out, casting="no") + + # TODO: investigate usage of matmul for some possible + # use cases instead of dpnp.tensordot + result = dpnp.tensordot(a, b, axes=(-1, -2)) + return dpnp.get_result_array(result, out, casting="no")
+ + + +
+[docs] +def einsum( + *operands, + out=None, + dtype=None, + order="K", + casting="same_kind", + optimize=False, +): + """ + einsum(subscripts, *operands, out=None, dtype=None, order="K", \ + casting="same_kind", optimize=False) + + Evaluates the Einstein summation convention on the operands. + + For full documentation refer to :obj:`numpy.einsum`. + + Parameters + ---------- + subscripts : str + Specifies the subscripts for summation as comma separated list of + subscript labels. An implicit (classical Einstein summation) + calculation is performed unless the explicit indicator '->' is + included as well as subscript labels of the precise output form. + *operands : sequence of {dpnp.ndarrays, usm_ndarray} + These are the arrays for the operation. + out : {dpnp.ndarrays, usm_ndarray, None}, optional + If provided, the calculation is done into this array. + dtype : {dtype, None}, optional + If provided, forces the calculation to use the data type specified. + Default: ``None``. + order : {"C", "F", "A", "K"}, optional + Controls the memory layout of the output. ``"C"`` means it should be + C-contiguous. ``"F"`` means it should be F-contiguous, ``"A"`` means + it should be ``"F"`` if the inputs are all ``"F"``, ``"C"`` otherwise. + ``"K"`` means it should be as close to the layout as the inputs as + is possible, including arbitrarily permuted axes. + Default: ``"K"``. + casting : {"no", "equiv", "safe", "same_kind", "unsafe"}, optional + Controls what kind of data casting may occur. Setting this to + ``"unsafe"`` is not recommended, as it can adversely affect + accumulations. + + * ``"no"`` means the data types should not be cast at all. + * ``"equiv"`` means only byte-order changes are allowed. + * ``"safe"`` means only casts which can preserve values are allowed. + * ``"same_kind"`` means only safe casts or casts within a kind, + like float64 to float32, are allowed. + * ``"unsafe"`` means any data conversions may be done. + + Please note that, in contrast to NumPy, the default setting here is + ``"same_kind"``. This is to prevent errors that may occur when data + needs to be converted to `float64`, but the device does not support it. + In such cases, the data is instead converted to `float32`. + Default: ``"same_kind"``. + optimize : {False, True, "greedy", "optimal"}, optional + Controls if intermediate optimization should occur. No optimization + will occur if ``False`` and ``True`` will default to the ``"greedy"`` + algorithm. Also accepts an explicit contraction list from the + :obj:`dpnp.einsum_path` function. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + The calculation based on the Einstein summation convention. + + See Also + ------- + :obj:`dpnp.einsum_path` : Evaluates the lowest cost contraction order + for an einsum expression. + :obj:`dpnp.dot` : Returns the dot product of two arrays. + :obj:`dpnp.inner` : Returns the inner product of two arrays. + :obj:`dpnp.outer` : Returns the outer product of two arrays. + :obj:`dpnp.tensordot` : Sum products over arbitrary axes. + :obj:`dpnp.linalg.multi_dot` : Chained dot product. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(25).reshape(5,5) + >>> b = np.arange(5) + >>> c = np.arange(6).reshape(2,3) + + Trace of a matrix: + + >>> np.einsum("ii", a) + array(60) + >>> np.einsum(a, [0,0]) + array(60) + >>> np.trace(a) + array(60) + + Extract the diagonal (requires explicit form): + + >>> np.einsum("ii->i", a) + array([ 0, 6, 12, 18, 24]) + >>> np.einsum(a, [0, 0], [0]) + array([ 0, 6, 12, 18, 24]) + >>> np.diag(a) + array([ 0, 6, 12, 18, 24]) + + Sum over an axis (requires explicit form): + + >>> np.einsum("ij->i", a) + array([ 10, 35, 60, 85, 110]) + >>> np.einsum(a, [0, 1], [0]) + array([ 10, 35, 60, 85, 110]) + >>> np.sum(a, axis=1) + array([ 10, 35, 60, 85, 110]) + + For higher dimensional arrays summing a single axis can be done + with ellipsis: + + >>> np.einsum("...j->...", a) + array([ 10, 35, 60, 85, 110]) + >>> np.einsum(a, [Ellipsis,1], [Ellipsis]) + array([ 10, 35, 60, 85, 110]) + + Compute a matrix transpose, or reorder any number of axes: + + >>> np.einsum("ji", c) + array([[0, 3], + [1, 4], + [2, 5]]) + >>> np.einsum("ij->ji", c) + array([[0, 3], + [1, 4], + [2, 5]]) + >>> np.einsum(c, [1, 0]) + array([[0, 3], + [1, 4], + [2, 5]]) + >>> np.transpose(c) + array([[0, 3], + [1, 4], + [2, 5]]) + + Vector inner products: + + >>> np.einsum("i,i", b, b) + array(30) + >>> np.einsum(b, [0], b, [0]) + array(30) + >>> np.inner(b,b) + array(30) + + Matrix vector multiplication: + + >>> np.einsum("ij,j", a, b) + array([ 30, 80, 130, 180, 230]) + >>> np.einsum(a, [0,1], b, [1]) + array([ 30, 80, 130, 180, 230]) + >>> np.dot(a, b) + array([ 30, 80, 130, 180, 230]) + >>> np.einsum("...j,j", a, b) + array([ 30, 80, 130, 180, 230]) + + Broadcasting and scalar multiplication: + + >>> np.einsum("..., ...", 3, c) + array([[ 0, 3, 6], + [ 9, 12, 15]]) + >>> np.einsum(",ij", 3, c) + array([[ 0, 3, 6], + [ 9, 12, 15]]) + >>> np.einsum(3, [Ellipsis], c, [Ellipsis]) + array([[ 0, 3, 6], + [ 9, 12, 15]]) + >>> np.multiply(3, c) + array([[ 0, 3, 6], + [ 9, 12, 15]]) + + Vector outer product: + + >>> np.einsum("i,j", np.arange(2)+1, b) + array([[0, 1, 2, 3, 4], + [0, 2, 4, 6, 8]]) + >>> np.einsum(np.arange(2)+1, [0], b, [1]) + array([[0, 1, 2, 3, 4], + [0, 2, 4, 6, 8]]) + >>> np.outer(np.arange(2)+1, b) + array([[0, 1, 2, 3, 4], + [0, 2, 4, 6, 8]]) + + Tensor contraction: + + >>> a = np.arange(60.).reshape(3, 4, 5) + >>> b = np.arange(24.).reshape(4, 3, 2) + >>> np.einsum("ijk,jil->kl", a, b) + array([[4400., 4730.], + [4532., 4874.], + [4664., 5018.], + [4796., 5162.], + [4928., 5306.]]) + >>> np.einsum(a, [0, 1, 2], b, [1, 0, 3], [2, 3]) + array([[4400., 4730.], + [4532., 4874.], + [4664., 5018.], + [4796., 5162.], + [4928., 5306.]]) + >>> np.tensordot(a, b, axes=([1, 0],[0, 1])) + array([[4400., 4730.], + [4532., 4874.], + [4664., 5018.], + [4796., 5162.], + [4928., 5306.]]) + + Example of ellipsis use: + + >>> a = np.arange(6).reshape((3, 2)) + >>> b = np.arange(12).reshape((4, 3)) + >>> np.einsum("ki,jk->ij", a, b) + array([[10, 28, 46, 64], + [13, 40, 67, 94]]) + >>> np.einsum("ki,...k->i...", a, b) + array([[10, 28, 46, 64], + [13, 40, 67, 94]]) + >>> np.einsum("k...,jk", a, b) + array([[10, 28, 46, 64], + [13, 40, 67, 94]]) + + Chained array operations. For more complicated contractions, speed ups + might be achieved by repeatedly computing a "greedy" path or computing + the "optimal" path in advance and repeatedly applying it, using an + `einsum_path` insertion. Performance improvements can be particularly + significant with larger arrays: + + >>> a = np.ones(64000).reshape(20, 40, 80) + + Basic `einsum`: 119 ms ± 26 ms per loop (evaluated on 12th + Gen Intel\u00AE Core\u2122 i7 processor) + + >>> %timeit np.einsum("ijk,ilm,njm,nlk,abc->",a,a,a,a,a) + + Sub-optimal `einsum`: 32.9 ms ± 5.1 ms per loop + + >>> %timeit np.einsum("ijk,ilm,njm,nlk,abc->",a,a,a,a,a, optimize="optimal") + + Greedy `einsum`: 28.6 ms ± 4.8 ms per loop + + >>> %timeit np.einsum("ijk,ilm,njm,nlk,abc->",a,a,a,a,a, optimize="greedy") + + Optimal `einsum`: 26.9 ms ± 6.3 ms per loop + + >>> path = np.einsum_path( + "ijk,ilm,njm,nlk,abc->",a,a,a,a,a, optimize="optimal" + )[0] + >>> %timeit np.einsum("ijk,ilm,njm,nlk,abc->",a,a,a,a,a, optimize=path) + + """ + + if optimize is True: + optimize = "greedy" + + return dpnp_einsum( + *operands, + out=out, + dtype=dtype, + order=order, + casting=casting, + optimize=optimize, + )
+ + + +
+[docs] +def einsum_path(*operands, optimize="greedy", einsum_call=False): + """ + einsum_path(subscripts, *operands, optimize="greedy") + + Evaluates the lowest cost contraction order for an einsum expression + by considering the creation of intermediate arrays. + + For full documentation refer to :obj:`numpy.einsum_path`. + + Parameters + ---------- + subscripts : str + Specifies the subscripts for summation. + *operands : sequence of arrays + These are the arrays for the operation in any form that can be + converted to an array. This includes scalars, lists, lists of + tuples, tuples, tuples of tuples, tuples of lists, and ndarrays. + optimize : {bool, list, tuple, None, "greedy", "optimal"} + Choose the type of path. If a tuple is provided, the second argument is + assumed to be the maximum intermediate size created. If only a single + argument is provided the largest input or output array size is used + as a maximum intermediate size. + + * if a list is given that starts with ``einsum_path``, uses this as the + contraction path + * if ``False`` or ``None`` no optimization is taken + * if ``True`` defaults to the "greedy" algorithm + * ``"optimal"`` is an algorithm that combinatorially explores all + possible ways of contracting the listed tensors and chooses the + least costly path. Scales exponentially with the number of terms + in the contraction. + * ``"greedy"`` is an algorithm that chooses the best pair contraction + at each step. Effectively, this algorithm searches the largest inner, + Hadamard, and then outer products at each step. Scales cubically with + the number of terms in the contraction. Equivalent to the + ``"optimal"`` path for most contractions. + + Default: ``"greedy"``. + + Returns + ------- + path : list of tuples + A list representation of the einsum path. + string_repr : str + A printable representation of the einsum path. + + Notes + ----- + The resulting path indicates which terms of the input contraction should be + contracted first, the result of this contraction is then appended to the + end of the contraction list. This list can then be iterated over until all + intermediate contractions are complete. + + See Also + -------- + :obj:`dpnp.einsum` : Evaluates the Einstein summation convention + on the operands. + :obj:`dpnp.linalg.multi_dot` : Chained dot product. + :obj:`dpnp.dot` : Returns the dot product of two arrays. + :obj:`dpnp.inner` : Returns the inner product of two arrays. + :obj:`dpnp.outer` : Returns the outer product of two arrays. + + Examples + -------- + We can begin with a chain dot example. In this case, it is optimal to + contract the ``b`` and ``c`` tensors first as represented by the first + element of the path ``(1, 2)``. The resulting tensor is added to the end + of the contraction and the remaining contraction ``(0, 1)`` is then + completed. + + >>> import dpnp as np + >>> np.random.seed(123) + >>> a = np.random.rand(2, 2) + >>> b = np.random.rand(2, 5) + >>> c = np.random.rand(5, 2) + >>> path_info = np.einsum_path("ij,jk,kl->il", a, b, c, optimize="greedy") + + >>> print(path_info[0]) + ['einsum_path', (1, 2), (0, 1)] + + >>> print(path_info[1]) + Complete contraction: ij,jk,kl->il # may vary + Naive scaling: 4 + Optimized scaling: 3 + Naive FLOP count: 1.200e+02 + Optimized FLOP count: 5.700e+01 + Theoretical speedup: 2.105 + Largest intermediate: 4.000e+00 elements + ------------------------------------------------------------------------- + scaling current remaining + ------------------------------------------------------------------------- + 3 kl,jk->jl ij,jl->il + 3 jl,ij->il il->il + + A more complex index transformation example. + + >>> I = np.random.rand(10, 10, 10, 10) + >>> C = np.random.rand(10, 10) + >>> path_info = np.einsum_path( + "ea,fb,abcd,gc,hd->efgh", C, C, I, C, C, optimize="greedy" + ) + >>> print(path_info[0]) + ['einsum_path', (0, 2), (0, 3), (0, 2), (0, 1)] + >>> print(path_info[1]) + Complete contraction: ea,fb,abcd,gc,hd->efgh # may vary + Naive scaling: 8 + Optimized scaling: 5 + Naive FLOP count: 5.000e+08 + Optimized FLOP count: 8.000e+05 + Theoretical speedup: 624.999 + Largest intermediate: 1.000e+04 elements + -------------------------------------------------------------------------- + scaling current remaining + -------------------------------------------------------------------------- + 5 abcd,ea->bcde fb,gc,hd,bcde->efgh + 5 bcde,fb->cdef gc,hd,cdef->efgh + 5 cdef,gc->defg hd,defg->efgh + 5 defg,hd->efgh efgh->efgh + + """ + + return numpy.einsum_path( + *operands, + optimize=optimize, + einsum_call=einsum_call, + )
+ + + +
+[docs] +def inner(a, b): + """ + Returns the inner product of two arrays. + + For full documentation refer to :obj:`numpy.inner`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray, scalar} + First input array. Both inputs `a` and `b` can not be scalars + at the same time. + b : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. Both inputs `a` and `b` can not be scalars + at the same time. + + Returns + ------- + out : dpnp.ndarray + If either `a` or `b` is a scalar, the shape of the returned arrays + matches that of the array between `a` and `b`, whichever is an array. + If `a` and `b` are both 1-D arrays then a 0-d array is returned; + otherwise an array with a shape as + ``out.shape = (*a.shape[:-1], *b.shape[:-1])`` is returned. + + + See Also + -------- + :obj:`dpnp.einsum` : Einstein summation convention.. + :obj:`dpnp.dot` : Generalized matrix product, + using second last dimension of `b`. + :obj:`dpnp.tensordot` : Sum products over arbitrary axes. + + Examples + -------- + # Ordinary inner product for vectors + + >>> import dpnp as np + >>> a = np.array([1, 2, 3]) + >>> b = np.array([0, 1, 0]) + >>> np.inner(a, b) + array(2) + + # Some multidimensional examples + + >>> a = np.arange(24).reshape((2,3,4)) + >>> b = np.arange(4) + >>> c = np.inner(a, b) + >>> c.shape + (2, 3) + >>> c + array([[ 14, 38, 62], + [86, 110, 134]]) + + >>> a = np.arange(2).reshape((1,1,2)) + >>> b = np.arange(6).reshape((3,2)) + >>> c = np.inner(a, b) + >>> c.shape + (1, 1, 3) + >>> c + array([[[1, 3, 5]]]) + + An example where `b` is a scalar + + >>> np.inner(np.eye(2), 7) + array([[7., 0.], + [0., 7.]]) + + """ + + dpnp.check_supported_arrays_type(a, b, scalar_type=True) + + if dpnp.isscalar(a) or dpnp.isscalar(b): + # TODO: use specific scalar-vector kernel + return dpnp.multiply(a, b) + + if a.ndim == 0 or b.ndim == 0: + # TODO: use specific scalar-vector kernel + return dpnp.multiply(a, b) + + if a.shape[-1] != b.shape[-1]: + raise ValueError( + "shape of input arrays is not similar at the last axis." + ) + + if a.ndim == 1 and b.ndim == 1: + return dpnp_dot(a, b) + + return dpnp.tensordot(a, b, axes=(-1, -1))
+ + + +
+[docs] +def kron(a, b): + """ + Kronecker product of two arrays. + + Computes the Kronecker product, a composite array made of blocks of the + second array scaled by the first. + + For full documentation refer to :obj:`numpy.kron`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray, scalar} + First input array. Both inputs `a` and `b` can not be scalars + at the same time. + b : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. Both inputs `a` and `b` can not be scalars + at the same time. + + Returns + ------- + out : dpnp.ndarray + Returns the Kronecker product. + + See Also + -------- + :obj:`dpnp.outer` : Returns the outer product of two arrays. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 10, 100]) + >>> b = np.array([5, 6, 7]) + >>> np.kron(a, b) + array([ 5, 6, 7, ..., 500, 600, 700]) + >>> np.kron(b, a) + array([ 5, 50, 500, ..., 7, 70, 700]) + + >>> np.kron(np.eye(2), np.ones((2,2))) + array([[1., 1., 0., 0.], + [1., 1., 0., 0.], + [0., 0., 1., 1.], + [0., 0., 1., 1.]]) + + >>> a = np.arange(100).reshape((2,5,2,5)) + >>> b = np.arange(24).reshape((2,3,4)) + >>> c = np.kron(a,b) + >>> c.shape + (2, 10, 6, 20) + >>> I = (1,3,0,2) + >>> J = (0,2,1) + >>> J1 = (0,) + J # extend to ndim=4 + >>> S1 = (1,) + b.shape + >>> K = tuple(np.array(I) * np.array(S1) + np.array(J1)) + >>> c[K] == a[I]*b[J] + array(True) + + """ + + dpnp.check_supported_arrays_type(a, b, scalar_type=True) + + if dpnp.isscalar(a) or dpnp.isscalar(b): + # TODO: use specific scalar-vector kernel + return dpnp.multiply(a, b) + + a_ndim = a.ndim + b_ndim = b.ndim + if a_ndim == 0 or b_ndim == 0: + # TODO: use specific scalar-vector kernel + return dpnp.multiply(a, b) + + return dpnp_kron(a, b, a_ndim, b_ndim)
+ + + +
+[docs] +def matmul( + x1, + x2, + /, + out=None, + *, + casting="same_kind", + order="K", + dtype=None, + subok=True, + signature=None, + extobj=None, + axes=None, + axis=None, +): + """ + Matrix product of two arrays. + + For full documentation refer to :obj:`numpy.matmul`. + + Parameters + ---------- + x1 : {dpnp.ndarray, usm_ndarray} + First input array. + x2 : {dpnp.ndarray, usm_ndarray} + Second input array. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + a shape that matches the signature `(n,k),(k,m)->(n,m)` but the type + (of the calculated values) will be cast if necessary. + Default: ``None``. + dtype : {None, dtype}, optional + Type to use in computing the matrix product. By default, the returned + array will have data type that is determined by considering + Promotion Type Rule and device capabilities. + casting : {"no", "equiv", "safe", "same_kind", "unsafe"}, optional + Controls what kind of data casting may occur. + Default: ``"same_kind"``. + order : {"C", "F", "A", "K", None}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + axes : {list of tuples}, optional + A list of tuples with indices of axes the matrix product should operate + on. For instance, for the signature of ``(i,j),(j,k)->(i,k)``, the base + elements are 2d matrices and these are taken to be stored in the two + last axes of each argument. The corresponding axes keyword would be + [(-2, -1), (-2, -1), (-2, -1)]. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Returns the matrix product of the inputs. + This is a 0-d array only when both `x1`, `x2` are 1-d vectors. + + Limitations + ----------- + Keyword arguments `subok`, `signature`, `extobj`, and `axis` are + only supported with their default value. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.vdot` : Complex-conjugating dot product. + :obj:`dpnp.tensordot` : Sum products over arbitrary axes. + :obj:`dpnp.einsum` : Einstein summation convention. + :obj:`dpnp.dot` : Alternative matrix product with + different broadcasting rules. + + Examples + -------- + For 2-D arrays it is the matrix product: + + >>> import dpnp as np + >>> a = np.array([[1, 0], [0, 1]]) + >>> b = np.array([[4, 1], [2, 2]]) + >>> np.matmul(a, b) + array([[4, 1], + [2, 2]]) + + For 2-D mixed with 1-D, the result is the usual. + + >>> a = np.array([[1, 0], [0, 1]]) + >>> b = np.array([1, 2]) + >>> np.matmul(a, b) + array([1, 2]) + >>> np.matmul(b, a) + array([1, 2]) + + Broadcasting is conventional for stacks of arrays + + >>> a = np.arange(2 * 2 * 4).reshape((2, 2, 4)) + >>> b = np.arange(2 * 2 * 4).reshape((2, 4, 2)) + >>> np.matmul(a,b).shape + (2, 2, 2) + >>> np.matmul(a, b)[0, 1, 1] + array(98) + >>> np.sum(a[0, 1, :] * b[0 , :, 1]) + array(98) + + Vector, vector returns the scalar inner product, but neither argument + is complex-conjugated: + + >>> x1 = np.array([2j, 3j]) + >>> x2 = np.array([2j, 3j]) + >>> np.matmul(x1, x2) + array(-13+0j) + + The ``@`` operator can be used as a shorthand for ``matmul`` on + :class:`dpnp.ndarray`. + + >>> x1 @ x2 + array(-13+0j) + + """ + + if subok is False: + raise NotImplementedError( + "subok keyword argument is only supported by its default value." + ) + if signature is not None: + raise NotImplementedError( + "signature keyword argument is only supported by its default value." + ) + if extobj is not None: + raise NotImplementedError( + "extobj keyword argument is only supported by its default value." + ) + if axis is not None: + raise NotImplementedError( + "axis keyword argument is only supported by its default value." + ) + + return dpnp_matmul( + x1, + x2, + out=out, + casting=casting, + order=order, + dtype=dtype, + axes=axes, + )
+ + + +
+[docs] +def outer(a, b, out=None): + """ + Returns the outer product of two arrays. + + For full documentation refer to :obj:`numpy.outer`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + First input vector. Input is flattened if not already 1-dimensional. + b : {dpnp.ndarray, usm_ndarray} + Second input vector. Input is flattened if not already 1-dimensional. + out : {None, dpnp.ndarray, usm_ndarray}, optional + A location where the result is stored + + Returns + ------- + out : dpnp.ndarray + out[i, j] = a[i] * b[j] + + See Also + -------- + :obj:`dpnp.einsum` : Evaluates the Einstein summation convention + on the operands. + :obj:`dpnp.inner` : Returns the inner product of two arrays. + :obj:`dpnp.tensordot` : dpnp.tensordot(a.ravel(), b.ravel(), axes=((), ())) + is the equivalent. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 1, 1]) + >>> b = np.array([1, 2, 3]) + >>> np.outer(a, b) + array([[1, 2, 3], + [1, 2, 3], + [1, 2, 3]]) + + """ + + dpnp.check_supported_arrays_type(a, b, scalar_type=True, all_scalars=False) + if dpnp.isscalar(a): + x1 = a + x2 = dpnp.ravel(b)[None, :] + elif dpnp.isscalar(b): + x1 = dpnp.ravel(a)[:, None] + x2 = b + else: + x1 = dpnp.ravel(a) + x2 = dpnp.ravel(b) + + return dpnp.multiply.outer(x1, x2, out=out)
+ + + +
+[docs] +def tensordot(a, b, axes=2): + r""" + Compute tensor dot product along specified axes. + + For full documentation refer to :obj:`numpy.tensordot`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray, scalar} + First input array. Both inputs `a` and `b` can not be scalars + at the same time. + b : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. Both inputs `a` and `b` can not be scalars + at the same time. + axes : int or (2,) array_like + * integer_like: If an int `N`, sum over the last `N` axes of `a` and + the first `N` axes of `b` in order. The sizes of the corresponding + axes must match. + * (2,) array_like: A list of axes to be summed over, first sequence + applying to `a`, second to `b`. Both elements array_like must be of + the same length. + + Returns + ------- + out : dpnp.ndarray + Returns the tensor dot product of `a` and `b`. + + See Also + -------- + :obj:`dpnp.dot` : Returns the dot product. + :obj:`dpnp.einsum` : Evaluates the Einstein summation convention + on the operands. + + Notes + ----- + Three common use cases are: + * ``axes = 0`` : tensor product :math:`a \otimes b` + * ``axes = 1`` : tensor dot product :math:`a \cdot b` + * ``axes = 2`` : (default) tensor double contraction :math:`a:b` + + When `axes` is integer, the sequence for evaluation will be: first + the -Nth axis in `a` and 0th axis in `b`, and the -1th axis in `a` and + Nth axis in `b` last. + + When there is more than one axis to sum over - and they are not the last + (first) axes of `a` (`b`) - the argument `axes` should consist of + two sequences of the same length, with the first axis to sum over given + first in both sequences, the second axis second, and so forth. + + The shape of the result consists of the non-contracted axes of the + first tensor, followed by the non-contracted axes of the second. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) + >>> b = np.array([1, 2, 3]) + >>> np.tensordot(a, b, 1) + array([14, 32, 50]) + + >>> a = np.arange(60.).reshape(3,4,5) + >>> b = np.arange(24.).reshape(4,3,2) + >>> c = np.tensordot(a,b, axes=([1,0],[0,1])) + >>> c.shape + (5, 2) + >>> c + array([[4400., 4730.], + [4532., 4874.], + [4664., 5018.], + [4796., 5162.], + [4928., 5306.]]) + + A slower but equivalent way of computing the same... + + >>> d = np.zeros((5,2)) + >>> for i in range(5): + ... for j in range(2): + ... for k in range(3): + ... for n in range(4): + ... d[i,j] += a[k,n,i] * b[n,k,j] + >>> c == d + array([[ True, True], + [ True, True], + [ True, True], + [ True, True], + [ True, True]]) + + """ + + dpnp.check_supported_arrays_type(a, b, scalar_type=True) + + if dpnp.isscalar(a) or dpnp.isscalar(b): + if not isinstance(axes, int) or axes != 0: + raise ValueError( + "One of the inputs is scalar, axes should be zero." + ) + # TODO: use specific scalar-vector kernel + return dpnp.multiply(a, b) + + try: + iter(axes) + except Exception as e: # pylint: disable=broad-exception-caught + if not isinstance(axes, int): + raise TypeError("Axes must be an integer.") from e + if axes < 0: + raise ValueError("Axes must be a non-negative integer.") from e + axes_a = tuple(range(-axes, 0)) + axes_b = tuple(range(0, axes)) + else: + if len(axes) != 2: + raise ValueError("Axes must consist of two sequences.") + + axes_a, axes_b = axes + axes_a = (axes_a,) if dpnp.isscalar(axes_a) else axes_a + axes_b = (axes_b,) if dpnp.isscalar(axes_b) else axes_b + + if len(axes_a) != len(axes_b): + raise ValueError("Axes length mismatch.") + + # Make the axes non-negative + a_ndim = a.ndim + b_ndim = b.ndim + axes_a = normalize_axis_tuple(axes_a, a_ndim, "axis_a") + axes_b = normalize_axis_tuple(axes_b, b_ndim, "axis_b") + + if a.ndim == 0 or b.ndim == 0: + # TODO: use specific scalar-vector kernel + return dpnp.multiply(a, b) + + a_shape = a.shape + b_shape = b.shape + for axis_a, axis_b in zip(axes_a, axes_b): + if a_shape[axis_a] != b_shape[axis_b]: + raise ValueError( + "shape of input arrays is not similar at requested axes." + ) + + # Move the axes to sum over, to the end of "a" + not_in = tuple(k for k in range(a_ndim) if k not in axes_a) + newaxes_a = not_in + axes_a + n1 = int(numpy.prod([a_shape[ax] for ax in not_in])) + n2 = int(numpy.prod([a_shape[ax] for ax in axes_a])) + newshape_a = (n1, n2) + olda = [a_shape[axis] for axis in not_in] + + # Move the axes to sum over, to the front of "b" + not_in = tuple(k for k in range(b_ndim) if k not in axes_b) + newaxes_b = tuple(axes_b + not_in) + n1 = int(numpy.prod([b_shape[ax] for ax in axes_b])) + n2 = int(numpy.prod([b_shape[ax] for ax in not_in])) + newshape_b = (n1, n2) + oldb = [b_shape[axis] for axis in not_in] + + at = dpnp.transpose(a, newaxes_a).reshape(newshape_a) + bt = dpnp.transpose(b, newaxes_b).reshape(newshape_b) + res = dpnp.matmul(at, bt) + + return res.reshape(olda + oldb)
+ + + +
+[docs] +def vdot(a, b): + """ + Return the dot product of two vectors. + + For full documentation refer to :obj:`numpy.dot`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray, scalar} + First input array. Both inputs `a` and `b` can not be + scalars at the same time. If `a` is complex, the complex + conjugate is taken before the calculation of the dot product. + b : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. Both inputs `a` and `b` can not be + scalars at the same time. + + Returns + ------- + out : dpnp.ndarray + Returns the dot product of `a` and `b`. + + See Also + -------- + :obj:`dpnp.dot` : Returns the dot product. + :obj:`dpnp.matmul` : Returns the matrix product. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1+2j,3+4j]) + >>> b = np.array([5+6j,7+8j]) + >>> np.vdot(a, b) + array(70-8j) + >>> np.vdot(b, a) + array(70+8j) + + Note that higher-dimensional arrays are flattened! + + >>> a = np.array([[1, 4], [5, 6]]) + >>> b = np.array([[4, 1], [2, 2]]) + >>> np.vdot(a, b) + array(30) + >>> np.vdot(b, a) + array(30) + >>> 1*4 + 4*1 + 5*2 + 6*2 + 30 + + """ + + dpnp.check_supported_arrays_type(a, b, scalar_type=True) + + if dpnp.isscalar(a): + if b.size != 1: + raise ValueError("The second array should be of size one.") + a_conj = numpy.conj(a) + return dpnp.multiply(a_conj, b) + + if dpnp.isscalar(b): + if a.size != 1: + raise ValueError("The first array should be of size one.") + a_conj = dpnp.conj(a) + return dpnp.multiply(a_conj, b) + + if a.ndim == 1 and b.ndim == 1: + return dpnp_dot(a, b, out=None, conjugate=True) + + # dot product of flatten arrays + return dpnp_dot(dpnp.ravel(a), dpnp.ravel(b), out=None, conjugate=True)
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_logic.html b/pull/2070/_modules/dpnp/dpnp_iface_logic.html new file mode 100644 index 00000000000..527ec3a84f9 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_logic.html @@ -0,0 +1,1973 @@ + + + + + + + + + + dpnp.dpnp_iface_logic — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_logic

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the Logic part of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+# pylint: disable=protected-access
+# pylint: disable=duplicate-code
+# pylint: disable=no-name-in-module
+
+
+import dpctl.tensor as dpt
+import dpctl.tensor._tensor_elementwise_impl as tei
+import numpy
+
+import dpnp
+from dpnp.dpnp_algo.dpnp_elementwise_common import DPNPBinaryFunc, DPNPUnaryFunc
+
+from .dpnp_utils import get_usm_allocations
+
+__all__ = [
+    "all",
+    "allclose",
+    "any",
+    "array_equal",
+    "array_equiv",
+    "equal",
+    "greater",
+    "greater_equal",
+    "isclose",
+    "iscomplex",
+    "iscomplexobj",
+    "isfinite",
+    "isinf",
+    "isnan",
+    "isneginf",
+    "isposinf",
+    "isreal",
+    "isrealobj",
+    "isscalar",
+    "less",
+    "less_equal",
+    "logical_and",
+    "logical_not",
+    "logical_or",
+    "logical_xor",
+    "not_equal",
+]
+
+
+
+[docs] +def all(a, /, axis=None, out=None, keepdims=False, *, where=True): + """ + Test whether all array elements along a given axis evaluate to True. + + For full documentation refer to :obj:`numpy.all`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which a logical AND reduction is performed. + The default is to perform a logical AND over all the dimensions + of the input array.`axis` may be negative, in which case it counts + from the last to the first axis. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output but the type (of the returned + values) will be cast if necessary. + Default: ``None``. + keepdims : bool, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array with a data type of `bool`. + containing the results of the logical AND reduction is returned + unless `out` is specified. Otherwise, a reference to `out` is returned. + The result has the same shape as `a` if `axis` is not ``None`` + or `a` is a 0-d array. + + Limitations + ----------- + Parameters `where` is only supported with its default value. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.ndarray.all` : equivalent method + :obj:`dpnp.any` : Test whether any element along a given axis evaluates + to True. + + Notes + ----- + Not a Number (NaN), positive infinity and negative infinity + evaluate to ``True`` because these are not equal to zero. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[True, False], [True, True]]) + >>> np.all(x) + array(False) + + >>> np.all(x, axis=0) + array([ True, False]) + + >>> x2 = np.array([-1, 4, 5]) + >>> np.all(x2) + array(True) + + >>> x3 = np.array([1.0, np.nan]) + >>> np.all(x3) + array(True) + + >>> o = np.array(False) + >>> z = np.all(x2, out=o) + >>> z, o + (array(True), array(True)) + >>> # Check now that `z` is a reference to `o` + >>> z is o + True + >>> id(z), id(o) # identity of `z` and `o` + (139884456208480, 139884456208480) # may vary + + """ + + dpnp.check_limitations(where=where) + + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.all(usm_a, axis=axis, keepdims=keepdims) + + # TODO: temporary solution until dpt.all supports out parameter + return dpnp.get_result_array(usm_res, out)
+ + + +
+[docs] +def allclose(a, b, rtol=1.0e-5, atol=1.0e-8, equal_nan=False): + """ + Returns ``True`` if two arrays are element-wise equal within a tolerance. + + The tolerance values are positive, typically very small numbers. The + relative difference (`rtol` * abs(`b`)) and the absolute difference `atol` + are added together to compare against the absolute difference between `a` + and `b`. + + ``NaNs`` are treated as equal if they are in the same place and if + ``equal_nan=True``. ``Infs`` are treated as equal if they are in the same + place and of the same sign in both arrays. + + For full documentation refer to :obj:`numpy.allclose`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `a` and `b` can not be scalars at the same time. + b : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `a` and `b` can not be scalars at the same time. + rtol : {dpnp.ndarray, usm_ndarray, scalar}, optional + The relative tolerance parameter. Default: ``1e-05``. + atol : {dpnp.ndarray, usm_ndarray, scalar}, optional + The absolute tolerance parameter. Default: ``1e-08``. + equal_nan : bool + Whether to compare ``NaNs`` as equal. If ``True``, ``NaNs`` in `a` will + be considered equal to ``NaNs`` in `b` in the output array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + A 0-dim array with ``True`` value if the two arrays are equal within + the given tolerance; with ``False`` otherwise. + + + See Also + -------- + :obj:`dpnp.isclose` : Test whether two arrays are element-wise equal. + :obj:`dpnp.all` : Test whether all elements evaluate to True. + :obj:`dpnp.any` : Test whether any element evaluates to True. + :obj:`dpnp.equal` : Return (x1 == x2) element-wise. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1e10, 1e-7]) + >>> b = np.array([1.00001e10, 1e-8]) + >>> np.allclose(a, b) + array(False) + + >>> a = np.array([1.0, np.nan]) + >>> b = np.array([1.0, np.nan]) + >>> np.allclose(a, b) + array(False) + >>> np.allclose(a, b, equal_nan=True) + array(True) + + >>> a = np.array([1.0, np.inf]) + >>> b = np.array([1.0, np.inf]) + >>> np.allclose(a, b) + array(True) + + """ + + return all(isclose(a, b, rtol=rtol, atol=atol, equal_nan=equal_nan))
+ + + +
+[docs] +def any(a, /, axis=None, out=None, keepdims=False, *, where=True): + """ + Test whether any array element along a given axis evaluates to True. + + For full documentation refer to :obj:`numpy.any`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which a logical OR reduction is performed. + The default is to perform a logical OR over all the dimensions + of the input array.`axis` may be negative, in which case it counts + from the last to the first axis. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output but the type (of the returned + values) will be cast if necessary. + Default: ``None``. + keepdims : bool, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array with a data type of `bool`. + containing the results of the logical OR reduction is returned + unless `out` is specified. Otherwise, a reference to `out` is returned. + The result has the same shape as `a` if `axis` is not ``None`` + or `a` is a 0-d array. + + Limitations + ----------- + Parameters `where` is only supported with its default value. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.ndarray.any` : equivalent method + :obj:`dpnp.all` : Test whether all elements along a given axis evaluate + to True. + + Notes + ----- + Not a Number (NaN), positive infinity and negative infinity evaluate + to ``True`` because these are not equal to zero. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[True, False], [True, True]]) + >>> np.any(x) + array(True) + + >>> np.any(x, axis=0) + array([ True, True]) + + >>> x2 = np.array([-1, 0, 5]) + >>> np.any(x2) + array(True) + + >>> x3 = np.array([1.0, np.nan]) + >>> np.any(x3) + array(True) + + >>> o = np.array(False) + >>> z = np.any(x2, out=o) + >>> z, o + (array(True), array(True)) + >>> # Check now that `z` is a reference to `o` + >>> z is o + True + >>> id(z), id(o) # identity of `z` and `o` + >>> (140053638309840, 140053638309840) # may vary + + """ + + dpnp.check_limitations(where=where) + + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.any(usm_a, axis=axis, keepdims=keepdims) + + # TODO: temporary solution until dpt.any supports out parameter + return dpnp.get_result_array(usm_res, out)
+ + + +
+[docs] +def array_equal(a1, a2, equal_nan=False): + """ + ``True`` if two arrays have the same shape and elements, ``False`` + otherwise. + + For full documentation refer to :obj:`numpy.array_equal`. + + Parameters + ---------- + a1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array. + Both inputs `x1` and `x2` can not be scalars at the same time. + a2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. + Both inputs `x1` and `x2` can not be scalars at the same time. + equal_nan : bool, optional + Whether to compare ``NaNs`` as equal. If the dtype of `a1` and `a2` is + complex, values will be considered equal if either the real or the + imaginary component of a given value is ``NaN``. + Default: ``False``. + + Returns + ------- + b : dpnp.ndarray + An array with a data type of `bool`. + Returns ``True`` if the arrays are equal. + + See Also + -------- + :obj:`dpnp.allclose`: Returns ``True`` if two arrays are element-wise equal + within a tolerance. + :obj:`dpnp.array_equiv`: Returns ``True`` if input arrays are shape + consistent and all elements equal. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 2]) + >>> b = np.array([1, 2]) + >>> np.array_equal(a, b) + array(True) + + >>> b = np.array([1, 2, 3]) + >>> np.array_equal(a, b) + array(False) + + >>> b = np.array([1, 4]) + >>> np.array_equal(a, b) + array(False) + + >>> a = np.array([1, np.nan]) + >>> np.array_equal(a, a) + array(False) + + >>> np.array_equal(a, a, equal_nan=True) + array(True) + + When ``equal_nan`` is ``True``, complex values with NaN components are + considered equal if either the real *or* the imaginary components are + ``NaNs``. + + >>> a = np.array([1 + 1j]) + >>> b = a.copy() + >>> a.real = np.nan + >>> b.imag = np.nan + >>> np.array_equal(a, b, equal_nan=True) + array(True) + + """ + + dpnp.check_supported_arrays_type(a1, a2, scalar_type=True) + if dpnp.isscalar(a1): + usm_type_alloc = a2.usm_type + sycl_queue_alloc = a2.sycl_queue + a1 = dpnp.array( + a1, + dtype=dpnp.result_type(a1, a2), + usm_type=usm_type_alloc, + sycl_queue=sycl_queue_alloc, + ) + elif dpnp.isscalar(a2): + usm_type_alloc = a1.usm_type + sycl_queue_alloc = a1.sycl_queue + a2 = dpnp.array( + a2, + dtype=dpnp.result_type(a1, a2), + usm_type=usm_type_alloc, + sycl_queue=sycl_queue_alloc, + ) + else: + usm_type_alloc, sycl_queue_alloc = get_usm_allocations([a1, a2]) + + if a1.shape != a2.shape: + return dpnp.array( + False, usm_type=usm_type_alloc, sycl_queue=sycl_queue_alloc + ) + + if not equal_nan: + return (a1 == a2).all() + + if a1 is a2: + # NaN will compare equal so an array will compare equal to itself + return dpnp.array( + True, usm_type=usm_type_alloc, sycl_queue=sycl_queue_alloc + ) + + if not ( + dpnp.issubdtype(a1, dpnp.inexact) or dpnp.issubdtype(a2, dpnp.inexact) + ): + return (a1 == a2).all() + + # Handling NaN values if equal_nan is True + a1nan, a2nan = isnan(a1), isnan(a2) + # NaNs occur at different locations + if not (a1nan == a2nan).all(): + return dpnp.array( + False, usm_type=usm_type_alloc, sycl_queue=sycl_queue_alloc + ) + # Shapes of a1, a2 and masks are guaranteed to be consistent by this point + return (a1[~a1nan] == a2[~a1nan]).all()
+ + + +
+[docs] +def array_equiv(a1, a2): + """ + Returns ``True`` if input arrays are shape consistent and all elements + equal. + + Shape consistent means they are either the same shape, or one input array + can be broadcasted to create the same shape as the other one. + + For full documentation refer to :obj:`numpy.array_equiv`. + + Parameters + ---------- + a1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array. + Both inputs `x1` and `x2` can not be scalars at the same time. + a2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. + Both inputs `x1` and `x2` can not be scalars at the same time. + + Returns + ------- + out : dpnp.ndarray + An array with a data type of `bool`. + ``True`` if equivalent, ``False`` otherwise. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 2]) + >>> b = np.array([1, 2]) + >>> c = np.array([1, 3]) + >>> np.array_equiv(a, b) + array(True) + >>> np.array_equiv(a, c) + array(False) + + Showing the shape equivalence: + + >>> b = np.array([[1, 2], [1, 2]]) + >>> c = np.array([[1, 2, 1, 2], [1, 2, 1, 2]]) + >>> np.array_equiv(a, b) + array(True) + >>> np.array_equiv(a, c) + array(False) + + >>> b = np.array([[1, 2], [1, 3]]) + >>> np.array_equiv(a, b) + array(False) + + """ + + dpnp.check_supported_arrays_type(a1, a2, scalar_type=True) + if not dpnp.isscalar(a1) and not dpnp.isscalar(a2): + usm_type_alloc, sycl_queue_alloc = get_usm_allocations([a1, a2]) + try: + dpnp.broadcast_arrays(a1, a2) + except ValueError: + return dpnp.array( + False, usm_type=usm_type_alloc, sycl_queue=sycl_queue_alloc + ) + return (a1 == a2).all()
+ + + +_EQUAL_DOCSTRING = """ +Calculates equality test results for each element `x1_i` of the input array `x1` +with the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.equal`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array have the correct shape and the expected data type. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise equality comparison. + The returned array has a data type of `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.not_equal` : Return (x1 != x2) element-wise. +:obj:`dpnp.greater_equal` : Return the truth value of (x1 >= x2) element-wise. +:obj:`dpnp.less_equal` : Return the truth value of (x1 =< x2) element-wise. +:obj:`dpnp.greater` : Return the truth value of (x1 > x2) element-wise. +:obj:`dpnp.less` : Return the truth value of (x1 < x2) element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([0, 1, 3]) +>>> x2 = np.arange(3) +>>> np.equal(x1, x2) +array([ True, True, False]) + +What is compared are values, not types. So an int (1) and an array of +length one can evaluate as True: + +>>> np.equal(1, np.ones(1)) +array([ True]) + +The ``==`` operator can be used as a shorthand for ``equal`` on +:class:`dpnp.ndarray`. + +>>> a = np.array([2, 4, 6]) +>>> b = np.array([2, 4, 2]) +>>> a == b +array([ True, True, False]) +""" + +equal = DPNPBinaryFunc( + "equal", + tei._equal_result_type, + tei._equal, + _EQUAL_DOCSTRING, +) + + +_GREATER_DOCSTRING = """ +Computes the greater-than test results for each element `x1_i` of +the input array `x1` with the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.greater`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise greater-than comparison. + The returned array has a data type of `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.greater_equal` : Return the truth value of (x1 >= x2) element-wise. +:obj:`dpnp.less` : Return the truth value of (x1 < x2) element-wise. +:obj:`dpnp.less_equal` : Return the truth value of (x1 =< x2) element-wise. +:obj:`dpnp.equal` : Return (x1 == x2) element-wise. +:obj:`dpnp.not_equal` : Return (x1 != x2) element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([4, 2]) +>>> x2 = np.array([2, 2]) +>>> np.greater(x1, x2) +array([ True, False]) + +The ``>`` operator can be used as a shorthand for ``greater`` on +:class:`dpnp.ndarray`. + +>>> a = np.array([4, 2]) +>>> b = np.array([2, 2]) +>>> a > b +array([ True, False]) +""" + +greater = DPNPBinaryFunc( + "greater", + tei._greater_result_type, + tei._greater, + _GREATER_DOCSTRING, +) + + +_GREATER_EQUAL_DOCSTRING = """ +Computes the greater-than or equal-to test results for each element `x1_i` of +the input array `x1` with the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.greater_equal`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise greater-than or equal-to + comparison. + The returned array has a data type of `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.greater` : Return the truth value of (x1 > x2) element-wise. +:obj:`dpnp.less` : Return the truth value of (x1 < x2) element-wise. +:obj:`dpnp.less_equal` : Return the truth value of (x1 =< x2) element-wise. +:obj:`dpnp.equal` : Return (x1 == x2) element-wise. +:obj:`dpnp.not_equal` : Return (x1 != x2) element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([4, 2, 1]) +>>> x2 = np.array([2, 2, 2]) +>>> np.greater_equal(x1, x2) +array([ True, True, False]) + +The ``>=`` operator can be used as a shorthand for ``greater_equal`` on +:class:`dpnp.ndarray`. + +>>> a = np.array([4, 2, 1]) +>>> b = np.array([2, 2, 2]) +>>> a >= b +array([ True, True, False]) +""" + +greater_equal = DPNPBinaryFunc( + "greater", + tei._greater_equal_result_type, + tei._greater_equal, + _GREATER_EQUAL_DOCSTRING, +) + + +
+[docs] +def isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False): + """ + Returns a boolean array where two arrays are element-wise equal within + a tolerance. + + The tolerance values are positive, typically very small numbers. The + relative difference (`rtol` * abs(`b`)) and the absolute difference `atol` + are added together to compare against the absolute difference between `a` + and `b`. + + ``NaNs`` are treated as equal if they are in the same place and if + ``equal_nan=True``. ``Infs`` are treated as equal if they are in the same + place and of the same sign in both arrays. + + For full documentation refer to :obj:`numpy.isclose`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `a` and `b` can not be scalars at the same time. + b : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `a` and `b` can not be scalars at the same time. + rtol : {dpnp.ndarray, usm_ndarray, scalar}, optional + The relative tolerance parameter. Default: ``1e-05``. + atol : {dpnp.ndarray, usm_ndarray, scalar}, optional + The absolute tolerance parameter. Default: ``1e-08``. + equal_nan : bool + Whether to compare ``NaNs`` as equal. If ``True``, ``NaNs`` in `a` will + be considered equal to ``NaNs`` in `b` in the output array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + Returns a boolean array of where `a` and `b` are equal within the given + tolerance. + + See Also + -------- + :obj:`dpnp.allclose` : Returns ``True`` if two arrays are element-wise + equal within a tolerance. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1e10, 1e-7]) + >>> b = np.array([1.00001e10, 1e-8]) + >>> np.isclose(a, b) + array([ True, False]) + + >>> a = np.array([1e10, 1e-8]) + >>> b = np.array([1.00001e10, 1e-9]) + >>> np.isclose(a, b) + array([ True, True]) + + >>> a = np.array([1e10, 1e-8]) + >>> b = np.array([1.0001e10, 1e-9]) + >>> np.isclose(a, b) + array([False, True]) + + >>> a = np.array([1.0, np.nan]) + >>> b = np.array([1.0, np.nan]) + >>> np.isclose(a, b) + array([ True, False]) + >>> np.isclose(a, b, equal_nan=True) + array([ True, True]) + + >>> a = np.array([0.0, 0.0]) + >>> b = np.array([1e-8, 1e-7]) + >>> np.isclose(a, b) + array([ True, False]) + >>> b = np.array([1e-100, 1e-7]) + >>> np.isclose(a, b, atol=0.0) + array([False, False]) + + >>> a = np.array([1e-10, 1e-10]) + >>> b = np.array([1e-20, 0.0]) + >>> np.isclose(a, b) + array([ True, True]) + >>> b = np.array([1e-20, 0.999999e-10]) + >>> np.isclose(a, b, atol=0.0) + array([False, True]) + + """ + + dpnp.check_supported_arrays_type(a, b, scalar_type=True) + dpnp.check_supported_arrays_type( + rtol, atol, scalar_type=True, all_scalars=True + ) + + # make sure b is an inexact type to avoid bad behavior on abs(MIN_INT) + if dpnp.isscalar(b): + dt = dpnp.result_type(a, b, 1.0, rtol, atol) + b = dpnp.asarray( + b, dtype=dt, sycl_queue=a.sycl_queue, usm_type=a.usm_type + ) + elif dpnp.issubdtype(b, dpnp.integer): + dt = dpnp.result_type(b, 1.0, rtol, atol) + b = dpnp.astype(b, dtype=dt) + + # Firstly handle finite values: + # result = absolute(a - b) <= atol + rtol * absolute(b) + dt = dpnp.result_type(b, rtol, atol) + _b = dpnp.abs(b, dtype=dt) + _b *= rtol + _b += atol + result = less_equal(dpnp.abs(a - b), _b) + + # Handle "inf" values: they are treated as equal if they are in the same + # place and of the same sign in both arrays + result &= isfinite(b) + result |= a == b + + if equal_nan: + result |= isnan(a) & isnan(b) + return result
+ + + +
+[docs] +def iscomplex(x): + """ + Returns a bool array, where ``True`` if input element is complex. + + What is tested is whether the input has a non-zero imaginary part, not if + the input type is complex. + + For full documentation refer to :obj:`numpy.iscomplex`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. + + Returns + ------- + out : dpnp.ndarray + Output array. + + See Also + -------- + :obj:`dpnp.isreal` : Returns a bool array, where ``True`` if input element + is real. + :obj:`dpnp.iscomplexobj` : Return ``True`` if `x` is a complex type or an + array of complex numbers. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1+1j, 1+0j, 4.5, 3, 2, 2j]) + >>> np.iscomplex(a) + array([ True, False, False, False, False, True]) + + """ + dpnp.check_supported_arrays_type(x) + if dpnp.issubdtype(x.dtype, dpnp.complexfloating): + return x.imag != 0 + return dpnp.zeros_like(x, dtype=dpnp.bool)
+ + + +
+[docs] +def iscomplexobj(x): + """ + Check for a complex type or an array of complex numbers. + + The type of the input is checked, not the value. Even if the input has an + imaginary part equal to zero, :obj:`dpnp.iscomplexobj` evaluates to + ``True``. + + For full documentation refer to :obj:`numpy.iscomplexobj`. + + Parameters + ---------- + x : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + + Returns + ------- + out : bool + The return value, ``True`` if `x` is of a complex type or has at least + one complex element. + + See Also + -------- + :obj:`dpnp.isrealobj` : Return ``True`` if `x` is a not complex type or an + array of complex numbers. + :obj:`dpnp.iscomplex` : Returns a bool array, where ``True`` if input + element is complex. + + Examples + -------- + >>> import dpnp as np + >>> np.iscomplexobj(1) + False + >>> np.iscomplexobj(1+0j) + True + >>> np.iscomplexobj([3, 1+0j, True]) + True + + """ + return numpy.iscomplexobj(x)
+ + + +_ISFINITE_DOCSTRING = """ +Test if each element of input array is a finite number. + +For full documentation refer to :obj:`numpy.isfinite`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array which is True where `x` is not positive infinity, + negative infinity, or ``NaN``, False otherwise. + The data type of the returned array is `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.isinf` : Test element-wise for positive or negative infinity. +:obj:`dpnp.isneginf` : Test element-wise for negative infinity, + return result as bool array. +:obj:`dpnp.isposinf` : Test element-wise for positive infinity, + return result as bool array. +:obj:`dpnp.isnan` : Test element-wise for NaN and + return result as a boolean array. + +Notes +----- +Not a Number, positive infinity and negative infinity are considered +to be non-finite. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([-np.inf, 0., np.inf]) +>>> np.isfinite(x) +array([False, True, False]) +""" + +isfinite = DPNPUnaryFunc( + "isfinite", + tei._isfinite_result_type, + tei._isfinite, + _ISFINITE_DOCSTRING, +) + + +_ISINF_DOCSTRING = """ +Test if each element of input array is an infinity. + +For full documentation refer to :obj:`numpy.isinf`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array which is True where `x` is positive or negative infinity, + False otherwise. The data type of the returned array is `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.isneginf` : Test element-wise for negative infinity, + return result as bool array. +:obj:`dpnp.isposinf` : Test element-wise for positive infinity, + return result as bool array. +:obj:`dpnp.isnan` : Test element-wise for NaN and + return result as a boolean array. +:obj:`dpnp.isfinite` : Test element-wise for finiteness. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([-np.inf, 0., np.inf]) +>>> np.isinf(x) +array([ True, False, True]) +""" + +isinf = DPNPUnaryFunc( + "isinf", + tei._isinf_result_type, + tei._isinf, + _ISINF_DOCSTRING, +) + + +_ISNAN_DOCSTRING = """ +Test if each element of an input array is a NaN. + +For full documentation refer to :obj:`numpy.isnan`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array which is True where `x` is ``NaN``, False otherwise. + The data type of the returned array is `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.isinf` : Test element-wise for positive or negative infinity. +:obj:`dpnp.isneginf` : Test element-wise for negative infinity, + return result as bool array. +:obj:`dpnp.isposinf` : Test element-wise for positive infinity, + return result as bool array. +:obj:`dpnp.isfinite` : Test element-wise for finiteness. +:obj:`dpnp.isnat` : Test element-wise for NaT (not a time) + and return result as a boolean array. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([np.inf, 0., np.nan]) +>>> np.isnan(x) +array([False, False, True]) +""" + +isnan = DPNPUnaryFunc( + "isnan", + tei._isnan_result_type, + tei._isnan, + _ISNAN_DOCSTRING, +) + + +
+[docs] +def isneginf(x, out=None): + """ + Test element-wise for negative infinity, return result as bool array. + + For full documentation refer to :obj:`numpy.isneginf`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. + out : {None, dpnp.ndarray, usm_ndarray}, optional + A location into which the result is stored. If provided, it must have a + shape that the input broadcasts to and a boolean data type. + If not provided or ``None``, a freshly-allocated boolean array + is returned. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Boolean array of same shape as ``x``. + + See Also + -------- + :obj:`dpnp.isinf` : Test element-wise for positive or negative infinity. + :obj:`dpnp.isposinf` : Test element-wise for positive infinity, + return result as bool array. + :obj:`dpnp.isnan` : Test element-wise for NaN and + return result as a boolean array. + :obj:`dpnp.isfinite` : Test element-wise for finiteness. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array(np.inf) + >>> np.isneginf(-x) + array(True) + >>> np.isneginf(x) + array(False) + + >>> x = np.array([-np.inf, 0., np.inf]) + >>> np.isneginf(x) + array([ True, False, False]) + + >>> x = np.array([-np.inf, 0., np.inf]) + >>> y = np.zeros(x.shape, dtype='bool') + >>> np.isneginf(x, y) + array([ True, False, False]) + >>> y + array([ True, False, False]) + + """ + + dpnp.check_supported_arrays_type(x) + + if out is not None: + dpnp.check_supported_arrays_type(out) + + x_dtype = x.dtype + if dpnp.issubdtype(x_dtype, dpnp.complexfloating): + raise TypeError( + f"This operation is not supported for {x_dtype} values " + "because it would be ambiguous." + ) + + is_inf = dpnp.isinf(x) + signbit = dpnp.signbit(x) + + # TODO: support different out dtype #1717(dpctl) + return dpnp.logical_and(is_inf, signbit, out=out)
+ + + +
+[docs] +def isposinf(x, out=None): + """ + Test element-wise for positive infinity, return result as bool array. + + For full documentation refer to :obj:`numpy.isposinf`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. + out : {None, dpnp.ndarray, usm_ndarray}, optional + A location into which the result is stored. If provided, it must have a + shape that the input broadcasts to and a boolean data type. + If not provided or ``None``, a freshly-allocated boolean array + is returned. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Boolean array of same shape as ``x``. + + See Also + -------- + :obj:`dpnp.isinf` : Test element-wise for positive or negative infinity. + :obj:`dpnp.isneginf` : Test element-wise for negative infinity, + return result as bool array. + :obj:`dpnp.isnan` : Test element-wise for NaN and + return result as a boolean array. + :obj:`dpnp.isfinite` : Test element-wise for finiteness. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array(np.inf) + >>> np.isposinf(x) + array(True) + >>> np.isposinf(-x) + array(False) + + >>> x = np.array([-np.inf, 0., np.inf]) + >>> np.isposinf(x) + array([False, False, True]) + + >>> x = np.array([-np.inf, 0., np.inf]) + >>> y = np.zeros(x.shape, dtype='bool') + >>> np.isposinf(x, y) + array([False, False, True]) + >>> y + array([False, False, True]) + + """ + + dpnp.check_supported_arrays_type(x) + + if out is not None: + dpnp.check_supported_arrays_type(out) + + x_dtype = x.dtype + if dpnp.issubdtype(x_dtype, dpnp.complexfloating): + raise TypeError( + f"This operation is not supported for {x_dtype} values " + "because it would be ambiguous." + ) + + is_inf = dpnp.isinf(x) + signbit = ~dpnp.signbit(x) + + # TODO: support different out dtype #1717(dpctl) + return dpnp.logical_and(is_inf, signbit, out=out)
+ + + +
+[docs] +def isreal(x): + """ + Returns a bool array, where ``True`` if input element is real. + + If element has complex type with zero imaginary part, the return value + for that element is ``True``. + + For full documentation refer to :obj:`numpy.isreal`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. + + Returns + ------- + out : : dpnp.ndarray + Boolean array of same shape as `x`. + + See Also + -------- + :obj:`dpnp.iscomplex` : Returns a bool array, where ``True`` if input + element is complex. + :obj:`dpnp.isrealobj` : Return ``True`` if `x` is not a complex type. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1+1j, 1+0j, 4.5, 3, 2, 2j]) + >>> np.isreal(a) + array([False, True, True, True, True, False]) + + """ + dpnp.check_supported_arrays_type(x) + if dpnp.issubdtype(x.dtype, dpnp.complexfloating): + return x.imag == 0 + return dpnp.ones_like(x, dtype=dpnp.bool)
+ + + +
+[docs] +def isrealobj(x): + """ + Return ``True`` if `x` is a not complex type or an array of complex numbers. + + The type of the input is checked, not the value. So even if the input has + an imaginary part equal to zero, :obj:`dpnp.isrealobj` evaluates to + ``False`` if the data type is complex. + + For full documentation refer to :obj:`numpy.isrealobj`. + + Parameters + ---------- + x : array_like + Input data, in any form that can be converted to an array. This + includes scalars, lists, lists of tuples, tuples, tuples of tuples, + tuples of lists, and ndarrays. + + Returns + ------- + out : bool + The return value, ``False`` if `x` is of a complex type. + + See Also + -------- + :obj:`dpnp.iscomplexobj` : Check for a complex type or an array of complex + numbers. + :obj:`dpnp.isreal` : Returns a bool array, where ``True`` if input element + is real. + + Examples + -------- + >>> import dpnp as np + >>> np.isrealobj(False) + True + >>> np.isrealobj(1) + True + >>> np.isrealobj(1+0j) + False + >>> np.isrealobj([3, 1+0j, True]) + False + + """ + return not iscomplexobj(x)
+ + + +
+[docs] +def isscalar(element): + """ + Returns ``True`` if the type of `element` is a scalar type. + + For full documentation refer to :obj:`numpy.isscalar`. + + Parameters + ---------- + element : any + Input argument, can be of any type and shape. + + Returns + ------- + out : bool + ``True`` if `element` is a scalar type, ``False`` if it is not. + + Examples + -------- + >>> import dpnp as np + >>> np.isscalar(3.1) + True + >>> np.isscalar(np.array(3.1)) + False + >>> np.isscalar([3.1]) + False + >>> np.isscalar(False) + True + >>> np.isscalar("dpnp") + True + """ + return numpy.isscalar(element)
+ + + +_LESS_DOCSTRING = """ +Computes the less-than test results for each element `x1_i` of +the input array `x1` with the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.less`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise less-than comparison. + The returned array has a data type of `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.greater` : Return the truth value of (x1 > x2) element-wise. +:obj:`dpnp.less_equal` : Return the truth value of (x1 =< x2) element-wise. +:obj:`dpnp.greater_equal` : Return the truth value of (x1 >= x2) element-wise. +:obj:`dpnp.equal` : Return (x1 == x2) element-wise. +:obj:`dpnp.not_equal` : Return (x1 != x2) element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([1, 2]) +>>> x2 = np.array([2, 2]) +>>> np.less(x1, x2) +array([ True, False]) + +The ``<`` operator can be used as a shorthand for ``less`` on +:class:`dpnp.ndarray`. + +>>> a = np.array([1, 2]) +>>> b = np.array([2, 2]) +>>> a < b +array([ True, False]) +""" + +less = DPNPBinaryFunc( + "less", + tei._less_result_type, + tei._less, + _LESS_DOCSTRING, +) + + +_LESS_EQUAL_DOCSTRING = """ +Computes the less-than or equal-to test results for each element `x1_i` of +the input array `x1` with the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.less_equal`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise less-than or equal-to + comparison. The returned array has a data type of `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.greater` : Return the truth value of (x1 > x2) element-wise. +:obj:`dpnp.less` : Return the truth value of (x1 < x2) element-wise. +:obj:`dpnp.greater_equal` : Return the truth value of (x1 >= x2) element-wise. +:obj:`dpnp.equal` : Return (x1 == x2) element-wise. +:obj:`dpnp.not_equal` : Return (x1 != x2) element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([4, 2, 1]) +>>> x2 = np.array([2, 2, 2] +>>> np.less_equal(x1, x2) +array([False, True, True]) + +The ``<=`` operator can be used as a shorthand for ``less_equal`` on +:class:`dpnp.ndarray`. + +>>> a = np.array([4, 2, 1]) +>>> b = np.array([2, 2, 2]) +>>> a <= b +array([False, True, True]) +""" + +less_equal = DPNPBinaryFunc( + "less_equal", + tei._less_equal_result_type, + tei._less_equal, + _LESS_EQUAL_DOCSTRING, +) + + +_LOGICAL_AND_DOCSTRING = """ +Computes the logical AND for each element `x1_i` of the input array `x1` with +the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.logical_and`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise logical AND results. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.logical_or` : Compute the truth value of x1 OR x2 element-wise. +:obj:`dpnp.logical_not` : Compute the truth value of NOT x element-wise. +:obj:`dpnp.logical_xor` : Compute the truth value of x1 XOR x2, element-wise. +:obj:`dpnp.bitwise_and` : Compute the bit-wise AND of two arrays element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([True, False]) +>>> x2 = np.array([False, False]) +>>> np.logical_and(x1, x2) +array([False, False]) + +>>> x = np.arange(5) +>>> np.logical_and(x > 1, x < 4) +array([False, False, True, True, False]) + +The ``&`` operator can be used as a shorthand for ``logical_and`` on +boolean :class:`dpnp.ndarray`. + +>>> a = np.array([True, False]) +>>> b = np.array([False, False]) +>>> a & b +array([False, False]) +""" + +logical_and = DPNPBinaryFunc( + "logical_and", + tei._logical_and_result_type, + tei._logical_and, + _LOGICAL_AND_DOCSTRING, +) + + +_LOGICAL_NOT_DOCSTRING = """ +Computes the logical NOT for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.logical_not`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise logical NOT results. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.logical_and` : Compute the truth value of x1 AND x2 element-wise. +:obj:`dpnp.logical_or` : Compute the truth value of x1 OR x2 element-wise. +:obj:`dpnp.logical_xor` : Compute the truth value of x1 XOR x2, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([True, False, 0, 1]) +>>> np.logical_not(x) +array([False, True, True, False]) + +>>> x = np.arange(5) +>>> np.logical_not(x < 3) +array([False, False, False, True, True]) +""" + +logical_not = DPNPUnaryFunc( + "logical_not", + tei._logical_not_result_type, + tei._logical_not, + _LOGICAL_NOT_DOCSTRING, +) + + +_LOGICAL_OR_DOCSTRING = """ +Computes the logical OR for each element `x1_i` of the input array `x1` +with the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.logical_or`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise logical OR results. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.logical_and` : Compute the truth value of x1 AND x2 element-wise. +:obj:`dpnp.logical_not` : Compute the truth value of NOT x element-wise. +:obj:`dpnp.logical_xor` : Compute the truth value of x1 XOR x2, element-wise. +:obj:`dpnp.bitwise_or` : Compute the bit-wise OR of two arrays element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([True, False]) +>>> x2 = np.array([False, False]) +>>> np.logical_or(x1, x2) +array([ True, False]) + +>>> x = np.arange(5) +>>> np.logical_or(x < 1, x > 3) +array([ True, False, False, False, True]) + +The ``|`` operator can be used as a shorthand for ``logical_or`` on +boolean :class:`dpnp.ndarray`. + +>>> a = np.array([True, False]) +>>> b = np.array([False, False]) +>>> a | b +array([ True, False]) +""" + +logical_or = DPNPBinaryFunc( + "logical_or", + tei._logical_or_result_type, + tei._logical_or, + _LOGICAL_OR_DOCSTRING, +) + + +_LOGICAL_XOR_DOCSTRING = """ +Computes the logical XOR for each element `x1_i` of the input array `x1` +with the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.logical_xor`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise logical XOR results. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.logical_and` : Compute the truth value of x1 AND x2 element-wise. +:obj:`dpnp.logical_or` : Compute the truth value of x1 OR x2 element-wise. +:obj:`dpnp.logical_not` : Compute the truth value of NOT x element-wise. +:obj:`dpnp.bitwise_xor` : Compute the bit-wise XOR of two arrays element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([True, True, False, False]) +>>> x2 = np.array([True, False, True, False]) +>>> np.logical_xor(x1, x2) +array([False, True, True, False]) + +>>> x = np.arange(5) +>>> np.logical_xor(x < 1, x > 3) +array([ True, False, False, False, True]) + +Simple example showing support of broadcasting + +>>> np.logical_xor(0, np.eye(2)) +array([[ True, False], + [False, True]]) +""" + +logical_xor = DPNPBinaryFunc( + "logical_xor", + tei._logical_xor_result_type, + tei._logical_xor, + _LOGICAL_XOR_DOCSTRING, +) + + +_NOT_EQUAL_DOCSTRING = """ +Calculates inequality test results for each element `x1_i` of the +input array `x1` with the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.not_equal`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise inequality comparison. + The returned array has a data type of `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.equal` : Return (x1 == x2) element-wise. +:obj:`dpnp.greater` : Return the truth value of (x1 > x2) element-wise. +:obj:`dpnp.greater_equal` : Return the truth value of (x1 >= x2) element-wise. +:obj:`dpnp.less` : Return the truth value of (x1 < x2) element-wise. +:obj:`dpnp.less_equal` : Return the truth value of (x1 =< x2) element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([1., 2.]) +>>> x2 = np.arange(1., 3.) +>>> np.not_equal(x1, x2) +array([False, False]) + +The ``!=`` operator can be used as a shorthand for ``not_equal`` on +:class:`dpnp.ndarray`. + +>>> a = np.array([1., 2.]) +>>> b = np.array([1., 3.]) +>>> a != b +array([False, True]) +""" + +not_equal = DPNPBinaryFunc( + "not_equal", + tei._not_equal_result_type, + tei._not_equal, + _NOT_EQUAL_DOCSTRING, +) +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_manipulation.html b/pull/2070/_modules/dpnp/dpnp_iface_manipulation.html new file mode 100644 index 00000000000..08d3c6aca91 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_manipulation.html @@ -0,0 +1,3652 @@ + + + + + + + + + + dpnp.dpnp_iface_manipulation — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_manipulation

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the Array manipulation routines part of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+
+import math
+import operator
+
+import dpctl.tensor as dpt
+import numpy
+from dpctl.tensor._numpy_helper import AxisError, normalize_axis_index
+
+import dpnp
+
+from .dpnp_array import dpnp_array
+
+__all__ = [
+    "append",
+    "array_split",
+    "asarray_chkfinite",
+    "asfarray",
+    "atleast_1d",
+    "atleast_2d",
+    "atleast_3d",
+    "broadcast_arrays",
+    "broadcast_to",
+    "can_cast",
+    "column_stack",
+    "concat",
+    "concatenate",
+    "copyto",
+    "dsplit",
+    "dstack",
+    "expand_dims",
+    "flip",
+    "fliplr",
+    "flipud",
+    "hsplit",
+    "hstack",
+    "moveaxis",
+    "ndim",
+    "permute_dims",
+    "ravel",
+    "repeat",
+    "require",
+    "reshape",
+    "resize",
+    "result_type",
+    "roll",
+    "rollaxis",
+    "rot90",
+    "row_stack",
+    "shape",
+    "size",
+    "split",
+    "squeeze",
+    "stack",
+    "swapaxes",
+    "tile",
+    "transpose",
+    "trim_zeros",
+    "unique",
+    "vsplit",
+    "vstack",
+]
+
+
+def _check_stack_arrays(arrays):
+    """Validate a sequence type of arrays to stack."""
+
+    if not hasattr(arrays, "__getitem__"):
+        raise TypeError(
+            'arrays to stack must be passed as a "sequence" type '
+            "such as list or tuple."
+        )
+
+
+def _unique_1d(
+    ar,
+    return_index=False,
+    return_inverse=False,
+    return_counts=False,
+    equal_nan=True,
+):
+    """Find the unique elements of a 1D array."""
+
+    def _get_first_nan_index(usm_a):
+        """
+        Find the first index of NaN in the input array with at least two NaNs.
+
+        Assume the input array sorted where the NaNs are always at the end.
+        Return None if the input array does not have at least two NaN values or
+        data type of the array is not inexact.
+
+        """
+
+        if (
+            usm_a.size > 2
+            and dpnp.issubdtype(usm_a.dtype, dpnp.inexact)
+            and dpnp.isnan(usm_a[-2])
+        ):
+            if dpnp.issubdtype(usm_a.dtype, dpnp.complexfloating):
+                # for complex all NaNs are considered equivalent
+                true_val = dpt.asarray(
+                    True, sycl_queue=usm_a.sycl_queue, usm_type=usm_a.usm_type
+                )
+                return dpt.searchsorted(dpt.isnan(usm_a), true_val, side="left")
+            return dpt.searchsorted(usm_a, usm_a[-1], side="left")
+        return None
+
+    usm_ar = dpnp.get_usm_ndarray(ar)
+
+    num_of_flags = (return_index, return_inverse, return_counts).count(True)
+    if num_of_flags == 0:
+        usm_res = dpt.unique_values(usm_ar)
+        usm_res = (usm_res,)  # cast to a tuple to align with other cases
+    elif num_of_flags == 1 and return_inverse:
+        usm_res = dpt.unique_inverse(usm_ar)
+    elif num_of_flags == 1 and return_counts:
+        usm_res = dpt.unique_counts(usm_ar)
+    else:
+        usm_res = dpt.unique_all(usm_ar)
+
+    first_nan = None
+    if equal_nan:
+        first_nan = _get_first_nan_index(usm_res[0])
+
+    # collapse multiple NaN values in an array into one NaN value if applicable
+    result = (
+        usm_res[0][: first_nan + 1] if first_nan is not None else usm_res[0],
+    )
+    if return_index:
+        result += (
+            (
+                usm_res.indices[: first_nan + 1]
+                if first_nan is not None
+                else usm_res.indices
+            ),
+        )
+    if return_inverse:
+        if first_nan is not None:
+            # all NaNs are collapsed, so need to replace the indices with
+            # the index of the first NaN value in result array of unique values
+            dpt.place(
+                usm_res.inverse_indices,
+                usm_res.inverse_indices > first_nan,
+                dpt.reshape(first_nan, 1),
+            )
+
+        result += (usm_res.inverse_indices,)
+    if return_counts:
+        if first_nan is not None:
+            # all NaNs are collapsed, so need to put a count of all NaNs
+            # at the last index
+            dpt.sum(usm_res.counts[first_nan:], out=usm_res.counts[first_nan])
+            result += (usm_res.counts[: first_nan + 1],)
+        else:
+            result += (usm_res.counts,)
+
+    result = tuple(dpnp_array._create_from_usm_ndarray(x) for x in result)
+    return _unpack_tuple(result)
+
+
+def _unique_build_sort_indices(a, index_sh):
+    """
+    Build the indices of an input array (when axis is provided) which result
+    in the unique array.
+
+    """
+
+    is_inexact = dpnp.issubdtype(a, dpnp.inexact)
+    if dpnp.issubdtype(a.dtype, numpy.unsignedinteger):
+        ar_cmp = a.astype(dpnp.intp)
+    elif dpnp.issubdtype(a.dtype, dpnp.bool):
+        ar_cmp = a.astype(numpy.int8)
+    else:
+        ar_cmp = a
+
+    def compare_axis_elems(idx1, idx2):
+        comp = dpnp.trim_zeros(ar_cmp[idx1] - ar_cmp[idx2], "f")
+        if comp.shape[0] > 0:
+            diff = comp[0]
+            if is_inexact and dpnp.isnan(diff):
+                isnan1 = dpnp.isnan(ar_cmp[idx1])
+                if not isnan1.any():  # no NaN in ar_cmp[idx1]
+                    return True  # ar_cmp[idx1] goes to left
+
+                isnan2 = dpnp.isnan(ar_cmp[idx2])
+                if not isnan2.any():  # no NaN in ar_cmp[idx2]
+                    return False  # ar_cmp[idx1] goes to right
+
+                # for complex all NaNs are considered equivalent
+                if (isnan1 & isnan2).all():  # NaNs at the same places
+                    return False  # ar_cmp[idx1] goes to right
+
+                xor_nan_idx = dpnp.where(isnan1 ^ isnan2)[0]
+                if xor_nan_idx.size == 0:
+                    return False
+
+                if dpnp.isnan(ar_cmp[idx2][xor_nan_idx[0]]):
+                    # first NaN in XOR mask is from ar_cmp[idx2]
+                    return True  # ar_cmp[idx1] goes to left
+                return False
+            return diff < 0
+        return False
+
+    # sort the array `a` lexicographically using the first item
+    # of each element on the axis
+    sorted_indices = dpnp.empty_like(a, shape=index_sh, dtype=dpnp.intp)
+    queue = [(numpy.arange(0, index_sh, dtype=numpy.intp).tolist(), 0)]
+    while len(queue) != 0:
+        current, off = queue.pop(0)
+        if len(current) == 0:
+            continue
+
+        mid_elem = current[0]
+        left = []
+        right = []
+        for i in range(1, len(current)):
+            if compare_axis_elems(current[i], mid_elem):
+                left.append(current[i])
+            else:
+                right.append(current[i])
+
+        elem_pos = off + len(left)
+        queue.append((left, off))
+        queue.append((right, elem_pos + 1))
+
+        sorted_indices[elem_pos] = mid_elem
+    return sorted_indices
+
+
+def _unpack_tuple(a):
+    """Unpacks one-element tuples for use as return values."""
+
+    if len(a) == 1:
+        return a[0]
+    return a
+
+
+
+[docs] +def append(arr, values, axis=None): + """ + Append values to the end of an array. + + For full documentation refer to :obj:`numpy.append`. + + Parameters + ---------- + arr : {dpnp.ndarray, usm_ndarray} + Values are appended to a copy of this array. + values : {scalar, array_like} + These values are appended to a copy of `arr`. It must be of the + correct shape (the same shape as `arr`, excluding `axis`). If + `axis` is not specified, `values` can be any shape and will be + flattened before use. + These values can be in any form that can be converted to an array. + This includes scalars, lists, lists of tuples, tuples, + tuples of tuples, tuples of lists, and ndarrays. + axis : {None, int}, optional + The axis along which `values` are appended. If `axis` is not + given, both `arr` and `values` are flattened before use. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + A copy of `arr` with `values` appended to `axis`. Note that + `append` does not occur in-place: a new array is allocated and + filled. If `axis` is ``None``, `out` is a flattened array. + + See Also + -------- + :obj:`dpnp.insert` : Insert elements into an array. + :obj:`dpnp.delete` : Delete elements from an array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 2, 3]) + >>> np.append(a, [[4, 5, 6], [7, 8, 9]]) + array([1, 2, 3, 4, 5, 6, 7, 8, 9]) + + When `axis` is specified, `values` must have the correct shape. + + >>> b = np.array([[1, 2, 3], [4, 5, 6]]) + >>> np.append(b, [[7, 8, 9]], axis=0) + array([[1, 2, 3], + [4, 5, 6], + [7, 8, 9]]) + >>> np.append(b, [7, 8, 9], axis=0) + Traceback (most recent call last): + ... + ValueError: all the input arrays must have same number of dimensions, but + the array at index 0 has 2 dimension(s) and the array at index 1 has 1 + dimension(s) + + """ + + dpnp.check_supported_arrays_type(arr) + if not dpnp.is_supported_array_type(values): + values = dpnp.array( + values, usm_type=arr.usm_type, sycl_queue=arr.sycl_queue + ) + + if axis is None: + if arr.ndim != 1: + arr = dpnp.ravel(arr) + if values.ndim != 1: + values = dpnp.ravel(values) + axis = 0 + return dpnp.concatenate((arr, values), axis=axis)
+ + + +
+[docs] +def array_split(ary, indices_or_sections, axis=0): + """ + Split an array into multiple sub-arrays. + + Please refer to the :obj:`dpnp.split` documentation. The only difference + between these functions is that ``dpnp.array_split`` allows + `indices_or_sections` to be an integer that does *not* equally divide the + axis. For an array of length l that should be split into n sections, it + returns ``l % n`` sub-arrays of size ``l//n + 1`` and the rest of size + ``l//n``. + + For full documentation refer to :obj:`numpy.array_split`. + + Parameters + ---------- + ary : {dpnp.ndarray, usm_ndarray} + Array to be divided into sub-arrays. + indices_or_sections : {int, sequence of ints} + If `indices_or_sections` is an integer, N, and array length is l, it + returns ``l % n`` sub-arrays of size ``l//n + 1`` and the rest of size + ``l//n``. + + If `indices_or_sections` is a sequence of sorted integers, the entries + indicate where along `axis` the array is split. + axis : int, optional + The axis along which to split. + Default: ``0``. + + Returns + ------- + sub-arrays : list of dpnp.ndarray + A list of sub arrays. Each array is a view of the corresponding input + array. + + See Also + -------- + :obj:`dpnp.split` : Split array into multiple sub-arrays of equal size. + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(8.0) + >>> np.array_split(x, 3) + [array([0., 1., 2.]), array([3., 4., 5.]), array([6., 7.])] + + >>> x = np.arange(9) + >>> np.array_split(x, 4) + [array([0, 1, 2]), array([3, 4]), array([5, 6]), array([7, 8])] + + """ + + dpnp.check_supported_arrays_type(ary) + n_tot = ary.shape[axis] + try: + # handle array case. + n_sec = len(indices_or_sections) + 1 + div_points = [0] + list(indices_or_sections) + [n_tot] + except TypeError: + # indices_or_sections is a scalar, not an array. + n_sec = int(indices_or_sections) + if n_sec <= 0: + raise ValueError("number sections must be larger than 0.") from None + n_each_sec, extras = numpy.divmod(n_tot, n_sec) + section_sizes = ( + [0] + extras * [n_each_sec + 1] + (n_sec - extras) * [n_each_sec] + ) + div_points = dpnp.array( + section_sizes, + dtype=dpnp.intp, + usm_type=ary.usm_type, + sycl_queue=ary.sycl_queue, + ).cumsum() + + sub_arys = [] + sary = dpnp.swapaxes(ary, axis, 0) + for i in range(n_sec): + st = div_points[i] + end = div_points[i + 1] + sub_arys.append(dpnp.swapaxes(sary[st:end], axis, 0)) + + return sub_arys
+ + + +
+[docs] +def asarray_chkfinite( + a, dtype=None, order=None, *, device=None, usm_type=None, sycl_queue=None +): + """ + Convert the input to an array, checking for NaNs or Infs. + + For full documentation refer to :obj:`numpy.asarray_chkfinite`. + + Parameters + ---------- + arr : array_like + Input data, in any form that can be converted to an array. This + includes lists, lists of tuples, tuples, tuples of tuples, tuples + of lists and ndarrays. Success requires no NaNs or Infs. + dtype : {None, str, dtype object}, optional + By default, the data-type is inferred from the input data. + Default: ``None``. + order : {None, "C", "F", "A", "K"}, optional + Memory layout of the newly output array. + Default: ``"K"``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + Default: ``None``. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array interpretation of `a`. No copy is performed if the input is + already an ndarray. + + Raises + ------- + ValueError + Raises ``ValueError`` if `a` contains NaN (Not a Number) or + Inf (Infinity). + + See Also + -------- + :obj:`dpnp.asarray` : Create an array. + :obj:`dpnp.asanyarray` : Converts an input object into array. + :obj:`dpnp.ascontiguousarray` : Convert input to a c-contiguous array. + :obj:`dpnp.asfortranarray` : Convert input to an array with column-major + memory order. + :obj:`dpnp.fromiter` : Create an array from an iterator. + :obj:`dpnp.fromfunction` : Construct an array by executing a function + on grid positions. + + Examples + -------- + >>> import dpnp as np + + Convert a list into an array. If all elements are finite, + ``asarray_chkfinite`` is identical to ``asarray``. + + >>> a = [1, 2] + >>> np.asarray_chkfinite(a, dtype=np.float32) + array([1., 2.]) + + Raises ``ValueError`` if array_like contains NaNs or Infs. + + >>> a = [1, 2, np.inf] + >>> try: + ... np.asarray_chkfinite(a) + ... except ValueError: + ... print('ValueError') + ValueError + + Creating an array on a different device or with a specified usm_type + + >>> x = np.asarray_chkfinite([1, 2, 3]) # default case + >>> x, x.device, x.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'device') + + >>> y = np.asarray_chkfinite([1, 2, 3], device="cpu") + >>> y, y.device, y.usm_type + (array([1, 2, 3]), Device(opencl:cpu:0), 'device') + + >>> z = np.asarray_chkfinite([1, 2, 3], usm_type="host") + >>> z, z.device, z.usm_type + (array([1, 2, 3]), Device(level_zero:gpu:0), 'host') + + """ + + a = dpnp.asarray( + a, + dtype=dtype, + order=order, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + if dpnp.issubdtype(a.dtype, dpnp.inexact) and not dpnp.isfinite(a).all(): + raise ValueError("array must not contain infs or NaNs") + return a
+ + + +
+[docs] +def asfarray(a, dtype=None, *, device=None, usm_type=None, sycl_queue=None): + """ + Return an array converted to a float type. + + For full documentation refer to :obj:`numpy.asfarray`. + + Parameters + ---------- + a : array_like + Input data, in any form that can be converted to an array. + This includes an instance of :class:`dpnp.ndarray` or + :class:`dpctl.tensor.usm_ndarray`, an object representing + SYCL USM allocation and implementing `__sycl_usm_array_interface__` + protocol, an instance of :class:`numpy.ndarray`, an object supporting + Python buffer protocol, a Python scalar, or a (possibly nested) + sequence of Python scalars. + dtype : str or dtype object, optional + Float type code to coerce input array `a`. If `dtype` is ``None``, + :obj:`dpnp.bool` or one of the `int` dtypes, it is replaced with + the default floating type (:obj:`dpnp.float64` if a device supports it, + or :obj:`dpnp.float32` type otherwise). + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by :obj:`dpnp.ndarray.device` property. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The input `a` as a float ndarray. + + Examples + -------- + >>> import dpnp as np + >>> np.asfarray([2, 3]) + array([2., 3.]) + >>> np.asfarray([2, 3], dtype=dpnp.float32) + array([2., 3.], dtype=float32) + >>> np.asfarray([2, 3], dtype=dpnp.int32) + array([2., 3.]) + + """ + + _sycl_queue = dpnp.get_normalized_queue_device( + a, sycl_queue=sycl_queue, device=device + ) + + if dtype is None or not dpnp.issubdtype(dtype, dpnp.inexact): + dtype = dpnp.default_float_type(sycl_queue=_sycl_queue) + + return dpnp.asarray( + a, dtype=dtype, usm_type=usm_type, sycl_queue=_sycl_queue + )
+ + + +
+[docs] +def atleast_1d(*arys): + """ + Convert inputs to arrays with at least one dimension. + + For full documentation refer to :obj:`numpy.atleast_1d`. + + Parameters + ---------- + arys : {dpnp.ndarray, usm_ndarray} + One or more array-like sequences. Arrays that already have one or more + dimensions are preserved. + + Returns + ------- + out : dpnp.ndarray + An array, or list of arrays, each with ``a.ndim >= 1``. + Copies are made only if necessary. + + See Also + -------- + :obj:`dpnp.atleast_2d` : View inputs as arrays with at least two dimensions. + :obj:`dpnp.atleast_3d` : View inputs as arrays with at least three + dimensions. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array(1.0) + >>> np.atleast_1d(x) + array([1.]) + + >>> y = np.array([3, 4]) + >>> np.atleast_1d(x, y) + [array([1.]), array([3, 4])] + + >>> x = np.arange(9.0).reshape(3,3) + >>> np.atleast_1d(x) + array([[0., 1., 2.], + [3., 4., 5.], + [6., 7., 8.]]) + >>> np.atleast_1d(x) is x + True + + """ + + res = [] + dpnp.check_supported_arrays_type(*arys) + for ary in arys: + if ary.ndim == 0: + result = ary.reshape(1) + else: + result = ary + if isinstance(result, dpt.usm_ndarray): + result = dpnp_array._create_from_usm_ndarray(result) + res.append(result) + if len(res) == 1: + return res[0] + return res
+ + + +
+[docs] +def atleast_2d(*arys): + """ + View inputs as arrays with at least two dimensions. + + For full documentation refer to :obj:`numpy.atleast_2d`. + + Parameters + ---------- + arys : {dpnp.ndarray, usm_ndarray} + One or more array-like sequences. Arrays that already have two or more + dimensions are preserved. + + Returns + ------- + out : dpnp.ndarray + An array, or list of arrays, each with ``a.ndim >= 2``. + Copies are avoided where possible, and views with two or more + dimensions are returned. + + See Also + -------- + :obj:`dpnp.atleast_1d` : Convert inputs to arrays with at least one + dimension. + :obj:`dpnp.atleast_3d` : View inputs as arrays with at least three + dimensions. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array(3.0) + >>> np.atleast_2d(x) + array([[3.]]) + + >>> x = np.arange(3.0) + >>> np.atleast_2d(x) + array([[0., 1., 2.]]) + + """ + + res = [] + dpnp.check_supported_arrays_type(*arys) + for ary in arys: + if ary.ndim == 0: + result = ary.reshape(1, 1) + elif ary.ndim == 1: + result = ary[dpnp.newaxis, :] + else: + result = ary + if isinstance(result, dpt.usm_ndarray): + result = dpnp_array._create_from_usm_ndarray(result) + res.append(result) + if len(res) == 1: + return res[0] + return res
+ + + +
+[docs] +def atleast_3d(*arys): + """ + View inputs as arrays with at least three dimensions. + + For full documentation refer to :obj:`numpy.atleast_3d`. + + Parameters + ---------- + arys : {dpnp.ndarray, usm_ndarray} + One or more array-like sequences. Arrays that already have three or more + dimensions are preserved. + + Returns + ------- + out : dpnp.ndarray + An array, or list of arrays, each with ``a.ndim >= 3``. Copies are + avoided where possible, and views with three or more dimensions are + returned. + + See Also + -------- + :obj:`dpnp.atleast_1d` : Convert inputs to arrays with at least one + dimension. + :obj:`dpnp.atleast_2d` : View inputs as arrays with at least three + dimensions. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array(3.0) + >>> np.atleast_3d(x) + array([[[3.]]]) + + >>> x = np.arange(3.0) + >>> np.atleast_3d(x).shape + (1, 3, 1) + + >>> x = np.arange(12.0).reshape(4, 3) + >>> np.atleast_3d(x).shape + (4, 3, 1) + + """ + + res = [] + dpnp.check_supported_arrays_type(*arys) + for ary in arys: + if ary.ndim == 0: + result = ary.reshape(1, 1, 1) + elif ary.ndim == 1: + result = ary[dpnp.newaxis, :, dpnp.newaxis] + elif ary.ndim == 2: + result = ary[:, :, dpnp.newaxis] + else: + result = ary + if isinstance(result, dpt.usm_ndarray): + result = dpnp_array._create_from_usm_ndarray(result) + res.append(result) + if len(res) == 1: + return res[0] + return res
+ + + +
+[docs] +def broadcast_arrays(*args, subok=False): + """ + Broadcast any number of arrays against each other. + + For full documentation refer to :obj:`numpy.broadcast_arrays`. + + Parameters + ---------- + args : {dpnp.ndarray, usm_ndarray} + A list of arrays to broadcast. + + Returns + ------- + out : list of dpnp.ndarray + A list of arrays which are views on the original arrays from `args`. + + Limitations + ----------- + Parameter `subok` is supported with default value. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.broadcast_to` : Broadcast an array to a new shape. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[1, 2, 3]]) + >>> y = np.array([[4], [5]]) + >>> np.broadcast_arrays(x, y) + [array([[1, 2, 3], + [1, 2, 3]]), array([[4, 4, 4], + [5, 5, 5]])] + + """ + + if subok is not False: + raise NotImplementedError(f"subok={subok} is currently not supported") + + if len(args) == 0: + return [] + + usm_arrays = dpt.broadcast_arrays(*[dpnp.get_usm_ndarray(a) for a in args]) + return [dpnp_array._create_from_usm_ndarray(a) for a in usm_arrays]
+ + + +# pylint: disable=redefined-outer-name +
+[docs] +def broadcast_to(array, /, shape, subok=False): + """ + Broadcast an array to a new shape. + + For full documentation refer to :obj:`numpy.broadcast_to`. + + Parameters + ---------- + array : {dpnp.ndarray, usm_ndarray} + The array to broadcast. + shape : tuple or int + The shape of the desired array. A single integer ``i`` is interpreted + as ``(i,)``. + + Returns + ------- + out : dpnp.ndarray + An array having a specified shape. + Must have the same data type as `array`. + + Limitations + ----------- + Parameter `subok` is supported with default value. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.broadcast_arrays` : Broadcast any number of arrays against + each other. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([1, 2, 3]) + >>> np.broadcast_to(x, (3, 3)) + array([[1, 2, 3], + [1, 2, 3], + [1, 2, 3]]) + + """ + + if subok is not False: + raise NotImplementedError(f"subok={subok} is currently not supported") + + usm_array = dpnp.get_usm_ndarray(array) + new_array = dpt.broadcast_to(usm_array, shape) + return dpnp_array._create_from_usm_ndarray(new_array)
+ + + +
+[docs] +def can_cast(from_, to, casting="safe"): + """ + Returns ``True`` if cast between data types can occur according + to the casting rule. + + For full documentation refer to :obj:`numpy.can_cast`. + + Parameters + ---------- + from_ : {dpnp.ndarray, usm_ndarray, dtype, dtype specifier} + Source data type. + to : dtype + Target data type. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur. + + Returns + ------- + out: bool + ``True`` if cast can occur according to the casting rule, + ``False`` otherwise. + + See Also + -------- + :obj:`dpnp.result_type` : Returns the type that results from applying + the NumPy type promotion rules to the arguments. + + Examples + -------- + Basic examples + + >>> import dpnp as np + >>> np.can_cast(np.int32, np.int64) + True + >>> np.can_cast(np.float64, complex) + True + >>> np.can_cast(complex, float) + False + + >>> np.can_cast('i8', 'f8') + True + >>> np.can_cast('i8', 'f4') + False + + Array scalar checks the value, array does not + + >>> np.can_cast(np.array(1000.0), np.float32) + True + >>> np.can_cast(np.array([1000.0]), np.float32) + False + + Using the casting rules + + >>> np.can_cast('i8', 'i8', 'no') + True + >>> np.can_cast('<i8', '>i8', 'no') + False + + >>> np.can_cast('<i8', '>i8', 'equiv') + True + >>> np.can_cast('<i4', '>i8', 'equiv') + False + + >>> np.can_cast('<i4', '>i8', 'safe') + True + >>> np.can_cast('<i8', '>i4', 'safe') + False + + >>> np.can_cast('<i8', '>i4', 'same_kind') + True + >>> np.can_cast('<i8', '>u4', 'same_kind') + False + + >>> np.can_cast('<i8', '>u4', 'unsafe') + True + + """ + + if dpnp.is_supported_array_type(to): + raise TypeError("Cannot construct a dtype from an array") + + dtype_from = ( + from_.dtype + if dpnp.is_supported_array_type(from_) + else dpnp.dtype(from_) + ) + return dpt.can_cast(dtype_from, to, casting=casting)
+ + + +
+[docs] +def column_stack(tup): + """ + Stacks 1-D and 2-D arrays as columns into a 2-D array. + + Take a sequence of 1-D arrays and stack them as columns to make a single + 2-D array. 2-D arrays are stacked as-is, just like with :obj:`dpnp.hstack`. + 1-D arrays are turned into 2-D columns first. + + For full documentation refer to :obj:`numpy.column_stack`. + + Parameters + ---------- + tup : {dpnp.ndarray, usm_ndarray} + A sequence of 1-D or 2-D arrays to stack. All of them must have + the same first dimension. + + Returns + ------- + out : dpnp.ndarray + The array formed by stacking the given arrays. + + See Also + -------- + :obj:`dpnp.stack` : Join a sequence of arrays along a new axis. + :obj:`dpnp.dstack` : Stack arrays in sequence depth wise (along third axis). + :obj:`dpnp.hstack` : Stack arrays in sequence horizontally (column wise). + :obj:`dpnp.vstack` : Stack arrays in sequence vertically (row wise). + :obj:`dpnp.concatenate` : Join a sequence of arrays along an existing axis. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array((1, 2, 3)) + >>> b = np.array((2, 3, 4)) + >>> np.column_stack((a, b)) + array([[1, 2], + [2, 3], + [3, 4]]) + + """ + + _check_stack_arrays(tup) + + arrays = [] + for v in tup: + dpnp.check_supported_arrays_type(v) + + if v.ndim == 1: + v = v[:, dpnp.newaxis] + elif v.ndim != 2: + raise ValueError( + "Only 1 or 2 dimensional arrays can be column stacked" + ) + + arrays.append(v) + return dpnp.concatenate(arrays, axis=1)
+ + + +
+[docs] +def concatenate( + arrays, /, *, axis=0, out=None, dtype=None, casting="same_kind" +): + """ + Join a sequence of arrays along an existing axis. + + Note that :obj:`dpnp.concat` is an alias of :obj:`dpnp.concatenate`. + + For full documentation refer to :obj:`numpy.concatenate`. + + Parameters + ---------- + arrays : {Sequence of dpnp.ndarray or usm_ndarray} + The arrays must have the same shape, except in the dimension + corresponding to axis (the first, by default). + axis : int, optional + The axis along which the arrays will be joined. If axis is ``None``, + arrays are flattened before use. + Default: ``0``. + out : dpnp.ndarray, optional + If provided, the destination to place the result. The shape must be + correct, matching that of what concatenate would have returned + if no out argument were specified. + dtype : str or dtype + If provided, the destination array will have this dtype. Cannot be + provided together with `out`. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur. Defaults to 'same_kind'. + + Returns + ------- + out : dpnp.ndarray + The concatenated array. + + See Also + -------- + :obj:`dpnp.array_split` : Split an array into multiple sub-arrays of equal + or near-equal size. + :obj:`dpnp.split` : Split array into a list of multiple sub-arrays of equal + size. + :obj:`dpnp.hsplit` : Split array into multiple sub-arrays horizontally + (column wise). + :obj:`dpnp.vsplit` : Split array into multiple sub-arrays vertically + (row wise). + :obj:`dpnp.dsplit` : Split array into multiple sub-arrays along + the 3rd axis (depth). + :obj:`dpnp.stack` : Stack a sequence of arrays along a new axis. + :obj:`dpnp.block` : Assemble arrays from blocks. + :obj:`dpnp.hstack` : Stack arrays in sequence horizontally (column wise). + :obj:`dpnp.vstack` : Stack arrays in sequence vertically (row wise). + :obj:`dpnp.dstack` : Stack arrays in sequence depth wise + (along third dimension). + :obj:`dpnp.column_stack` : Stack 1-D arrays as columns into a 2-D array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, 4]]) + >>> b = np.array([[5, 6]]) + >>> np.concatenate((a, b), axis=0) + array([[1, 2], + [3, 4], + [5, 6]]) + >>> np.concatenate((a, b.T), axis=1) + array([[1, 2, 5], + [3, 4, 6]]) + >>> np.concatenate((a, b), axis=None) + array([1, 2, 3, 4, 5, 6]) + + """ + + if dtype is not None and out is not None: + raise TypeError( + "concatenate() only takes `out` or `dtype` as an argument, " + "but both were provided." + ) + + usm_arrays = [dpnp.get_usm_ndarray(x) for x in arrays] + usm_res = dpt.concat(usm_arrays, axis=axis) + + res = dpnp_array._create_from_usm_ndarray(usm_res) + if dtype is not None: + res = res.astype(dtype, casting=casting, copy=False) + elif out is not None: + dpnp.copyto(out, res, casting=casting) + return out + return res
+ + + +concat = concatenate # concat is an alias of concatenate + + +
+[docs] +def copyto(dst, src, casting="same_kind", where=True): + """ + Copies values from one array to another, broadcasting as necessary. + + Raises a ``TypeError`` if the `casting` rule is violated, and if + `where` is provided, it selects which elements to copy. + + For full documentation refer to :obj:`numpy.copyto`. + + Parameters + ---------- + dst : {dpnp.ndarray, usm_ndarray} + The array into which values are copied. + src : array_like + The array from which values are copied. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur when copying. + where : {dpnp.ndarray, usm_ndarray, scalar} of bool, optional + A boolean array or a scalar which is broadcasted to match + the dimensions of `dst`, and selects elements to copy + from `src` to `dst` wherever it contains the value ``True``. + + Examples + -------- + >>> import dpnp as np + >>> A = np.array([4, 5, 6]) + >>> B = [1, 2, 3] + >>> np.copyto(A, B) + >>> A + array([1, 2, 3]) + + >>> A = np.array([[1, 2, 3], [4, 5, 6]]) + >>> B = [[4, 5, 6], [7, 8, 9]] + >>> np.copyto(A, B) + >>> A + array([[4, 5, 6], + [7, 8, 9]]) + + """ + + if not dpnp.is_supported_array_type(dst): + raise TypeError( + "Destination array must be any of supported type, " + f"but got {type(dst)}" + ) + if not dpnp.is_supported_array_type(src): + src = dpnp.array(src, sycl_queue=dst.sycl_queue) + + if not dpnp.can_cast(src.dtype, dst.dtype, casting=casting): + raise TypeError( + f"Cannot cast from {src.dtype} to {dst.dtype} " + f"according to the rule {casting}." + ) + + if where is True: + dst[...] = src + elif where is False: + # nothing to copy + pass + else: + if dpnp.isscalar(where): + where = dpnp.array( + where, dtype=dpnp.bool, sycl_queue=dst.sycl_queue + ) + elif not dpnp.is_supported_array_type(where): + raise TypeError( + "`where` array must be any of supported type, " + f"but got {type(where)}" + ) + elif where.dtype != dpnp.bool: + raise TypeError( + "`where` keyword argument must be of boolean type, " + f"but got {where.dtype}" + ) + + dst_usm, src_usm, mask_usm = dpt.broadcast_arrays( + dpnp.get_usm_ndarray(dst), + dpnp.get_usm_ndarray(src), + dpnp.get_usm_ndarray(where), + ) + dst_usm[mask_usm] = src_usm[mask_usm]
+ + + +
+[docs] +def dsplit(ary, indices_or_sections): + """ + Split array into multiple sub-arrays along the 3rd axis (depth). + + Please refer to the :obj:`dpnp.split` documentation. ``dsplit`` + is equivalent to ``split`` with ``axis=2``, the array is always + split along the third axis provided the array dimension is greater than + or equal to 3. + + For full documentation refer to :obj:`numpy.dsplit`. + + Parameters + ---------- + ary : {dpnp.ndarray, usm_ndarray} + Array to be divided into sub-arrays. + indices_or_sections : {int, sequence of ints} + If `indices_or_sections` is an integer, N, the array will be divided + into N equal arrays along the third axis. If such a split is not + possible, an error is raised. + If `indices_or_sections` is a sequence of sorted integers, the entries + indicate where along the third axis the array is split. + + Returns + ------- + sub-arrays : list of dpnp.ndarray + A list of sub arrays. Each array is a view of the corresponding input + array. + + See Also + -------- + :obj:`dpnp.split` : Split array into multiple sub-arrays of equal size. + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(16.0).reshape(2, 2, 4) + >>> x + array([[[ 0., 1., 2., 3.], + [ 4., 5., 6., 7.]], + [[ 8., 9., 10., 11.], + [12., 13., 14., 15.]]]) + >>> np.dsplit(x, 2) + [array([[[ 0., 1.], + [ 4., 5.]], + [[ 8., 9.], + [12., 13.]]]), + array([[[ 2., 3.], + [ 6., 7.]], + [[10., 11.], + [14., 15.]]])] + >>> np.dsplit(x, np.array([3, 6])) + [array([[[ 0., 1., 2.], + [ 4., 5., 6.]], + [[ 8., 9., 10.], + [12., 13., 14.]]]), + array([[[ 3.], + [ 7.]], + [[11.], + [15.]]]), + array([])] + + """ + + dpnp.check_supported_arrays_type(ary) + if ary.ndim < 3: + raise ValueError("dsplit only works on arrays of 3 or more dimensions") + return split(ary, indices_or_sections, 2)
+ + + +
+[docs] +def dstack(tup): + """ + Stack arrays in sequence depth wise (along third axis). + + This is equivalent to concatenation along the third axis after 2-D arrays + of shape `(M, N)` have been reshaped to `(M, N, 1)` and 1-D arrays of shape + `(N,)` have been reshaped to `(1, N, 1)`. Rebuilds arrays divided by + :obj:`dpnp.dsplit`. + + For full documentation refer to :obj:`numpy.dstack`. + + Parameters + ---------- + tup : {dpnp.ndarray, usm_ndarray} + One or more array-like sequences. The arrays must have the same shape + along all but the third axis. 1-D or 2-D arrays must have the same + shape. + + Returns + ------- + out : dpnp.ndarray + The array formed by stacking the given arrays, will be at least 3-D. + + See Also + -------- + :obj:`dpnp.concatenate` : Join a sequence of arrays along an existing axis. + :obj:`dpnp.vstack` : Stack arrays in sequence vertically (row wise). + :obj:`dpnp.hstack` : Stack arrays in sequence horizontally (column wise). + :obj:`dpnp.column_stack` : Stack 1-D arrays as columns into a 2-D array. + :obj:`dpnp.stack` : Join a sequence of arrays along a new axis. + :obj:`dpnp.block` : Assemble an ndarray from nested lists of blocks. + :obj:`dpnp.dsplit` : Split array along third axis. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array((1, 2, 3)) + >>> b = np.array((2, 3, 4)) + >>> np.dstack((a, b)) + array([[[1, 2], + [2, 3], + [3, 4]]]) + + >>> a = np.array([[1], [2], [3]]) + >>> b = np.array([[2], [3], [4]]) + >>> np.dstack((a, b)) + array([[[1, 2]], + [[2, 3]], + [[3, 4]]]) + + """ + + _check_stack_arrays(tup) + + arrs = atleast_3d(*tup) + if not isinstance(arrs, list): + arrs = [arrs] + return dpnp.concatenate(arrs, axis=2)
+ + + +
+[docs] +def expand_dims(a, axis): + """ + Expand the shape of an array. + + Insert a new axis that will appear at the `axis` position in the expanded + array shape. + + For full documentation refer to :obj:`numpy.expand_dims`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : int or tuple of ints + Position in the expanded axes where the new axis (or axes) is placed. + + Returns + ------- + out : dpnp.ndarray + An array with the number of dimensions increased. + A view is returned whenever possible. + + Notes + ----- + If `a` has rank (i.e, number of dimensions) `N`, a valid `axis` must reside + in the closed-interval `[-N-1, N]`. + If provided a negative `axis`, the `axis` position at which to insert a + singleton dimension is computed as `N + axis + 1`. + Hence, if provided `-1`, the resolved axis position is `N` (i.e., + a singleton dimension must be appended to the input array `a`). + If provided `-N-1`, the resolved axis position is `0` (i.e., a + singleton dimension is added to the input array `a`). + + See Also + -------- + :obj:`dpnp.squeeze` : The inverse operation, removing singleton dimensions + :obj:`dpnp.reshape` : Insert, remove, and combine dimensions, and resize + existing ones + :obj:`dpnp.atleast_1d` : Convert inputs to arrays with at least one + dimension. + :obj:`dpnp.atleast_2d` : View inputs as arrays with at least two dimensions. + :obj:`dpnp.atleast_3d` : View inputs as arrays with at least three + dimensions. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([1, 2]) + >>> x.shape + (2,) + + The following is equivalent to ``x[np.newaxis, :]`` or ``x[np.newaxis]``: + + >>> y = np.expand_dims(x, axis=0) + >>> y + array([[1, 2]]) + >>> y.shape + (1, 2) + + The following is equivalent to ``x[:, np.newaxis]``: + + >>> y = np.expand_dims(x, axis=1) + >>> y + array([[1], + [2]]) + >>> y.shape + (2, 1) + + ``axis`` may also be a tuple: + + >>> y = np.expand_dims(x, axis=(0, 1)) + >>> y + array([[[1, 2]]]) + + >>> y = np.expand_dims(x, axis=(2, 0)) + >>> y + array([[[1], + [2]]]) + + Note that some examples may use ``None`` instead of ``np.newaxis``. These + are the same objects: + + >>> np.newaxis is None + True + + """ + + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.expand_dims(usm_a, axis=axis) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +
+[docs] +def flip(m, axis=None): + """ + Reverse the order of elements in an array along the given axis. + + The shape of the array is preserved, but the elements are reordered. + + For full documentation refer to :obj:`numpy.flip`. + + Parameters + ---------- + m : {dpnp.ndarray, usm_ndarray} + Input array. + axis : None or int or tuple of ints, optional + Axis or axes along which to flip over. The default, + ``axis=None``, will flip over all of the axes of the input array. + If `axis` is negative it counts from the last to the first axis. + If `axis` is a tuple of integers, flipping is performed on all of + the axes specified in the tuple. + + Returns + ------- + out : dpnp.ndarray + A view of `m` with the entries of axis reversed. + + See Also + -------- + :obj:`dpnp.flipud` : Flip an array vertically (axis=0). + :obj:`dpnp.fliplr` : Flip an array horizontally (axis=1). + + Examples + -------- + >>> import dpnp as np + >>> A = np.arange(8).reshape((2, 2, 2)) + >>> A + array([[[0, 1], + [2, 3]], + [[4, 5], + [6, 7]]]) + >>> np.flip(A, 0) + array([[[4, 5], + [6, 7]], + [[0, 1], + [2, 3]]]) + >>> np.flip(A, 1) + array([[[2, 3], + [0, 1]], + [[6, 7], + [4, 5]]]) + >>> np.flip(A) + array([[[7, 6], + [5, 4]], + [[3, 2], + [1, 0]]]) + >>> np.flip(A, (0, 2)) + array([[[5, 4], + [7, 6]], + [[1, 0], + [3, 2]]]) + >>> A = np.random.randn(3, 4, 5) + >>> np.all(np.flip(A, 2) == A[:, :, ::-1, ...]) + array(True) + + """ + + m_usm = dpnp.get_usm_ndarray(m) + return dpnp_array._create_from_usm_ndarray(dpt.flip(m_usm, axis=axis))
+ + + +
+[docs] +def fliplr(m): + """ + Reverse the order of elements along axis 1 (left/right). + + For a 2-D array, this flips the entries in each row in the left/right + direction. Columns are preserved, but appear in a different order than + before. + + For full documentation refer to :obj:`numpy.fliplr`. + + Parameters + ---------- + m : {dpnp.ndarray, usm_ndarray} + Input array, must be at least 2-D. + + Returns + ------- + out : dpnp.ndarray + A view of `m` with the columns reversed. + + See Also + -------- + :obj:`dpnp.flipud` : Flip an array vertically (axis=0). + :obj:`dpnp.flip` : Flip array in one or more dimensions. + :obj:`dpnp.rot90` : Rotate array counterclockwise. + + Examples + -------- + >>> import dpnp as np + >>> A = np.diag(np.array([1., 2., 3.])) + >>> A + array([[1., 0., 0.], + [0., 2., 0.], + [0., 0., 3.]]) + >>> np.fliplr(A) + array([[0., 0., 1.], + [0., 2., 0.], + [3., 0., 0.]]) + + >>> A = np.random.randn(2, 3, 5) + >>> np.all(np.fliplr(A) == A[:, ::-1, ...]) + array(True) + + """ + + dpnp.check_supported_arrays_type(m) + + if m.ndim < 2: + raise ValueError(f"Input must be >= 2-d, but got {m.ndim}") + return m[:, ::-1]
+ + + +
+[docs] +def flipud(m): + """ + Reverse the order of elements along axis 0 (up/down). + + For a 2-D array, this flips the entries in each column in the up/down + direction. Rows are preserved, but appear in a different order than before. + + For full documentation refer to :obj:`numpy.flipud`. + + Parameters + ---------- + m : {dpnp.ndarray, usm_ndarray} + Input array. + + Returns + ------- + out : dpnp.ndarray + A view of `m` with the rows reversed. + + See Also + -------- + :obj:`dpnp.fliplr` : Flip array in the left/right direction. + :obj:`dpnp.flip` : Flip array in one or more dimensions. + :obj:`dpnp.rot90` : Rotate array counterclockwise. + + Examples + -------- + >>> import dpnp as np + >>> A = np.diag(np.array([1., 2., 3.])) + >>> A + array([[1., 0., 0.], + [0., 2., 0.], + [0., 0., 3.]]) + >>> np.flipud(A) + array([[0., 0., 3.], + [0., 2., 0.], + [1., 0., 0.]]) + + >>> A = np.random.randn(2, 3, 5) + >>> np.all(np.flipud(A) == A[::-1, ...]) + array(True) + + >>> np.flipud(np.array([1, 2])) + array([2, 1]) + + """ + + dpnp.check_supported_arrays_type(m) + + if m.ndim < 1: + raise ValueError(f"Input must be >= 1-d, but got {m.ndim}") + return m[::-1, ...]
+ + + +
+[docs] +def hsplit(ary, indices_or_sections): + """ + Split an array into multiple sub-arrays horizontally (column-wise). + + Please refer to the :obj:`dpnp.split` documentation. ``hsplit`` + is equivalent to ``dpnp.split`` with ``axis=1``, the array is always + split along the second axis except for 1-D arrays, where it is split at + ``axis=0``. + + For full documentation refer to :obj:`numpy.hsplit`. + + Parameters + ---------- + ary : {dpnp.ndarray, usm_ndarray} + Array to be divided into sub-arrays. + indices_or_sections : {int, sequence of ints} + If `indices_or_sections` is an integer, N, the array will be divided + into N equal arrays along the second axis except for 1-D arrays, where + it is split at the first axis. If such a split is not possible, + an error is raised. + If `indices_or_sections` is a sequence of sorted integers, the entries + indicate where along the second axis the array is split. For 1-D arrays, + the entries indicate where along the first axis the array is split. + + Returns + ------- + sub-arrays : list of dpnp.ndarray + A list of sub arrays. Each array is a view of the corresponding input + array. + + See Also + -------- + :obj:`dpnp.split` : Split array into multiple sub-arrays of equal size. + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(16.0).reshape(4, 4) + >>> x + array([[ 0., 1., 2., 3.], + [ 4., 5., 6., 7.], + [ 8., 9., 10., 11.], + [12., 13., 14., 15.]]) + >>> np.hsplit(x, 2) + [array([[ 0., 1.], + [ 4., 5.], + [ 8., 9.], + [12., 13.]]), + array([[ 2., 3.], + [ 6., 7.], + [10., 11.], + [14., 15.]])] + >>> np.hsplit(x, np.array([3, 6])) + [array([[ 0., 1., 2.], + [ 4., 5., 6.], + [ 8., 9., 10.], + [12., 13., 14.]]), + array([[ 3.], + [ 7.], + [11.], + [15.]]), + array([])] + + With a higher dimensional array the split is still along the second axis. + + >>> x = np.arange(8.0).reshape(2, 2, 2) + >>> x + array([[[0., 1.], + [2., 3.]], + [[4., 5.], + [6., 7.]]]) + >>> np.hsplit(x, 2) + [array([[[0., 1.]], + [[4., 5.]]]), + array([[[2., 3.]], + [[6., 7.]]])] + + With a 1-D array, the split is along axis 0. + + >>> x = np.array([0, 1, 2, 3, 4, 5]) + >>> np.hsplit(x, 2) + [array([0, 1, 2]), array([3, 4, 5])] + + """ + + dpnp.check_supported_arrays_type(ary) + if ary.ndim == 0: + raise ValueError("hsplit only works on arrays of 1 or more dimensions") + if ary.ndim > 1: + return split(ary, indices_or_sections, 1) + return split(ary, indices_or_sections, 0)
+ + + +
+[docs] +def hstack(tup, *, dtype=None, casting="same_kind"): + """ + Stack arrays in sequence horizontally (column wise). + + For full documentation refer to :obj:`numpy.hstack`. + + Parameters + ---------- + tup : {dpnp.ndarray, usm_ndarray} + The arrays must have the same shape along all but the second axis, + except 1-D arrays which can be any length. + dtype : str or dtype + If provided, the destination array will have this dtype. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur. Defaults to 'same_kind'. + + Returns + ------- + out : dpnp.ndarray + The stacked array which has one more dimension than the input arrays. + + See Also + -------- + :obj:`dpnp.concatenate` : Join a sequence of arrays along an existing axis. + :obj:`dpnp.stack` : Join a sequence of arrays along a new axis. + :obj:`dpnp.vstack` : Stack arrays in sequence vertically (row wise). + :obj:`dpnp.dstack` : Stack arrays in sequence depth wise + (along third dimension). + :obj:`dpnp.column_stack` : Stack 1-D arrays as columns into a 2-D array. + :obj:`dpnp.block` : Assemble an ndarray from nested lists of blocks. + :obj:`dpnp.split` : Split array into a list of multiple sub-arrays of equal + size. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array((1, 2, 3)) + >>> b = np.array((4, 5, 6)) + >>> np.hstack((a, b)) + array([1, 2, 3, 4, 5, 6]) + + >>> a = np.array([[1], [2], [3]]) + >>> b = np.array([[4], [5], [6]]) + >>> np.hstack((a, b)) + array([[1, 4], + [2, 5], + [3, 6]]) + + """ + + _check_stack_arrays(tup) + + arrs = dpnp.atleast_1d(*tup) + if not isinstance(arrs, list): + arrs = [arrs] + + # As a special case, dimension 0 of 1-dimensional arrays is "horizontal" + if arrs and arrs[0].ndim == 1: + return dpnp.concatenate(arrs, axis=0, dtype=dtype, casting=casting) + return dpnp.concatenate(arrs, axis=1, dtype=dtype, casting=casting)
+ + + +
+[docs] +def moveaxis(a, source, destination): + """ + Move axes of an array to new positions. Other axes remain in their original + order. + + For full documentation refer to :obj:`numpy.moveaxis`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The array whose axes should be reordered. + source : int or sequence of int + Original positions of the axes to move. These must be unique. + destination : int or sequence of int + Destination positions for each of the original axes. These must also be + unique. + + Returns + ------- + out : dpnp.ndarray + Array with moved axes. This array is a view of the input array. + + See Also + -------- + :obj:`dpnp.transpose` : Permute the dimensions of an array. + :obj:`dpnp.swapaxes` : Interchange two axes of an array. + + Examples + -------- + >>> import dpnp as np + >>> x = np.zeros((3, 4, 5)) + >>> np.moveaxis(x, 0, -1).shape + (4, 5, 3) + >>> np.moveaxis(x, -1, 0).shape + (5, 3, 4) + + """ + + usm_array = dpnp.get_usm_ndarray(a) + return dpnp_array._create_from_usm_ndarray( + dpt.moveaxis(usm_array, source, destination) + )
+ + + +
+[docs] +def ndim(a): + """ + Return the number of dimensions of array-like input. + + For full documentation refer to :obj:`numpy.ndim`. + + Parameters + ---------- + a : array_like + Input data. + + Returns + ------- + number_of_dimensions : int + The number of dimensions in `a`. Scalars are zero-dimensional. + + See Also + -------- + :obj:`dpnp.ndarray.ndim` : Equivalent method for `dpnp.ndarray` + or `usm_ndarray` input. + :obj:`dpnp.shape` : Return the shape of an array. + :obj:`dpnp.ndarray.shape` : Return the shape of an array. + + Examples + -------- + >>> import dpnp as np + >>> a = [[1, 2, 3], [4, 5, 6]] + >>> np.ndim(a) + 2 + >>> a = np.asarray(a) + >>> np.ndim(a) + 2 + >>> np.ndim(1) + 0 + + """ + + if dpnp.is_supported_array_type(a): + return a.ndim + return numpy.ndim(a)
+ + + +
+[docs] +def ravel(a, order="C"): + """ + Return a contiguous flattened array. + + For full documentation refer to :obj:`numpy.ravel`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. The elements in `a` are read in the order specified by + order, and packed as a 1-D array. + order : {"C", "F"}, optional + The elements of `a` are read using this index order. ``"C"`` means to + index the elements in row-major, C-style order, with the last axis + index changing fastest, back to the first axis index changing slowest. + ``"F"`` means to index the elements in column-major, Fortran-style + order, with the first index changing fastest, and the last index + changing slowest. By default, ``"C"`` index order is used. + + Returns + ------- + out : dpnp.ndarray + A contiguous 1-D array of the same subtype as `a`, with shape (a.size,). + + See Also + -------- + :obj:`dpnp.reshape` : Change the shape of an array without changing its + data. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[1, 2, 3], [4, 5, 6]]) + >>> np.ravel(x) + array([1, 2, 3, 4, 5, 6]) + + >>> x.reshape(-1) + array([1, 2, 3, 4, 5, 6]) + + >>> np.ravel(x, order='F') + array([1, 4, 2, 5, 3, 6]) + + """ + + return dpnp.reshape(a, -1, order=order)
+ + + +
+[docs] +def repeat(a, repeats, axis=None): + """ + Repeat elements of an array. + + For full documentation refer to :obj:`numpy.repeat`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. + repeats : {int, tuple, list, range, dpnp.ndarray, usm_ndarray} + The number of repetitions for each element. `repeats` is broadcasted to + fit the shape of the given axis. + If `repeats` is an array, it must have an integer data type. + Otherwise, `repeats` must be a Python integer or sequence of Python + integers (i.e., a tuple, list, or range). + axis : {None, int}, optional + The axis along which to repeat values. By default, use the flattened + input array, and return a flat output array. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Output array which has the same shape as `a`, except along the given + axis. + + See Also + -------- + :obj:`dpnp.tile` : Tile an array. + :obj:`dpnp.unique` : Find the unique elements of an array. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([3]) + >>> np.repeat(x, 4) + array([3, 3, 3, 3]) + + >>> x = np.array([[1, 2], [3, 4]]) + >>> np.repeat(x, 2) + array([1, 1, 2, 2, 3, 3, 4, 4]) + >>> np.repeat(x, 3, axis=1) + array([[1, 1, 1, 2, 2, 2], + [3, 3, 3, 4, 4, 4]]) + >>> np.repeat(x, [1, 2], axis=0) + array([[1, 2], + [3, 4], + [3, 4]]) + + """ + + dpnp.check_supported_arrays_type(a) + if not isinstance(repeats, (int, tuple, list, range)): + repeats = dpnp.get_usm_ndarray(repeats) + + if axis is None and a.ndim > 1: + a = dpnp.ravel(a) + + usm_arr = dpnp.get_usm_ndarray(a) + usm_res = dpt.repeat(usm_arr, repeats, axis=axis) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +
+[docs] +def require(a, dtype=None, requirements=None, *, like=None): + """ + Return a :class:`dpnp.ndarray` of the provided type that satisfies + requirements. + + This function is useful to be sure that an array with the correct flags + is returned for passing to compiled code (perhaps through ctypes). + + For full documentation refer to :obj:`numpy.require`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The input array to be converted to a type-and-requirement-satisfying + array. + dtype : {None, data-type}, optional + The required data-type. If ``None`` preserve the current dtype. + requirements : {None, str, sequence of str}, optional + The requirements list can be any of the following: + + * 'F_CONTIGUOUS' ('F') - ensure a Fortran-contiguous array + * 'C_CONTIGUOUS' ('C') - ensure a C-contiguous array + * 'WRITABLE' ('W') - ensure a writable array + + Returns + ------- + out : dpnp.ndarray + Array with specified requirements and type if given. + + Limitations + ----------- + Parameter `like` is supported only with default value ``None``. + Otherwise, the function raises `NotImplementedError` exception. + + See Also + -------- + :obj:`dpnp.asarray` : Convert input to an ndarray. + :obj:`dpnp.asanyarray` : Convert to an ndarray, but pass through + ndarray subclasses. + :obj:`dpnp.ascontiguousarray` : Convert input to a contiguous array. + :obj:`dpnp.asfortranarray` : Convert input to an ndarray with + column-major memory order. + :obj:`dpnp.ndarray.flags` : Information about the memory layout + of the array. + + Notes + ----- + The returned array will be guaranteed to have the listed requirements + by making a copy if needed. + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(6).reshape(2, 3) + >>> x.flags + C_CONTIGUOUS : True + F_CONTIGUOUS : False + WRITEABLE : True + + >>> y = np.require(x, dtype=np.float32, requirements=['W', 'F']) + >>> y.flags + C_CONTIGUOUS : False + F_CONTIGUOUS : True + WRITEABLE : True + + """ + + dpnp.check_limitations(like=like) + dpnp.check_supported_arrays_type(a) + + possible_flags = { + "C": "C", + "C_CONTIGUOUS": "C", + "F": "F", + "F_CONTIGUOUS": "F", + "W": "W", + "WRITEABLE": "W", + } + + if not requirements: + return dpnp.asanyarray(a, dtype=dtype) + + try: + requirements = {possible_flags[x.upper()] for x in requirements} + except KeyError as exc: + incorrect_flag = (set(requirements) - set(possible_flags.keys())).pop() + raise ValueError( + f"Incorrect flag {incorrect_flag} in requirements" + ) from exc + + order = "A" + if requirements.issuperset({"C", "F"}): + raise ValueError("Cannot specify both 'C' and 'F' order") + if "F" in requirements: + order = "F" + requirements.remove("F") + elif "C" in requirements: + order = "C" + requirements.remove("C") + + arr = dpnp.array(a, dtype=dtype, order=order, copy=None) + if not arr.flags["W"]: + return arr.copy(order) + + return arr
+ + + +
+[docs] +def reshape(a, /, newshape, order="C", copy=None): + """ + Gives a new shape to an array without changing its data. + + For full documentation refer to :obj:`numpy.reshape`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Array to be reshaped. + newshape : int or tuple of ints + The new shape should be compatible with the original shape. If + an integer, then the result will be a 1-D array of that length. + One shape dimension can be -1. In this case, the value is + inferred from the length of the array and remaining dimensions. + order : {"C", "F"}, optional + Read the elements of `a` using this index order, and place the + elements into the reshaped array using this index order. ``"C"`` + means to read / write the elements using C-like index order, + with the last axis index changing fastest, back to the first + axis index changing slowest. ``"F"`` means to read / write the + elements using Fortran-like index order, with the first index + changing fastest, and the last index changing slowest. Note that + the ``"C"`` and ``"F"`` options take no account of the memory layout of + the underlying array, and only refer to the order of indexing. + copy : {None, bool}, optional + Boolean indicating whether or not to copy the input array. + If ``True``, the result array will always be a copy of input `a`. + If ``False``, the result array can never be a copy + and a ValueError exception will be raised in case the copy is necessary. + If ``None``, the result array will reuse existing memory buffer of `a` + if possible and copy otherwise. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + This will be a new view object if possible; otherwise, it will + be a copy. Note there is no guarantee of the *memory layout* (C- or + Fortran- contiguous) of the returned array. + + Limitations + ----------- + Parameter `order` is supported only with values ``"C"`` and ``"F"``. + + See Also + -------- + :obj:`dpnp.ndarray.reshape` : Equivalent method. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2, 3], [4, 5, 6]]) + >>> np.reshape(a, 6) + array([1, 2, 3, 4, 5, 6]) + >>> np.reshape(a, 6, order='F') + array([1, 4, 2, 5, 3, 6]) + + >>> np.reshape(a, (3, -1)) # the unspecified value is inferred to be 2 + array([[1, 2], + [3, 4], + [5, 6]]) + + """ + + if newshape is None: + newshape = a.shape + + if order is None: + order = "C" + elif order not in "cfCF": + raise ValueError(f"order must be one of 'C' or 'F' (got {order})") + + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.reshape(usm_a, shape=newshape, order=order, copy=copy) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +
+[docs] +def resize(a, new_shape): + """ + Return a new array with the specified shape. + + If the new array is larger than the original array, then the new array is + filled with repeated copies of `a`. Note that this behavior is different + from ``a.resize(new_shape)`` which fills with zeros instead of repeated + copies of `a`. + + For full documentation refer to :obj:`numpy.resize`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Array to be resized. + new_shape : {int, tuple or list of ints} + Shape of resized array. + + Returns + ------- + out : dpnp.ndarray + The new array is formed from the data in the old array, repeated + if necessary to fill out the required number of elements. The + data are repeated iterating over the array in C-order. + + See Also + -------- + :obj:`dpnp.ndarray.resize` : Resize an array in-place. + :obj:`dpnp.reshape` : Reshape an array without changing the total size. + :obj:`dpnp.pad` : Enlarge and pad an array. + :obj:`dpnp.repeat` : Repeat elements of an array. + + Notes + ----- + When the total size of the array does not change :obj:`dpnp.reshape` should + be used. In most other cases either indexing (to reduce the size) or + padding (to increase the size) may be a more appropriate solution. + + Warning: This functionality does **not** consider axes separately, + i.e. it does not apply interpolation/extrapolation. + It fills the return array with the required number of elements, iterating + over `a` in C-order, disregarding axes (and cycling back from the start if + the new shape is larger). This functionality is therefore not suitable to + resize images, or data where each axis represents a separate and distinct + entity. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[0, 1], [2, 3]]) + >>> np.resize(a, (2, 3)) + array([[0, 1, 2], + [3, 0, 1]]) + >>> np.resize(a, (1, 4)) + array([[0, 1, 2, 3]]) + >>> np.resize(a, (2, 4)) + array([[0, 1, 2, 3], + [0, 1, 2, 3]]) + + """ + + dpnp.check_supported_arrays_type(a) + if a.ndim == 0: + return dpnp.full_like(a, a, shape=new_shape) + + if isinstance(new_shape, (int, numpy.integer)): + new_shape = (new_shape,) + + new_size = 1 + for dim_length in new_shape: + if dim_length < 0: + raise ValueError("all elements of `new_shape` must be non-negative") + new_size *= dim_length + + a_size = a.size + if a_size == 0 or new_size == 0: + # First case must zero fill. The second would have repeats == 0. + return dpnp.zeros_like(a, shape=new_shape) + + repeats = -(-new_size // a_size) # ceil division + a = dpnp.concatenate((dpnp.ravel(a),) * repeats)[:new_size] + + return a.reshape(new_shape)
+ + + +
+[docs] +def result_type(*arrays_and_dtypes): + """ + result_type(*arrays_and_dtypes) + + Returns the type that results from applying the NumPy + type promotion rules to the arguments. + + For full documentation refer to :obj:`numpy.result_type`. + + Parameters + ---------- + arrays_and_dtypes : list of {dpnp.ndarray, usm_ndarray, dtype} + An arbitrary length sequence of arrays or dtypes. + + Returns + ------- + out : dtype + The result type. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(3, dtype=np.int64) + >>> b = np.arange(7, dtype=np.int32) + >>> np.result_type(a, b) + dtype('int64') + + >>> np.result_type(np.int64, np.complex128) + dtype('complex128') + + >>> np.result_type(np.ones(10, dtype=np.float32), np.float64) + dtype('float64') + + """ + + usm_arrays_and_dtypes = [ + ( + dpnp.get_usm_ndarray(X) + if isinstance(X, (dpnp_array, dpt.usm_ndarray)) + else X + ) + for X in arrays_and_dtypes + ] + return dpt.result_type(*usm_arrays_and_dtypes)
+ + + +
+[docs] +def roll(x, shift, axis=None): + """ + Roll the elements of an array by a number of positions along a given axis. + + Array elements that roll beyond the last position are re-introduced + at the first position. Array elements that roll beyond the first position + are re-introduced at the last position. + + For full documentation refer to :obj:`numpy.roll`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + shift : {int, tuple of ints} + The number of places by which elements are shifted. If a tuple, then + `axis` must be a tuple of the same size, and each of the given axes + is shifted by the corresponding number. If an integer while `axis` is + a tuple of integers, then the same value is used for all given axes. + axis : {None, int, tuple of ints}, optional + Axis or axes along which elements are shifted. By default, the + array is flattened before shifting, after which the original + shape is restored. + + Returns + ------- + out : dpnp.ndarray + An array with the same data type as `x` + and whose elements, relative to `x`, are shifted. + + See Also + -------- + :obj:`dpnp.moveaxis` : Move array axes to new positions. + :obj:`dpnp.rollaxis` : Roll the specified axis backwards + until it lies in a given position. + + Examples + -------- + >>> import dpnp as np + >>> x1 = np.arange(10) + >>> np.roll(x1, 2) + array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7]) + + >>> np.roll(x1, -2) + array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1]) + + >>> x2 = np.reshape(x1, (2, 5)) + >>> np.roll(x2, 1, axis=0) + array([[5, 6, 7, 8, 9], + [0, 1, 2, 3, 4]]) + + >>> np.roll(x2, (2, 1), axis=(1, 0)) + array([[8, 9, 5, 6, 7], + [3, 4, 0, 1, 2]]) + + """ + if axis is None: + return roll(x.reshape(-1), shift, 0).reshape(x.shape) + + usm_x = dpnp.get_usm_ndarray(x) + usm_res = dpt.roll(usm_x, shift=shift, axis=axis) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +
+[docs] +def rollaxis(x, axis, start=0): + """ + Roll the specified axis backwards, until it lies in a given position. + + For full documentation refer to :obj:`numpy.rollaxis`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : int + The axis to be rolled. The positions of the other axes do not + change relative to one another. + start : int, optional + When ``start <= axis``, the axis is rolled back until it lies in + this position. When ``start > axis``, the axis is rolled until it + lies before this position. The default, ``0``, results in a "complete" + roll. + + Returns + ------- + out : dpnp.ndarray + An array with the same data type as `x` where the specified axis + has been moved to the requested position. + + See Also + -------- + :obj:`dpnp.moveaxis` : Move array axes to new positions. + :obj:`dpnp.roll` : Roll the elements of an array + by a number of positions along a given axis. + + Examples + -------- + >>> import dpnp as np + >>> a = np.ones((3,4,5,6)) + >>> np.rollaxis(a, 3, 1).shape + (3, 6, 4, 5) + >>> np.rollaxis(a, 2).shape + (5, 3, 4, 6) + >>> np.rollaxis(a, 1, 4).shape + (3, 5, 6, 4) + + """ + + n = x.ndim + axis = normalize_axis_index(axis, n) + if start < 0: + start += n + msg = "'%s' arg requires %d <= %s < %d, but %d was passed in" + if not 0 <= start < n + 1: + raise ValueError(msg % ("start", -n, "start", n + 1, start)) + if axis < start: + start -= 1 + if axis == start: + return x + usm_array = dpnp.get_usm_ndarray(x) + return dpnp.moveaxis(usm_array, source=axis, destination=start)
+ + + +
+[docs] +def rot90(m, k=1, axes=(0, 1)): + """ + Rotate an array by 90 degrees in the plane specified by axes. + + Rotation direction is from the first towards the second axis. + This means for a 2D array with the default `k` and `axes`, the + rotation will be counterclockwise. + + For full documentation refer to :obj:`numpy.rot90`. + + Parameters + ---------- + m : {dpnp.ndarray, usm_ndarray} + Array of two or more dimensions. + k : integer, optional + Number of times the array is rotated by 90 degrees. + Default: ``1``. + axes : (2,) array_like of ints, optional + The array is rotated in the plane defined by the axes. + Axes must be different. + Default: ``(0, 1)``. + + Returns + ------- + out : dpnp.ndarray + A rotated view of `m`. + + See Also + -------- + :obj:`dpnp.flip` : Reverse the order of elements in an array along + the given axis. + :obj:`dpnp.fliplr` : Flip an array horizontally. + :obj:`dpnp.flipud` : Flip an array vertically. + + Notes + ----- + ``rot90(m, k=1, axes=(1,0))`` is the reverse of + ``rot90(m, k=1, axes=(0,1))``. + + ``rot90(m, k=1, axes=(1,0))`` is equivalent to + ``rot90(m, k=-1, axes=(0,1))``. + + Examples + -------- + >>> import dpnp as np + >>> m = np.array([[1, 2], [3, 4]]) + >>> m + array([[1, 2], + [3, 4]]) + >>> np.rot90(m) + array([[2, 4], + [1, 3]]) + >>> np.rot90(m, 2) + array([[4, 3], + [2, 1]]) + >>> m = np.arange(8).reshape((2, 2, 2)) + >>> np.rot90(m, 1, (1, 2)) + array([[[1, 3], + [0, 2]], + [[5, 7], + [4, 6]]]) + + """ + + dpnp.check_supported_arrays_type(m) + k = operator.index(k) + + m_ndim = m.ndim + if m_ndim < 2: + raise ValueError("Input must be at least 2-d.") + + if len(axes) != 2: + raise ValueError("len(axes) must be 2.") + + if axes[0] == axes[1] or abs(axes[0] - axes[1]) == m_ndim: + raise ValueError("Axes must be different.") + + if not (-m_ndim <= axes[0] < m_ndim and -m_ndim <= axes[1] < m_ndim): + raise ValueError( + f"Axes={axes} out of range for array of ndim={m_ndim}." + ) + + k %= 4 + if k == 0: + return m[:] + if k == 2: + return dpnp.flip(dpnp.flip(m, axes[0]), axes[1]) + + axes_list = list(range(0, m_ndim)) + (axes_list[axes[0]], axes_list[axes[1]]) = ( + axes_list[axes[1]], + axes_list[axes[0]], + ) + + if k == 1: + return dpnp.transpose(dpnp.flip(m, axes[1]), axes_list) + + # k == 3 + return dpnp.flip(dpnp.transpose(m, axes_list), axes[1])
+ + + +
+[docs] +def shape(a): + """ + Return the shape of an array. + + For full documentation refer to :obj:`numpy.shape`. + + Parameters + ---------- + a : array_like + Input array. + + Returns + ------- + shape : tuple of integers + The elements of the shape tuple give the lengths of the + corresponding array dimensions. + + See Also + -------- + len : ``len(a)`` is equivalent to ``np.shape(a)[0]`` for N-D arrays with + ``N>=1``. + :obj:`dpnp.ndarray.shape` : Equivalent array method. + + Examples + -------- + >>> import dpnp as np + >>> np.shape(np.eye(3)) + (3, 3) + >>> np.shape([[1, 3]]) + (1, 2) + >>> np.shape([0]) + (1,) + >>> np.shape(0) + () + + """ + + if dpnp.is_supported_array_type(a): + return a.shape + return numpy.shape(a)
+ + + +
+[docs] +def size(a, axis=None): + """ + Return the number of elements along a given axis. + + For full documentation refer to :obj:`numpy.size`. + + Parameters + ---------- + a : array_like + Input data. + axis : {None, int}, optional + Axis along which the elements are counted. + By default, give the total number of elements. + Default: ``None``. + + Returns + ------- + element_count : int + Number of elements along the specified axis. + + See Also + -------- + :obj:`dpnp.ndarray.size` : number of elements in array. + :obj:`dpnp.shape` : Return the shape of an array. + :obj:`dpnp.ndarray.shape` : Return the shape of an array. + + Examples + -------- + >>> import dpnp as np + >>> a = [[1, 2, 3], [4, 5, 6]] + >>> np.size(a) + 6 + >>> np.size(a, 1) + 3 + >>> np.size(a, 0) + 2 + + >>> a = np.asarray(a) + >>> np.size(a) + 6 + >>> np.size(a, 1) + 3 + + """ + + if dpnp.is_supported_array_type(a): + if axis is None: + return a.size + return a.shape[axis] + + return numpy.size(a, axis)
+ + + +
+[docs] +def split(ary, indices_or_sections, axis=0): + """ + Split an array into multiple sub-arrays as views into `ary`. + + For full documentation refer to :obj:`numpy.split`. + + Parameters + ---------- + ary : {dpnp.ndarray, usm_ndarray} + Array to be divided into sub-arrays. + indices_or_sections : {int, sequence of ints} + If `indices_or_sections` is an integer, N, the array will be divided + into N equal arrays along `axis`. If such a split is not possible, + an error is raised. + + If `indices_or_sections` is a sequence of sorted integers, the entries + indicate where along `axis` the array is split. For example, + ``[2, 3]`` would, for ``axis=0``, result in + + - ary[:2] + - ary[2:3] + - ary[3:] + + If an index exceeds the dimension of the array along `axis`, + an empty sub-array is returned correspondingly. + axis : int, optional + The axis along which to split. + Default: ``0``. + + Returns + ------- + sub-arrays : list of dpnp.ndarray + A list of sub arrays. Each array is a view of the corresponding input + array. + + Raises + ------ + ValueError + If `indices_or_sections` is given as an integer, but + a split does not result in equal division. + + See Also + -------- + :obj:`dpnp.array_split` : Split an array into multiple sub-arrays of equal + or near-equal size. Does not raise an exception if an + equal division cannot be made. + :obj:`dpnp.hsplit` : Split array into multiple sub-arrays horizontally + (column-wise). + :obj:`dpnp.vsplit` : Split array into multiple sub-arrays vertically + (row wise). + :obj:`dpnp.dsplit` : Split array into multiple sub-arrays along the 3rd + axis (depth). + :obj:`dpnp.concatenate` : Join a sequence of arrays along an existing axis. + :obj:`dpnp.stack` : Join a sequence of arrays along a new axis. + :obj:`dpnp.hstack` : Stack arrays in sequence horizontally (column wise). + :obj:`dpnp.vstack` : Stack arrays in sequence vertically (row wise). + :obj:`dpnp.dstack` : Stack arrays in sequence depth wise + (along third dimension). + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(9.0) + >>> np.split(x, 3) + [array([0., 1., 2.]), array([3., 4., 5.]), array([6., 7., 8.])] + + >>> x = np.arange(8.0) + >>> np.split(x, [3, 5, 6, 10]) + [array([0., 1., 2.]), array([3., 4.]), array([5.]), array([6., 7.]), \ + array([])] + + """ + + dpnp.check_supported_arrays_type(ary) + if ary.ndim <= axis: + raise IndexError("Axis exceeds ndim") + + try: + len(indices_or_sections) + except TypeError: + if ary.shape[axis] % indices_or_sections != 0: + raise ValueError( + "indices_or_sections must divide the size along the axes.\n" + "If you want to split the array into non-equally-sized " + "arrays, use array_split instead." + ) from None + + return array_split(ary, indices_or_sections, axis)
+ + + +
+[docs] +def squeeze(a, /, axis=None): + """ + Removes singleton dimensions (axes) from array `a`. + + For full documentation refer to :obj:`numpy.squeeze`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input data. + axis : None or int or tuple of ints, optional + Selects a subset of the entries of length one in the shape. + If an axis is selected with shape entry greater than one, + an error is raised. + + Returns + ------- + out : dpnp.ndarray + Output array is a view, if possible, and a copy otherwise, but with all + or a subset of the dimensions of length 1 removed. Output has the same + data type as the input, is allocated on the same device as the input + and has the same USM allocation type as the input array `a`. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[[0], [1], [2]]]) + >>> x.shape + (1, 3, 1) + >>> np.squeeze(x).shape + (3,) + >>> np.squeeze(x, axis=0).shape + (3, 1) + >>> np.squeeze(x, axis=1).shape + Traceback (most recent call last): + ... + ValueError: Cannot select an axis to squeeze out which has size not equal + to one. + >>> np.squeeze(x, axis=2).shape + (1, 3) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.squeeze(usm_a, axis=axis) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +
+[docs] +def stack(arrays, /, *, axis=0, out=None, dtype=None, casting="same_kind"): + """ + Join a sequence of arrays along a new axis. + + For full documentation refer to :obj:`numpy.stack`. + + Parameters + ---------- + arrays : {dpnp.ndarray, usm_ndarray} + Each array must have the same shape. + axis : int, optional + The axis in the result array along which the input arrays are stacked. + out : dpnp.ndarray, optional + If provided, the destination to place the result. The shape must be + correct, matching that of what stack would have returned if no out + argument were specified. + dtype : str or dtype + If provided, the destination array will have this dtype. Cannot be + provided together with `out`. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur. Defaults to 'same_kind'. + + Returns + ------- + out : dpnp.ndarray + The stacked array which has one more dimension than the input arrays. + + See Also + -------- + :obj:`dpnp.concatenate` : Join a sequence of arrays along an existing axis. + :obj:`dpnp.hstack` : Stack arrays in sequence horizontally (column wise). + :obj:`dpnp.vstack` : Stack arrays in sequence vertically (row wise). + :obj:`dpnp.dstack` : Stack arrays in sequence depth wise + (along third dimension). + :obj:`dpnp.column_stack` : Stack 1-D arrays as columns into a 2-D array. + :obj:`dpnp.block` : Assemble an ndarray from nested lists of blocks. + :obj:`dpnp.split` : Split array into a list of multiple sub-arrays of equal + size. + + Examples + -------- + >>> import dpnp as np + >>> arrays = [np.random.randn(3, 4) for _ in range(10)] + >>> np.stack(arrays, axis=0).shape + (10, 3, 4) + + >>> np.stack(arrays, axis=1).shape + (3, 10, 4) + + >>> np.stack(arrays, axis=2).shape + (3, 4, 10) + + >>> a = np.array([1, 2, 3]) + >>> b = np.array([4, 5, 6]) + >>> np.stack((a, b)) + array([[1, 2, 3], + [4, 5, 6]]) + + >>> np.stack((a, b), axis=-1) + array([[1, 4], + [2, 5], + [3, 6]]) + + """ + + _check_stack_arrays(arrays) + + if dtype is not None and out is not None: + raise TypeError( + "stack() only takes `out` or `dtype` as an argument, " + "but both were provided." + ) + + usm_arrays = [dpnp.get_usm_ndarray(x) for x in arrays] + usm_res = dpt.stack(usm_arrays, axis=axis) + + res = dpnp_array._create_from_usm_ndarray(usm_res) + if dtype is not None: + res = res.astype(dtype, casting=casting, copy=False) + elif out is not None: + dpnp.copyto(out, res, casting=casting) + return out + return res
+ + + +
+[docs] +def swapaxes(a, axis1, axis2): + """ + Interchange two axes of an array. + + For full documentation refer to :obj:`numpy.swapaxes`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis1 : int + First axis. + axis2 : int + Second axis. + + Returns + ------- + out : dpnp.ndarray + An array with with swapped axes. + A view is returned whenever possible. + + Notes + ----- + If `a` has rank (i.e., number of dimensions) `N`, + a valid `axis` must be in the half-open interval `[-N, N)`. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[1, 2, 3]]) + >>> np.swapaxes(x, 0, 1) + array([[1], + [2], + [3]]) + + >>> x = np.array([[[0,1],[2,3]],[[4,5],[6,7]]]) + >>> x + array([[[0, 1], + [2, 3]], + [[4, 5], + [6, 7]]]) + >>> np.swapaxes(x,0,2) + array([[[0, 4], + [2, 6]], + [[1, 5], + [3, 7]]]) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.swapaxes(usm_a, axis1=axis1, axis2=axis2) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +# pylint: disable=invalid-name +
+[docs] +def tile(A, reps): + """ + Construct an array by repeating `A` the number of times given by reps. + + If `reps` has length ``d``, the result will have dimension of + ``max(d, A.ndim)``. + + If ``A.ndim < d``, `A` is promoted to be d-dimensional by prepending new + axes. So a shape (3,) array is promoted to (1, 3) for 2-D replication, + or shape (1, 1, 3) for 3-D replication. If this is not the desired + behavior, promote `A` to d-dimensions manually before calling this + function. + + If ``A.ndim > d``, `reps` is promoted to `A`.ndim by prepending 1's to it. + Thus for an `A` of shape (2, 3, 4, 5), a `reps` of (2, 2) is treated as + (1, 1, 2, 2). + + Note : Although tile may be used for broadcasting, it is strongly + recommended to use dpnp's broadcasting operations and functions. + + For full documentation refer to :obj:`numpy.tile`. + + Parameters + ---------- + A : {dpnp.ndarray, usm_ndarray} + The input array. + reps : int or tuple of ints + The number of repetitions of `A` along each axis. + + Returns + ------- + out : dpnp.ndarray + The tiled output array. + + See Also + -------- + :obj:`dpnp.repeat` : Repeat elements of an array. + :obj:`dpnp.broadcast_to` : Broadcast an array to a new shape + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([0, 1, 2]) + >>> np.tile(a, 2) + array([0, 1, 2, 0, 1, 2]) + + >>> np.tile(a, (2, 2)) + array([[0, 1, 2, 0, 1, 2], + [0, 1, 2, 0, 1, 2]]) + + >>> np.tile(a, (2, 1, 2)) + array([[[0, 1, 2, 0, 1, 2]], + [[0, 1, 2, 0, 1, 2]]]) + + >>> b = np.array([[1, 2], [3, 4]]) + >>> np.tile(b, 2) + array([[1, 2, 1, 2], + [3, 4, 3, 4]]) + + >>> np.tile(b, (2, 1)) + array([[1, 2], + [3, 4], + [1, 2], + [3, 4]]) + + >>> c = np.array([1, 2, 3, 4]) + >>> np.tile(c, (4, 1)) + array([[1, 2, 3, 4], + [1, 2, 3, 4], + [1, 2, 3, 4], + [1, 2, 3, 4]]) + + """ + + usm_a = dpnp.get_usm_ndarray(A) + usm_res = dpt.tile(usm_a, reps) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +
+[docs] +def transpose(a, axes=None): + """ + Returns an array with axes transposed. + + Note that :obj:`dpnp.permute_dims` is an alias of :obj:`dpnp.transpose`. + + For full documentation refer to :obj:`numpy.transpose`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axes : None, tuple or list of ints, optional + If specified, it must be a tuple or list which contains a permutation + of [0, 1, ..., N-1] where N is the number of axes of `a`. + The `i`'th axis of the returned array will correspond to the axis + numbered ``axes[i]`` of the input. If not specified or ``None``, + defaults to ``range(a.ndim)[::-1]``, which reverses the order of + the axes. + + Returns + ------- + out : dpnp.ndarray + `a` with its axes permuted. A view is returned whenever possible. + + See Also + -------- + :obj:`dpnp.ndarray.transpose` : Equivalent method. + :obj:`dpnp.moveaxis` : Move array axes to new positions. + :obj:`dpnp.argsort` : Returns the indices that would sort an array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, 4]]) + >>> a + array([[1, 2], + [3, 4]]) + >>> np.transpose(a) + array([[1, 3], + [2, 4]]) + + >>> a = np.array([1, 2, 3, 4]) + >>> a + array([1, 2, 3, 4]) + >>> np.transpose(a) + array([1, 2, 3, 4]) + + >>> a = np.ones((1, 2, 3)) + >>> np.transpose(a, (1, 0, 2)).shape + (2, 1, 3) + + >>> a = np.ones((2, 3, 4, 5)) + >>> np.transpose(a).shape + (5, 4, 3, 2) + + """ + + if isinstance(a, dpnp_array): + array = a + elif isinstance(a, dpt.usm_ndarray): + array = dpnp_array._create_from_usm_ndarray(a) + else: + raise TypeError( + f"An array must be any of supported type, but got {type(a)}" + ) + + if axes is None: + return array.transpose() + return array.transpose(*axes)
+ + + +permute_dims = transpose # permute_dims is an alias for transpose + + +
+[docs] +def trim_zeros(filt, trim="fb"): + """ + Trim the leading and/or trailing zeros from a 1-D array. + + For full documentation refer to :obj:`numpy.trim_zeros`. + + Parameters + ---------- + filt : {dpnp.ndarray, usm_ndarray} + Input 1-D array. + trim : str, optional + A string with 'f' representing trim from front and 'b' to trim from + back. By defaults, trim zeros from both front and back of the array. + Default: ``"fb"``. + + Returns + ------- + out : dpnp.ndarray + The result of trimming the input. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array((0, 0, 0, 1, 2, 3, 0, 2, 1, 0)) + >>> np.trim_zeros(a) + array([1, 2, 3, 0, 2, 1]) + + >>> np.trim_zeros(a, 'b') + array([0, 0, 0, 1, 2, 3, 0, 2, 1]) + + """ + + dpnp.check_supported_arrays_type(filt) + if filt.ndim == 0: + raise TypeError("0-d array cannot be trimmed") + if filt.ndim > 1: + raise ValueError("Multi-dimensional trim is not supported") + + if not isinstance(trim, str): + raise TypeError("only string trim is supported") + + trim = trim.upper() + if not any(x in trim for x in "FB"): + return filt # no trim rule is specified + + if filt.size == 0: + return filt # no trailing zeros in empty array + + a = dpnp.nonzero(filt)[0] + a_size = a.size + if a_size == 0: + # 'filt' is array of zeros + return dpnp.empty_like(filt, shape=(0,)) + + first = 0 + if "F" in trim: + first = a[0] + + last = filt.size + if "B" in trim: + last = a[-1] + 1 + + return filt[first:last]
+ + + +
+[docs] +def unique( + ar, + return_index=False, + return_inverse=False, + return_counts=False, + axis=None, + *, + equal_nan=True, +): + """ + Find the unique elements of an array. + + Returns the sorted unique elements of an array. There are three optional + outputs in addition to the unique elements: + + * the indices of the input array that give the unique values + * the indices of the unique array that reconstruct the input array + * the number of times each unique value comes up in the input array + + For full documentation refer to :obj:`numpy.unique`. + + Parameters + ---------- + ar : {dpnp.ndarray, usm_ndarray} + Input array. Unless `axis` is specified, this will be flattened if it + is not already 1-D. + return_index : bool, optional + If ``True``, also return the indices of `ar` (along the specified axis, + if provided, or in the flattened array) that result in the unique array. + Default: ``False``. + return_inverse : bool, optional + If ``True``, also return the indices of the unique array (for the + specified axis, if provided) that can be used to reconstruct `ar`. + Default: ``False``. + return_counts : bool, optional + If ``True``, also return the number of times each unique item appears + in `ar`. + Default: ``False``. + axis : {int, None}, optional + The axis to operate on. If ``None``, `ar` will be flattened. If an + integer, the subarrays indexed by the given axis will be flattened and + treated as the elements of a 1-D array with the dimension of the given + axis, see the notes for more details. + Default: ``None``. + equal_nan : bool, optional + If ``True``, collapses multiple NaN values in the return array into one. + Default: ``True``. + + Returns + ------- + unique : dpnp.ndarray + The sorted unique values. + unique_indices : dpnp.ndarray, optional + The indices of the first occurrences of the unique values in the + original array. Only provided if `return_index` is ``True``. + unique_inverse : dpnp.ndarray, optional + The indices to reconstruct the original array from the unique array. + Only provided if `return_inverse` is ``True``. + unique_counts : dpnp.ndarray, optional + The number of times each of the unique values comes up in the original + array. Only provided if `return_counts` is ``True``. + + See Also + -------- + :obj:`dpnp.repeat` : Repeat elements of an array. + + Notes + ----- + When an axis is specified the subarrays indexed by the axis are sorted. + This is done by making the specified axis the first dimension of the array + (move the axis to the first dimension to keep the order of the other axes) + and then flattening the subarrays in C order. + For complex arrays all NaN values are considered equivalent (no matter + whether the NaN is in the real or imaginary part). As the representative for + the returned array the smallest one in the lexicographical order is chosen. + For multi-dimensional inputs, `unique_inverse` is reshaped such that the + input can be reconstructed using + ``dpnp.take(unique, unique_inverse, axis=axis)``. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 1, 2, 2, 3, 3]) + >>> np.unique(a) + array([1, 2, 3]) + >>> a = np.array([[1, 1], [2, 3]]) + >>> np.unique(a) + array([1, 2, 3]) + + Return the unique rows of a 2D array + + >>> a = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]]) + >>> np.unique(a, axis=0) + array([[1, 0, 0], + [2, 3, 4]]) + + Reconstruct the input array from the unique values and inverse: + + >>> a = np.array([1, 2, 6, 4, 2, 3, 2]) + >>> u, indices = np.unique(a, return_inverse=True) + >>> u + array([1, 2, 3, 4, 6]) + >>> indices + array([0, 1, 4, 3, 1, 2, 1]) + >>> u[indices] + array([1, 2, 6, 4, 2, 3, 2]) + + Reconstruct the input values from the unique values and counts: + + >>> a = np.array([1, 2, 6, 4, 2, 3, 2]) + >>> values, counts = np.unique(a, return_counts=True) + >>> values + array([1, 2, 3, 4, 6]) + >>> counts + array([1, 3, 1, 1, 1]) + >>> np.repeat(values, counts) + array([1, 2, 2, 2, 3, 4, 6]) # original order not preserved + + """ + + if axis is None: + return _unique_1d( + ar, return_index, return_inverse, return_counts, equal_nan + ) + + # axis was specified and not None + try: + ar = dpnp.moveaxis(ar, axis, 0) + except AxisError: + # this removes the "axis1" or "axis2" prefix from the error message + raise AxisError(axis, ar.ndim) from None + + # reshape input array into a contiguous 2D array + orig_sh = ar.shape + ar = ar.reshape(orig_sh[0], math.prod(orig_sh[1:])) + ar = dpnp.ascontiguousarray(ar) + + # build the indices for result array with unique values + sorted_indices = _unique_build_sort_indices(ar, orig_sh[0]) + ar = ar[sorted_indices] + + if ar.size > 0: + mask = dpnp.empty_like(ar, dtype=dpnp.bool) + mask[:1] = True + mask[1:] = ar[1:] != ar[:-1] + + mask = mask.any(axis=1) + else: + # if the array is empty, then the mask should grab the first empty + # array as the unique one + mask = dpnp.ones_like(ar, shape=(ar.shape[0]), dtype=dpnp.bool) + mask[1:] = False + + # index the input array with the unique elements and reshape it into the + # original size and dimension order + ar = ar[mask] + ar = ar.reshape(mask.sum().asnumpy(), *orig_sh[1:]) + ar = dpnp.moveaxis(ar, 0, axis) + + result = (ar,) + if return_index: + result += (sorted_indices[mask],) + if return_inverse: + imask = dpnp.cumsum(mask) - 1 + inv_idx = dpnp.empty_like(mask, dtype=dpnp.intp) + inv_idx[sorted_indices] = imask + result += (inv_idx,) + if return_counts: + nonzero = dpnp.nonzero(mask)[0] + idx = dpnp.empty_like( + nonzero, shape=(nonzero.size + 1,), dtype=nonzero.dtype + ) + idx[:-1] = nonzero + idx[-1] = mask.size + result += (idx[1:] - idx[:-1],) + + return _unpack_tuple(result)
+ + + +
+[docs] +def vsplit(ary, indices_or_sections): + """ + Split an array into multiple sub-arrays vertically (row-wise). + + Please refer to the :obj:`dpnp.split` documentation. ``vsplit`` + is equivalent to ``split`` with ``axis=0``(default), the array + is always split along the first axis regardless of the array dimension. + + For full documentation refer to :obj:`numpy.vsplit`. + + Parameters + ---------- + ary : {dpnp.ndarray, usm_ndarray} + Array to be divided into sub-arrays. + indices_or_sections : {int, sequence of ints} + If `indices_or_sections` is an integer, N, the array will be divided + into N equal arrays along the first axis. If such a split is not + possible, an error is raised. + If `indices_or_sections` is a sequence of sorted integers, the entries + indicate where along the first axis the array is split. + + Returns + ------- + sub-arrays : list of dpnp.ndarray + A list of sub arrays. Each array is a view of the corresponding input + array. + + See Also + -------- + :obj:`dpnp.split` : Split array into multiple sub-arrays of equal size. + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(16.0).reshape(4, 4) + >>> x + array([[ 0., 1., 2., 3.], + [ 4., 5., 6., 7.], + [ 8., 9., 10., 11.], + [12., 13., 14., 15.]]) + >>> np.vsplit(x, 2) + [array([[0., 1., 2., 3.], + [4., 5., 6., 7.]]), + array([[ 8., 9., 10., 11.], + [12., 13., 14., 15.]])] + >>> np.vsplit(x, np.array([3, 6])) + [array([[ 0., 1., 2., 3.], + [ 4., 5., 6., 7.], + [ 8., 9., 10., 11.]]), + array([[12., 13., 14., 15.]]), + array([], shape=(0, 4), dtype=float64)] + + With a higher dimensional array the split is still along the first axis. + + >>> x = np.arange(8.0).reshape(2, 2, 2) + >>> x + array([[[0., 1.], + [2., 3.]], + [[4., 5.], + [6., 7.]]]) + >>> np.vsplit(x, 2) + [array([[[0., 1.], + [2., 3.]]]), + array([[[4., 5.], + [6., 7.]]])] + + """ + + dpnp.check_supported_arrays_type(ary) + if ary.ndim < 2: + raise ValueError("vsplit only works on arrays of 2 or more dimensions") + return split(ary, indices_or_sections, 0)
+ + + +
+[docs] +def vstack(tup, *, dtype=None, casting="same_kind"): + """ + Stack arrays in sequence vertically (row wise). + + :obj:`dpnp.row_stack` is an alias for :obj:`dpnp.vstack`. + They are the same function. + + For full documentation refer to :obj:`numpy.vstack`. + + Parameters + ---------- + tup : {dpnp.ndarray, usm_ndarray} + The arrays must have the same shape along all but the first axis. + 1-D arrays must have the same length. + dtype : str or dtype + If provided, the destination array will have this dtype. + casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional + Controls what kind of data casting may occur. Defaults to 'same_kind'. + + Returns + ------- + out : dpnp.ndarray + The array formed by stacking the given arrays, will be at least 2-D. + + See Also + -------- + :obj:`dpnp.concatenate` : Join a sequence of arrays along an existing axis. + :obj:`dpnp.stack` : Join a sequence of arrays along a new axis. + :obj:`dpnp.hstack` : Stack arrays in sequence horizontally (column wise). + :obj:`dpnp.dstack` : Stack arrays in sequence depth wise (along third axis). + :obj:`dpnp.column_stack` : Stack 1-D arrays as columns into a 2-D array. + :obj:`dpnp.block` : Assemble an ndarray from nested lists of blocks. + :obj:`dpnp.split` : Split array into a list of multiple sub-arrays of equal + size. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 2, 3]) + >>> b = np.array([4, 5, 6]) + >>> np.vstack((a, b)) + array([[1, 2, 3], + [4, 5, 6]]) + + >>> a = np.array([[1], [2], [3]]) + >>> b = np.array([[4], [5], [6]]) + >>> np.vstack((a, b)) + array([[1], + [2], + [3], + [4], + [5], + [6]]) + + """ + + _check_stack_arrays(tup) + + arrs = dpnp.atleast_2d(*tup) + if not isinstance(arrs, list): + arrs = [arrs] + return dpnp.concatenate(arrs, axis=0, dtype=dtype, casting=casting)
+ + + +row_stack = vstack +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_mathematical.html b/pull/2070/_modules/dpnp/dpnp_iface_mathematical.html new file mode 100644 index 00000000000..057ef13c148 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_mathematical.html @@ -0,0 +1,4046 @@ + + + + + + + + + + dpnp.dpnp_iface_mathematical — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_mathematical

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the Mathematical part of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+# pylint: disable=protected-access
+# pylint: disable=duplicate-code
+# pylint: disable=no-name-in-module
+
+
+import dpctl.tensor as dpt
+import dpctl.tensor._tensor_elementwise_impl as ti
+import dpctl.tensor._type_utils as dtu
+import dpctl.utils as dpu
+import numpy
+from dpctl.tensor._numpy_helper import (
+    normalize_axis_index,
+    normalize_axis_tuple,
+)
+from dpctl.tensor._type_utils import _acceptance_fn_divide
+
+import dpnp
+import dpnp.backend.extensions.ufunc._ufunc_impl as ufi
+
+from .dpnp_algo import dpnp_modf
+from .dpnp_algo.dpnp_elementwise_common import (
+    DPNPAngle,
+    DPNPBinaryFunc,
+    DPNPReal,
+    DPNPRound,
+    DPNPUnaryFunc,
+    acceptance_fn_negative,
+    acceptance_fn_positive,
+    acceptance_fn_sign,
+    acceptance_fn_subtract,
+)
+from .dpnp_array import dpnp_array
+from .dpnp_utils import call_origin, get_usm_allocations
+from .dpnp_utils.dpnp_utils_linearalgebra import dpnp_cross
+from .dpnp_utils.dpnp_utils_reduction import dpnp_wrap_reduction_call
+
+__all__ = [
+    "abs",
+    "absolute",
+    "add",
+    "angle",
+    "around",
+    "ceil",
+    "clip",
+    "conj",
+    "conjugate",
+    "convolve",
+    "copysign",
+    "cross",
+    "cumprod",
+    "cumsum",
+    "diff",
+    "divide",
+    "ediff1d",
+    "fabs",
+    "fix",
+    "float_power",
+    "floor",
+    "floor_divide",
+    "fmax",
+    "fmin",
+    "fmod",
+    "gradient",
+    "heaviside",
+    "imag",
+    "maximum",
+    "minimum",
+    "mod",
+    "modf",
+    "multiply",
+    "nan_to_num",
+    "negative",
+    "nextafter",
+    "positive",
+    "pow",
+    "power",
+    "prod",
+    "proj",
+    "real",
+    "real_if_close",
+    "remainder",
+    "rint",
+    "round",
+    "sign",
+    "signbit",
+    "subtract",
+    "sum",
+    "trapezoid",
+    "true_divide",
+    "trunc",
+]
+
+
+def _get_max_min(dtype):
+    """Get the maximum and minimum representable values for an inexact dtype."""
+
+    f = dpnp.finfo(dtype)
+    return f.max, f.min
+
+
+def _get_reduction_res_dt(a, dtype, _out):
+    """Get a data type used by dpctl for result array in reduction function."""
+
+    if dtype is None:
+        return dtu._default_accumulation_dtype(a.dtype, a.sycl_queue)
+
+    dtype = dpnp.dtype(dtype)
+    return dtu._to_device_supported_dtype(dtype, a.sycl_device)
+
+
+def _gradient_build_dx(f, axes, *varargs):
+    """Build an array with distance per each dimension."""
+
+    len_axes = len(axes)
+    n = len(varargs)
+    if n == 0:
+        # no spacing argument - use 1 in all axes
+        dx = [1.0] * len_axes
+    elif n == 1 and numpy.ndim(varargs[0]) == 0:
+        dpnp.check_supported_arrays_type(
+            varargs[0], scalar_type=True, all_scalars=True
+        )
+
+        # single scalar for all axes
+        dx = varargs * len_axes
+    elif n == len_axes:
+        # scalar or 1d array for each axis
+        dx = list(varargs)
+        for i, distances in enumerate(dx):
+            dpnp.check_supported_arrays_type(
+                distances, scalar_type=True, all_scalars=True
+            )
+
+            if numpy.ndim(distances) == 0:
+                continue
+            if distances.ndim != 1:
+                raise ValueError("distances must be either scalars or 1d")
+
+            if len(distances) != f.shape[axes[i]]:
+                raise ValueError(
+                    "when 1d, distances must match "
+                    "the length of the corresponding dimension"
+                )
+
+            if dpnp.issubdtype(distances.dtype, dpnp.integer):
+                # Convert integer types to default float type to avoid modular
+                # arithmetic in dpnp.diff(distances).
+                distances = distances.astype(dpnp.default_float_type())
+            diffx = dpnp.diff(distances)
+
+            # if distances are constant reduce to the scalar case
+            # since it brings a consistent speedup
+            if (diffx == diffx[0]).all():
+                diffx = diffx[0]
+            dx[i] = diffx
+    else:
+        raise TypeError("invalid number of arguments")
+    return dx
+
+
+def _gradient_num_diff_2nd_order_interior(
+    f, ax_dx, out, slices, axis, uniform_spacing
+):
+    """Numerical differentiation: 2nd order interior."""
+
+    slice1, slice2, slice3, slice4 = slices
+    ndim = f.ndim
+
+    slice1[axis] = slice(1, -1)
+    slice2[axis] = slice(None, -2)
+    slice3[axis] = slice(1, -1)
+    slice4[axis] = slice(2, None)
+
+    if uniform_spacing:
+        out[tuple(slice1)] = (f[tuple(slice4)] - f[tuple(slice2)]) / (
+            2.0 * ax_dx
+        )
+    else:
+        dx1 = ax_dx[0:-1]
+        dx2 = ax_dx[1:]
+        a = -(dx2) / (dx1 * (dx1 + dx2))
+        b = (dx2 - dx1) / (dx1 * dx2)
+        c = dx1 / (dx2 * (dx1 + dx2))
+
+        # fix the shape for broadcasting
+        shape = [1] * ndim
+        shape[axis] = -1
+
+        a = a.reshape(shape)
+        b = b.reshape(shape)
+        c = c.reshape(shape)
+
+        # 1D equivalent -- out[1:-1] = a * f[:-2] + b * f[1:-1] + c * f[2:]
+        t1 = a * f[tuple(slice2)]
+        t2 = b * f[tuple(slice3)]
+        t3 = c * f[tuple(slice4)]
+        t4 = t1 + t2 + t3
+
+        out[tuple(slice1)] = t4
+        out[tuple(slice1)] = (
+            a * f[tuple(slice2)] + b * f[tuple(slice3)] + c * f[tuple(slice4)]
+        )
+
+
+def _gradient_num_diff_edges(
+    f, ax_dx, out, slices, axis, uniform_spacing, edge_order
+):
+    """Numerical differentiation: 1st and 2nd order edges."""
+
+    slice1, slice2, slice3, slice4 = slices
+
+    # Numerical differentiation: 1st order edges
+    if edge_order == 1:
+        slice1[axis] = 0
+        slice2[axis] = 1
+        slice3[axis] = 0
+        dx_0 = ax_dx if uniform_spacing else ax_dx[0]
+
+        # 1D equivalent -- out[0] = (f[1] - f[0]) / (x[1] - x[0])
+        out[tuple(slice1)] = (f[tuple(slice2)] - f[tuple(slice3)]) / dx_0
+
+        slice1[axis] = -1
+        slice2[axis] = -1
+        slice3[axis] = -2
+        dx_n = ax_dx if uniform_spacing else ax_dx[-1]
+
+        # 1D equivalent -- out[-1] = (f[-1] - f[-2]) / (x[-1] - x[-2])
+        out[tuple(slice1)] = (f[tuple(slice2)] - f[tuple(slice3)]) / dx_n
+
+    # Numerical differentiation: 2nd order edges
+    else:
+        slice1[axis] = 0
+        slice2[axis] = 0
+        slice3[axis] = 1
+        slice4[axis] = 2
+        if uniform_spacing:
+            a = -1.5 / ax_dx
+            b = 2.0 / ax_dx
+            c = -0.5 / ax_dx
+        else:
+            dx1 = ax_dx[0]
+            dx2 = ax_dx[1]
+            a = -(2.0 * dx1 + dx2) / (dx1 * (dx1 + dx2))
+            b = (dx1 + dx2) / (dx1 * dx2)
+            c = -dx1 / (dx2 * (dx1 + dx2))
+
+        # 1D equivalent -- out[0] = a * f[0] + b * f[1] + c * f[2]
+        out[tuple(slice1)] = (
+            a * f[tuple(slice2)] + b * f[tuple(slice3)] + c * f[tuple(slice4)]
+        )
+
+        slice1[axis] = -1
+        slice2[axis] = -3
+        slice3[axis] = -2
+        slice4[axis] = -1
+        if uniform_spacing:
+            a = 0.5 / ax_dx
+            b = -2.0 / ax_dx
+            c = 1.5 / ax_dx
+        else:
+            dx1 = ax_dx[-2]
+            dx2 = ax_dx[-1]
+            a = (dx2) / (dx1 * (dx1 + dx2))
+            b = -(dx2 + dx1) / (dx1 * dx2)
+            c = (2.0 * dx2 + dx1) / (dx2 * (dx1 + dx2))
+
+        # 1D equivalent -- out[-1] = a * f[-3] + b * f[-2] + c * f[-1]
+        out[tuple(slice1)] = (
+            a * f[tuple(slice2)] + b * f[tuple(slice3)] + c * f[tuple(slice4)]
+        )
+
+
+def _process_ediff1d_args(arg, arg_name, ary_dtype, ary_sycl_queue, usm_type):
+    """Process the argument for ediff1d."""
+    if not dpnp.is_supported_array_type(arg):
+        arg = dpnp.asarray(arg, usm_type=usm_type, sycl_queue=ary_sycl_queue)
+    else:
+        usm_type = dpu.get_coerced_usm_type([usm_type, arg.usm_type])
+        # check that arrays have the same allocation queue
+        if dpu.get_execution_queue([ary_sycl_queue, arg.sycl_queue]) is None:
+            raise dpu.ExecutionPlacementError(
+                f"ary and {arg_name} must be allocated on the same SYCL queue"
+            )
+
+    if not dpnp.can_cast(arg, ary_dtype, casting="same_kind"):
+        raise TypeError(
+            f"dtype of {arg_name} must be compatible "
+            "with input ary under the `same_kind` rule."
+        )
+
+    if arg.ndim > 1:
+        arg = dpnp.ravel(arg)
+
+    return arg, usm_type
+
+
+_ABS_DOCSTRING = """
+Calculates the absolute value for each element `x_i` of input array `x`.
+
+For full documentation refer to :obj:`numpy.absolute`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise absolute values.
+    For complex input, the absolute value is its magnitude.
+    If `x` has a real-valued data type, the returned array has the
+    same data type as `x`. If `x` has a complex floating-point data type,
+    the returned array has a real-valued floating-point data type whose
+    precision matches the precision of `x`.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.fabs` : Calculate the absolute value element-wise excluding complex types.
+
+Notes
+-----
+``dpnp.abs`` is a shorthand for this function.
+
+Examples
+--------
+>>> import dpnp as np
+>>> a = np.array([-1.2, 1.2])
+>>> np.absolute(a)
+array([1.2, 1.2])
+
+>>> a = np.array(1.2 + 1j)
+>>> np.absolute(a)
+array(1.5620499351813308)
+"""
+
+absolute = DPNPUnaryFunc(
+    "abs",
+    ti._abs_result_type,
+    ti._abs,
+    _ABS_DOCSTRING,
+    mkl_fn_to_call="_mkl_abs_to_call",
+    mkl_impl_fn="_abs",
+)
+
+
+abs = absolute
+
+
+_ADD_DOCSTRING = """
+Calculates the sum for each element `x1_i` of the input array `x1` with
+the respective element `x2_i` of the input array `x2`.
+
+For full documentation refer to :obj:`numpy.add`.
+
+Parameters
+----------
+x1 : {dpnp.ndarray, usm_ndarray, scalar}
+    First input array, expected to have numeric data type.
+    Both inputs `x1` and `x2` can not be scalars at the same time.
+x2 : {dpnp.ndarray, usm_ndarray, scalar}
+    Second input array, also expected to have numeric data type.
+    Both inputs `x1` and `x2` can not be scalars at the same time.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise sums. The data type of the
+    returned array is determined by the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+Notes
+-----
+Equivalent to `x1` + `x2` in terms of array broadcasting.
+
+Examples
+--------
+>>> import dpnp as np
+>>> a = np.array([1, 2, 3])
+>>> b = np.array([1, 2, 3])
+>>> np.add(a, b)
+array([2, 4, 6])
+
+>>> x1 = np.arange(9.0).reshape((3, 3))
+>>> x2 = np.arange(3.0)
+>>> np.add(x1, x2)
+array([[  0.,   2.,   4.],
+       [  3.,   5.,   7.],
+       [  6.,   8.,  10.]])
+
+The ``+`` operator can be used as a shorthand for ``add`` on
+:class:`dpnp.ndarray`.
+
+>>> x1 + x2
+array([[  0.,   2.,   4.],
+       [  3.,   5.,   7.],
+       [  6.,   8.,  10.]])
+"""
+
+
+add = DPNPBinaryFunc(
+    "add",
+    ti._add_result_type,
+    ti._add,
+    _ADD_DOCSTRING,
+    mkl_fn_to_call="_mkl_add_to_call",
+    mkl_impl_fn="_add",
+    binary_inplace_fn=ti._add_inplace,
+)
+
+
+_ANGLE_DOCSTRING = """
+Computes the phase angle (also called the argument) of each element `x_i` for
+input array `x`.
+
+For full documentation refer to :obj:`numpy.angle`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have a complex-valued floating-point data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise phase angles.
+    The returned array has a floating-point data type determined
+    by the Type Promotion Rules.
+
+Notes
+-----
+Although the angle of the complex number 0 is undefined, `dpnp.angle(0)` returns the value 0.
+
+See Also
+--------
+:obj:`dpnp.arctan2` : Element-wise arc tangent of `x1/x2` choosing the quadrant correctly.
+:obj:`dpnp.arctan` : Trigonometric inverse tangent, element-wise.
+:obj:`dpnp.absolute` : Calculate the absolute value element-wise.
+:obj:`dpnp.real` : Return the real part of the complex argument.
+:obj:`dpnp.imag` : Return the imaginary part of the complex argument.
+:obj:`dpnp.real_if_close` : Return the real part of the input is complex
+                            with all imaginary parts close to zero.
+
+Examples
+--------
+>>> import dpnp as np
+>>> a = np.array([1.0, 1.0j, 1+1j])
+>>> np.angle(a) # in radians
+array([0.        , 1.57079633, 0.78539816]) # may vary
+
+>>> np.angle(a, deg=True) # in degrees
+array([ 0., 90., 45.])
+"""
+
+angle = DPNPAngle(
+    "angle",
+    ti._angle_result_type,
+    ti._angle,
+    _ANGLE_DOCSTRING,
+)
+
+
+
+[docs] +def around(x, /, decimals=0, out=None): + """ + Round an array to the given number of decimals. + + For full documentation refer to :obj:`numpy.around`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. + decimals : int, optional + Number of decimal places to round to (default: 0). If decimals is + negative, it specifies the number of positions to the left of the + decimal point. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The rounded value of elements of the array. + + See Also + -------- + :obj:`dpnp.round` : Equivalent function; see for details. + :obj:`dpnp.ndarray.round` : Equivalent function. + :obj:`dpnp.rint` : Round elements of the array to the nearest integer. + :obj:`dpnp.fix` : Round to nearest integer towards zero, element-wise. + :obj:`dpnp.ceil` : Compute the ceiling of the input, element-wise. + :obj:`dpnp.floor` : Return the floor of the input, element-wise. + :obj:`dpnp.trunc` : Return the truncated value of the input, element-wise. + + Notes + ----- + This function works the same as :obj:`dpnp.round`. + + """ + + return round(x, decimals, out)
+ + + +_CEIL_DOCSTRING = """ +Returns the ceiling for each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.ceil`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a real-valued data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise ceiling. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.floor` : Return the floor of the input, element-wise. +:obj:`dpnp.trunc` : Return the truncated value of the input, element-wise. +:obj:`dpnp.rint` : Round elements of the array to the nearest integer. +:obj:`dpnp.fix` : Round to nearest integer towards zero, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0]) +>>> np.ceil(a) +array([-1.0, -1.0, -0.0, 1.0, 2.0, 2.0, 2.0]) +""" + +ceil = DPNPUnaryFunc( + "ceil", + ti._ceil_result_type, + ti._ceil, + _CEIL_DOCSTRING, + mkl_fn_to_call="_mkl_ceil_to_call", + mkl_impl_fn="_ceil", +) + + +
+[docs] +def clip(a, a_min, a_max, *, out=None, order="K", **kwargs): + """ + Clip (limit) the values in an array. + + For full documentation refer to :obj:`numpy.clip`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Array containing elements to clip. + a_min, a_max : {dpnp.ndarray, usm_ndarray, None} + Minimum and maximum value. If ``None``, clipping is not performed on + the corresponding edge. Only one of `a_min` and `a_max` may be + ``None``. Both are broadcast against `a`. + out : {None, dpnp.ndarray, usm_ndarray}, optional + The results will be placed in this array. It may be the input array + for in-place clipping. `out` must be of the right shape to hold the + output. Its type is preserved. + order : {"C", "F", "A", "K", None}, optional + Memory layout of the newly output array, if parameter `out` is `None`. + If `order` is ``None``, the default value ``"K"`` will be used. + + Returns + ------- + out : dpnp.ndarray + An array with the elements of `a`, but where values < `a_min` are + replaced with `a_min`, and those > `a_max` with `a_max`. + + Limitations + ----------- + Keyword argument `kwargs` is currently unsupported. + Otherwise ``NotImplementedError`` exception will be raised. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(10) + >>> a + array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) + >>> np.clip(a, 1, 8) + array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8]) + >>> np.clip(a, 8, 1) + array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) + >>> np.clip(a, 3, 6, out=a) + array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6]) + >>> a + array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6]) + + >>> a = np.arange(10) + >>> a + array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) + >>> min = np.array([3, 4, 1, 1, 1, 4, 4, 4, 4, 4]) + >>> np.clip(a, min, 8) + array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8]) + + """ + + if kwargs: + raise NotImplementedError(f"kwargs={kwargs} is currently not supported") + + if a_min is None and a_max is None: + raise ValueError("One of max or min must be given") + + if order is None: + order = "K" + + usm_arr = dpnp.get_usm_ndarray(a) + usm_min = None if a_min is None else dpnp.get_usm_ndarray_or_scalar(a_min) + usm_max = None if a_max is None else dpnp.get_usm_ndarray_or_scalar(a_max) + + usm_out = None if out is None else dpnp.get_usm_ndarray(out) + usm_res = dpt.clip(usm_arr, usm_min, usm_max, out=usm_out, order=order) + if out is not None and isinstance(out, dpnp_array): + return out + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +_CONJ_DOCSTRING = """ +Computes conjugate of each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.conj`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise conjugate values. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +Examples +-------- +>>> import dpnp as np +>>> np.conjugate(np.array(1+2j)) +(1-2j) + +>>> x = np.eye(2) + 1j * np.eye(2) +>>> np.conjugate(x) +array([[ 1.-1.j, 0.-0.j], + [ 0.-0.j, 1.-1.j]]) +""" + +conjugate = DPNPUnaryFunc( + "conj", + ti._conj_result_type, + ti._conj, + _CONJ_DOCSTRING, + mkl_fn_to_call="_mkl_conj_to_call", + mkl_impl_fn="_conj", +) + +conj = conjugate + + +
+[docs] +def convolve(a, v, mode="full"): + """ + Returns the discrete, linear convolution of two one-dimensional sequences. + + For full documentation refer to :obj:`numpy.convolve`. + + Examples + -------- + >>> ca = dpnp.convolve([1, 2, 3], [0, 1, 0.5]) + >>> print(ca) + [0. , 1. , 2.5, 4. , 1.5] + + """ + + return call_origin(numpy.convolve, a=a, v=v, mode=mode)
+ + + +_COPYSING_DOCSTRING = """ +Composes a floating-point value with the magnitude of `x1_i` and the sign of +`x2_i` for each element of input arrays `x1` and `x2`. + +For full documentation refer to :obj:`numpy.copysign`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have a real floating-point data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have a real floating-point data + type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise results. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.negative` : Return the numerical negative of each element of `x`. +:obj:`dpnp.positive` : Return the numerical positive of each element of `x`. + +Examples +-------- +>>> import dpnp as np +>>> np.copysign(np.array(1.3), np.array(-1)) +array(-1.3) +>>> 1 / np.copysign(np.array(0), 1) +array(inf) +>>> 1 / np.copysign(np.array(0), -1) +array(-inf) + +>>> x = np.array([-1, 0, 1]) +>>> np.copysign(x, -1.1) +array([-1., -0., -1.]) +>>> np.copysign(x, np.arange(3) - 1) +array([-1., 0., 1.]) +""" + +copysign = DPNPBinaryFunc( + "copysign", + ti._copysign_result_type, + ti._copysign, + _COPYSING_DOCSTRING, +) + + +
+[docs] +def cross(a, b, axisa=-1, axisb=-1, axisc=-1, axis=None): + """ + Return the cross product of two (arrays of) vectors. + + For full documentation refer to :obj:`numpy.cross`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + First input array. + b : {dpnp.ndarray, usm_ndarray} + Second input array. + axisa : int, optional + Axis of `a` that defines the vector(s). By default, the last axis. + axisb : int, optional + Axis of `b` that defines the vector(s). By default, the last axis. + axisc : int, optional + Axis of `c` containing the cross product vector(s). Ignored if + both input vectors have dimension 2, as the return is scalar. + By default, the last axis. + axis : {int, None}, optional + If defined, the axis of `a`, `b` and `c` that defines the vector(s) + and cross product(s). Overrides `axisa`, `axisb` and `axisc`. + + Returns + ------- + out : dpnp.ndarray + Vector cross product(s). + + See Also + -------- + :obj:`dpnp.inner` : Inner product. + :obj:`dpnp.outer` : Outer product. + + Examples + -------- + Vector cross-product. + + >>> import dpnp as np + >>> x = np.array([1, 2, 3]) + >>> y = np.array([4, 5, 6]) + >>> np.cross(x, y) + array([-3, 6, -3]) + + One vector with dimension 2. + + >>> x = np.array([1, 2]) + >>> y = np.array([4, 5, 6]) + >>> np.cross(x, y) + array([12, -6, -3]) + + Equivalently: + + >>> x = np.array([1, 2, 0]) + >>> y = np.array([4, 5, 6]) + >>> np.cross(x, y) + array([12, -6, -3]) + + Both vectors with dimension 2. + + >>> x = np.array([1, 2]) + >>> y = np.array([4, 5]) + >>> np.cross(x, y) + array(-3) + + Multiple vector cross-products. Note that the direction of the cross + product vector is defined by the *right-hand rule*. + + >>> x = np.array([[1, 2, 3], [4, 5, 6]]) + >>> y = np.array([[4, 5, 6], [1, 2, 3]]) + >>> np.cross(x, y) + array([[-3, 6, -3], + [ 3, -6, 3]]) + + The orientation of `c` can be changed using the `axisc` keyword. + + >>> np.cross(x, y, axisc=0) + array([[-3, 3], + [ 6, -6], + [-3, 3]]) + + Change the vector definition of `x` and `y` using `axisa` and `axisb`. + + >>> x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) + >>> y = np.array([[7, 8, 9], [4, 5, 6], [1, 2, 3]]) + >>> np.cross(x, y) + array([[ -6, 12, -6], + [ 0, 0, 0], + [ 6, -12, 6]]) + >>> np.cross(x, y, axisa=0, axisb=0) + array([[-24, 48, -24], + [-30, 60, -30], + [-36, 72, -36]]) + + """ + + if axis is not None: + if not isinstance(axis, int): + raise TypeError(f"axis should be an integer but got, {type(axis)}.") + axisa, axisb, axisc = (axis,) * 3 + + dpnp.check_supported_arrays_type(a, b) + if a.dtype == dpnp.bool and b.dtype == dpnp.bool: + raise TypeError( + "Input arrays with boolean data type are not supported." + ) + + # Check axisa and axisb are within bounds + axisa = normalize_axis_index(axisa, a.ndim, msg_prefix="axisa") + axisb = normalize_axis_index(axisb, b.ndim, msg_prefix="axisb") + + # Move working axis to the end of the shape + a = dpnp.moveaxis(a, axisa, -1) + b = dpnp.moveaxis(b, axisb, -1) + if a.shape[-1] not in (2, 3) or b.shape[-1] not in (2, 3): + raise ValueError( + "Incompatible vector dimensions for cross product\n" + "(the dimension of vector used in cross product must be 2 or 3)" + ) + + # Modify the shape of input arrays if necessary + a_shape = a.shape + b_shape = b.shape + + # TODO: replace with dpnp.broadcast_shapes once implemented + res_shape = numpy.broadcast_shapes(a_shape[:-1], b_shape[:-1]) + if a_shape[:-1] != res_shape: + a = dpnp.broadcast_to(a, res_shape + (a_shape[-1],)) + a_shape = a.shape + if b_shape[:-1] != res_shape: + b = dpnp.broadcast_to(b, res_shape + (b_shape[-1],)) + b_shape = b.shape + + if a_shape[-1] == 3 or b_shape[-1] == 3: + res_shape += (3,) + # Check axisc is within bounds + axisc = normalize_axis_index(axisc, len(res_shape), msg_prefix="axisc") + + # Create the output array + dtype = dpnp.result_type(a, b) + res_usm_type, exec_q = get_usm_allocations([a, b]) + cp = dpnp.empty( + res_shape, dtype=dtype, sycl_queue=exec_q, usm_type=res_usm_type + ) + + # recast arrays as dtype + a = a.astype(dtype, copy=False) + b = b.astype(dtype, copy=False) + + cp = dpnp_cross(a, b, cp) + if a_shape[-1] == 2 and b_shape[-1] == 2: + return cp + + return dpnp.moveaxis(cp, -1, axisc)
+ + + +
+[docs] +def cumprod(a, axis=None, dtype=None, out=None): + """ + Return the cumulative product of elements along a given axis. + + For full documentation refer to :obj:`numpy.cumprod`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int}, optional + Axis along which the cumulative product is computed. It defaults to + compute the cumulative product over the flattened array. + Default: ``None``. + dtype : {None, dtype}, optional + Type of the returned array and of the accumulator in which the elements + are multiplied. If `dtype` is not specified, it defaults to the dtype + of `a`, unless `a` has an integer dtype with a precision less than that + of the default platform integer. In that case, the default platform + integer is used. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have the + same shape and buffer length as the expected output but the type will + be cast if necessary. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + A new array holding the result is returned unless `out` is specified as + :class:`dpnp.ndarray`, in which case a reference to `out` is returned. + The result has the same size as `a`, and the same shape as `a` if `axis` + is not ``None`` or `a` is a 1-d array. + + See Also + -------- + :obj:`dpnp.prod` : Product array elements. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 2, 3]) + >>> np.cumprod(a) # intermediate results 1, 1*2 + ... # total product 1*2*3 = 6 + array([1, 2, 6]) + >>> a = np.array([[1, 2, 3], [4, 5, 6]]) + >>> np.cumprod(a, dtype=np.float32) # specify type of output + array([ 1., 2., 6., 24., 120., 720.], dtype=float32) + + The cumulative product for each column (i.e., over the rows) of `a`: + + >>> np.cumprod(a, axis=0) + array([[ 1, 2, 3], + [ 4, 10, 18]]) + + The cumulative product for each row (i.e. over the columns) of `a`: + + >>> np.cumprod(a, axis=1) + array([[ 1, 2, 6], + [ 4, 20, 120]]) + + """ + + dpnp.check_supported_arrays_type(a) + if a.ndim > 1 and axis is None: + usm_a = dpnp.ravel(a).get_array() + else: + usm_a = dpnp.get_usm_ndarray(a) + + return dpnp_wrap_reduction_call( + a, + out, + dpt.cumulative_prod, + _get_reduction_res_dt, + usm_a, + axis=axis, + dtype=dtype, + )
+ + + +
+[docs] +def cumsum(a, axis=None, dtype=None, out=None): + """ + Return the cumulative sum of the elements along a given axis. + + For full documentation refer to :obj:`numpy.cumsum`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int}, optional + Axis along which the cumulative sum is computed. It defaults to compute + the cumulative sum over the flattened array. + Default: ``None``. + dtype : {None, dtype}, optional + Type of the returned array and of the accumulator in which the elements + are summed. If `dtype` is not specified, it defaults to the dtype of + `a`, unless `a` has an integer dtype with a precision less than that of + the default platform integer. In that case, the default platform + integer is used. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have the + same shape and buffer length as the expected output but the type will + be cast if necessary. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + A new array holding the result is returned unless `out` is specified as + :class:`dpnp.ndarray`, in which case a reference to `out` is returned. + The result has the same size as `a`, and the same shape as `a` if `axis` + is not ``None`` or `a` is a 1-d array. + + See Also + -------- + :obj:`dpnp.sum` : Sum array elements. + :obj:`dpnp.trapezoid` : Integration of array values using composite + trapezoidal rule. + :obj:`dpnp.diff` : Calculate the n-th discrete difference along given axis. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2, 3], [4, 5, 6]]) + >>> a + array([[1, 2, 3], + [4, 5, 6]]) + >>> np.cumsum(a) + array([ 1, 3, 6, 10, 15, 21]) + >>> np.cumsum(a, dtype=float) # specifies type of output value(s) + array([ 1., 3., 6., 10., 15., 21.]) + + >>> np.cumsum(a, axis=0) # sum over rows for each of the 3 columns + array([[1, 2, 3], + [5, 7, 9]]) + >>> np.cumsum(a, axis=1) # sum over columns for each of the 2 rows + array([[ 1, 3, 6], + [ 4, 9, 15]]) + + ``cumsum(b)[-1]`` may not be equal to ``sum(b)`` + + >>> b = np.array([1, 2e-9, 3e-9] * 10000) + >>> b.cumsum().dtype == b.sum().dtype == np.float64 + True + >>> b.cumsum()[-1] == b.sum() + array(False) + + """ + + dpnp.check_supported_arrays_type(a) + if a.ndim > 1 and axis is None: + usm_a = dpnp.ravel(a).get_array() + else: + usm_a = dpnp.get_usm_ndarray(a) + + return dpnp_wrap_reduction_call( + a, + out, + dpt.cumulative_sum, + _get_reduction_res_dt, + usm_a, + axis=axis, + dtype=dtype, + )
+ + + +
+[docs] +def diff(a, n=1, axis=-1, prepend=None, append=None): + """ + Calculate the n-th discrete difference along the given axis. + + For full documentation refer to :obj:`numpy.diff`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array + n : {int}, optional + The number of times the values differ. If ``zero``, the input + is returned as-is. + axis : {int}, optional + The axis along which the difference is taken, default is the + last axis. + prepend, append : {None, scalar, dpnp.ndarray, usm_ndarray}, optional + Values to prepend or append to `a` along axis prior to + performing the difference. Scalar values are expanded to + arrays with length 1 in the direction of axis and the shape + of the input array in along all other axes. Otherwise the + dimension and shape must match `a` except along axis. + + Returns + ------- + out : dpnp.ndarray + The n-th differences. The shape of the output is the same as `a` + except along `axis` where the dimension is smaller by `n`. The + type of the output is the same as the type of the difference + between any two elements of `a`. This is the same as the type of + `a` in most cases. + + See Also + -------- + :obj:`dpnp.gradient` : Return the gradient of an N-dimensional array. + :obj:`dpnp.ediff1d` : Compute the differences between consecutive elements + of an array. + :obj:`dpnp.cumsum` : Return the cumulative sum of the elements along + a given axis. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([1, 2, 4, 7, 0]) + >>> np.diff(x) + array([ 1, 2, 3, -7]) + >>> np.diff(x, n=2) + array([ 1, 1, -10]) + + >>> x = np.array([[1, 3, 6, 10], [0, 5, 6, 8]]) + >>> np.diff(x) + array([[2, 3, 4], + [5, 1, 2]]) + >>> np.diff(x, axis=0) + array([[-1, 2, 0, -2]]) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + usm_pre = ( + None if prepend is None else dpnp.get_usm_ndarray_or_scalar(prepend) + ) + usm_app = None if append is None else dpnp.get_usm_ndarray_or_scalar(append) + + usm_res = dpt.diff(usm_a, axis=axis, n=n, prepend=usm_pre, append=usm_app) + return dpnp_array._create_from_usm_ndarray(usm_res)
+ + + +_DIVIDE_DOCSTRING = """ +Calculates the ratio for each element `x1_i` of the input array `x1` with +the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.divide`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise division. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +Notes +----- +Equivalent to `x1` / `x2` in terms of array-broadcasting. + +The ``true_divide(x1, x2)`` function is an alias for +``divide(x1, x2)``. + +Examples +-------- +>>> import dpnp as np +>>> np.divide(dp.array([1, -2, 6, -9]), np.array([-2, -2, -2, -2])) +array([-0.5, 1. , -3. , 4.5]) + +>>> x1 = np.arange(9.0).reshape((3, 3)) +>>> x2 = np.arange(3.0) +>>> np.divide(x1, x2) +array([[nan, 1. , 1. ], + [inf, 4. , 2.5], + [inf, 7. , 4. ]]) + +The ``/`` operator can be used as a shorthand for ``divide`` on +:class:`dpnp.ndarray`. + +>>> x1 = np.arange(9.0).reshape((3, 3)) +>>> x2 = 2 * np.ones(3) +>>> x1/x2 +array([[0. , 0.5, 1. ], + [1.5, 2. , 2.5], + [3. , 3.5, 4. ]]) +""" + +divide = DPNPBinaryFunc( + "divide", + ti._divide_result_type, + ti._divide, + _DIVIDE_DOCSTRING, + mkl_fn_to_call="_mkl_div_to_call", + mkl_impl_fn="_div", + binary_inplace_fn=ti._divide_inplace, + acceptance_fn=_acceptance_fn_divide, +) + + +
+[docs] +def ediff1d(ary, to_end=None, to_begin=None): + """ + The differences between consecutive elements of an array. + + For full documentation refer to :obj:`numpy.ediff1d`. + + Parameters + ---------- + ary : {dpnp.ndarray, usm_ndarray} + If necessary, will be flattened before the differences are taken. + to_end : array_like, optional + Number(s) to append at the end of the returned differences. + Default: ``None``. + to_begin : array_like, optional + Number(s) to prepend at the beginning of the returned differences. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + New array consisting differences among succeeding elements. + Loosely, this is ``ary.flat[1:] - ary.flat[:-1]``. + + See Also + -------- + :obj:`dpnp.diff` : Calculate the n-th discrete difference along the given + axis. + :obj:`dpnp.gradient` : Return the gradient of an N-dimensional array. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([1, 2, 4, 7, 0]) + >>> np.ediff1d(x) + array([ 1, 2, 3, -7]) + + >>> np.ediff1d(x, to_begin=-99, to_end=np.array([88, 99])) + array([-99, 1, 2, 3, -7, 88, 99]) + + The returned array is always 1D. + + >>> y = np.array([[1, 2, 4], [1, 6, 24]]) + >>> np.ediff1d(y) + array([ 1, 2, -3, 5, 18]) + + """ + + dpnp.check_supported_arrays_type(ary) + if ary.ndim > 1: + ary = dpnp.ravel(ary) + + # fast track default case + if to_begin is None and to_end is None: + return ary[1:] - ary[:-1] + + ary_dtype = ary.dtype + ary_sycl_queue = ary.sycl_queue + usm_type = ary.usm_type + + if to_begin is None: + l_begin = 0 + else: + to_begin, usm_type = _process_ediff1d_args( + to_begin, "to_begin", ary_dtype, ary_sycl_queue, usm_type + ) + l_begin = to_begin.size + + if to_end is None: + l_end = 0 + else: + to_end, usm_type = _process_ediff1d_args( + to_end, "to_end", ary_dtype, ary_sycl_queue, usm_type + ) + l_end = to_end.size + + # calculating using in place operation + l_diff = max(len(ary) - 1, 0) + result = dpnp.empty_like( + ary, shape=l_diff + l_begin + l_end, usm_type=usm_type + ) + + if l_begin > 0: + result[:l_begin] = to_begin + if l_end > 0: + result[l_begin + l_diff :] = to_end + dpnp.subtract(ary[1:], ary[:-1], out=result[l_begin : l_begin + l_diff]) + + return result
+ + + +_FABS_DOCSTRING = """ +Compute the absolute values element-wise. + +This function returns the absolute values (positive magnitude) of the data in +`x`. Complex values are not handled, use :obj:`dpnp.absolute` to find the +absolute values of complex data. + +For full documentation refer to :obj:`numpy.fabs`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + The array of numbers for which the absolute values are required. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + The absolute values of `x`, the returned values are always floats. + If `x` does not have a floating point data type, the returned array + will have a data type that depends on the capabilities of the device + on which the array resides. + +See Also +-------- +:obj:`dpnp.absolute` : Absolute values including `complex` types. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([-1.2, 1.2]) +>>> np.fabs(a) +array([1.2, 1.2]) +""" + +fabs = DPNPUnaryFunc( + "fabs", + ufi._fabs_result_type, + ufi._fabs, + _FABS_DOCSTRING, + mkl_fn_to_call="_mkl_abs_to_call", + mkl_impl_fn="_abs", +) + + +_FIX_DOCSTRING = """ +Round to nearest integer towards zero. + +Round an array of floats element-wise to nearest integer towards zero. +The rounded values are returned as floats. + +For full documentation refer to :obj:`numpy.fix`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + An array of floats to be rounded. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array with the rounded values and with the same dimensions as the input. + The returned array will have the default floating point data type for the + device where `a` is allocated. + If `out` is ``None`` then a float array is returned with the rounded values. + Otherwise the result is stored there and the return value `out` is + a reference to that array. + +See Also +-------- +:obj:`dpnp.round` : Round to given number of decimals. +:obj:`dpnp.rint` : Round elements of the array to the nearest integer. +:obj:`dpnp.trunc` : Return the truncated value of the input, element-wise. +:obj:`dpnp.floor` : Return the floor of the input, element-wise. +:obj:`dpnp.ceil` : Return the ceiling of the input, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> np.fix(np.array(3.14)) +array(3.) +>>> np.fix(np.array(3)) +array(3.) +>>> a = np.array([2.1, 2.9, -2.1, -2.9]) +>>> np.fix(a) +array([ 2., 2., -2., -2.]) +""" + +fix = DPNPUnaryFunc( + "fix", + ufi._fix_result_type, + ufi._fix, + _FIX_DOCSTRING, +) + + +_FLOAT_POWER_DOCSTRING = """ +Calculates `x1_i` raised to `x2_i` for each element `x1_i` of the input array +`x1` with the respective element `x2_i` of the input array `x2`. + +This differs from the power function in that boolean, integers, and float16 are +promoted to floats with a minimum precision of float32 so that the result is +always inexact. The intent is that the function will return a usable result for +negative powers and seldom overflow for positive powers. + +Negative values raised to a non-integral value will return ``NaN``. To get +complex results, cast the input to complex, or specify the ``dtype`` to be one +of complex dtype. + +For full documentation refer to :obj:`numpy.float_power`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have floating-point data types. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to floating-point data types. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. Array must have the correct shape and + the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the bases in `x1` raised to the exponents in `x2` + element-wise. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.power` : Power function that preserves type. + +Examples +-------- +>>> import dpnp as np + +Cube each element in an array: + +>>> x1 = np.arange(6) +>>> x1 +array([0, 1, 2, 3, 4, 5]) +>>> np.float_power(x1, 3) +array([ 0., 1., 8., 27., 64., 125.]) + +Raise the bases to different exponents: + +>>> x2 = np.array([1.0, 2.0, 3.0, 3.0, 2.0, 1.0]) +>>> np.float_power(x1, x2) +array([ 0., 1., 8., 27., 16., 5.]) + +The effect of broadcasting: + +>>> x2 = np.array([[1, 2, 3, 3, 2, 1], [1, 2, 3, 3, 2, 1]]) +>>> x2 +array([[1, 2, 3, 3, 2, 1], + [1, 2, 3, 3, 2, 1]]) +>>> np.float_power(x1, x2) +array([[ 0., 1., 8., 27., 16., 5.], + [ 0., 1., 8., 27., 16., 5.]]) + +Negative values raised to a non-integral value will result in ``NaN``: + +>>> x3 = np.array([-1, -4]) +>>> np.float_power(x3, 1.5) +array([nan, nan]) + +To get complex results, give the argument one of complex dtype, i.e. +``dtype=np.complex64``: + +>>> np.float_power(x3, 1.5, dtype=np.complex64) +array([1.1924881e-08-1.j, 9.5399045e-08-8.j], dtype=complex64) +""" + +float_power = DPNPBinaryFunc( + "float_power", + ufi._float_power_result_type, + ti._pow, + _FLOAT_POWER_DOCSTRING, + mkl_fn_to_call="_mkl_pow_to_call", + mkl_impl_fn="_pow", + binary_inplace_fn=ti._pow_inplace, +) + + +_FLOOR_DOCSTRING = """ +Returns the floor for each element `x_i` for input array `x`. + +The floor of `x_i` is the largest integer `n`, such that `n <= x_i`. + +For full documentation refer to :obj:`numpy.floor`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a real-valued data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise floor. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.ceil` : Compute the ceiling of the input, element-wise. +:obj:`dpnp.trunc` : Return the truncated value of the input, element-wise. +:obj:`dpnp.rint` : Round elements of the array to the nearest integer. +:obj:`dpnp.fix` : Round to nearest integer towards zero, element-wise. + +Notes +----- +Some spreadsheet programs calculate the "floor-towards-zero", in other words floor(-2.5) == -2. +DPNP instead uses the definition of floor where floor(-2.5) == -3. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0]) +>>> np.floor(a) +array([-2.0, -2.0, -1.0, 0.0, 1.0, 1.0, 2.0]) +""" + +floor = DPNPUnaryFunc( + "floor", + ti._floor_result_type, + ti._floor, + _FLOOR_DOCSTRING, + mkl_fn_to_call="_mkl_floor_to_call", + mkl_impl_fn="_floor", +) + + +_FLOOR_DIVIDE_DOCSTRING = """ +Calculates the ratio for each element `x1_i` of the input array `x1` with +the respective element `x2_i` of the input array `x2` to the greatest +integer-value number that is not greater than the division result. + +For full documentation refer to :obj:`numpy.floor_divide`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise floor of division. + The data type of the returned array is determined by the Type + Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.remainder` : Remainder complementary to floor_divide. +:obj:`dpnp.divide` : Standard division. +:obj:`dpnp.floor` : Round a number to the nearest integer toward minus infinity. +:obj:`dpnp.ceil` : Round a number to the nearest integer toward infinity. + +Examples +-------- +>>> import dpnp as np +>>> np.floor_divide(np.array([1, -1, -2, -9]), -2) +array([-1, 0, 1, 4]) + +>>> np.floor_divide(np.array([1., 2., 3., 4.]), 2.5) +array([ 0., 0., 1., 1.]) + +The ``//`` operator can be used as a shorthand for ``floor_divide`` on +:class:`dpnp.ndarray`. + +>>> x1 = np.array([1., 2., 3., 4.]) +>>> x1 // 2.5 +array([0., 0., 1., 1.]) +""" + +floor_divide = DPNPBinaryFunc( + "floor_divide", + ti._floor_divide_result_type, + ti._floor_divide, + _FLOOR_DIVIDE_DOCSTRING, + binary_inplace_fn=ti._floor_divide_inplace, +) + + +_FMAX_DOCSTRING = """ +Compares two input arrays `x1` and `x2` and returns a new array containing the +element-wise maxima. + +If one of the elements being compared is a NaN, then the non-NaN element is +returned. If both elements are NaNs then the first is returned. The latter +distinction is important for complex NaNs, which are defined as at least one of +the real or imaginary parts being a NaN. The net effect is that NaNs are +ignored when possible. + +For full documentation refer to :obj:`numpy.fmax`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise maxima. The data type of + the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.fmin` : Element-wise minimum of two arrays, ignores NaNs. +:obj:`dpnp.maximum` : Element-wise maximum of two arrays, propagates NaNs. +:obj:`dpnp.max` : The maximum value of an array along a given axis, propagates NaNs. +:obj:`dpnp.nanmax` : The maximum value of an array along a given axis, ignores NaNs. +:obj:`dpnp.minimum` : Element-wise minimum of two arrays, propagates NaNs. +:obj:`dpnp.min` : The minimum value of an array along a given axis, propagates NaNs. +:obj:`dpnp.nanmin` : The minimum value of an array along a given axis, ignores NaNs. + +Notes +----- +``fmax(x1, x2)`` is equivalent to ``dpnp.where(x1 >= x2, x1, x2)`` when neither +`x1` nor `x2` are NaNs, but it is faster and does proper broadcasting. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([2, 3, 4]) +>>> x2 = np.array([1, 5, 2]) +>>> np.fmax(x1, x2) +array([2, 5, 4]) + +>>> x1 = np.eye(2) +>>> x2 = np.array([0.5, 2]) +>>> np.fmax(x1, x2) +array([[1. , 2. ], + [0.5, 2. ]]) + +>>> x1 = np.array([np.nan, 0, np.nan]) +>>> x2 = np.array([0, np.nan, np.nan]) +>>> np.fmax(x1, x2) +array([ 0., 0., nan]) +""" + +fmax = DPNPBinaryFunc( + "fmax", + ufi._fmax_result_type, + ufi._fmax, + _FMAX_DOCSTRING, + mkl_fn_to_call="_mkl_fmax_to_call", + mkl_impl_fn="_fmax", +) + + +_FMIN_DOCSTRING = """ +Compares two input arrays `x1` and `x2` and returns a new array containing the +element-wise minima. + +If one of the elements being compared is a NaN, then the non-NaN element is +returned. If both elements are NaNs then the first is returned. The latter +distinction is important for complex NaNs, which are defined as at least one of +the real or imaginary parts being a NaN. The net effect is that NaNs are +ignored when possible. + +For full documentation refer to :obj:`numpy.fmin`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise minima. The data type of + the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.fmax` : Element-wise maximum of two arrays, ignores NaNs. +:obj:`dpnp.minimum` : Element-wise minimum of two arrays, propagates NaNs. +:obj:`dpnp.min` : The minimum value of an array along a given axis, propagates NaNs. +:obj:`dpnp.nanmin` : The minimum value of an array along a given axis, ignores NaNs. +:obj:`dpnp.maximum` : Element-wise maximum of two arrays, propagates NaNs. +:obj:`dpnp.max` : The maximum value of an array along a given axis, propagates NaNs. +:obj:`dpnp.nanmax` : The maximum value of an array along a given axis, ignores NaNs. + +Notes +----- +``fmin(x1, x2)`` is equivalent to ``dpnp.where(x1 <= x2, x1, x2)`` when neither +`x1` nor `x2` are NaNs, but it is faster and does proper broadcasting. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([2, 3, 4]) +>>> x2 = np.array([1, 5, 2]) +>>> np.fmin(x1, x2) +array([1, 3, 2]) + +>>> x1 = np.eye(2) +>>> x2 = np.array([0.5, 2]) +>>> np.fmin(x1, x2) +array([[0.5, 0. ], + [0. , 1. ]]) + +>>> x1 = np.array([np.nan, 0, np.nan]) +>>> x2 = np.array([0, np.nan, np.nan]) +>>> np.fmin(x1, x2) +array([ 0., 0., nan]) +""" + +fmin = DPNPBinaryFunc( + "fmin", + ufi._fmin_result_type, + ufi._fmin, + _FMIN_DOCSTRING, + mkl_fn_to_call="_mkl_fmin_to_call", + mkl_impl_fn="_fmin", +) + + +_FMOD_DOCSTRING = """ +Calculates the remainder of division for each element `x1_i` of the input array +`x1` with the respective element `x2_i` of the input array `x2`. + +This function is equivalent to the Matlab(TM) ``rem`` function and should not +be confused with the Python modulus operator ``x1 % x2``. + +For full documentation refer to :obj:`numpy.fmod`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have a real-valued data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have a real-valued data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise remainders. The data type of the + returned array is determined by the Type Promotion Rules. + +Limitations +---------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.remainder` : Equivalent to the Python ``%`` operator. +:obj:`dpnp.divide` : Standard division. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([-3, -2, -1, 1, 2, 3]) +>>> np.fmod(a, 2) +array([-1, 0, -1, 1, 0, 1]) +>>> np.remainder(a, 2) +array([1, 0, 1, 1, 0, 1]) + +>>> np.fmod(np.array([5, 3]), np.array([2, 2.])) +array([1., 1.]) +>>> a = np.arange(-3, 3).reshape(3, 2) +>>> a +array([[-3, -2], + [-1, 0], + [ 1, 2]]) +>>> np.fmod(a, np.array([2, 2])) +array([[-1, 0], + [-1, 0], + [ 1, 0]]) +""" + +fmod = DPNPBinaryFunc( + "fmod", + ufi._fmod_result_type, + ufi._fmod, + _FMOD_DOCSTRING, + mkl_fn_to_call="_mkl_fmod_to_call", + mkl_impl_fn="_fmod", +) + + +
+[docs] +def gradient(f, *varargs, axis=None, edge_order=1): + """ + Return the gradient of an N-dimensional array. + + The gradient is computed using second order accurate central differences + in the interior points and either first or second order accurate one-sides + (forward or backwards) differences at the boundaries. + The returned gradient hence has the same shape as the input array. + + For full documentation refer to :obj:`numpy.gradient`. + + Parameters + ---------- + f : {dpnp.ndarray, usm_ndarray} + An N-dimensional array containing samples of a scalar function. + varargs : {scalar, list of scalars, list of arrays}, optional + Spacing between `f` values. Default unitary spacing for all dimensions. + Spacing can be specified using: + + 1. Single scalar to specify a sample distance for all dimensions. + 2. N scalars to specify a constant sample distance for each dimension. + i.e. `dx`, `dy`, `dz`, ... + 3. N arrays to specify the coordinates of the values along each + dimension of `f`. The length of the array must match the size of + the corresponding dimension + 4. Any combination of N scalars/arrays with the meaning of 2. and 3. + + If `axis` is given, the number of `varargs` must equal the number of + axes. + Default: ``1``. + axis : {None, int, tuple of ints}, optional + Gradient is calculated only along the given axis or axes. + The default is to calculate the gradient for all the axes of the input + array. `axis` may be negative, in which case it counts from the last to + the first axis. + Default: ``None``. + edge_order : {1, 2}, optional + Gradient is calculated using N-th order accurate differences + at the boundaries. + Default: ``1``. + + Returns + ------- + gradient : {dpnp.ndarray, list of ndarray} + A list of :class:`dpnp.ndarray` (or a single :class:`dpnp.ndarray` if + there is only one dimension) corresponding to the derivatives of `f` + with respect to each dimension. + Each derivative has the same shape as `f`. + + See Also + -------- + :obj:`dpnp.diff` : Calculate the n-th discrete difference along the given + axis. + :obj:`dpnp.ediff1d` : Calculate the differences between consecutive + elements of an array. + + Examples + -------- + >>> import dpnp as np + >>> f = np.array([1, 2, 4, 7, 11, 16], dtype=float) + >>> np.gradient(f) + array([1. , 1.5, 2.5, 3.5, 4.5, 5. ]) + >>> np.gradient(f, 2) + array([0.5 , 0.75, 1.25, 1.75, 2.25, 2.5 ]) + + Spacing can be also specified with an array that represents the coordinates + of the values `f` along the dimensions. + For instance a uniform spacing: + + >>> x = np.arange(f.size) + >>> np.gradient(f, x) + array([1. , 1.5, 2.5, 3.5, 4.5, 5. ]) + + Or a non uniform one: + + >>> x = np.array([0., 1., 1.5, 3.5, 4., 6.], dtype=float) + >>> np.gradient(f, x) + array([1. , 3. , 3.5, 6.7, 6.9, 2.5]) + + For two dimensional arrays, the return will be two arrays ordered by + axis. In this example the first array stands for the gradient in + rows and the second one in columns direction: + + >>> np.gradient(np.array([[1, 2, 6], [3, 4, 5]], dtype=float)) + (array([[ 2., 2., -1.], + [ 2., 2., -1.]]), + array([[1. , 2.5, 4. ], + [1. , 1. , 1. ]])) + + In this example the spacing is also specified: + uniform for axis=0 and non uniform for axis=1 + + >>> dx = 2. + >>> y = np.array([1., 1.5, 3.5]) + >>> np.gradient(np.array([[1, 2, 6], [3, 4, 5]], dtype=float), dx, y) + (array([[ 1. , 1. , -0.5], + [ 1. , 1. , -0.5]]), + array([[2. , 2. , 2. ], + [2. , 1.7, 0.5]])) + + It is possible to specify how boundaries are treated using `edge_order` + + >>> x = np.array([0, 1, 2, 3, 4]) + >>> f = x**2 + >>> np.gradient(f, edge_order=1) + array([1., 2., 4., 6., 7.]) + >>> np.gradient(f, edge_order=2) + array([0., 2., 4., 6., 8.]) + + The `axis` keyword can be used to specify a subset of axes of which the + gradient is calculated + + >>> np.gradient(np.array([[1, 2, 6], [3, 4, 5]], dtype=float), axis=0) + array([[ 2., 2., -1.], + [ 2., 2., -1.]]) + + """ + + dpnp.check_supported_arrays_type(f) + ndim = f.ndim # number of dimensions + + if axis is None: + axes = tuple(range(ndim)) + else: + axes = normalize_axis_tuple(axis, ndim) + + dx = _gradient_build_dx(f, axes, *varargs) + if edge_order > 2: + raise ValueError("'edge_order' greater than 2 not supported") + + # Use central differences on interior and one-sided differences on the + # endpoints. This preserves second order-accuracy over the full domain. + outvals = [] + + # create slice objects --- initially all are [:, :, ..., :] + slice1 = [slice(None)] * ndim + slice2 = [slice(None)] * ndim + slice3 = [slice(None)] * ndim + slice4 = [slice(None)] * ndim + + otype = f.dtype + if dpnp.issubdtype(otype, dpnp.inexact): + pass + else: + # All other types convert to floating point. + # First check if f is a dpnp integer type; if so, convert f to default + # float type to avoid modular arithmetic when computing changes in f. + if dpnp.issubdtype(otype, dpnp.integer): + f = f.astype(dpnp.default_float_type()) + otype = dpnp.default_float_type() + + for axis_, ax_dx in zip(axes, dx): + if f.shape[axis_] < edge_order + 1: + raise ValueError( + "Shape of array too small to calculate a numerical gradient, " + "at least (edge_order + 1) elements are required." + ) + + # result allocation + if dpnp.isscalar(ax_dx): + usm_type = f.usm_type + else: + usm_type = dpu.get_coerced_usm_type([f.usm_type, ax_dx.usm_type]) + out = dpnp.empty_like(f, dtype=otype, usm_type=usm_type) + + # spacing for the current axis + uniform_spacing = numpy.ndim(ax_dx) == 0 + + # Numerical differentiation: 2nd order interior + _gradient_num_diff_2nd_order_interior( + f, + ax_dx, + out, + (slice1, slice2, slice3, slice4), + axis_, + uniform_spacing, + ) + + # Numerical differentiation: 1st and 2nd order edges + _gradient_num_diff_edges( + f, + ax_dx, + out, + (slice1, slice2, slice3, slice4), + axis_, + uniform_spacing, + edge_order, + ) + + outvals.append(out) + + # reset the slice object in this dimension to ":" + slice1[axis_] = slice(None) + slice2[axis_] = slice(None) + slice3[axis_] = slice(None) + slice4[axis_] = slice(None) + + if len(axes) == 1: + return outvals[0] + return tuple(outvals)
+ + + +_HEAVISIDE_DOCSTRING = """ +Compute the Heaviside step function. + +The Heaviside step function is defined as:: + + 0 if x1 < 0 + heaviside(x1, x2) = x2 if x1 == 0 + 1 if x1 > 0 + +where `x2` is often taken to be 0.5, but 0 and 1 are also sometimes used. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + Input values. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + The value of the function when `x1` is ``0``. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + The output array, element-wise Heaviside step function of `x1`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([-1.5, 0, 2.0]) +>>> np.heaviside(a, 0.5) +array([0. , 0.5, 1. ]) +>>> np.heaviside(a, 1) +array([0., 1., 1.]) +""" + +heaviside = DPNPBinaryFunc( + "heaviside", + ufi._heaviside_result_type, + ufi._heaviside, + _HEAVISIDE_DOCSTRING, +) + + +_IMAG_DOCSTRING = """ +Computes imaginary part of each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.imag`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise imaginary component of input. + If the input is a real-valued data type, the returned array has + the same data type. If the input is a complex floating-point + data type, the returned array has a floating-point data type + with the same floating-point precision as complex input. + +See Also +-------- +:obj:`dpnp.real` : Return the real part of the complex argument. +:obj:`dpnp.angle` : Return the angle of the complex argument. +:obj:`dpnp.real_if_close` : Return the real part of the input is complex + with all imaginary parts close to zero. +:obj:`dpnp.conj` : Return the complex conjugate, element-wise. +:obj:`dpnp.conjugate` : Return the complex conjugate, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([1+2j, 3+4j, 5+6j]) +>>> a.imag +array([2., 4., 6.]) + +>>> a.imag = np.array([8, 10, 12]) +>>> a +array([1. +8.j, 3.+10.j, 5.+12.j]) + +>>> np.imag(np.array(1 + 1j)) +array(1.) +""" + +imag = DPNPUnaryFunc( + "imag", + ti._imag_result_type, + ti._imag, + _IMAG_DOCSTRING, +) + + +_MAXIMUM_DOCSTRING = """ +Compares two input arrays `x1` and `x2` and returns a new array containing the +element-wise maxima. + +If one of the elements being compared is a NaN, then that element is returned. +If both elements are NaNs then the first is returned. The latter distinction is +important for complex NaNs, which are defined as at least one of the real or +imaginary parts being a NaN. The net effect is that NaNs are propagated. + +For full documentation refer to :obj:`numpy.maximum`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise maxima. The data type of + the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.minimum` : Element-wise minimum of two arrays, propagates NaNs. +:obj:`dpnp.fmax` : Element-wise maximum of two arrays, ignores NaNs. +:obj:`dpnp.max` : The maximum value of an array along a given axis, propagates NaNs. +:obj:`dpnp.nanmax` : The maximum value of an array along a given axis, ignores NaNs. +:obj:`dpnp.fmin` : Element-wise minimum of two arrays, ignores NaNs. +:obj:`dpnp.min` : The minimum value of an array along a given axis, propagates NaNs. +:obj:`dpnp.nanmin` : The minimum value of an array along a given axis, ignores NaNs. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([2, 3, 4]) +>>> x2 = np.array([1, 5, 2]) +>>> np.maximum(x1, x2) +array([2, 5, 4]) + +>>> x1 = np.eye(2) +>>> x2 = np.array([0.5, 2]) +>>> np.maximum(x1, x2) # broadcasting +array([[1. , 2. ], + [0.5, 2. ]]) + +>>> x1 = np.array([np.nan, 0, np.nan]) +>>> x2 = np.array([0, np.nan, np.nan]) +>>> np.maximum(x1, x2) +array([nan, nan, nan]) + +>>> np.maximum(np.array(np.inf), 1) +array(inf) +""" + +maximum = DPNPBinaryFunc( + "maximum", + ti._maximum_result_type, + ti._maximum, + _MAXIMUM_DOCSTRING, +) + + +_MINIMUM_DOCSTRING = """ +Compares two input arrays `x1` and `x2` and returns a new array containing the +element-wise minima. + +If one of the elements being compared is a NaN, then that element is returned. +If both elements are NaNs then the first is returned. The latter distinction is +important for complex NaNs, which are defined as at least one of the real or +imaginary parts being a NaN. The net effect is that NaNs are propagated. + +For full documentation refer to :obj:`numpy.minimum`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise minima. The data type of + the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.maximum` : Element-wise maximum of two arrays, propagates NaNs. +:obj:`dpnp.fmin` : Element-wise minimum of two arrays, ignores NaNs. +:obj:`dpnp.min` : The minimum value of an array along a given axis, propagates NaNs. +:obj:`dpnp.nanmin` : The minimum value of an array along a given axis, ignores NaNs. +:obj:`dpnp.fmax` : Element-wise maximum of two arrays, ignores NaNs. +:obj:`dpnp.max` : The maximum value of an array along a given axis, propagates NaNs. +:obj:`dpnp.nanmax` : The maximum value of an array along a given axis, ignores NaNs. + +Examples +-------- +>>> import dpnp as np +>>> x1 = np.array([2, 3, 4]) +>>> x2 = np.array([1, 5, 2]) +>>> np.minimum(x1, x2) +array([1, 3, 2]) + +>>> x1 = np.eye(2) +>>> x2 = np.array([0.5, 2]) +>>> np.minimum(x1, x2) # broadcasting +array([[0.5, 0. ], + [0. , 1. ]] + +>>> x1 = np.array([np.nan, 0, np.nan]) +>>> x2 = np.array([0, np.nan, np.nan]) +>>> np.minimum(x1, x2) +array([nan, nan, nan]) + +>>> np.minimum(np.array(-np.inf), 1) +array(-inf) +""" + +minimum = DPNPBinaryFunc( + "minimum", + ti._minimum_result_type, + ti._minimum, + _MINIMUM_DOCSTRING, +) + + +
+[docs] +def modf(x1, **kwargs): + """ + Return the fractional and integral parts of an array, element-wise. + + For full documentation refer to :obj:`numpy.modf`. + + Limitations + ----------- + Parameter `x` is supported as :obj:`dpnp.ndarray`. + Keyword argument `kwargs` is currently unsupported. + Otherwise the function will be executed sequentially on CPU. + Input array data types are limited by supported DPNP :ref:`Data types`. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, 2]) + >>> result = np.modf(a) + >>> [[x for x in y] for y in result ] + [[1.0, 2.0], [0.0, 0.0]] + + """ + + x1_desc = dpnp.get_dpnp_descriptor(x1, copy_when_nondefault_queue=False) + if x1_desc and not kwargs: + return dpnp_modf(x1_desc) + + return call_origin(numpy.modf, x1, **kwargs)
+ + + +_MULTIPLY_DOCSTRING = """ +Calculates the product for each element `x1_i` of the input array `x1` with the +respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.multiply`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise products. The data type of + the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +Notes +----- +Equivalent to `x1` * `x2` in terms of array broadcasting. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([1, 2, 3, 4, 5]) +>>> np.multiply(a, a) +array([ 1, 4, 9, 16, 25])] + +>>> x1 = np.arange(9.0).reshape((3, 3)) +>>> x2 = np.arange(3.0) +>>> np.multiply(x1, x2) +array([[ 0., 1., 4.], + [ 0., 4., 10.], + [ 0., 7., 16.]]) + +The ``*`` operator can be used as a shorthand for ``multiply`` on +:class:`dpnp.ndarray`. + +>>> x1 * x2 +array([[ 0., 1., 4.], + [ 0., 4., 10.], + [ 0., 7., 16.]]) +""" + +multiply = DPNPBinaryFunc( + "multiply", + ti._multiply_result_type, + ti._multiply, + _MULTIPLY_DOCSTRING, + mkl_fn_to_call="_mkl_mul_to_call", + mkl_impl_fn="_mul", + binary_inplace_fn=ti._multiply_inplace, +) + + +
+[docs] +def nan_to_num(x, copy=True, nan=0.0, posinf=None, neginf=None): + """ + Replace ``NaN`` with zero and infinity with large finite numbers (default + behavior) or with the numbers defined by the user using the `nan`, + `posinf` and/or `neginf` keywords. + + If `x` is inexact, ``NaN`` is replaced by zero or by the user defined value + in `nan` keyword, infinity is replaced by the largest finite floating point + values representable by ``x.dtype`` or by the user defined value in + `posinf` keyword and -infinity is replaced by the most negative finite + floating point values representable by ``x.dtype`` or by the user defined + value in `neginf` keyword. + + For complex dtypes, the above is applied to each of the real and + imaginary components of `x` separately. + + If `x` is not inexact, then no replacements are made. + + For full documentation refer to :obj:`numpy.nan_to_num`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input data. + copy : bool, optional + Whether to create a copy of `x` (``True``) or to replace values + in-place (``False``). The in-place operation only occurs if casting to + an array does not require a copy. + nan : {int, float, bool}, optional + Value to be used to fill ``NaN`` values. + Default: ``0.0``. + posinf : {int, float, bool, None}, optional + Value to be used to fill positive infinity values. If no value is + passed then positive infinity values will be replaced with a very + large number. + Default: ``None``. + neginf : {int, float, bool, None} optional + Value to be used to fill negative infinity values. If no value is + passed then negative infinity values will be replaced with a very + small (or negative) number. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + `x`, with the non-finite values replaced. If `copy` is ``False``, this + may be `x` itself. + + See Also + -------- + :obj:`dpnp.isinf` : Shows which elements are positive or negative infinity. + :obj:`dpnp.isneginf` : Shows which elements are negative infinity. + :obj:`dpnp.isposinf` : Shows which elements are positive infinity. + :obj:`dpnp.isnan` : Shows which elements are Not a Number (NaN). + :obj:`dpnp.isfinite` : Shows which elements are finite + (not NaN, not infinity) + + Examples + -------- + >>> import dpnp as np + >>> np.nan_to_num(np.array(np.inf)) + array(1.79769313e+308) + >>> np.nan_to_num(np.array(-np.inf)) + array(-1.79769313e+308) + >>> np.nan_to_num(np.array(np.nan)) + array(0.) + >>> x = np.array([np.inf, -np.inf, np.nan, -128, 128]) + >>> np.nan_to_num(x) + array([ 1.79769313e+308, -1.79769313e+308, 0.00000000e+000, + -1.28000000e+002, 1.28000000e+002]) + >>> np.nan_to_num(x, nan=-9999, posinf=33333333, neginf=33333333) + array([ 3.3333333e+07, 3.3333333e+07, -9.9990000e+03, -1.2800000e+02, + 1.2800000e+02]) + >>> y = np.array([complex(np.inf, np.nan), np.nan, complex(np.nan, np.inf)]) + >>> np.nan_to_num(y) + array([1.79769313e+308 +0.00000000e+000j, # may vary + 0.00000000e+000 +0.00000000e+000j, + 0.00000000e+000 +1.79769313e+308j]) + >>> np.nan_to_num(y, nan=111111, posinf=222222) + array([222222.+111111.j, 111111. +0.j, 111111.+222222.j]) + + """ + + dpnp.check_supported_arrays_type(x) + + # Python boolean is a subtype of an integer + # so additional check for bool is not needed. + if not isinstance(nan, (int, float)): + raise TypeError( + "nan must be a scalar of an integer, float, bool, " + f"but got {type(nan)}" + ) + + out = dpnp.empty_like(x) if copy else x + x_type = x.dtype.type + + if not issubclass(x_type, dpnp.inexact): + return x + + parts = ( + (x.real, x.imag) if issubclass(x_type, dpnp.complexfloating) else (x,) + ) + parts_out = ( + (out.real, out.imag) + if issubclass(x_type, dpnp.complexfloating) + else (out,) + ) + max_f, min_f = _get_max_min(x.real.dtype) + if posinf is not None: + if not isinstance(posinf, (int, float)): + raise TypeError( + "posinf must be a scalar of an integer, float, bool, " + f"or be None, but got {type(posinf)}" + ) + max_f = posinf + if neginf is not None: + if not isinstance(neginf, (int, float)): + raise TypeError( + "neginf must be a scalar of an integer, float, bool, " + f"or be None, but got {type(neginf)}" + ) + min_f = neginf + + for part, part_out in zip(parts, parts_out): + nan_mask = dpnp.isnan(part) + posinf_mask = dpnp.isposinf(part) + neginf_mask = dpnp.isneginf(part) + + part = dpnp.where(nan_mask, nan, part, out=part_out) + part = dpnp.where(posinf_mask, max_f, part, out=part_out) + part = dpnp.where(neginf_mask, min_f, part, out=part_out) + + return out
+ + + +_NEGATIVE_DOCSTRING = """ +Computes the numerical negative for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.negative`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the negative of `x`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.positive` : Return the numerical positive of each element of `x`. +:obj:`dpnp.copysign` : Change the sign of `x1` to that of `x2`, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> np.negative(np.array([1, -1])) +array([-1, 1]) + +The ``-`` operator can be used as a shorthand for ``negative`` on +:class:`dpnp.ndarray`. + +>>> x = np.array([1., -1.]) +>>> -x +array([-1., 1.]) +""" + +negative = DPNPUnaryFunc( + "negative", + ti._negative_result_type, + ti._negative, + _NEGATIVE_DOCSTRING, + acceptance_fn=acceptance_fn_negative, +) + + +_NEXTAFTER_DOCSTRING = """ +Return the next floating-point value after `x1` towards `x2`, element-wise. + +For full documentation refer to :obj:`numpy.nextafter`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + Values to find the next representable value of. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + The direction where to look for the next representable value of `x1`. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. Array must have the correct shape and + the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + The next representable values of `x1` in the direction of `x2`. The data + type of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array(1, dtype=np.float32) +>>> eps = np.finfo(a.dtype).eps +>>> np.nextafter(a, 2) == eps + 1 +array(True) + +>>> a = np.array([1, 2], dtype=np.float32) +>>> b = np.array([2, 1], dtype=np.float32) +>>> c = np.array([eps + 1, 2 - eps]) +>>> np.nextafter(a, b) == c +array([ True, True]) +""" + +nextafter = DPNPBinaryFunc( + "nextafter", + ti._nextafter_result_type, + ti._nextafter, + _NEXTAFTER_DOCSTRING, + mkl_fn_to_call="_mkl_nextafter_to_call", + mkl_impl_fn="_nextafter", +) + + +_POSITIVE_DOCSTRING = """ +Computes the numerical positive for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.positive`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the positive of `x`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.negative` : Return the numerical negative of each element of `x`. +:obj:`dpnp.copysign` : Change the sign of `x1` to that of `x2`, element-wise. + +Note +---- +Equivalent to `x.copy()`, but only defined for types that support arithmetic. + +Examples +-------- +>>> import dpnp as np +>>> np.positive(np.array([1., -1.])) +array([ 1., -1.]) + +The ``+`` operator can be used as a shorthand for ``positive`` on +:class:`dpnp.ndarray`. + +>>> x = np.array([1., -1.]) +>>> +x +array([ 1., -1.]) +""" + +positive = DPNPUnaryFunc( + "positive", + ti._positive_result_type, + ti._positive, + _POSITIVE_DOCSTRING, + acceptance_fn=acceptance_fn_positive, +) + + +_POWER_DOCSTRING = """ +Calculates `x1_i` raised to `x2_i` for each element `x1_i` of the input array +`x1` with the respective element `x2_i` of the input array `x2`. + +Note that :obj:`dpnp.pow` is an alias of :obj:`dpnp.power`. + +For full documentation refer to :obj:`numpy.power`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. Array must have the correct shape and + the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the bases in `x1` raised to the exponents in `x2` + element-wise. The data type of the returned array is determined by the + Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.fmax` : Element-wise maximum of array elements. +:obj:`dpnp.fmin` : Element-wise minimum of array elements. +:obj:`dpnp.fmod` : Calculate the element-wise remainder of division. +:obj:`dpnp.float_power` : Power function that promotes integers to floats. + +Examples +-------- +>>> import dpnp as dp +>>> a = dp.arange(6) +>>> dp.power(a, 3) +array([ 0, 1, 8, 27, 64, 125]) + +Raise the bases to different exponents. + +>>> b = dp.array([1.0, 2.0, 3.0, 3.0, 2.0, 1.0]) +>>> dp.power(a, b) +array([ 0., 1., 8., 27., 16., 5.]) + +The effect of broadcasting. + +>>> c = dp.array([[1, 2, 3, 3, 2, 1], [1, 2, 3, 3, 2, 1]]) +>>> dp.power(a, c) +array([[ 0, 1, 8, 27, 16, 5], + [ 0, 1, 8, 27, 16, 5]]) + +The ``**`` operator can be used as a shorthand for ``power`` on +:class:`dpnp.ndarray`. + +>>> b = dp.array([1, 2, 3, 3, 2, 1]) +>>> a = dp.arange(6) +>>> a ** b +array([ 0, 1, 8, 27, 16, 5]) + +Negative values raised to a non-integral value will result in ``nan``. + +>>> d = dp.array([-1.0, -4.0]) +>>> dp.power(d, 1.5) +array([nan, nan]) +""" + +power = DPNPBinaryFunc( + "power", + ti._pow_result_type, + ti._pow, + _POWER_DOCSTRING, + mkl_fn_to_call="_mkl_pow_to_call", + mkl_impl_fn="_pow", + binary_inplace_fn=ti._pow_inplace, +) + +pow = power # pow is an alias for power + + +
+[docs] +def prod( + a, + axis=None, + dtype=None, + out=None, + keepdims=False, + initial=None, + where=True, +): + """ + Return the product of array elements over a given axis. + + For full documentation refer to :obj:`numpy.prod`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int or tuple of ints}, optional + Axis or axes along which a product is performed. The default, + ``axis=None``, will calculate the product of all the elements in the + input array. If `axis` is negative it counts from the last to the first + axis. + If `axis` is a tuple of integers, a product is performed on all of the + axes specified in the tuple instead of a single axis or all the axes as + before. + Default: ``None``. + dtype : {None, dtype}, optional + The type of the returned array, as well as of the accumulator in which + the elements are multiplied. The dtype of `a` is used by default unless + `a` has an integer dtype of less precision than the default platform + integer. In that case, if `a` is signed then the platform integer is + used while if `a` is unsigned then an unsigned integer of the same + precision as the platform integer is used. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output, but the type of the output + values will be cast if necessary. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the input array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array with the same shape as `a`, with the specified axis removed. + If `a` is a 0-d array, or if `axis` is ``None``, a zero-dimensional + array is returned. If an output array is specified, a reference to + `out` is returned. + + Limitations + ----------- + Parameters `initial` and `where` are only supported with their default + values. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.nanprod` : Return the product of array elements over a given + axis treating Not a Numbers (NaNs) as ones. + + Examples + -------- + >>> import dpnp as np + >>> np.prod(np.array([1, 2])) + array(2) + + >>> a = np.array([[1, 2], [3, 4]]) + >>> np.prod(a) + array(24) + + >>> np.prod(a, axis=1) + array([ 2, 12]) + >>> np.prod(a, axis=0) + array([3, 8]) + + >>> x = np.array([1, 2, 3], dtype=np.int8) + >>> np.prod(x).dtype == int + True + + """ + + dpnp.check_limitations(initial=initial, where=where) + usm_a = dpnp.get_usm_ndarray(a) + + return dpnp_wrap_reduction_call( + a, + out, + dpt.prod, + _get_reduction_res_dt, + usm_a, + axis=axis, + dtype=dtype, + keepdims=keepdims, + )
+ + + +_PROJ_DOCSTRING = """ +Computes projection of each element `x_i` for input array `x`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise projection. + +Limitations +----------- +Parameters `where' and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.absolute` : Returns the magnitude of a complex number, element-wise. +:obj:`dpnp.conj` : Return the complex conjugate, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> np.proj(np.array([1, -2.3, 2.1-1.7j])) +array([ 1. +0.j, -2.3+0.j, 2.1-1.7.j]) + +>>> np.proj(np.array([complex(1,np.inf), complex(1,-np.inf), complex(np.inf,-1),])) +array([inf+0.j, inf-0.j, inf-0.j]) +""" + +proj = DPNPUnaryFunc( + "proj", + ti._proj_result_type, + ti._proj, + _PROJ_DOCSTRING, +) + + +_REAL_DOCSTRING = """ +Computes real part of each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.real`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise real component of input. + If the input is a real-valued data type, the returned array has + the same data type. If the input is a complex floating-point + data type, the returned array has a floating-point data type + with the same floating-point precision as complex input. + +See Also +-------- +:obj:`dpnp.real_if_close` : Return the real part of the input is complex + with all imaginary parts close to zero. +:obj:`dpnp.imag` : Return the imaginary part of the complex argument. +:obj:`dpnp.angle` : Return the angle of the complex argument. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([1+2j, 3+4j, 5+6j]) +>>> a.real +array([1., 3., 5.]) +>>> a.real = 9 +>>> a +array([9.+2.j, 9.+4.j, 9.+6.j]) +>>> a.real = np.array([9, 8, 7]) +>>> a +array([9.+2.j, 8.+4.j, 7.+6.j]) +>>> np.real(np.array(1 + 1j)) +array(1.) +""" + +real = DPNPReal( + "real", + ti._real_result_type, + ti._real, + _REAL_DOCSTRING, +) + + +
+[docs] +def real_if_close(a, tol=100): + """ + If input is complex with all imaginary parts close to zero, return real + parts. + + "Close to zero" is defined as `tol` * (machine epsilon of the type for `a`). + + For full documentation refer to :obj:`numpy.real_if_close`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + tol : scalar, optional + Tolerance in machine epsilons for the complex part of the elements in + the array. If the tolerance is <=1, then the absolute tolerance is used. + Default: ``100``. + + Returns + ------- + out : dpnp.ndarray + If `a` is real, the type of `a` is used for the output. If `a` has + complex elements, the returned type is float. + + See Also + -------- + :obj:`dpnp.real` : Return the real part of the complex argument. + :obj:`dpnp.imag` : Return the imaginary part of the complex argument. + :obj:`dpnp.angle` : Return the angle of the complex argument. + + Examples + -------- + >>> import dpnp as np + >>> np.finfo(np.float64).eps + 2.220446049250313e-16 # may vary + + >>> a = np.array([2.1 + 4e-14j, 5.2 + 3e-15j]) + >>> np.real_if_close(a, tol=1000) + array([2.1, 5.2]) + + >>> a = np.array([2.1 + 4e-13j, 5.2 + 3e-15j]) + >>> np.real_if_close(a, tol=1000) + array([2.1+4.e-13j, 5.2+3.e-15j]) + + """ + + dpnp.check_supported_arrays_type(a) + + if not dpnp.issubdtype(a.dtype, dpnp.complexfloating): + return a + + if not dpnp.isscalar(tol): + raise TypeError(f"Tolerance must be a scalar, but got {type(tol)}") + + if tol > 1: + f = dpnp.finfo(a.dtype.type) + tol = f.eps * tol + + if dpnp.all(dpnp.abs(a.imag) < tol): + return a.real + return a
+ + + +_REMAINDER_DOCSTRING = """ +Calculates the remainder of division for each element `x1_i` of the input array +`x1` with the respective element `x2_i` of the input array `x2`. + +This function is equivalent to the Python modulus operator. + +For full documentation refer to :obj:`numpy.remainder`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have a real-valued data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have a real-valued data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise remainders. Each remainder has the + same sign as respective element `x2_i`. The data type of the returned + array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.fmod` : Calculate the element-wise remainder of division. +:obj:`dpnp.divide` : Standard division. +:obj:`dpnp.floor` : Round a number to the nearest integer toward minus infinity. +:obj:`dpnp.floor_divide` : Compute the largest integer smaller or equal to the division of the inputs. +:obj:`dpnp.mod` : Calculate the element-wise remainder of division. + +Notes +----- +Returns ``0`` when `x2` is ``0`` and both `x1` and `x2` are (arrays of) +integers. +:obj:`dpnp.mod` is an alias of :obj:`dpnp.remainder`. + +Examples +-------- +>>> import dpnp as np +>>> np.remainder(np.array([4, 7]), np.array([2, 3])) +array([0, 1]) + +>>> np.remainder(np.arange(7), 5) +array([0, 1, 2, 3, 4, 0, 1]) + +The ``%`` operator can be used as a shorthand for ``remainder`` on +:class:`dpnp.ndarray`. + +>>> x1 = np.arange(7) +>>> x1 % 5 +array([0, 1, 2, 3, 4, 0, 1]) +""" + +remainder = DPNPBinaryFunc( + "remainder", + ti._remainder_result_type, + ti._remainder, + _REMAINDER_DOCSTRING, + binary_inplace_fn=ti._remainder_inplace, +) + +mod = remainder + + +_RINT_DOCSTRING = """ +Rounds each element `x_i` of the input array `x` to +the nearest integer-valued number. + +When two integers are equally close to `x_i`, the result is the nearest even +integer to `x_i`. + +For full documentation refer to :obj:`numpy.rint`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise rounded values. + +Limitations +----------- +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.round` : Evenly round to the given number of decimals. +:obj:`dpnp.fix` : Round to nearest integer towards zero, element-wise. +:obj:`dpnp.ceil` : Compute the ceiling of the input, element-wise. +:obj:`dpnp.floor` : Return the floor of the input, element-wise. +:obj:`dpnp.trunc` : Return the truncated value of the input, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0]) +>>> np.rint(a) +array([-2., -2., -0., 0., 2., 2., 2.]) +""" + + +rint = DPNPUnaryFunc( + "rint", + ti._round_result_type, + ti._round, + _RINT_DOCSTRING, + mkl_fn_to_call="_mkl_round_to_call", + mkl_impl_fn="_round", +) + + +_ROUND_DOCSTRING = """ +Rounds each element `x_i` of the input array `x` to +the nearest integer-valued number. + +When two integers are equally close to `x_i`, the result is the nearest even +integer to `x_i`. + +For full documentation refer to :obj:`numpy.round`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +decimals : int, optional + Number of decimal places to round to (default: 0). If decimals is negative, + it specifies the number of positions to the left of the decimal point. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise rounded values. + +See Also +-------- +:obj:`dpnp.around` : Equivalent function; see for details. +:obj:`dpnp.ndarray.round` : Equivalent function. +:obj:`dpnp.rint` : Round elements of the array to the nearest integer. +:obj:`dpnp.ceil` : Compute the ceiling of the input, element-wise. +:obj:`dpnp.fix` : Round to nearest integer towards zero, element-wise. +:obj:`dpnp.floor` : Return the floor of the input, element-wise. +:obj:`dpnp.trunc` : Return the truncated value of the input, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> np.round(np.array([0.37, 1.64])) +array([0., 2.]) +>>> np.round(np.array([0.37, 1.64]), decimals=1) +array([0.4, 1.6]) +>>> np.round(np.array([.5, 1.5, 2.5, 3.5, 4.5])) # rounds to nearest even value +array([0., 2., 2., 4., 4.]) +>>> np.round(np.array([1, 2, 3, 11]), decimals=1) # ndarray of ints is returned +array([ 1, 2, 3, 11]) +>>> np.round(np.array([1, 2, 3, 11]), decimals=-1) +array([ 0, 0, 0, 10]) +""" + +round = DPNPRound( + "round", + ti._round_result_type, + ti._round, + _ROUND_DOCSTRING, + mkl_fn_to_call="_mkl_round_to_call", + mkl_impl_fn="_round", +) + + +_SIGN_DOCSTRING = """ +Computes an indication of the sign of each element `x_i` of input array `x` +using the signum function. + +The signum function returns `-1` if `x_i` is less than `0`, +`0` if `x_i` is equal to `0`, and `1` if `x_i` is greater than `0`. + +For full documentation refer to :obj:`numpy.sign`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise result of the signum function. The + data type of the returned array is determined by the Type Promotion + Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.signbit` : Returns element-wise `True` where signbit is set (less than zero). + +Examples +-------- +>>> import dpnp as np +>>> np.sign(np.array([-5., 4.5])) +array([-1.0, 1.0]) +>>> np.sign(np.array(0)) +array(0) +>>> np.sign(np.array(5-2j)) +array([1+0j]) +""" + +sign = DPNPUnaryFunc( + "sign", + ti._sign_result_type, + ti._sign, + _SIGN_DOCSTRING, + acceptance_fn=acceptance_fn_sign, +) + + +_SIGNBIT_DOCSTRING = """ +Computes an indication of whether the sign bit of each element `x_i` of +input array `x` is set. + +For full documentation refer to :obj:`numpy.signbit`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise signbit results. The returned array + must have a data type of `bool`. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.sign` : Returns an element-wise indication of the sign of a number. + +Examples +-------- +>>> import dpnp as np +>>> np.signbit(np.array([-1.2])) +array([True]) + +>>> np.signbit(np.array([1, -2.3, 2.1])) +array([False, True, False]) +""" + +signbit = DPNPUnaryFunc( + "signbit", + ti._signbit_result_type, + ti._signbit, + _SIGNBIT_DOCSTRING, +) + + +_SUBTRACT_DOCSTRING = """ +Calculates the difference between each element `x1_i` of the input +array `x1` and the respective element `x2_i` of the input array `x2`. + +For full documentation refer to :obj:`numpy.subtract`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have numeric data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise differences. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +Notes +----- +Equivalent to `x1` - `x2` in terms of array broadcasting. + +Examples +-------- +>>> import dpnp as np +>>> np.subtract(dp.array([4, 3]), np.array([2, 7])) +array([ 2, -4]) + +>>> x1 = np.arange(9.0).reshape((3, 3)) +>>> x2 = np.arange(3.0) +>>> np.subtract(x1, x2) +array([[ 0., 0., 0.], + [ 3., 3., 3.], + [ 6., 6., 6.]]) + +The ``-`` operator can be used as a shorthand for ``subtract`` on +:class:`dpnp.ndarray`. + +>>> x1 - x2 +array([[ 0., 0., 0.], + [ 3., 3., 3.], + [ 6., 6., 6.]]) +""" + +subtract = DPNPBinaryFunc( + "subtract", + ti._subtract_result_type, + ti._subtract, + _SUBTRACT_DOCSTRING, + mkl_fn_to_call="_mkl_sub_to_call", + mkl_impl_fn="_sub", + binary_inplace_fn=ti._subtract_inplace, + acceptance_fn=acceptance_fn_subtract, +) + + +
+[docs] +def sum( + a, + axis=None, + dtype=None, + out=None, + keepdims=False, + initial=None, + where=True, +): + """ + Sum of array elements over a given axis. + + For full documentation refer to :obj:`numpy.sum`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int or tuple of ints}, optional + Axis or axes along which a sum is performed. The default, + ``axis=None``, will sum all of the elements of the input array. If axis + is negative it counts from the last to the first axis. + If `axis` is a tuple of integers, a sum is performed on all of the axes + specified in the tuple instead of a single axis or all the axes as + before. + Default: ``None``. + dtype : {None, dtype}, optional + The type of the returned array and of the accumulator in which the + elements are summed. The dtype of `a` is used by default unless `a` has + an integer dtype of less precision than the default platform integer. + In that case, if `a` is signed then the platform integer is used while + if `a` is unsigned then an unsigned integer of the same precision as + the platform integer is used. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have the + same shape as the expected output, but the type of the output values + will be cast if necessary. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the input array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array with the same shape as `a`, with the specified axis removed. + If `a` is a 0-d array, or if `axis` is ``None``, a zero-dimensional + array is returned. If an output array is specified, a reference to + `out` is returned. + + Limitations + ----------- + Parameters `initial` and `where` are only supported with their default + values. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.ndarray.sum` : Equivalent method. + :obj:`dpnp.cumsum` : Cumulative sum of array elements. + :obj:`dpnp.trapezoid` : Integration of array values using the composite + trapezoidal rule. + :obj:`dpnp.mean` : Compute the arithmetic mean. + :obj:`dpnp.average` : Compute the weighted average. + + Examples + -------- + >>> import dpnp as np + >>> np.sum(np.array([0.5, 1.5])) + array(2.) + >>> np.sum(np.array([0.5, 0.7, 0.2, 1.5]), dtype=np.int32) + array(1) + >>> a = np.array([[0, 1], [0, 5]]) + >>> np.sum(a) + array(6) + >>> np.sum(a, axis=0) + array([0, 6]) + >>> np.sum(a, axis=1) + array([1, 5]) + + """ + + dpnp.check_limitations(initial=initial, where=where) + + usm_a = dpnp.get_usm_ndarray(a) + return dpnp_wrap_reduction_call( + a, + out, + dpt.sum, + _get_reduction_res_dt, + usm_a, + axis=axis, + dtype=dtype, + keepdims=keepdims, + )
+ + + +
+[docs] +def trapezoid(y, x=None, dx=1.0, axis=-1): + r""" + Integrate along the given axis using the composite trapezoidal rule. + + If `x` is provided, the integration happens in sequence along its elements - + they are not sorted. + + Integrate `y` (`x`) along each 1d slice on the given axis, compute + :math:`\int y(x) dx`. + When `x` is specified, this integrates along the parametric curve, + computing :math:`\int_t y(t) dt = + \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt`. + + For full documentation refer to :obj:`numpy.trapezoid`. + + Parameters + ---------- + y : {dpnp.ndarray, usm_ndarray} + Input array to integrate. + x : {dpnp.ndarray, usm_ndarray, None}, optional + The sample points corresponding to the `y` values. If `x` is ``None``, + the sample points are assumed to be evenly spaced `dx` apart. + Default: ``None``. + dx : scalar, optional + The spacing between sample points when `x` is ``None``. + Default: ``1``. + axis : int, optional + The axis along which to integrate. + Default: ``-1``. + + Returns + ------- + out : dpnp.ndarray + Definite integral of `y` = n-dimensional array as approximated along + a single axis by the trapezoidal rule. The result is an `n`-1 + dimensional array. + + See Also + -------- + :obj:`dpnp.sum` : Sum of array elements over a given axis. + :obj:`dpnp.cumsum` : Cumulative sum of the elements along a given axis. + + Examples + -------- + >>> import dpnp as np + + Use the trapezoidal rule on evenly spaced points: + + >>> y = np.array([1, 2, 3]) + >>> np.trapezoid(y) + array(4.) + + The spacing between sample points can be selected by either the `x` or `dx` + arguments: + + >>> y = np.array([1, 2, 3]) + >>> x = np.array([4, 6, 8]) + >>> np.trapezoid(y, x=x) + array(8.) + >>> np.trapezoid(y, dx=2) + array(8.) + + Using a decreasing `x` corresponds to integrating in reverse: + + >>> y = np.array([1, 2, 3]) + >>> x = np.array([8, 6, 4]) + >>> np.trapezoid(y, x=x) + array(-8.) + + More generally `x` is used to integrate along a parametric curve. We can + estimate the integral :math:`\int_0^1 x^2 = 1/3` using: + + >>> x = np.linspace(0, 1, num=50) + >>> y = x**2 + >>> np.trapezoid(y, x) + array(0.33340275) + + Or estimate the area of a circle, noting we repeat the sample which closes + the curve: + + >>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True) + >>> np.trapezoid(np.cos(theta), x=np.sin(theta)) + array(3.14157194) + + :obj:`dpnp.trapezoid` can be applied along a specified axis to do multiple + computations in one call: + + >>> a = np.arange(6).reshape(2, 3) + >>> a + array([[0, 1, 2], + [3, 4, 5]]) + >>> np.trapezoid(a, axis=0) + array([1.5, 2.5, 3.5]) + >>> np.trapezoid(a, axis=1) + array([2., 8.]) + + """ + + dpnp.check_supported_arrays_type(y) + nd = y.ndim + + if x is None: + d = dx + else: + dpnp.check_supported_arrays_type(x) + if x.ndim == 1: + d = dpnp.diff(x) + + # reshape to correct shape + shape = [1] * nd + shape[axis] = d.shape[0] + d = d.reshape(shape) + else: + d = dpnp.diff(x, axis=axis) + + slice1 = [slice(None)] * nd + slice2 = [slice(None)] * nd + slice1[axis] = slice(1, None) + slice2[axis] = slice(None, -1) + return (d * (y[tuple(slice1)] + y[tuple(slice2)]) / 2.0).sum(axis)
+ + + +true_divide = divide + + +_TRUNC_DOCSTRING = """ +Returns the truncated value for each element `x_i` for input array `x`. + +The truncated value of the scalar `x` is the nearest integer i which is +closer to zero than `x` is. In short, the fractional part of the +signed number `x` is discarded. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a real-valued data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the result of element-wise division. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.floor` : Round a number to the nearest integer toward minus infinity. +:obj:`dpnp.ceil` : Round a number to the nearest integer toward infinity. +:obj:`dpnp.rint` : Round elements of the array to the nearest integer. +:obj:`dpnp.fix` : Round to nearest integer towards zero, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0]) +>>> np.trunc(a) +array([-1.0, -1.0, -0.0, 0.0, 1.0, 1.0, 2.0]) +""" + +trunc = DPNPUnaryFunc( + "trunc", + ti._trunc_result_type, + ti._trunc, + _TRUNC_DOCSTRING, + mkl_fn_to_call="_mkl_trunc_to_call", + mkl_impl_fn="_trunc", +) +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_nanfunctions.html b/pull/2070/_modules/dpnp/dpnp_iface_nanfunctions.html new file mode 100644 index 00000000000..5cc123328b1 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_nanfunctions.html @@ -0,0 +1,1255 @@ + + + + + + + + + + dpnp.dpnp_iface_nanfunctions — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_nanfunctions

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2023-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the nan functions of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+import warnings
+
+import dpnp
+
+__all__ = [
+    "nanargmax",
+    "nanargmin",
+    "nancumprod",
+    "nancumsum",
+    "nanmax",
+    "nanmean",
+    "nanmin",
+    "nanprod",
+    "nanstd",
+    "nansum",
+    "nanvar",
+]
+
+
+def _replace_nan(a, val):
+    """
+    Replace NaNs in array `a` with `val`.
+
+    If `a` is of inexact type, make a copy of `a`, replace NaNs with
+    the `val` value, and return the copy together with a boolean mask
+    marking the locations where NaNs were present. If `a` is not of
+    inexact type, do nothing and return `a` together with a mask of None.
+
+    Parameters
+    ----------
+    a : {dpnp.ndarray, usm_ndarray}
+        Input array.
+    val : float
+        NaN values are set to `val` before doing the operation.
+
+    Returns
+    -------
+    out : {dpnp.ndarray}
+        If `a` is of inexact type, return a copy of `a` with the NaNs
+        replaced by the fill value, otherwise return `a`.
+    mask: {bool, None}
+        If `a` is of inexact type, return a boolean mask marking locations of
+        NaNs, otherwise return ``None``.
+
+    """
+
+    dpnp.check_supported_arrays_type(a)
+    if dpnp.issubdtype(a.dtype, dpnp.inexact):
+        mask = dpnp.isnan(a)
+        if not dpnp.any(mask):
+            mask = None
+        else:
+            a = dpnp.array(a, copy=True)
+            dpnp.copyto(a, val, where=mask)
+    else:
+        mask = None
+
+    return a, mask
+
+
+
+[docs] +def nanargmax(a, axis=None, out=None, *, keepdims=False): + """ + Returns the indices of the maximum values along an axis ignoring NaNs. + + For full documentation refer to :obj:`numpy.nanargmax`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int}, optional + Axis along which to operate. By default flattened input is used. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + If provided, the result will be inserted into this array. It should be + of the appropriate shape and dtype. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + If `axis` is ``None``, a zero-dimensional array containing the index of + the first occurrence of the maximum value ignoring NaNs; otherwise, + a non-zero-dimensional array containing the indices of the minimum + values ignoring NaNs. The returned array must have the default array + index data type. + For all-NaN slices ``ValueError`` is raised. + Warning: the results cannot be trusted if a slice contains only NaNs + and -Infs. + + Limitations + ----------- + Input array is only supported as either :class:`dpnp.ndarray` + or :class:`dpctl.tensor.usm_ndarray`. + Input array data types are limited by supported DPNP :ref:`Data types`. + + See Also + -------- + :obj:`dpnp.nanargmin` : Returns the indices of the minimum values along an + axis, ignoring NaNs. + :obj:`dpnp.argmax` : Returns the indices of the maximum values along + an axis. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[np.nan, 4], [2, 3]]) + >>> np.argmax(a) + array(0) + >>> np.nanargmax(a) + array(1) + >>> np.nanargmax(a, axis=0) + array([1, 0]) + >>> np.nanargmax(a, axis=1) + array([1, 1]) + + """ + + a, mask = _replace_nan(a, -dpnp.inf) + if mask is not None: + mask = dpnp.all(mask, axis=axis) + if dpnp.any(mask): + raise ValueError("All-NaN slice encountered") + return dpnp.argmax(a, axis=axis, out=out, keepdims=keepdims)
+ + + +
+[docs] +def nanargmin(a, axis=None, out=None, *, keepdims=False): + """ + Returns the indices of the minimum values along an axis ignoring NaNs. + + For full documentation refer to :obj:`numpy.nanargmin`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int}, optional + Axis along which to operate. By default flattened input is used. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + If provided, the result will be inserted into this array. It should be + of the appropriate shape and dtype. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + If `axis` is ``None``, a zero-dimensional array containing the index of + the first occurrence of the minimum value ignoring NaNs; otherwise, + a non-zero-dimensional array containing the indices of the minimum + values ignoring NaNs. The returned array must have the default array + index data type. + For all-NaN slices ``ValueError`` is raised. + Warning: the results cannot be trusted if a slice contains only NaNs + and Infs. + + Limitations + ----------- + Input and output arrays are only supported as either :class:`dpnp.ndarray` + or :class:`dpctl.tensor.usm_ndarray`. + Input array data types are limited by supported DPNP :ref:`Data types`. + + See Also + -------- + :obj:`dpnp.nanargmax` : Returns the indices of the maximum values along + an axis, ignoring NaNs. + :obj:`dpnp.argmin` : Returns the indices of the minimum values along + an axis. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[np.nan, 4], [2, 3]]) + >>> np.argmin(a) + array(0) + >>> np.nanargmin(a) + array(2) + >>> np.nanargmin(a, axis=0) + array([1, 1]) + >>> np.nanargmin(a, axis=1) + array([1, 0]) + + """ + + a, mask = _replace_nan(a, dpnp.inf) + if mask is not None: + mask = dpnp.all(mask, axis=axis) + if dpnp.any(mask): + raise ValueError("All-NaN slice encountered") + return dpnp.argmin(a, axis=axis, out=out, keepdims=keepdims)
+ + + +
+[docs] +def nancumprod(a, axis=None, dtype=None, out=None): + """ + Return the cumulative product of array elements over a given axis treating + Not a Numbers (NaNs) as zero. The cumulative product does not change when + NaNs are encountered and leading NaNs are replaced by ones. + + For full documentation refer to :obj:`numpy.nancumprod`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int}, optional + Axis along which the cumulative product is computed. The default + (``None``) is to compute the cumulative product over the flattened + array. + dtype : {None, dtype}, optional + Type of the returned array and of the accumulator in which the elements + are summed. If `dtype` is not specified, it defaults to the dtype of + `a`, unless `a` has an integer dtype with a precision less than that of + the default platform integer. In that case, the default platform + integer is used. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have the + same shape and buffer length as the expected output but the type will + be cast if necessary. + + Returns + ------- + out : dpnp.ndarray + A new array holding the result is returned unless `out` is specified as + :class:`dpnp.ndarray`, in which case a reference to `out` is returned. + The result has the same size as `a`, and the same shape as `a` if `axis` + is not ``None`` or `a` is a 1-d array. + + See Also + -------- + :obj:`dpnp.cumprod` : Cumulative product across array propagating NaNs. + :obj:`dpnp.isnan` : Show which elements are NaN. + + Examples + -------- + >>> import dpnp as np + >>> np.nancumprod(np.array(1)) + array(1) + >>> np.nancumprod(np.array([1])) + array([1]) + >>> np.nancumprod(np.array([1, np.nan])) + array([1., 1.]) + >>> a = np.array([[1, 2], [3, np.nan]]) + >>> np.nancumprod(a) + array([1., 2., 6., 6.]) + >>> np.nancumprod(a, axis=0) + array([[1., 2.], + [3., 2.]]) + >>> np.nancumprod(a, axis=1) + array([[1., 2.], + [3., 3.]]) + + """ + + a, _ = _replace_nan(a, 1) + return dpnp.cumprod(a, axis=axis, dtype=dtype, out=out)
+ + + +
+[docs] +def nancumsum(a, axis=None, dtype=None, out=None): + """ + Return the cumulative sum of array elements over a given axis treating + Not a Numbers (NaNs) as zero. The cumulative sum does not change when NaNs + are encountered and leading NaNs are replaced by zeros. + + For full documentation refer to :obj:`numpy.nancumsum`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int}, optional + Axis along which the cumulative sum is computed. The default (``None``) + is to compute the cumulative sum over the flattened array. + dtype : {None, dtype}, optional + Type of the returned array and of the accumulator in which the elements + are summed. If `dtype` is not specified, it defaults to the dtype of + `a`, unless `a` has an integer dtype with a precision less than that of + the default platform integer. In that case, the default platform + integer is used. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have the + same shape and buffer length as the expected output but the type will + be cast if necessary. + + Returns + ------- + out : dpnp.ndarray + A new array holding the result is returned unless `out` is specified as + :class:`dpnp.ndarray`, in which case a reference to `out` is returned. + The result has the same size as `a`, and the same shape as `a` if `axis` + is not ``None`` or `a` is a 1-d array. + + See Also + -------- + :obj:`dpnp.cumsum` : Cumulative sum across array propagating NaNs. + :obj:`dpnp.isnan` : Show which elements are NaN. + + Examples + -------- + >>> import dpnp as np + >>> np.nancumsum(np.array(1)) + array(1) + >>> np.nancumsum(np.array([1])) + array([1]) + >>> np.nancumsum(np.array([1, np.nan])) + array([1., 1.]) + >>> a = np.array([[1, 2], [3, np.nan]]) + >>> np.nancumsum(a) + array([1., 3., 6., 6.]) + >>> np.nancumsum(a, axis=0) + array([[1., 2.], + [4., 2.]]) + >>> np.nancumsum(a, axis=1) + array([[1., 3.], + [3., 3.]]) + + """ + + a, _ = _replace_nan(a, 0) + return dpnp.cumsum(a, axis=axis, dtype=dtype, out=out)
+ + + +
+[docs] +def nanmax(a, axis=None, out=None, keepdims=False, initial=None, where=True): + """ + Return the maximum of an array or maximum along an axis, ignoring any NaNs. + + For full documentation refer to :obj:`numpy.nanmax`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which maximum values must be computed. By default, + the maximum value must be computed over the entire array. If a tuple + of integers, maximum values must be computed over multiple axes. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + If provided, the result will be inserted into this array. It should + be of the appropriate shape and dtype. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) must be included in the + result as singleton dimensions, and, accordingly, the result must be + compatible with the input array. Otherwise, if ``False``, the reduced + axes (dimensions) must not be included in the result. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + If the maximum value was computed over the entire array, + a zero-dimensional array containing the maximum value ignoring NaNs; + otherwise, a non-zero-dimensional array containing the maximum values + ignoring NaNs. The returned array must have the same data type as `a`. + When all-NaN slices are encountered a ``RuntimeWarning`` is raised and + NaN is returned for that slice. + + Limitations + ----------- + Input array is only supported as either :class:`dpnp.ndarray` + or :class:`dpctl.tensor.usm_ndarray`. + Parameters `where`, and `initial` are only supported with their default + values. + Otherwise ``NotImplementedError`` exception will be raised. + Input array data types are limited by supported DPNP :ref:`Data types`. + + See Also + -------- + :obj:`dpnp.nanmin` : The minimum value of an array along a given axis, + ignoring any NaNs. + :obj:`dpnp.max` : The maximum value of an array along a given axis, + propagating any NaNs. + :obj:`dpnp.fmax` : Element-wise maximum of two arrays, ignoring any NaNs. + :obj:`dpnp.maximum` : Element-wise maximum of two arrays, propagating + any NaNs. + :obj:`dpnp.isnan` : Shows which elements are Not a Number (NaN). + :obj:`dpnp.isfinite` : Shows which elements are neither NaN nor infinity. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, np.nan]]) + >>> np.nanmax(a) + array(3.) + >>> np.nanmax(a, axis=0) + array([3., 2.]) + >>> np.nanmax(a, axis=1) + array([2., 3.]) + + When positive infinity and negative infinity are present: + + >>> np.nanmax(np.array([1, 2, np.nan, -np.inf])) + array(2.) + >>> np.nanmax(np.array([1, 2, np.nan, np.inf])) + array(inf) + + """ + + dpnp.check_limitations(initial=initial, where=where) + + a, mask = _replace_nan(a, -dpnp.inf) + res = dpnp.max(a, axis=axis, out=out, keepdims=keepdims) + if mask is None: + return res + + mask = dpnp.all(mask, axis=axis) + if dpnp.any(mask): + dpnp.copyto(res, dpnp.nan, where=mask) + warnings.warn("All-NaN slice encountered", RuntimeWarning, stacklevel=2) + return res
+ + + +
+[docs] +def nanmean(a, axis=None, dtype=None, out=None, keepdims=False, *, where=True): + """ + Compute the arithmetic mean along the specified axis, ignoring NaNs. + + For full documentation refer to :obj:`numpy.nanmean`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which the arithmetic means must be computed. If + a tuple of unique integers, the means are computed over multiple + axes. If ``None``, the mean is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Type to use in computing the mean. By default, if `a` has a + floating-point data type, the returned array will have + the same data type as `a`. + If `a` has a boolean or integral data type, the returned array + will have the default floating point data type for the device + where input array `a` is allocated. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output but the type (of the calculated + values) will be cast if necessary. Default: ``None``. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array containing the arithmetic means along the specified axis(axes). + If the input is a zero-size array, an array containing NaN values is + returned. In addition, NaN is returned for slices that contain only + NaNs. + + Limitations + ----------- + Parameter `where` is only supported with its default value. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.average` : Weighted average. + :obj:`dpnp.mean` : Compute the arithmetic mean along the specified axis. + :obj:`dpnp.var` : Compute the variance along the specified axis. + :obj:`dpnp.nanvar` : Compute the variance along the specified axis, + while ignoring NaNs. + :obj:`dpnp.std` : Compute the standard deviation along the specified axis. + :obj:`dpnp.nanstd` : Compute the standard deviation along the specified + axis, while ignoring NaNs. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, np.nan], [3, 4]]) + >>> np.nanmean(a) + array(2.6666666666666665) + >>> np.nanmean(a, axis=0) + array([2., 4.]) + >>> np.nanmean(a, axis=1) + array([1., 3.5]) # may vary + + """ + + dpnp.check_limitations(where=where) + + arr, mask = _replace_nan(a, 0) + if mask is None: + return dpnp.mean( + arr, + axis=axis, + dtype=dtype, + out=out, + keepdims=keepdims, + where=where, + ) + + if dtype is not None: + dtype = dpnp.dtype(dtype) + if not dpnp.issubdtype(dtype, dpnp.inexact): + raise TypeError("If input is inexact, then dtype must be inexact.") + if out is not None: + dpnp.check_supported_arrays_type(out) + if not dpnp.issubdtype(out.dtype, dpnp.inexact): + raise TypeError("If input is inexact, then out must be inexact.") + + cnt_dtype = a.real.dtype if dtype is None else dtype + cnt = dpnp.sum( + ~mask, axis=axis, dtype=cnt_dtype, keepdims=keepdims, where=where + ) + var_dtype = a.dtype if dtype is None else dtype + avg = dpnp.sum( + arr, + axis=axis, + dtype=var_dtype, + out=out, + keepdims=keepdims, + where=where, + ) + dpnp.divide(avg, cnt, out=avg) + + return avg
+ + + +
+[docs] +def nanmin(a, axis=None, out=None, keepdims=False, initial=None, where=True): + """ + Return the minimum of an array or minimum along an axis, ignoring any NaNs. + + For full documentation refer to :obj:`numpy.nanmin`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which minimum values must be computed. By default, + the minimum value must be computed over the entire array. If a tuple + of integers, minimum values must be computed over multiple axes. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + If provided, the result will be inserted into this array. It should + be of the appropriate shape and dtype. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) must be included in the + result as singleton dimensions, and, accordingly, the result must be + compatible with the input array. Otherwise, if ``False``, the reduced + axes (dimensions) must not be included in the result. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + If the minimum value was computed over the entire array, + a zero-dimensional array containing the minimum value ignoring NaNs; + otherwise, a non-zero-dimensional array containing the minimum values + ignoring NaNs. The returned array must have the same data type as `a`. + When all-NaN slices are encountered a ``RuntimeWarning`` is raised and + NaN is returned for that slice. + + Limitations + ----------- + Input array is only supported as either :class:`dpnp.ndarray` + or :class:`dpctl.tensor.usm_ndarray`. + Parameters `where`, and `initial` are only supported with their default + values. + Otherwise ``NotImplementedError`` exception will be raised. + Input array data types are limited by supported DPNP :ref:`Data types`. + + See Also + -------- + :obj:`dpnp.nanmax` : The maximum value of an array along a given axis, + ignoring any NaNs. + :obj:`dpnp.min` : The minimum value of an array along a given axis, + propagating any NaNs. + :obj:`dpnp.fmin` : Element-wise minimum of two arrays, ignoring any NaNs. + :obj:`dpnp.minimum` : Element-wise minimum of two arrays, propagating + any NaNs. + :obj:`dpnp.isnan` : Shows which elements are Not a Number (NaN). + :obj:`dpnp.isfinite` : Shows which elements are neither NaN nor infinity. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, np.nan]]) + >>> np.nanmin(a) + array(1.) + >>> np.nanmin(a, axis=0) + array([1., 2.]) + >>> np.nanmin(a, axis=1) + array([1., 3.]) + + When positive infinity and negative infinity are present: + + >>> np.nanmin(np.array([1, 2, np.nan, np.inf])) + array(1.) + >>> np.nanmin(np.array([1, 2, np.nan, -np.inf])) + array(-inf) + + """ + + dpnp.check_limitations(initial=initial, where=where) + + a, mask = _replace_nan(a, +dpnp.inf) + res = dpnp.min(a, axis=axis, out=out, keepdims=keepdims) + if mask is None: + return res + + mask = dpnp.all(mask, axis=axis) + if dpnp.any(mask): + dpnp.copyto(res, dpnp.nan, where=mask) + warnings.warn("All-NaN slice encountered", RuntimeWarning, stacklevel=2) + return res
+ + + +
+[docs] +def nanprod( + a, + axis=None, + dtype=None, + out=None, + keepdims=False, + initial=None, + where=True, +): + """ + Return the product of array elements over a given axis treating + Not a Numbers (NaNs) as ones. + + For full documentation refer to :obj:`numpy.nanprod`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int or tuple of ints}, optional + Axis or axes along which the product is computed. The default is to + compute the product of the flattened array. + Default: ``None``. + dtype : {None, dtype}, optional + The type of the returned array and of the accumulator in which the + elements are multiplied. By default, the dtype of `a` is used. An + exception is when `a` has an integer type with less precision than + the platform (u)intp. In that case, the default will be either (u)int32 + or (u)int64 depending on whether the platform is 32 or 64 bits. For + inexact inputs, dtype must be inexact. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternate output array in which to place the result. If provided, it + must have the same shape as the expected output, but the type will be + cast if necessary. The casting of NaN to integer + can yield unexpected results. + Default: ``None``. + keepdims : {None, bool}, optional + If ``True``, the axes which are reduced are left in the result as + dimensions with size one. With this option, the result will broadcast + correctly against the original `a`. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + A new array holding the result is returned unless `out` is specified, + in which case it is returned. + + See Also + -------- + :obj:`dpnp.prod` : Returns product across array propagating NaNs. + :obj:`dpnp.isnan` : Test element-wise for NaN and return result + as a boolean array. + + Limitations + ----------- + Input array is only supported as either :class:`dpnp.ndarray` or + :class:`dpctl.tensor.usm_ndarray`. + Parameters `initial`, and `where` are only supported with their default + values. + Otherwise the function will be executed sequentially on CPU. + Input array data types are limited by supported DPNP :ref:`Data types`. + + Examples + -------- + >>> import dpnp as np + >>> np.nanprod(np.array(1)) + array(1) + >>> np.nanprod(np.array([1])) + array(1) + >>> np.nanprod(np.array([1, np.nan])) + array(1.0) + >>> a = np.array([[1, 2], [3, np.nan]]) + >>> np.nanprod(a) + array(6.0) + >>> np.nanprod(a, axis=0) + array([3., 2.]) + + """ + + a, _ = _replace_nan(a, 1) + return dpnp.prod( + a, + axis=axis, + dtype=dtype, + out=out, + keepdims=keepdims, + initial=initial, + where=where, + )
+ + + +
+[docs] +def nansum( + a, + axis=None, + dtype=None, + out=None, + keepdims=False, + initial=None, + where=True, +): + """ + Return the sum of array elements over a given axis treating + Not a Numbers (NaNs) as zero. + + For full documentation refer to :obj:`numpy.nansum`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int or tuple of ints}, optional + Axis or axes along which the sum is computed. The default is to compute + the sum of the flattened array. + Default: ``None``. + dtype : {None, dtype}, optional + The type of the returned array and of the accumulator in which the + elements are summed. By default, the dtype of `a` is used. An exception + is when `a` has an integer type with less precision than the platform + (u)intp. In that case, the default will be either (u)int32 or (u)int64 + depending on whether the platform is 32 or 64 bits. For inexact inputs, + dtype must be inexact. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternate output array in which to place the result. If provided, it + must have the same shape as the expected output, but the type will be + cast if necessary. The casting of NaN to integer can yield unexpected + results. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the original `a`. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + A new array holding the result is returned unless `out` is specified, + in which it is returned. The result has the same size as `a`, and the + same shape as `a` if `axis` is not ``None`` or `a` is a 1-d array. + + Limitations + ----------- + Parameters `initial` and `where` are supported with their default values. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.sum` : Sum across array propagating NaNs. + :obj:`dpnp.isnan` : Show which elements are NaN. + :obj:`dpnp.isfinite` : Show which elements are not NaN or +/-inf. + + Notes + ----- + If both positive and negative infinity are present, the sum will be Not + A Number (NaN). + + Examples + -------- + >>> import dpnp as np + >>> np.nansum(np.array([1])) + array(1) + >>> np.nansum(np.array([1, np.nan])) + array(1.) + >>> a = np.array([[1, 1], [1, np.nan]]) + >>> np.nansum(a) + array(3.) + >>> np.nansum(a, axis=0) + array([2., 1.]) + >>> np.nansum(np.array([1, np.nan, np.inf])) + array(inf) + >>> np.nansum(np.array([1, np.nan, -np.inf])) + array(-inf) + >>> # both +/- infinity present + >>> np.nansum(np.array([1, np.nan, np.inf, -np.inf])) + array(nan) + + """ + + a, _ = _replace_nan(a, 0) + return dpnp.sum( + a, + axis=axis, + dtype=dtype, + out=out, + keepdims=keepdims, + initial=initial, + where=where, + )
+ + + +
+[docs] +def nanstd( + a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True +): + """ + Compute the standard deviation along the specified axis, + while ignoring NaNs. + + For full documentation refer to :obj:`numpy.nanstd`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which the standard deviations must be computed. + If a tuple of unique integers is given, the standard deviations + are computed over multiple axes. If ``None``, the standard deviation + is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Type to use in computing the standard deviation. By default, + if `a` has a floating-point data type, the returned array + will have the same data type as `a`. + If `a` has a boolean or integral data type, the returned array + will have the default floating point data type for the device + where input array `a` is allocated. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output but the type (of the calculated + values) will be cast if necessary. + ddof : {int, float}, optional + Means Delta Degrees of Freedom. The divisor used in calculations + is ``N - ddof``, where ``N`` the number of non-NaN elements. + Default: `0.0`. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array containing the standard deviations. If the standard + deviation was computed over the entire array, a zero-dimensional + array is returned. If `ddof` is >= the number of non-NaN elements + in a slice or the slice contains only NaNs, then the result for + that slice is NaN. + + Limitations + ----------- + Parameters `where` is only supported with its default value. + Otherwise ``NotImplementedError`` exception will be raised. + + Notes + ----- + Note that, for complex numbers, the absolute value is taken before + squaring, so that the result is always real and non-negative. + + See Also + -------- + :obj:`dpnp.var` : Compute the variance along the specified axis. + :obj:`dpnp.mean` : Compute the arithmetic mean along the specified axis. + :obj:`dpnp.std` : Compute the standard deviation along the specified axis. + :obj:`dpnp.nanmean` : Compute the arithmetic mean along the specified axis, + ignoring NaNs. + :obj:`dpnp.nanvar` : Compute the variance along the specified axis, + while ignoring NaNs. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, np.nan], [3, 4]]) + >>> np.nanstd(a) + array(1.247219128924647) + >>> np.nanstd(a, axis=0) + array([1., 0.]) + >>> np.nanstd(a, axis=1) + array([0., 0.5]) # may vary + + """ + + dpnp.check_limitations(where=where) + if not isinstance(ddof, (int, float)): + raise TypeError( + f"An integer or float is required, but got {type(ddof)}" + ) + + res = nanvar( + a, + axis=axis, + dtype=dtype, + out=out, + ddof=ddof, + keepdims=keepdims, + where=where, + ) + dpnp.sqrt(res, out=res) + return res
+ + + +
+[docs] +def nanvar( + a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True +): + """ + Compute the variance along the specified axis, while ignoring NaNs. + + For full documentation refer to :obj:`numpy.nanvar`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + axis or axes along which the variances must be computed. If a tuple + of unique integers is given, the variances are computed over multiple + axes. If ``None``, the variance is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Type to use in computing the variance. By default, if `a` has a + floating-point data type, the returned array will have + the same data type as `a`. + If `a` has a boolean or integral data type, the returned array + will have the default floating point data type for the device + where input array `a` is allocated. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output but the type (of the calculated + values) will be cast if necessary. + ddof : {int, float}, optional + Means Delta Degrees of Freedom. The divisor used in calculations + is ``N - ddof``, where ``N`` represents the number of non-NaN elements. + Default: `0.0`. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array containing the variances. If the variance was computed + over the entire array, a zero-dimensional array is returned. + If `ddof` is >= the number of non-NaN elements in a slice or the + slice contains only NaNs, then the result for that slice is NaN. + + Limitations + ----------- + Parameters `where` is only supported with its default value. + Otherwise ``NotImplementedError`` exception will be raised. + + Notes + ----- + Note that, for complex numbers, the absolute value is taken before squaring, + so that the result is always real and non-negative. + + See Also + -------- + :obj:`dpnp.var` : Compute the variance along the specified axis. + :obj:`dpnp.std` : Compute the standard deviation along the specified axis. + :obj:`dpnp.nanmean` : Compute the arithmetic mean along the specified axis, + ignoring NaNs. + :obj:`dpnp.nanstd` : Compute the standard deviation along + the specified axis, while ignoring NaNs. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, np.nan], [3, 4]]) + >>> np.nanvar(a) + array(1.5555555555555554) + >>> np.nanvar(a, axis=0) + array([1., 0.]) + >>> np.nanvar(a, axis=1) + array([0., 0.25]) # may vary + + """ + + dpnp.check_limitations(where=where) + if not isinstance(ddof, (int, float)): + raise TypeError( + f"An integer or float is required, but got {type(ddof)}" + ) + + arr, mask = _replace_nan(a, 0) + if mask is None: + return dpnp.var( + arr, + axis=axis, + dtype=dtype, + out=out, + ddof=ddof, + keepdims=keepdims, + where=where, + ) + + if dtype is not None: + dtype = dpnp.dtype(dtype) + if not dpnp.issubdtype(dtype, dpnp.inexact): + raise TypeError("If input is inexact, then dtype must be inexact.") + if out is not None: + dpnp.check_supported_arrays_type(out) + if not dpnp.issubdtype(out.dtype, dpnp.inexact): + raise TypeError("If input is inexact, then out must be inexact.") + + # Compute mean + var_dtype = a.real.dtype if dtype is None else dtype + cnt = dpnp.sum( + ~mask, axis=axis, dtype=var_dtype, keepdims=True, where=where + ) + avg = dpnp.sum(arr, axis=axis, dtype=dtype, keepdims=True, where=where) + avg = dpnp.divide(avg, cnt, out=avg) + + # Compute squared deviation from mean. + if arr.dtype == avg.dtype: + arr = dpnp.subtract(arr, avg, out=arr) + else: + arr = dpnp.subtract(arr, avg) + dpnp.copyto(arr, 0.0, where=mask) + if dpnp.issubdtype(arr.dtype, dpnp.complexfloating): + sqr = dpnp.multiply(arr, arr.conj(), out=arr).real + else: + sqr = dpnp.multiply(arr, arr, out=arr) + + # Compute variance + var = dpnp.sum( + sqr, + axis=axis, + dtype=var_dtype, + out=out, + keepdims=keepdims, + where=where, + ) + + if var.ndim < cnt.ndim: + cnt = cnt.squeeze(axis) + cnt -= ddof + dpnp.divide(var, cnt, out=var) + + isbad = cnt <= 0 + if dpnp.any(isbad): + # NaN, inf, or negative numbers are all possible bad + # values, so explicitly replace them with NaN. + dpnp.copyto(var, dpnp.nan, where=isbad) + + return var
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_searching.html b/pull/2070/_modules/dpnp/dpnp_iface_searching.html new file mode 100644 index 00000000000..51ca4499323 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_searching.html @@ -0,0 +1,586 @@ + + + + + + + + + + dpnp.dpnp_iface_searching — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_searching

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the searching function of the dpnp
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+import dpctl.tensor as dpt
+import dpctl.tensor._tensor_impl as dti
+
+import dpnp
+
+from .dpnp_array import dpnp_array
+from .dpnp_utils.dpnp_utils_reduction import dpnp_wrap_reduction_call
+
+__all__ = ["argmax", "argmin", "argwhere", "searchsorted", "where"]
+
+
+def _get_search_res_dt(a, _dtype, out):
+    """Get a data type used by dpctl for result array in search function."""
+
+    # get a data type used by dpctl for result array in search function
+    res_dt = dti.default_device_index_type(a.sycl_device)
+
+    # numpy raises TypeError if "out" data type mismatch default index type
+    if not dpnp.can_cast(out.dtype, res_dt, casting="safe"):
+        raise TypeError(
+            f"Cannot cast from {out.dtype} to {res_dt} "
+            "according to the rule safe."
+        )
+    return res_dt
+
+
+
+[docs] +def argmax(a, axis=None, out=None, *, keepdims=False): + """ + Returns the indices of the maximum values along an axis. + + For full documentation refer to :obj:`numpy.argmax`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int}, optional + By default, the index is into the flattened array, otherwise along + the specified axis. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + If provided, the result will be inserted into this array. It should be + of the appropriate shape and dtype. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + Array of indices into the array. It has the same shape as ``a.shape`` + with the dimension along `axis` removed. If `keepdims` is set to + ``True``, then the size of `axis` will be ``1`` with the resulting + array having same shape as ``a.shape``. + + See Also + -------- + :obj:`dpnp.ndarray.argmax` : Equivalent function. + :obj:`dpnp.nanargmax` : Returns the indices of the maximum values along + an axis, ignoring NaNs. + :obj:`dpnp.argmin` : Returns the indices of the minimum values + along an axis. + :obj:`dpnp.max` : The maximum value along a given axis. + :obj:`dpnp.unravel_index` : Convert a flat index into an index tuple. + :obj:`dpnp.take_along_axis` : Apply ``np.expand_dims(index_array, axis)`` + from :obj:`dpnp.argmax` to an array as if by calling max. + + Notes + ----- + In case of multiple occurrences of the maximum values, the indices + corresponding to the first occurrence are returned. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(6).reshape((2, 3)) + 10 + >>> a + array([[10, 11, 12], + [13, 14, 15]]) + >>> np.argmax(a) + array(5) + + >>> np.argmax(a, axis=0) + array([1, 1, 1]) + >>> np.argmax(a, axis=1) + array([2, 2]) + + >>> b = np.arange(6) + >>> b[1] = 5 + >>> b + array([0, 5, 2, 3, 4, 5]) + >>> np.argmax(b) # Only the first occurrence is returned. + array(1) + + >>> x = np.arange(24).reshape((2, 3, 4)) + >>> res = np.argmax(x, axis=1, keepdims=True) # Setting keepdims to True + >>> res.shape + (2, 1, 4) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + return dpnp_wrap_reduction_call( + a, + out, + dpt.argmax, + _get_search_res_dt, + usm_a, + axis=axis, + keepdims=keepdims, + )
+ + + +
+[docs] +def argmin(a, axis=None, out=None, *, keepdims=False): + """ + Returns the indices of the minimum values along an axis. + + For full documentation refer to :obj:`numpy.argmin`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int}, optional + By default, the index is into the flattened array, otherwise along + the specified axis. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + If provided, the result will be inserted into this array. It should be + of the appropriate shape and dtype. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + Array of indices into the array. It has the same shape as `a.shape` + with the dimension along `axis` removed. If `keepdims` is set to + ``True``, then the size of `axis` will be ``1`` with the resulting + array having same shape as `a.shape`. + + + See Also + -------- + :obj:`dpnp.ndarray.argmin` : Equivalent function. + :obj:`dpnp.nanargmin` : Returns the indices of the minimum values + along an axis, ignoring NaNs. + :obj:`dpnp.argmax` : Returns the indices of the maximum values + along an axis. + :obj:`dpnp.min` : The minimum value along a given axis. + :obj:`dpnp.unravel_index` : Convert a flat index into an index tuple. + :obj:`dpnp.take_along_axis` : Apply ``np.expand_dims(index_array, axis)`` + from :obj:`dpnp.argmin` to an array as if by calling min. + + Notes + ----- + In case of multiple occurrences of the minimum values, the indices + corresponding to the first occurrence are returned. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(6).reshape((2, 3)) + 10 + >>> a + array([[10, 11, 12], + [13, 14, 15]]) + >>> np.argmin(a) + array(0) + + >>> np.argmin(a, axis=0) + array([0, 0, 0]) + >>> np.argmin(a, axis=1) + array([0, 0]) + + >>> b = np.arange(6) + 10 + >>> b[4] = 10 + >>> b + array([10, 11, 12, 13, 10, 15]) + >>> np.argmin(b) # Only the first occurrence is returned. + array(0) + + >>> x = np.arange(24).reshape((2, 3, 4)) + >>> res = np.argmin(x, axis=1, keepdims=True) # Setting keepdims to True + >>> res.shape + (2, 1, 4) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + return dpnp_wrap_reduction_call( + a, + out, + dpt.argmin, + _get_search_res_dt, + usm_a, + axis=axis, + keepdims=keepdims, + )
+ + + +
+[docs] +def argwhere(a): + """ + Find the indices of array elements that are non-zero, grouped by element. + + For full documentation refer to :obj:`numpy.argwhere`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + + Returns + ------- + out : dpnp.ndarray + Indices of elements that are non-zero. Indices are grouped by element. + This array will have shape ``(N, a.ndim)`` where ``N`` is the number of + non-zero items. + + See Also + -------- + :obj:`dpnp.where` : Returns elements chosen from input arrays depending on + a condition. + :obj:`dpnp.nonzero` : Return the indices of the elements that are non-zero. + + Notes + ----- + ``dpnp.argwhere(a)`` is almost the same as + ``dpnp.transpose(dpnp.nonzero(a))``, but produces a result of the correct + shape for a 0D array. + The output of :obj:`dpnp.argwhere` is not suitable for indexing arrays. + For this purpose use :obj:`dpnp.nonzero` instead. + + Examples + -------- + >>> import dpnp as np + >>> x = np.arange(6).reshape(2, 3) + >>> x + array([[0, 1, 2], + [3, 4, 5]]) + >>> np.argwhere(x > 1) + array([[0, 2], + [1, 0], + [1, 1], + [1, 2]]) + + """ + + dpnp.check_supported_arrays_type(a) + if a.ndim == 0: + # nonzero does not behave well on 0d, so promote to 1d + a = dpnp.atleast_1d(a) + # and then remove the added dimension + return dpnp.argwhere(a)[:, :0] + return dpnp.stack(dpnp.nonzero(a)).T
+ + + +
+[docs] +def searchsorted(a, v, side="left", sorter=None): + """ + Find indices where elements should be inserted to maintain order. + + For full documentation refer to :obj:`numpy.searchsorted`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input 1-D array. If `sorter` is ``None``, then it must be sorted in + ascending order, otherwise `sorter` must be an array of indices that + sort it. + v : {dpnp.ndarray, usm_ndarray, scalar} + Values to insert into `a`. + side : {"left", "right"}, optional + If ``"left"``, the index of the first suitable location found is given. + If ``"right"``, return the last such index. If there is no suitable + index, return either 0 or N (where N is the length of `a`). + Default: ``"left"``. + sorter : {dpnp.ndarray, usm_ndarray}, optional + Optional 1-D array of integer indices that sort array a into ascending + order. They are typically the result of :obj:`dpnp.argsort`. + Out of bound index values of `sorter` array are treated using + ``"wrap"`` mode documented in :py:func:`dpnp.take`. + Default: ``None``. + + Returns + ------- + indices : dpnp.ndarray + Array of insertion points with the same shape as `v`, + or 0-D array if `v` is a scalar. + + See Also + -------- + :obj:`dpnp.sort` : Return a sorted copy of an array. + :obj:`dpnp.histogram` : Produce histogram from 1-D data. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([11,12,13,14,15]) + >>> np.searchsorted(a, 13) + array(2) + >>> np.searchsorted(a, 13, side='right') + array(3) + >>> v = np.array([-10, 20, 12, 13]) + >>> np.searchsorted(a, v) + array([0, 5, 1, 2]) + + """ + + usm_a = dpnp.get_usm_ndarray(a) + if dpnp.isscalar(v): + usm_v = dpt.asarray(v, sycl_queue=a.sycl_queue, usm_type=a.usm_type) + else: + usm_v = dpnp.get_usm_ndarray(v) + + usm_sorter = None if sorter is None else dpnp.get_usm_ndarray(sorter) + return dpnp_array._create_from_usm_ndarray( + dpt.searchsorted(usm_a, usm_v, side=side, sorter=usm_sorter) + )
+ + + +
+[docs] +def where(condition, x=None, y=None, /, *, order="K", out=None): + """ + Return elements chosen from `x` or `y` depending on `condition`. + + When only `condition` is provided, this function is a shorthand for + :obj:`dpnp.nonzero(condition)`. + + For full documentation refer to :obj:`numpy.where`. + + Parameters + ---------- + condition : {dpnp.ndarray, usm_ndarray} + When ``True``, yield `x`, otherwise yield `y`. + x, y : {dpnp.ndarray, usm_ndarray, scalar}, optional + Values from which to choose. `x`, `y` and `condition` need to be + broadcastable to some shape. + order : {"K", "C", "F", "A"}, optional + Memory layout of the new output array, if keyword `out` is ``None``. + Default: ``"K"``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + The array into which the result is written. The data type of `out` must + match the expected shape and the expected data type of the result. + If ``None`` then a new array is returned. + Default: ``None``. + + Returns + ------- + y : dpnp.ndarray + An array with elements from `x` when `condition` is ``True``, and + elements from `y` elsewhere. + + See Also + -------- + :obj:`dpnp.choose` : Construct an array from an index array and a list of + arrays to choose from. + :obj:`dpnp.nonzero` : Return the indices of the elements that are non-zero. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(10) + >>> a + array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) + >>> np.where(a < 5, a, 10*a) + array([ 0, 1, 2, 3, 4, 50, 60, 70, 80, 90]) + + This can be used on multidimensional arrays too: + + >>> np.where(np.array([[True, False], [True, True]]), + ... np.array([[1, 2], [3, 4]]), + ... np.array([[9, 8], [7, 6]])) + array([[1, 8], + [3, 4]]) + + The shapes of x, y, and the condition are broadcast together: + + >>> x, y = np.ogrid[:3, :4] + >>> np.where(x < y, x, 10 + y) # both x and 10+y are broadcast + array([[10, 0, 0, 0], + [10, 11, 1, 1], + [10, 11, 12, 2]]) + + >>> a = np.array([[0, 1, 2], + ... [0, 2, 4], + ... [0, 3, 6]]) + >>> np.where(a < 4, a, -1) # -1 is broadcast + array([[ 0, 1, 2], + [ 0, 2, -1], + [ 0, 3, -1]]) + + """ + + missing = (x is None, y is None).count(True) + if missing == 1: + raise ValueError("Must provide both 'x' and 'y' or neither.") + + if missing == 2: + return dpnp.nonzero(condition) + + usm_x = dpnp.get_usm_ndarray_or_scalar(x) + usm_y = dpnp.get_usm_ndarray_or_scalar(y) + usm_condition = dpnp.get_usm_ndarray(condition) + + usm_out = None if out is None else dpnp.get_usm_ndarray(out) + usm_res = dpt.where(usm_condition, usm_x, usm_y, order=order, out=usm_out) + return dpnp.get_result_array(usm_res, out)
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_sorting.html b/pull/2070/_modules/dpnp/dpnp_iface_sorting.html new file mode 100644 index 00000000000..c9f9d425224 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_sorting.html @@ -0,0 +1,425 @@ + + + + + + + + + + dpnp.dpnp_iface_sorting — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_sorting

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the sorting function of the dpnp
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+
+import dpctl.tensor as dpt
+import numpy
+from dpctl.tensor._numpy_helper import normalize_axis_index
+
+import dpnp
+
+# pylint: disable=no-name-in-module
+from .dpnp_algo import (
+    dpnp_partition,
+)
+from .dpnp_array import dpnp_array
+from .dpnp_utils import (
+    call_origin,
+    map_dtype_to_device,
+)
+
+__all__ = ["argsort", "partition", "sort", "sort_complex"]
+
+
+def _wrap_sort_argsort(a, _sorting_fn, axis=-1, kind=None, order=None):
+    """Wrap a sorting call from dpctl.tensor interface."""
+
+    if order is not None:
+        raise NotImplementedError(
+            "order keyword argument is only supported with its default value."
+        )
+    if kind is not None and kind != "stable":
+        raise NotImplementedError(
+            "kind keyword argument can only be None or 'stable'."
+        )
+
+    usm_a = dpnp.get_usm_ndarray(a)
+    if axis is None:
+        usm_a = dpt.reshape(usm_a, -1)
+        axis = -1
+
+    axis = normalize_axis_index(axis, ndim=usm_a.ndim)
+    usm_res = _sorting_fn(usm_a, axis=axis)
+    return dpnp_array._create_from_usm_ndarray(usm_res)
+
+
+
+[docs] +def argsort(a, axis=-1, kind=None, order=None): + """ + Returns the indices that would sort an array. + + For full documentation refer to :obj:`numpy.argsort`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Array to be sorted. + axis : int or None, optional + Axis along which to sort. If ``None``, the array is flattened before + sorting. The default is -1, which sorts along the last axis. + kind : {None, "stable"}, optional + Default is ``None``, which is equivalent to `"stable"`. + Unlike NumPy, no other option is accepted here. + + Returns + ------- + out : dpnp.ndarray + Array of indices that sort `a` along the specified `axis`. + If `a` is one-dimensional, ``a[index_array]`` yields a sorted `a`. + More generally, ``dpnp.take_along_axis(a, index_array, axis=axis)`` + always yields the sorted `a`, irrespective of dimensionality. + The return array has default array index data type. + + Notes + ----- + For zero-dimensional arrays, if `axis=None`, output is a one-dimensional + array with a single zero element. Otherwise, an ``AxisError`` is raised. + + Limitations + ----------- + Parameters `order` is only supported with its default value. + Parameters `kind` can only be ``None`` or ``"stable"`` which + are equivalent. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.ndarray.argsort` : Equivalent method. + :obj:`dpnp.sort` : Return a sorted copy of an array. + :obj:`dpnp.lexsort` : Indirect stable sort with multiple keys. + :obj:`dpnp.argpartition` : Indirect partial sort. + :obj:`dpnp.take_along_axis` : Apply ``index_array`` from obj:`dpnp.argsort` + to an array as if by calling sort. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([3, 1, 2]) + >>> np.argsort(x) + array([1, 2, 0]) + + >>> x = np.array([[0, 3], [2, 2]]) + >>> x + array([[0, 3], + [2, 2]]) + + >>> ind = np.argsort(x, axis=0) # sorts along first axis + >>> ind + array([[0, 1], + [1, 0]]) + >>> np.take_along_axis(x, ind, axis=0) # same as np.sort(x, axis=0) + array([[0, 2], + [2, 3]]) + + >>> ind = np.argsort(x, axis=1) # sorts along last axis + >>> ind + array([[0, 1], + [0, 1]]) + >>> np.take_along_axis(x, ind, axis=1) # same as np.sort(x, axis=1) + array([[0, 3], + [2, 2]]) + + """ + + return _wrap_sort_argsort(a, dpt.argsort, axis=axis, kind=kind, order=order)
+ + + +
+[docs] +def partition(x1, kth, axis=-1, kind="introselect", order=None): + """ + Return a partitioned copy of an array. + + For full documentation refer to :obj:`numpy.partition`. + + Limitations + ----------- + Input array is supported as :obj:`dpnp.ndarray`. + Input `kth` is supported as :obj:`int`. + Parameters `axis`, `kind` and `order` are supported only with default + values. + + """ + + x1_desc = dpnp.get_dpnp_descriptor(x1, copy_when_nondefault_queue=False) + if x1_desc: + if not isinstance(kth, int): + pass + elif x1_desc.ndim == 0: + pass + elif kth >= x1_desc.shape[x1_desc.ndim - 1] or x1_desc.ndim + kth < 0: + pass + elif axis != -1: + pass + elif kind != "introselect": + pass + elif order is not None: + pass + else: + return dpnp_partition(x1_desc, kth, axis, kind, order).get_pyobj() + + return call_origin(numpy.partition, x1, kth, axis, kind, order)
+ + + +
+[docs] +def sort(a, axis=-1, kind=None, order=None): + """ + Return a sorted copy of an array. + + For full documentation refer to :obj:`numpy.sort`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Array to be sorted. + axis : int or None, optional + Axis along which to sort. If ``None``, the array is flattened before + sorting. The default is -1, which sorts along the last axis. + kind : {None, "stable"}, optional + Default is ``None``, which is equivalent to `"stable"`. + Unlike in NumPy any other options are not accepted here. + + Returns + ------- + out : dpnp.ndarray + Sorted array with the same type and shape as `a`. + + Notes + ----- + For zero-dimensional arrays, if `axis=None`, output is the input array + returned as a one-dimensional array. Otherwise, an ``AxisError`` is raised. + + Limitations + ----------- + Parameters `order` is only supported with its default value. + Parameters `kind` can only be ``None`` or ``"stable"`` which + are equivalent. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.ndarray.sort` : Sort an array in-place. + :obj:`dpnp.argsort` : Return the indices that would sort an array. + :obj:`dpnp.lexsort` : Indirect stable sort on multiple keys. + :obj:`dpnp.searchsorted` : Find elements in a sorted array. + :obj:`dpnp.partition` : Partial sort. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1,4],[3,1]]) + >>> np.sort(a) # sort along the last axis + array([[1, 4], + [1, 3]]) + >>> np.sort(a, axis=None) # sort the flattened array + array([1, 1, 3, 4]) + >>> np.sort(a, axis=0) # sort along the first axis + array([[1, 1], + [3, 4]]) + + """ + + return _wrap_sort_argsort(a, dpt.sort, axis=axis, kind=kind, order=order)
+ + + +
+[docs] +def sort_complex(a): + """ + Sort a complex array using the real part first, then the imaginary part. + + For full documentation refer to :obj:`numpy.sort_complex`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + + Returns + ------- + out : dpnp.ndarray of complex dtype + Always returns a sorted complex array. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([5, 3, 6, 2, 1]) + >>> np.sort_complex(a) + array([1.+0.j, 2.+0.j, 3.+0.j, 5.+0.j, 6.+0.j]) + + >>> a = np.array([1 + 2j, 2 - 1j, 3 - 2j, 3 - 3j, 3 + 5j]) + >>> np.sort_complex(a) + array([1.+2.j, 2.-1.j, 3.-3.j, 3.-2.j, 3.+5.j]) + + """ + + b = dpnp.sort(a) + if not dpnp.issubdtype(b.dtype, dpnp.complexfloating): + if b.dtype.char in "bhBH": + b_dt = dpnp.complex64 + else: + b_dt = map_dtype_to_device(dpnp.complex128, b.sycl_device) + return b.astype(b_dt) + return b
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_statistics.html b/pull/2070/_modules/dpnp/dpnp_iface_statistics.html new file mode 100644 index 00000000000..7faed26966f --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_statistics.html @@ -0,0 +1,1195 @@ + + + + + + + + + + dpnp.dpnp_iface_statistics — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_statistics

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the statistics function of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+
+import dpctl.tensor as dpt
+import numpy
+from dpctl.tensor._numpy_helper import normalize_axis_index
+
+import dpnp
+
+# pylint: disable=no-name-in-module
+from .dpnp_algo import (
+    dpnp_correlate,
+    dpnp_median,
+)
+from .dpnp_array import dpnp_array
+from .dpnp_utils import (
+    call_origin,
+    get_usm_allocations,
+)
+from .dpnp_utils.dpnp_utils_reduction import dpnp_wrap_reduction_call
+from .dpnp_utils.dpnp_utils_statistics import (
+    dpnp_cov,
+)
+
+__all__ = [
+    "amax",
+    "amin",
+    "average",
+    "bincount",
+    "correlate",
+    "cov",
+    "max",
+    "mean",
+    "median",
+    "min",
+    "ptp",
+    "std",
+    "var",
+]
+
+
+def _count_reduce_items(arr, axis, where=True):
+    """
+    Calculates the number of items used in a reduction operation
+    along the specified axis or axes.
+
+    Parameters
+    ----------
+    arr : {dpnp.ndarray, usm_ndarray}
+        Input array.
+    axis : {None, int, tuple of ints}, optional
+        axis or axes along which the number of items used in a reduction
+        operation must be counted. If a tuple of unique integers is given,
+        the items are counted over multiple axes. If ``None``, the variance
+        is computed over the entire array.
+        Default: `None`.
+
+    Returns
+    -------
+    out : int
+        The number of items should be used in a reduction operation.
+
+    Limitations
+    -----------
+    Parameters `where` is only supported with its default value.
+
+    """
+    if where is True:
+        # no boolean mask given, calculate items according to axis
+        if axis is None:
+            axis = tuple(range(arr.ndim))
+        elif not isinstance(axis, tuple):
+            axis = (axis,)
+        items = 1
+        for ax in axis:
+            items *= arr.shape[normalize_axis_index(ax, arr.ndim)]
+        items = dpnp.intp(items)
+    else:
+        raise NotImplementedError(
+            "where keyword argument is only supported with its default value."
+        )
+    return items
+
+
+def _get_comparison_res_dt(a, _dtype, _out):
+    """Get a data type used by dpctl for result array in comparison function."""
+
+    return a.dtype
+
+
+
+[docs] +def amax(a, axis=None, out=None, keepdims=False, initial=None, where=True): + """ + Return the maximum of an array or maximum along an axis. + + `amax` is an alias of :obj:`dpnp.max`. + + See Also + -------- + :obj:`dpnp.max` : alias of this function + :obj:`dpnp.ndarray.max` : equivalent method + + """ + + return max( + a, axis=axis, out=out, keepdims=keepdims, initial=initial, where=where + )
+ + + +
+[docs] +def amin(a, axis=None, out=None, keepdims=False, initial=None, where=True): + """ + Return the minimum of an array or minimum along an axis. + + `amin` is an alias of :obj:`dpnp.min`. + + See Also + -------- + :obj:`dpnp.min` : alias of this function + :obj:`dpnp.ndarray.min` : equivalent method + + """ + + return min( + a, axis=axis, out=out, keepdims=keepdims, initial=initial, where=where + )
+ + + +
+[docs] +def average(a, axis=None, weights=None, returned=False, *, keepdims=False): + """ + Compute the weighted average along the specified axis. + + For full documentation refer to :obj:`numpy.average`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which the averages must be computed. If + a tuple of unique integers, the averages are computed over multiple + axes. If ``None``, the average is computed over the entire array. + Default: ``None``. + weights : {array_like}, optional + An array of weights associated with the values in `a`. Each value in + `a` contributes to the average according to its associated weight. + The weights array can either be 1-D (in which case its length must be + the size of `a` along the given axis) or of the same shape as `a`. + If `weights=None`, then all data in `a` are assumed to have a + weight equal to one. The 1-D calculation is:: + + avg = sum(a * weights) / sum(weights) + + The only constraint on `weights` is that `sum(weights)` must not be 0. + returned : {bool}, optional + If ``True``, the tuple (`average`, `sum_of_weights`) is returned, + otherwise only the average is returned. If `weights=None`, + `sum_of_weights` is equivalent to the number of elements over which + the average is taken. + Default: ``False``. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. + Default: ``False``. + + Returns + ------- + out, [sum_of_weights] : dpnp.ndarray, dpnp.ndarray + Return the average along the specified axis. When `returned` is + ``True``, return a tuple with the average as the first element and + the sum of the weights as the second element. `sum_of_weights` is of + the same type as `out`. The result dtype follows a general pattern. + If `weights` is ``None``, the result dtype will be that of `a` , or + default floating point data type for the device where input array `a` + is allocated. Otherwise, if `weights` is not ``None`` and `a` is + non-integral, the result type will be the type of lowest precision + capable of representing values of both `a` and `weights`. If `a` + happens to be integral, the previous rules still applies but the result + dtype will at least be default floating point data type for the device + where input array `a` is allocated. + + See Also + -------- + :obj:`dpnp.mean` : Compute the arithmetic mean along the specified axis. + :obj:`dpnp.sum` : Sum of array elements over a given axis. + + Examples + -------- + >>> import dpnp as np + >>> data = np.arange(1, 5) + >>> data + array([1, 2, 3, 4]) + >>> np.average(data) + array(2.5) + >>> np.average(np.arange(1, 11), weights=np.arange(10, 0, -1)) + array(4.0) + + >>> data = np.arange(6).reshape((3, 2)) + >>> data + array([[0, 1], + [2, 3], + [4, 5]]) + >>> np.average(data, axis=1, weights=[1./4, 3./4]) + array([0.75, 2.75, 4.75]) + >>> np.average(data, weights=[1./4, 3./4]) + TypeError: Axis must be specified when shapes of a and weights differ. + + With ``keepdims=True``, the following result has shape (3, 1). + + >>> np.average(data, axis=1, keepdims=True) + array([[0.5], + [2.5], + [4.5]]) + + >>> a = np.ones(5, dtype=np.float64) + >>> w = np.ones(5, dtype=np.complex64) + >>> avg = np.average(a, weights=w) + >>> print(avg.dtype) + complex128 + + """ + + dpnp.check_supported_arrays_type(a) + if weights is None: + avg = dpnp.mean(a, axis=axis, keepdims=keepdims) + scl = dpnp.asanyarray( + avg.dtype.type(a.size / avg.size), + usm_type=a.usm_type, + sycl_queue=a.sycl_queue, + ) + else: + if not isinstance(weights, (dpnp_array, dpt.usm_ndarray)): + wgt = dpnp.asanyarray( + weights, usm_type=a.usm_type, sycl_queue=a.sycl_queue + ) + else: + get_usm_allocations([a, weights]) + wgt = weights + + if not dpnp.issubdtype(a.dtype, dpnp.inexact): + default_dtype = dpnp.default_float_type(a.device) + result_dtype = dpnp.result_type(a.dtype, wgt.dtype, default_dtype) + else: + result_dtype = dpnp.result_type(a.dtype, wgt.dtype) + + # Sanity checks + if a.shape != wgt.shape: + if axis is None: + raise TypeError( + "Axis must be specified when shapes of input array and " + "weights differ." + ) + if wgt.ndim != 1: + raise TypeError( + "1D weights expected when shapes of input array and " + "weights differ." + ) + if wgt.shape[0] != a.shape[axis]: + raise ValueError( + "Length of weights not compatible with specified axis." + ) + + # setup wgt to broadcast along axis + wgt = dpnp.broadcast_to(wgt, (a.ndim - 1) * (1,) + wgt.shape) + wgt = wgt.swapaxes(-1, axis) + + scl = wgt.sum(axis=axis, dtype=result_dtype, keepdims=keepdims) + if dpnp.any(scl == 0.0): + raise ZeroDivisionError("Weights sum to zero, can't be normalized") + + # result_datatype + avg = ( + dpnp.multiply(a, wgt).sum( + axis=axis, dtype=result_dtype, keepdims=keepdims + ) + / scl + ) + + if returned: + if scl.shape != avg.shape: + scl = dpnp.broadcast_to(scl, avg.shape).copy() + return avg, scl + return avg
+ + + +
+[docs] +def bincount(x1, weights=None, minlength=0): + """ + Count number of occurrences of each value in array of non-negative integers. + + For full documentation refer to :obj:`numpy.bincount`. + + See Also + -------- + :obj:`dpnp.unique` : Find the unique elements of an array. + + Examples + -------- + >>> import dpnp as np + >>> res = np.bincount(np.arange(5)) + >>> print(res) + [1, 1, 1, 1, 1] + + """ + + return call_origin(numpy.bincount, x1, weights=weights, minlength=minlength)
+ + + +
+[docs] +def correlate(x1, x2, mode="valid"): + """ + Cross-correlation of two 1-dimensional sequences. + + For full documentation refer to :obj:`numpy.correlate`. + + Limitations + ----------- + Input arrays are supported as :obj:`dpnp.ndarray`. + Size and shape of input arrays are supported to be equal. + Parameter `mode` is supported only with default value ``"valid``. + Otherwise the function will be executed sequentially on CPU. + Input array data types are limited by supported DPNP :ref:`Data types`. + + See Also + -------- + :obj:`dpnp.convolve` : Discrete, linear convolution of + two one-dimensional sequences. + + Examples + -------- + >>> import dpnp as np + >>> x = np.correlate([1, 2, 3], [0, 1, 0.5]) + >>> [i for i in x] + [3.5] + + """ + + x1_desc = dpnp.get_dpnp_descriptor(x1, copy_when_nondefault_queue=False) + x2_desc = dpnp.get_dpnp_descriptor(x2, copy_when_nondefault_queue=False) + if x1_desc and x2_desc: + if x1_desc.size != x2_desc.size or x1_desc.size == 0: + pass + elif x1_desc.shape != x2_desc.shape: + pass + elif mode != "valid": + pass + else: + return dpnp_correlate(x1_desc, x2_desc).get_pyobj() + + return call_origin(numpy.correlate, x1, x2, mode=mode)
+ + + +
+[docs] +def cov( + m, + y=None, + rowvar=True, + bias=False, + ddof=None, + fweights=None, + aweights=None, + *, + dtype=None, +): + """ + Estimate a covariance matrix, given data and weights. + + For full documentation refer to :obj:`numpy.cov`. + + Returns + ------- + out : dpnp.ndarray + The covariance matrix of the variables. + + Limitations + ----------- + Input array ``m`` is supported as :obj:`dpnp.ndarray`. + Dimension of input array ``m`` is limited by ``m.ndim <= 2``. + Size and shape of input arrays are supported to be equal. + Parameter `y` is supported only with default value ``None``. + Parameter `bias` is supported only with default value ``False``. + Parameter `ddof` is supported only with default value ``None``. + Parameter `fweights` is supported only with default value ``None``. + Parameter `aweights` is supported only with default value ``None``. + Otherwise the function will be executed sequentially on CPU. + Input array data types are limited by supported DPNP :ref:`Data types`. + + See Also + -------- + :obj:`dpnp.corrcoef` : Normalized covariance matrix + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[0, 2], [1, 1], [2, 0]]).T + >>> x.shape + (2, 3) + >>> [i for i in x] + [0, 1, 2, 2, 1, 0] + >>> out = np.cov(x) + >>> out.shape + (2, 2) + >>> [i for i in out] + [1.0, -1.0, -1.0, 1.0] + + """ + + if not isinstance(m, (dpnp_array, dpt.usm_ndarray)): + pass + elif m.ndim > 2: + pass + elif bias: + pass + elif ddof is not None: + pass + elif fweights is not None: + pass + elif aweights is not None: + pass + else: + return dpnp_cov(m, y=y, rowvar=rowvar, dtype=dtype) + + return call_origin( + numpy.cov, m, y, rowvar, bias, ddof, fweights, aweights, dtype=dtype + )
+ + + +
+[docs] +def max(a, axis=None, out=None, keepdims=False, initial=None, where=True): + """ + Return the maximum of an array or maximum along an axis. + + For full documentation refer to :obj:`numpy.max`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int or tuple of ints}, optional + Axis or axes along which to operate. By default, flattened input is + used. If this is a tuple of integers, the minimum is selected over + multiple axes, instead of a single axis or all the axes as before. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. Must be of the + same shape and buffer length as the expected output. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the input array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + Maximum of `a`. If `axis` is ``None``, the result is a zero-dimensional + array. If `axis` is an integer, the result is an array of dimension + ``a.ndim - 1``. If `axis` is a tuple, the result is an array of + dimension ``a.ndim - len(axis)``. + + Limitations + -----------. + Parameters `where`, and `initial` are only supported with their default + values. Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.min` : Return the minimum of an array. + :obj:`dpnp.maximum` : Element-wise maximum of two arrays, propagates NaNs. + :obj:`dpnp.fmax` : Element-wise maximum of two arrays, ignores NaNs. + :obj:`dpnp.amax` : The maximum value of an array along a given axis, + propagates NaNs. + :obj:`dpnp.nanmax` : The maximum value of an array along a given axis, + ignores NaNs. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(4).reshape((2,2)) + >>> a + array([[0, 1], + [2, 3]]) + >>> np.max(a) + array(3) + + >>> np.max(a, axis=0) # Maxima along the first axis + array([2, 3]) + >>> np.max(a, axis=1) # Maxima along the second axis + array([1, 3]) + + >>> b = np.arange(5, dtype=float) + >>> b[2] = np.nan + >>> np.max(b) + array(nan) + + """ + + dpnp.check_limitations(initial=initial, where=where) + usm_a = dpnp.get_usm_ndarray(a) + + return dpnp_wrap_reduction_call( + a, + out, + dpt.max, + _get_comparison_res_dt, + usm_a, + axis=axis, + keepdims=keepdims, + )
+ + + +
+[docs] +def mean(a, /, axis=None, dtype=None, out=None, keepdims=False, *, where=True): + """ + Compute the arithmetic mean along the specified axis. + + For full documentation refer to :obj:`numpy.mean`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which the arithmetic means must be computed. If + a tuple of unique integers, the means are computed over multiple + axes. If ``None``, the mean is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Type to use in computing the mean. By default, if `a` has a + floating-point data type, the returned array will have + the same data type as `a`. + If `a` has a boolean or integral data type, the returned array + will have the default floating point data type for the device + where input array `a` is allocated. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output but the type (of the calculated + values) will be cast if necessary. Default: ``None``. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array containing the arithmetic means along the specified axis(axes). + If the input is a zero-size array, an array containing NaN values is + returned. + + Limitations + ----------- + Parameter `where` is only supported with its default value. + Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.average` : Weighted average. + :obj:`dpnp.std` : Compute the standard deviation along the specified axis. + :obj:`dpnp.var` : Compute the variance along the specified axis. + :obj:`dpnp.nanmean` : Compute the arithmetic mean along the specified axis, + ignoring NaNs. + :obj:`dpnp.nanstd` : Compute the standard deviation along + the specified axis, while ignoring NaNs. + :obj:`dpnp.nanvar` : Compute the variance along the specified axis, + while ignoring NaNs. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, 4]]) + >>> np.mean(a) + array(2.5) + >>> np.mean(a, axis=0) + array([2., 3.]) + >>> np.mean(a, axis=1) + array([1.5, 3.5]) + + """ + + dpnp.check_limitations(where=where) + + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.mean(usm_a, axis=axis, keepdims=keepdims) + if dtype is not None: + usm_res = dpt.astype(usm_res, dtype) + + return dpnp.get_result_array(usm_res, out, casting="same_kind")
+ + + +
+[docs] +def median(x1, axis=None, out=None, overwrite_input=False, keepdims=False): + """ + Compute the median along the specified axis. + + For full documentation refer to :obj:`numpy.median`. + + Limitations + ----------- + Input array is supported as :obj:`dpnp.ndarray`. + Parameter `axis` is supported only with default value ``None``. + Parameter `out` is supported only with default value ``None``. + Parameter `overwrite_input` is supported only with default value ``False``. + Parameter `keepdims` is supported only with default value ``False``. + Otherwise the function will be executed sequentially on CPU. + Input array data types are limited by supported DPNP :ref:`Data types`. + + See Also + -------- + :obj:`dpnp.mean` : Compute the arithmetic mean along the specified axis. + :obj:`dpnp.percentile` : Compute the q-th percentile of the data + along the specified axis. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[10, 7, 4], [3, 2, 1]]) + >>> np.median(a) + 3.5 + + """ + + x1_desc = dpnp.get_dpnp_descriptor(x1, copy_when_nondefault_queue=False) + if x1_desc: + if axis is not None: + pass + elif out is not None: + pass + elif overwrite_input: + pass + elif keepdims: + pass + else: + result_obj = dpnp_median(x1_desc).get_pyobj() + result = dpnp.convert_single_elem_array_to_scalar(result_obj) + + return result + + return call_origin(numpy.median, x1, axis, out, overwrite_input, keepdims)
+ + + +
+[docs] +def min(a, axis=None, out=None, keepdims=False, initial=None, where=True): + """ + Return the minimum of an array or maximum along an axis. + + For full documentation refer to :obj:`numpy.min`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int or tuple of ints}, optional + Axis or axes along which to operate. By default, flattened input is + used. If this is a tuple of integers, the minimum is selected over + multiple axes, instead of a single axis or all the axes as before. + Default: ``None``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. Must be of the + same shape and buffer length as the expected output. + Default: ``None``. + keepdims : {None, bool}, optional + If this is set to ``True``, the axes which are reduced are left in the + result as dimensions with size one. With this option, the result will + broadcast correctly against the input array. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + Minimum of `a`. If `axis` is ``None``, the result is a zero-dimensional + array. If `axis` is an integer, the result is an array of dimension + ``a.ndim - 1``. If `axis` is a tuple, the result is an array of + dimension ``a.ndim - len(axis)``. + + Limitations + ----------- + Parameters `where`, and `initial` are only supported with their default + values. Otherwise ``NotImplementedError`` exception will be raised. + + See Also + -------- + :obj:`dpnp.max` : Return the maximum of an array. + :obj:`dpnp.minimum` : Element-wise minimum of two arrays, propagates NaNs. + :obj:`dpnp.fmin` : Element-wise minimum of two arrays, ignores NaNs. + :obj:`dpnp.amin` : The minimum value of an array along a given axis, + propagates NaNs. + :obj:`dpnp.nanmin` : The minimum value of an array along a given axis, + ignores NaNs. + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(4).reshape((2,2)) + >>> a + array([[0, 1], + [2, 3]]) + >>> np.min(a) + array(0) + + >>> np.min(a, axis=0) # Minima along the first axis + array([0, 1]) + >>> np.min(a, axis=1) # Minima along the second axis + array([0, 2]) + + >>> b = np.arange(5, dtype=float) + >>> b[2] = np.nan + >>> np.min(b) + array(nan) + + """ + + dpnp.check_limitations(initial=initial, where=where) + usm_a = dpnp.get_usm_ndarray(a) + + return dpnp_wrap_reduction_call( + a, + out, + dpt.min, + _get_comparison_res_dt, + usm_a, + axis=axis, + keepdims=keepdims, + )
+ + + +
+[docs] +def ptp( + a, + /, + axis=None, + out=None, + keepdims=False, +): + """ + Range of values (maximum - minimum) along an axis. + + For full documentation refer to :obj:`numpy.ptp`. + + Returns + ------- + ptp : dpnp.ndarray + The range of a given array. + + Limitations + ----------- + Input array is supported as :class:`dpnp.dpnp.ndarray` or + :class:`dpctl.tensor.usm_ndarray`. + + Examples + -------- + >>> import dpnp as np + >>> x = np.array([[4, 9, 2, 10],[6, 9, 7, 12]]) + >>> np.ptp(x, axis=1) + array([8, 6]) + + >>> np.ptp(x, axis=0) + array([2, 0, 5, 2]) + + >>> np.ptp(x) + array(10) + + """ + + return dpnp.subtract( + dpnp.max(a, axis=axis, keepdims=keepdims, out=out), + dpnp.min(a, axis=axis, keepdims=keepdims), + out=out, + )
+ + + +
+[docs] +def std( + a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True +): + """ + Compute the standard deviation along the specified axis. + + For full documentation refer to :obj:`numpy.std`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + Axis or axes along which the standard deviations must be computed. + If a tuple of unique integers is given, the standard deviations + are computed over multiple axes. If ``None``, the standard deviation + is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Type to use in computing the standard deviation. By default, + if `a` has a floating-point data type, the returned array + will have the same data type as `a`. + If `a` has a boolean or integral data type, the returned array + will have the default floating point data type for the device + where input array `a` is allocated. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output but the type (of the calculated + values) will be cast if necessary. + ddof : {int, float}, optional + Means Delta Degrees of Freedom. The divisor used in calculations + is ``N - ddof``, where ``N`` corresponds to the total + number of elements over which the standard deviation is calculated. + Default: `0.0`. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array containing the standard deviations. If the standard + deviation was computed over the entire array, a zero-dimensional + array is returned. + + Limitations + ----------- + Parameters `where` is only supported with its default value. + Otherwise ``NotImplementedError`` exception will be raised. + + Notes + ----- + Note that, for complex numbers, the absolute value is taken before squaring, + so that the result is always real and non-negative. + + See Also + -------- + :obj:`dpnp.ndarray.std` : corresponding function for ndarrays. + :obj:`dpnp.var` : Compute the variance along the specified axis. + :obj:`dpnp.mean` : Compute the arithmetic mean along the specified axis. + :obj:`dpnp.nanmean` : Compute the arithmetic mean along the specified axis, + ignoring NaNs. + :obj:`dpnp.nanstd` : Compute the standard deviation along + the specified axis, while ignoring NaNs. + :obj:`dpnp.nanvar` : Compute the variance along the specified axis, + while ignoring NaNs. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, 4]]) + >>> np.std(a) + array(1.118033988749895) + >>> np.std(a, axis=0) + array([1., 1.]) + >>> np.std(a, axis=1) + array([0.5, 0.5]) + + """ + + dpnp.check_supported_arrays_type(a) + dpnp.check_limitations(where=where) + + if not isinstance(ddof, (int, float)): + raise TypeError( + f"An integer or float is required, but got {type(ddof)}" + ) + + if dpnp.issubdtype(a.dtype, dpnp.complexfloating): + result = dpnp.var( + a, + axis=axis, + dtype=None, + out=out, + ddof=ddof, + keepdims=keepdims, + where=where, + ) + dpnp.sqrt(result, out=result) + else: + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.std(usm_a, axis=axis, correction=ddof, keepdims=keepdims) + result = dpnp.get_result_array(usm_res, out) + + if dtype is not None and out is None: + result = result.astype(dtype, casting="same_kind") + return result
+ + + +
+[docs] +def var( + a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True +): + """ + Compute the variance along the specified axis. + + For full documentation refer to :obj:`numpy.var`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + axis : {None, int, tuple of ints}, optional + axis or axes along which the variances must be computed. If a tuple + of unique integers is given, the variances are computed over multiple + axes. If ``None``, the variance is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Type to use in computing the variance. By default, if `a` has a + floating-point data type, the returned array will have + the same data type as `a`. + If `a` has a boolean or integral data type, the returned array + will have the default floating point data type for the device + where input array `a` is allocated. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Alternative output array in which to place the result. It must have + the same shape as the expected output but the type (of the calculated + values) will be cast if necessary. + ddof : {int, float}, optional + Means Delta Degrees of Freedom. The divisor used in calculations + is ``N - ddof``, where ``N`` corresponds to the total + number of elements over which the variance is calculated. + Default: `0.0`. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains + compatible with the input array according to Array Broadcasting + rules. Otherwise, if ``False``, the reduced axes are not included in + the returned array. Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + An array containing the variances. If the variance was computed + over the entire array, a zero-dimensional array is returned. + + Limitations + ----------- + Parameters `where` is only supported with its default value. + Otherwise ``NotImplementedError`` exception will be raised. + + Notes + ----- + Note that, for complex numbers, the absolute value is taken before squaring, + so that the result is always real and non-negative. + + See Also + -------- + :obj:`dpnp.ndarray.var` : corresponding function for ndarrays. + :obj:`dpnp.std` : Compute the standard deviation along the specified axis. + :obj:`dpnp.mean` : Compute the arithmetic mean along the specified axis. + :obj:`dpnp.nanmean` : Compute the arithmetic mean along the specified axis, + ignoring NaNs. + :obj:`dpnp.nanstd` : Compute the standard deviation along + the specified axis, while ignoring NaNs. + :obj:`dpnp.nanvar` : Compute the variance along the specified axis, + while ignoring NaNs. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 2], [3, 4]]) + >>> np.var(a) + array(1.25) + >>> np.var(a, axis=0) + array([1., 1.]) + >>> np.var(a, axis=1) + array([0.25, 0.25]) + + """ + + dpnp.check_supported_arrays_type(a) + dpnp.check_limitations(where=where) + + if not isinstance(ddof, (int, float)): + raise TypeError( + f"An integer or float is required, but got {type(ddof)}" + ) + + if dpnp.issubdtype(a.dtype, dpnp.complexfloating): + # Note that if dtype is not of inexact type then arrmean + # will not be either. + arrmean = dpnp.mean( + a, axis=axis, dtype=dtype, keepdims=True, where=where + ) + x = dpnp.subtract(a, arrmean) + x = dpnp.multiply(x, x.conj(), out=x).real + result = dpnp.sum( + x, + axis=axis, + dtype=a.real.dtype, + out=out, + keepdims=keepdims, + where=where, + ) + + cnt = _count_reduce_items(a, axis, where) + cnt = numpy.max(cnt - ddof, 0).astype(result.dtype, casting="same_kind") + if not cnt: + cnt = dpnp.nan + + dpnp.divide(result, cnt, out=result) + else: + usm_a = dpnp.get_usm_ndarray(a) + usm_res = dpt.var(usm_a, axis=axis, correction=ddof, keepdims=keepdims) + result = dpnp.get_result_array(usm_res, out) + + if out is None and dtype is not None: + result = result.astype(dtype, casting="same_kind") + return result
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_trigonometric.html b/pull/2070/_modules/dpnp/dpnp_iface_trigonometric.html new file mode 100644 index 00000000000..44069cb06cd --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_trigonometric.html @@ -0,0 +1,2583 @@ + + + + + + + + + + dpnp.dpnp_iface_trigonometric — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for dpnp.dpnp_iface_trigonometric

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the Trigonometric part of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+# pylint: disable=protected-access
+# pylint: disable=no-name-in-module
+
+
+import dpctl.tensor as dpt
+import dpctl.tensor._tensor_elementwise_impl as ti
+import dpctl.tensor._type_utils as dtu
+
+import dpnp
+import dpnp.backend.extensions.ufunc._ufunc_impl as ufi
+
+from .dpnp_algo.dpnp_elementwise_common import DPNPBinaryFunc, DPNPUnaryFunc
+from .dpnp_utils.dpnp_utils_reduction import dpnp_wrap_reduction_call
+
+__all__ = [
+    "arccos",
+    "arccosh",
+    "arcsin",
+    "arcsinh",
+    "arctan",
+    "arctan2",
+    "arctanh",
+    "asin",
+    "asinh",
+    "acos",
+    "acosh",
+    "atan",
+    "atan2",
+    "atanh",
+    "cbrt",
+    "cos",
+    "cosh",
+    "cumlogsumexp",
+    "deg2rad",
+    "degrees",
+    "exp",
+    "exp2",
+    "expm1",
+    "hypot",
+    "log",
+    "log10",
+    "log1p",
+    "log2",
+    "logaddexp",
+    "logaddexp2",
+    "logsumexp",
+    "rad2deg",
+    "radians",
+    "reciprocal",
+    "reduce_hypot",
+    "rsqrt",
+    "sin",
+    "sinh",
+    "sqrt",
+    "square",
+    "tan",
+    "tanh",
+    "unwrap",
+]
+
+
+def _get_accumulation_res_dt(a, dtype, _out):
+    """Get a dtype used by dpctl for result array in accumulation function."""
+
+    if dtype is None:
+        return dtu._default_accumulation_dtype_fp_types(a.dtype, a.sycl_queue)
+
+    dtype = dpnp.dtype(dtype)
+    return dtu._to_device_supported_dtype(dtype, a.sycl_device)
+
+
+_ACOS_DOCSTRING = r"""
+Computes inverse cosine for each element `x_i` for input array `x`.
+
+The inverse of :obj:`dpnp.cos` so that, if ``y = cos(x)``, then ``x = arccos(y)``.
+Note that :obj:`dpnp.acos` is an alias of :obj:`dpnp.arccos`.
+
+For full documentation refer to :obj:`numpy.arccos`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise inverse cosine, in radians
+    and in the closed interval `[-pi/2, pi/2]`. The data type
+    of the returned array is determined by the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.cos` : Trigonometric cosine, element-wise.
+:obj:`dpnp.arctan` : Trigonometric inverse tangent, element-wise.
+:obj:`dpnp.arcsin` : Trigonometric inverse sine, element-wise.
+:obj:`dpnp.arccosh` : Hyperbolic inverse cosine, element-wise.
+
+Notes
+-----
+:obj:`dpnp.arccos` is a multivalued function: for each `x` there are infinitely
+many numbers `z` such that ``cos(z) = x``. The convention is to return the
+angle `z` whose real part lies in `[0, pi]`.
+
+For real-valued input data types, :obj:`dpnp.arccos` always returns real output.
+For each value that cannot be expressed as a real number or infinity, it yields
+``nan``.
+
+For complex-valued input, :obj:`dpnp.arccos` is a complex analytic function that
+has, by convention, the branch cuts `[-inf, -1]` and `[1, inf]` and is continuous
+from above on the former and from below on the latter.
+
+The inverse cos is also known as :math:`acos` or :math:`cos^{-1}`.
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([1, -1])
+>>> np.arccos(x)
+array([0.0,  3.14159265])
+"""
+
+arccos = DPNPUnaryFunc(
+    "arccos",
+    ti._acos_result_type,
+    ti._acos,
+    _ACOS_DOCSTRING,
+    mkl_fn_to_call="_mkl_acos_to_call",
+    mkl_impl_fn="_acos",
+)
+
+acos = arccos  # acos is an alias for arccos
+
+
+_ACOSH_DOCSTRING = r"""
+Computes inverse hyperbolic cosine for each element `x_i` for input array `x`.
+
+The inverse of :obj:`dpnp.cosh` so that, if ``y = cosh(x)``, then ``x = arccosh(y)``.
+Note that :obj:`dpnp.acosh` is an alias of :obj:`dpnp.arccosh`.
+
+For full documentation refer to :obj:`numpy.arccosh`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise inverse hyperbolic cosine, in
+    radians and in the half-closed interval `[0, inf)`. The data type
+    of the returned array is determined by the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.cosh` : Hyperbolic cosine, element-wise.
+:obj:`dpnp.arcsinh` : Hyperbolic inverse sine, element-wise.
+:obj:`dpnp.sinh` : Hyperbolic sine, element-wise.
+:obj:`dpnp.arctanh` : Hyperbolic inverse tangent, element-wise.
+:obj:`dpnp.tanh` : Hyperbolic tangent, element-wise.
+:obj:`dpnp.arccos` : Trigonometric inverse cosine, element-wise.
+
+Notes
+-----
+:obj:`dpnp.arccosh` is a multivalued function: for each `x` there are infinitely
+many numbers `z` such that ``cosh(z) = x``. The convention is to return the
+angle `z` whose real part lies in `[0, inf]`.
+
+For real-valued input data types, :obj:`dpnp.arccosh` always returns real output.
+For each value that cannot be expressed as a real number or infinity, it yields
+``nan``.
+
+For complex-valued input, :obj:`dpnp.arccosh` is a complex analytic function that
+has, by convention, the branch cuts `[-inf, 1]` and is continuous from above.
+
+The inverse hyperbolic cos is also known as :math:`acosh` or :math:`cosh^{-1}`.
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([1.0, np.e, 10.0])
+>>> np.arccosh(x)
+array([0.0, 1.65745445, 2.99322285])
+"""
+
+arccosh = DPNPUnaryFunc(
+    "arccosh",
+    ti._acosh_result_type,
+    ti._acosh,
+    _ACOSH_DOCSTRING,
+    mkl_fn_to_call="_mkl_acosh_to_call",
+    mkl_impl_fn="_acosh",
+)
+
+acosh = arccosh  # acosh is an alias for arccosh
+
+
+_ASIN_DOCSTRING = r"""
+Computes inverse sine for each element `x_i` for input array `x`.
+
+The inverse of :obj:`dpnp.sin`, so that if ``y = sin(x)`` then ``x = arcsin(y)``.
+Note that :obj:`dpnp.asin` is an alias of :obj:`dpnp.arcsin`.
+
+For full documentation refer to :obj:`numpy.arcsin`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise inverse sine, in radians
+    and in the closed interval `[-pi/2, pi/2]`. The data type
+    of the returned array is determined by the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.sin` : Trigonometric sine, element-wise.
+:obj:`dpnp.cos` : Trigonometric cosine, element-wise.
+:obj:`dpnp.arccos` : Trigonometric inverse cosine, element-wise.
+:obj:`dpnp.tan` : Trigonometric tangent, element-wise.
+:obj:`dpnp.arctan` : Trigonometric inverse tangent, element-wise.
+:obj:`dpnp.arctan2` : Element-wise arc tangent of `x1/x2` choosing the quadrant correctly.
+:obj:`dpnp.arcsinh` : Hyperbolic inverse sine, element-wise.
+
+Notes
+-----
+:obj:`dpnp.arcsin` is a multivalued function: for each `x` there are infinitely
+many numbers `z` such that ``sin(z) = x``. The convention is to return the
+angle `z` whose real part lies in `[-pi/2, pi/2]`.
+
+For real-valued input data types, :obj:`dpnp.arcsin` always returns real output.
+For each value that cannot be expressed as a real number or infinity, it yields
+``nan``.
+
+For complex-valued input, :obj:`dpnp.arcsin` is a complex analytic function that
+has, by convention, the branch cuts `[-inf, -1]` and `[1, inf]` and is continuous
+from above on the former and from below on the latter.
+
+The inverse sine is also known as :math:`asin` or :math:`sin^{-1}`.
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([0, 1, -1])
+>>> np.arcsin(x)
+array([0.0, 1.5707963267948966, -1.5707963267948966])
+"""
+
+arcsin = DPNPUnaryFunc(
+    "arcsin",
+    ti._asin_result_type,
+    ti._asin,
+    _ASIN_DOCSTRING,
+    mkl_fn_to_call="_mkl_asin_to_call",
+    mkl_impl_fn="_asin",
+)
+
+asin = arcsin  # asin is an alias for arcsin
+
+
+_ASINH_DOCSTRING = r"""
+Computes inverse hyperbolic sine for each element `x_i` for input array `x`.
+
+The inverse of :obj:`dpnp.sinh`, so that if ``y = sinh(x)`` then ``x = arcsinh(y)``.
+Note that :obj:`dpnp.asinh` is an alias of :obj:`dpnp.arcsinh`.
+
+For full documentation refer to :obj:`numpy.arcsinh`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise inverse hyperbolic sine.
+    The data type of the returned array is determined by
+    the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.sinh` : Hyperbolic sine, element-wise.
+:obj:`dpnp.arctanh` : Hyperbolic inverse tangent, element-wise.
+:obj:`dpnp.arccosh` : Hyperbolic inverse cosine, element-wise.
+:obj:`dpnp.arcsin` : Trigonometric inverse sine, element-wise.
+
+Notes
+-----
+:obj:`dpnp.arcsinh` is a multivalued function: for each `x` there are infinitely
+many numbers `z` such that ``sin(z) = x``. The convention is to return the
+angle `z` whose real part lies in `[-pi/2, pi/2]`.
+
+For real-valued input data types, :obj:`dpnp.arcsinh` always returns real output.
+For each value that cannot be expressed as a real number or infinity, it yields
+``nan``.
+
+For complex-valued input, :obj:`dpnp.arcsinh` is a complex analytic function that
+has, by convention, the branch cuts `[1j, infj]` and `[`1j, -infj]` and is continuous
+from above on the former and from below on the latter.
+
+The inverse hyperbolic sine is also known as :math:`asinh` or :math:`sinh^{-1}`.
+
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([np.e, 10.0])
+>>> np.arcsinh(x)
+array([1.72538256, 2.99822295])
+"""
+
+arcsinh = DPNPUnaryFunc(
+    "arcsinh",
+    ti._asinh_result_type,
+    ti._asinh,
+    _ASINH_DOCSTRING,
+    mkl_fn_to_call="_mkl_asinh_to_call",
+    mkl_impl_fn="_asinh",
+)
+
+asinh = arcsinh  # asinh is an alias for arcsinh
+
+
+_ATAN_DOCSTRING = r"""
+Computes inverse tangent for each element `x_i` for input array `x`.
+
+The inverse of :obj:`dpnp.tan`, so that if ``y = tan(x)`` then ``x = arctan(y)``.
+Note that :obj:`dpnp.atan` is an alias of :obj:`dpnp.arctan`.
+
+For full documentation refer to :obj:`numpy.arctan`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise inverse tangent, in radians
+    and in the closed interval `[-pi/2, pi/2]`. The data type
+    of the returned array is determined by the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.arctan2` : Element-wise arc tangent of `x1/x2` choosing the quadrant correctly.
+:obj:`dpnp.angle` : Argument of complex values.
+:obj:`dpnp.tan` : Trigonometric tangent, element-wise.
+:obj:`dpnp.arcsin` : Trigonometric inverse sine, element-wise.
+:obj:`dpnp.arccos` : Trigonometric inverse cosine, element-wise.
+:obj:`dpnp.arctanh` : Inverse hyperbolic tangent, element-wise.
+
+Notes
+-----
+:obj:`dpnp.arctan` is a multivalued function: for each `x` there are infinitely
+many numbers `z` such that ``tan(z) = x``. The convention is to return the
+angle `z` whose real part lies in `[-pi/2, pi/2]`.
+
+For real-valued input data types, :obj:`dpnp.arctan` always returns real output.
+For each value that cannot be expressed as a real number or infinity, it yields
+``nan``.
+
+For complex-valued input, :obj:`dpnp.arctan` is a complex analytic function that
+has, by convention, the branch cuts `[1j, infj]` and `[-1j, -infj]`  and is continuous
+from the left on the former and from the right on the latter.
+
+The inverse tan is also known as :math:`atan` or :math:`tan^{-1}`.
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([0, 1])
+>>> np.arctan(x)
+array([0.0, 0.78539816])
+"""
+
+arctan = DPNPUnaryFunc(
+    "arctan",
+    ti._atan_result_type,
+    ti._atan,
+    _ATAN_DOCSTRING,
+    mkl_fn_to_call="_mkl_atan_to_call",
+    mkl_impl_fn="_atan",
+)
+
+atan = arctan  # atan is an alias for arctan
+
+
+_ATAN2_DOCSTRING = """
+Calculates the inverse tangent of the quotient `x1_i/x2_i` for each element
+`x1_i` of the input array `x1` with the respective element `x2_i` of the
+input array `x2`. Each element-wise result is expressed in radians.
+
+Note that :obj:`dpnp.atan2` is an alias of :obj:`dpnp.arctan2`.
+This function is not defined for complex-valued arguments; for the so-called
+argument of complex values, use :obj:`dpnp.angle`.
+
+For full documentation refer to :obj:`numpy.arctan2`.
+
+Parameters
+----------
+x1 : {dpnp.ndarray, usm_ndarray, scalar}
+    First input array, expected to have a real-valued floating-point
+    data type.
+    Both inputs `x1` and `x2` can not be scalars at the same time.
+x2 : {dpnp.ndarray, usm_ndarray, scalar}
+    Second input array, also expected to have a real-valued
+    floating-point data type.
+    Both inputs `x1` and `x2` can not be scalars at the same time.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the inverse tangent of the quotient `x1`/`x2`.
+    The returned array must have a real-valued floating-point data type
+    determined by Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword arguments `kwargs` are currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.arctan` : Trigonometric inverse tangent, element-wise.
+:obj:`dpnp.tan` : Compute tangent element-wise.
+:obj:`dpnp.angle` : Return the angle of the complex argument.
+:obj:`dpnp.arcsin` : Trigonometric inverse sine, element-wise.
+:obj:`dpnp.arccos` : Trigonometric inverse cosine, element-wise.
+:obj:`dpnp.arctanh` : Inverse hyperbolic tangent, element-wise.
+
+Examples
+--------
+>>> import dpnp as np
+>>> x1 = np.array([1., -1.])
+>>> x2 = np.array([0., 0.])
+>>> np.arctan2(x1, x2)
+array([1.57079633, -1.57079633])
+
+>>> x1 = np.array([0., 0., np.inf])
+>>> x2 = np.array([+0., -0., np.inf])
+>>> np.arctan2(x1, x2)
+array([0.0 , 3.14159265, 0.78539816])
+
+>>> x1 = np.array([-1, +1, +1, -1])
+>>> x2 = np.array([-1, -1, +1, +1])
+>>> np.arctan2(x1, x2) * 180 / np.pi
+array([-135.,  -45.,   45.,  135.])
+"""
+
+arctan2 = DPNPBinaryFunc(
+    "arctan2",
+    ti._atan2_result_type,
+    ti._atan2,
+    _ATAN2_DOCSTRING,
+    mkl_fn_to_call="_mkl_atan2_to_call",
+    mkl_impl_fn="_atan2",
+)
+
+atan2 = arctan2  # atan2 is an alias for arctan2
+
+
+_ATANH_DOCSTRING = r"""
+Computes hyperbolic inverse tangent for each element `x_i` for input array `x`.
+
+The inverse of :obj:`dpnp.tanh`, so that if ``y = tanh(x)`` then ``x = arctanh(y)``.
+Note that :obj:`dpnp.atanh` is an alias of :obj:`dpnp.arctanh`.
+
+For full documentation refer to :obj:`numpy.arctanh`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise hyperbolic inverse tangent.
+    The data type of the returned array is determined by
+    the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.tanh` : Hyperbolic tangent, element-wise.
+:obj:`dpnp.arcsinh` : Hyperbolic inverse sine, element-wise.
+:obj:`dpnp.arccosh` : Hyperbolic inverse cosine, element-wise.
+:obj:`dpnp.arctan` : Trigonometric inverse tangent, element-wise.
+
+Notes
+-----
+:obj:`dpnp.arctanh` is a multivalued function: for each `x` there are infinitely
+many numbers `z` such that ``tanh(z) = x``. The convention is to return the
+angle `z` whose real part lies in `[-pi/2, pi/2]`.
+
+For real-valued input data types, :obj:`dpnp.arctanh` always returns real output.
+For each value that cannot be expressed as a real number or infinity, it yields
+``nan``.
+
+For complex-valued input, :obj:`dpnp.arctanh` is a complex analytic function that
+has, by convention, the branch cuts `[-1, -inf]` and `[1, inf]` and is is continuous
+from above on the former and from below on the latter.
+
+The inverse hyperbolic tan is also known as :math:`atanh` or :math:`tanh^{-1}`.
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([0, -0.5])
+>>> np.arctanh(x)
+array([0.0, -0.54930614])
+"""
+
+arctanh = DPNPUnaryFunc(
+    "arctanh",
+    ti._atanh_result_type,
+    ti._atanh,
+    _ATANH_DOCSTRING,
+    mkl_fn_to_call="_mkl_atanh_to_call",
+    mkl_impl_fn="_atanh",
+)
+
+atanh = arctanh  # atanh is an alias for arctanh
+
+
+_CBRT_DOCSTRING = """
+Computes positive cube-root for each element `x_i` for input array `x`.
+
+For full documentation refer to :obj:`numpy.cbrt`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have a real-valued data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise positive cube-root.
+    The data type of the returned array is determined by
+    the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.sqrt` : Return the positive square-root of an array, element-wise.
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([1, 8, 27])
+>>> np.cbrt(x)
+array([1., 2., 3.])
+"""
+
+cbrt = DPNPUnaryFunc(
+    "cbrt",
+    ti._cbrt_result_type,
+    ti._cbrt,
+    _CBRT_DOCSTRING,
+    mkl_fn_to_call="_mkl_cbrt_to_call",
+    mkl_impl_fn="_cbrt",
+)
+
+
+_COS_DOCSTRING = """
+Computes cosine for each element `x_i` for input array `x`.
+
+For full documentation refer to :obj:`numpy.cos`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise cosine. The data type
+    of the returned array is determined by the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.arccos` : Trigonometric inverse cosine, element-wise.
+:obj:`dpnp.sin` : Trigonometric sine, element-wise.
+:obj:`dpnp.tan` : Trigonometric tangent, element-wise.
+:obj:`dpnp.cosh` : Hyperbolic cosine, element-wise.
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([0, np.pi/2, np.pi])
+>>> np.cos(x)
+array([ 1.000000e+00, -4.371139e-08, -1.000000e+00])
+"""
+
+cos = DPNPUnaryFunc(
+    "cos",
+    ti._cos_result_type,
+    ti._cos,
+    _COS_DOCSTRING,
+    mkl_fn_to_call="_mkl_cos_to_call",
+    mkl_impl_fn="_cos",
+)
+
+
+_COSH_DOCSTRING = """
+Computes hyperbolic cosine for each element `x_i` for input array `x`.
+
+For full documentation refer to :obj:`numpy.cosh`.
+
+Parameters
+----------
+x : {dpnp.ndarray, usm_ndarray}
+    Input array, expected to have numeric data type.
+out : {None, dpnp.ndarray, usm_ndarray}, optional
+    Output array to populate.
+    Array must have the correct shape and the expected data type.
+    Default: ``None``.
+order : {"C", "F", "A", "K"}, optional
+    Memory layout of the newly output array, if parameter `out` is ``None``.
+    Default: ``"K"``.
+
+Returns
+-------
+out : dpnp.ndarray
+    An array containing the element-wise hyperbolic cosine. The data type
+    of the returned array is determined by the Type Promotion Rules.
+
+Limitations
+-----------
+Parameters `where` and `subok` are supported with their default values.
+Keyword argument `kwargs` is currently unsupported.
+Otherwise ``NotImplementedError`` exception will be raised.
+
+See Also
+--------
+:obj:`dpnp.arccosh` : Hyperbolic inverse cosine, element-wise.
+:obj:`dpnp.sinh` : Hyperbolic sine, element-wise.
+:obj:`dpnp.tanh` : Hyperbolic tangent, element-wise.
+:obj:`dpnp.cos` : Trigonometric cosine, element-wise.
+
+
+Examples
+--------
+>>> import dpnp as np
+>>> x = np.array([0, np.pi/2, np.pi])
+>>> np.cosh(x)
+array([1.0, 2.5091786, 11.591953])
+"""
+
+cosh = DPNPUnaryFunc(
+    "cosh",
+    ti._cosh_result_type,
+    ti._cosh,
+    _COSH_DOCSTRING,
+    mkl_fn_to_call="_mkl_cosh_to_call",
+    mkl_impl_fn="_cosh",
+)
+
+
+
+[docs] +def cumlogsumexp( + x, /, *, axis=None, dtype=None, include_initial=False, out=None +): + """ + Calculates the cumulative logarithm of the sum of elements in the input + array `x`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a real-valued data type. + axis : {None, int}, optional + Axis or axes along which values must be computed. If a tuple of unique + integers, values are computed over multiple axes. If ``None``, the + result is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Data type of the returned array. If ``None``, the default data type is + inferred from the "kind" of the input array data type. + + - If `x` has a real-valued floating-point data type, the returned array + will have the same data type as `x`. + - If `x` has a boolean or integral data type, the returned array will + have the default floating point data type for the device where input + array `x` is allocated. + - If `x` has a complex-valued floating-point data type, an error is + raised. + + If the data type (either specified or resolved) differs from the data + type of `x`, the input array elements are cast to the specified data + type before computing the result. + Default: ``None``. + include_initial : {None, bool}, optional + A boolean indicating whether to include the initial value (i.e., the + additive identity, zero) as the first value along the provided axis in + the output. + Default: ``False``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + The array into which the result is written. The data type of `out` must + match the expected shape and the expected data type of the result or + (if provided) `dtype`. If ``None`` then a new array is returned. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + An array containing the results. If the result was computed over the + entire array, a zero-dimensional array is returned. The returned array + has the data type as described in the `dtype` parameter description + above. + + Note + ---- + This function is equivalent of `numpy.logaddexp.accumulate`. + + See Also + -------- + :obj:`dpnp.logsumexp` : Logarithm of the sum of elements of the inputs, + element-wise. + + Examples + -------- + >>> import dpnp as np + >>> a = np.ones(10) + >>> np.cumlogsumexp(a) + array([1. , 1.69314718, 2.09861229, 2.38629436, 2.60943791, + 2.79175947, 2.94591015, 3.07944154, 3.19722458, 3.30258509]) + + """ + + dpnp.check_supported_arrays_type(x) + if x.ndim > 1 and axis is None: + usm_x = dpnp.ravel(x).get_array() + else: + usm_x = dpnp.get_usm_ndarray(x) + + return dpnp_wrap_reduction_call( + x, + out, + dpt.cumulative_logsumexp, + _get_accumulation_res_dt, + usm_x, + axis=axis, + dtype=dtype, + include_initial=include_initial, + )
+ + + +_DEG2RAD_DOCSTRING = """ +Convert angles from degrees to radians. + +For full documentation refer to :obj:`numpy.deg2rad`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Angles in degrees. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + The corresponding angle in radians. The data type of the returned array is + determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.rad2deg` : Convert angles from radians to degrees. +:obj:`dpnp.unwrap` : Remove large jumps in angle by wrapping. +:obj:`dpnp.radians` : Equivalent function. + +Notes +----- +dpnp.deg2rad(x) is ``x * pi / 180``. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array(180) +>>> np.deg2rad(x) +array(3.14159265) +""" + +deg2rad = DPNPUnaryFunc( + "deg2rad", + ufi._radians_result_type, + ufi._radians, + _DEG2RAD_DOCSTRING, +) + + +_DEGREES_DOCSTRING = """ +Convert angles from radians to degrees. + +For full documentation refer to :obj:`numpy.degrees`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array in radians. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + The corresponding degree values. The data type of the returned array is + determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.rad2deg` : Equivalent function. + +Examples +-------- +>>> import dpnp as np +>>> rad = np.arange(12.) * np.pi/6 + +Convert a radian array to degrees: + +>>> np.degrees(rad) +array([ 0., 30., 60., 90., 120., 150., 180., 210., 240., 270., 300., + 330.]) + +>>> out = np.zeros_like(rad) +>>> r = np.degrees(rad, out) +>>> np.all(r == out) +array(True) +""" + +degrees = DPNPUnaryFunc( + "degrees", + ufi._degrees_result_type, + ufi._degrees, + _DEGREES_DOCSTRING, +) + + +_EXP_DOCSTRING = """ +Computes the exponent for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.exp`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise exponent of `x`. + The data type of the returned array is determined by + the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.expm1` : Calculate ``exp(x) - 1`` for all elements in the array. +:obj:`dpnp.exp2` : Calculate `2**x` for all elements in the array. + +Examples +-------- +>>> import dpnp as np +>>> x = np.arange(3.) +>>> np.exp(x) +array([1.0, 2.718281828, 7.389056099]) +""" + +exp = DPNPUnaryFunc( + "exp", + ti._exp_result_type, + ti._exp, + _EXP_DOCSTRING, + mkl_fn_to_call="_mkl_exp_to_call", + mkl_impl_fn="_exp", +) + + +_EXP2_DOCSTRING = """ +Computes the base-2 exponent for each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.exp2`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a floating-point data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise base-2 exponents. + The data type of the returned array is determined by + the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.exp` : Calculate exponent for all elements in the array. +:obj:`dpnp.expm1` : ``exp(x) - 1``, the inverse of :obj:`dpnp.log1p`. +:obj:`dpnp.power` : First array elements raised to powers from second array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.arange(3.) +>>> np.exp2(x) +array([1., 2., 4.]) +""" + +exp2 = DPNPUnaryFunc( + "exp2", + ti._exp2_result_type, + ti._exp2, + _EXP2_DOCSTRING, + mkl_fn_to_call="_mkl_exp2_to_call", + mkl_impl_fn="_exp2", +) + + +_EXPM1_DOCSTRING = """ +Computes the exponent minus 1 for each element `x_i` of input array `x`. + +This function calculates `exp(x) - 1.0` more accurately for small values of `x`. + +For full documentation refer to :obj:`numpy.expm1`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise `exp(x) - 1` results. + The data type of the returned array is determined by the Type + Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.exp` : Calculate exponents for all elements in the array. +:obj:`dpnp.exp2` : Calculate `2**x` for all elements in the array. +:obj:`dpnp.log1p` : Calculate ``log(1 + x)``, the inverse of :obj:`dpnp.expm1`. + +Examples +-------- +>>> import dpnp as np +>>> x = np.arange(3.) +>>> np.expm1(x) +array([0.0, 1.718281828, 6.389056099]) + +>>> np.expm1(np.array(1e-10)) +array(1.00000000005e-10) + +>>> np.exp(np.array(1e-10)) - 1 +array(1.000000082740371e-10) +""" + +expm1 = DPNPUnaryFunc( + "expm1", + ti._expm1_result_type, + ti._expm1, + _EXPM1_DOCSTRING, + mkl_fn_to_call="_mkl_expm1_to_call", + mkl_impl_fn="_expm1", +) + + +_HYPOT_DOCSTRING = """ +Calculates the hypotenuse for a right triangle with "legs" `x1_i` and `x2_i` of +input arrays `x1` and `x2`. + +For full documentation refer to :obj:`numpy.hypot`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have a real-valued data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have a real-valued data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise hypotenuse. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.reduce_hypot` : The square root of the sum of squares of elements in the input array. + +Examples +-------- +>>> import dpnp as np +>>> x1 = 3 * np.ones((3, 3)) +>>> x2 = 4 * np.ones((3, 3)) +>>> np.hypot(x1, x2) +array([[5., 5., 5.], + [5., 5., 5.], + [5., 5., 5.]]) + +Example showing broadcast of scalar argument: + +>>> np.hypot(x1, 4) +array([[ 5., 5., 5.], + [ 5., 5., 5.], + [ 5., 5., 5.]]) +""" + +hypot = DPNPBinaryFunc( + "hypot", + ti._hypot_result_type, + ti._hypot, + _HYPOT_DOCSTRING, + mkl_fn_to_call="_mkl_hypot_to_call", + mkl_impl_fn="_hypot", +) + + +_LOG_DOCSTRING = """ +Computes the natural logarithm for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.log`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise natural logarithm values. + The data type of the returned array is determined by the Type + Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.log10` : Return the base 10 logarithm of the input array, + element-wise. +:obj:`dpnp.log2` : Base-2 logarithm of x. +:obj:`dpnp.log1p` : Return the natural logarithm of one plus + the input array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([1, np.e, np.e**2, 0]) +>>> np.log(x) +array([ 0., 1., 2., -inf]) +""" + +log = DPNPUnaryFunc( + "log", + ti._log_result_type, + ti._log, + _LOG_DOCSTRING, + mkl_fn_to_call="_mkl_ln_to_call", + mkl_impl_fn="_ln", +) + + +_LOG10_DOCSTRING = """ +Computes the base-10 logarithm for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.log10`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise base-10 logarithm of `x`. + The data type of the returned array is determined by the + Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.log` : Natural logarithm, element-wise. +:obj:`dpnp.log2` : Return the base-2 logarithm of the input array, element-wise. +:obj:`dpnp.log1p` : Return the natural logarithm of one plus the input array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.arange(3.) +>>> np.log10(x) +array([-inf, 0.0, 0.30102999566]) + +>>> np.log10(np.array([1e-15, -3.])) +array([-15., nan]) +""" + +log10 = DPNPUnaryFunc( + "log10", + ti._log10_result_type, + ti._log10, + _LOG10_DOCSTRING, + mkl_fn_to_call="_mkl_log10_to_call", + mkl_impl_fn="_log10", +) + + +_LOG1P_DOCSTRING = """ +Computes the natural logarithm of (1 + `x`) for each element `x_i` of input +array `x`. + +This function calculates `log(1 + x)` more accurately for small values of `x`. + +For full documentation refer to :obj:`numpy.log1p`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise `log(1 + x)` results. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.expm1` : ``exp(x) - 1``, the inverse of :obj:`dpnp.log1p`. +:obj:`dpnp.log` : Natural logarithm, element-wise. +:obj:`dpnp.log10` : Return the base 10 logarithm of the input array, element-wise. +:obj:`dpnp.log2` : Return the base-2 logarithm of the input array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.arange(3.) +>>> np.log1p(x) +array([0.0, 0.69314718, 1.09861229]) + +>>> np.log1p(array(1e-99)) +array(1e-99) + +>>> np.log(array(1 + 1e-99)) +array(0.0) +""" + +log1p = DPNPUnaryFunc( + "log1p", + ti._log1p_result_type, + ti._log1p, + _LOG1P_DOCSTRING, + mkl_fn_to_call="_mkl_log1p_to_call", + mkl_impl_fn="_log1p", +) + + +_LOG2_DOCSTRING = """ +Computes the base-2 logarithm for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.log2`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise base-2 logarithm of `x`. + The data type of the returned array is determined by the + Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.log` : Natural logarithm, element-wise. +:obj:`dpnp.log10` : Return the base 10 logarithm of the input array, element-wise. +:obj:`dpnp.log1p` : Return the natural logarithm of one plus the input array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([0, 1, 2, 2**4]) +>>> np.log2(x) +array([-inf, 0.0, 1.0, 4.0]) + +>>> xi = np.array([0+1.j, 1, 2+0.j, 4.j]) +>>> np.log2(xi) +array([ 0.+2.26618007j, 0.+0.j , 1.+0.j , 2.+2.26618007j]) +""" + +log2 = DPNPUnaryFunc( + "log2", + ti._log2_result_type, + ti._log2, + _LOG2_DOCSTRING, + mkl_fn_to_call="_mkl_log2_to_call", + mkl_impl_fn="_log2", +) + + +_LOGADDEXP_DOCSTRING = """ +Calculates the natural logarithm of the sum of exponents for each element `x1_i` +of the input array `x1` with the respective element `x2_i` of the input +array `x2`. + +This function calculates `log(exp(x1) + exp(x2))` more accurately for small +values of `x`. + +For full documentation refer to :obj:`numpy.logaddexp`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have a real-valued floating-point + data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have a real-valued + floating-point data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise results. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword arguments `kwargs` are currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.log` : Natural logarithm, element-wise. +:obj:`dpnp.exp` : Exponential, element-wise. +:obj:`dpnp.logaddexp2`: Logarithm of the sum of exponentiation of inputs in + base-2, element-wise. +:obj:`dpnp.logsumexp` : Logarithm of the sum of exponents of elements in the + input array. + +Examples +-------- +>>> import dpnp as np +>>> prob1 = np.log(np.array(1e-50)) +>>> prob2 = np.log(np.array(2.5e-50)) +>>> prob12 = np.logaddexp(prob1, prob2) +>>> prob12 +array(-113.87649168) +>>> np.exp(prob12) +array(3.5e-50) +""" + +logaddexp = DPNPBinaryFunc( + "logaddexp", + ti._logaddexp_result_type, + ti._logaddexp, + _LOGADDEXP_DOCSTRING, +) + + +_LOGADDEXP2_DOCSTRING = """ +Calculates the logarithm of the sum of exponents in base-2 for each element +`x1_i` of the input array `x1` with the respective element `x2_i` of the input +array `x2`. + +This function calculates `log2(2**x1 + 2**x2)`. It is useful in machine +learning when the calculated probabilities of events may be so small as +to exceed the range of normal floating point numbers. In such cases the base-2 +logarithm of the calculated probability can be used instead. This function +allows adding probabilities stored in such a fashion. + +For full documentation refer to :obj:`numpy.logaddexp2`. + +Parameters +---------- +x1 : {dpnp.ndarray, usm_ndarray, scalar} + First input array, expected to have a real-valued floating-point + data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +x2 : {dpnp.ndarray, usm_ndarray, scalar} + Second input array, also expected to have a real-valued + floating-point data type. + Both inputs `x1` and `x2` can not be scalars at the same time. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise results. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword arguments `kwargs` are currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.logaddexp`: Natural logarithm of the sum of exponentiation of + inputs, element-wise. +:obj:`dpnp.logsumexp` : Logarithm of the sum of exponentiation of the inputs. + +Examples +-------- +>>> import dpnp as np +>>> prob1 = np.log2(np.array(1e-50)) +>>> prob2 = np.log2(np.array(2.5e-50)) +>>> prob12 = np.logaddexp2(prob1, prob2) +>>> prob1, prob2, prob12 +(array(-166.09640474), array(-164.77447665), array(-164.28904982)) +>>> 2**prob12 +array(3.5e-50) +""" + +logaddexp2 = DPNPBinaryFunc( + "logaddexp2", + ufi._logaddexp2_result_type, + ufi._logaddexp2, + _LOGADDEXP2_DOCSTRING, +) + + +
+[docs] +def logsumexp(x, /, *, axis=None, dtype=None, keepdims=False, out=None): + """ + Calculates the logarithm of the sum of exponents of elements in + the input array. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a real-valued data type. + axis : {None, int or tuple of ints}, optional + Axis or axes along which values must be computed. If a tuple of unique + integers, values are computed over multiple axes. If ``None``, the + result is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Data type of the returned array. If ``None``, the default data type is + inferred from the "kind" of the input array data type. + + - If `x` has a real-valued floating-point data type, the returned array + will have the same data type as `x`. + - If `x` has a boolean or integral data type, the returned array will + have the default floating point data type for the device where input + array `x` is allocated. + - If `x` has a complex-valued floating-point data type, an error is + raised. + + If the data type (either specified or resolved) differs from the data + type of `x`, the input array elements are cast to the specified data + type before computing the result. + Default: ``None``. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains compatible + with the input arrays according to Array Broadcasting rules. Otherwise, + if ``False``, the reduced axes are not included in the returned array. + Default: ``False``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + The array into which the result is written. The data type of `out` must + match the expected shape and the expected data type of the result or + (if provided) `dtype`. If ``None`` then a new array is returned. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + An array containing the results. If the result was computed over the + entire array, a zero-dimensional array is returned. The returned array + has the data type as described in the `dtype` parameter description + above. + + Note + ---- + This function is equivalent of `numpy.logaddexp.reduce`. + + See Also + -------- + :obj:`dpnp.log` : Natural logarithm, element-wise. + :obj:`dpnp.exp` : Exponential, element-wise. + :obj:`dpnp.logaddexp` : Logarithm of the sum of exponents of + the inputs, element-wise. + :obj:`dpnp.logaddexp2` : Logarithm of the sum of exponents of + the inputs in base-2, element-wise. + + Examples + -------- + >>> import dpnp as np + >>> a = np.ones(10) + >>> np.logsumexp(a) + array(3.30258509) + >>> np.log(np.sum(np.exp(a))) + array(3.30258509) + + """ + + usm_x = dpnp.get_usm_ndarray(x) + return dpnp_wrap_reduction_call( + x, + out, + dpt.logsumexp, + _get_accumulation_res_dt, + usm_x, + axis=axis, + dtype=dtype, + keepdims=keepdims, + )
+ + + +_RAD2DEG_DOCSTRING = """ +Convert angles from radians to degrees. + +For full documentation refer to :obj:`numpy.rad2deg`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Angle in radians. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + The corresponding angle in degrees. The data type of the returned array is + determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.deg2rad` : Convert angles from degrees to radians. +:obj:`dpnp.unwrap` : Remove large jumps in angle by wrapping. +:obj:`dpnp.degrees` : Equivalent function. + +Notes +----- +dpnp.rad2deg(x) is ``180 * x / pi``. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array(np.pi / 2) +>>> np.rad2deg(x) +array(90.) +""" + +rad2deg = DPNPUnaryFunc( + "rad2deg", + ufi._degrees_result_type, + ufi._degrees, + _RAD2DEG_DOCSTRING, +) + + +_RADIANS_DOCSTRING = """ +Convert angles from degrees to radians. + +For full documentation refer to :obj:`numpy.radians`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array in degrees. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + The corresponding radian values. The data type of the returned array is + determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.deg2rad` : Equivalent function. + +Examples +-------- +>>> import dpnp as np +>>> deg = np.arange(12.) * 30. + +Convert a degree array to radians: + +>>> np.radians(deg) +array([0. , 0.52359878, 1.04719755, 1.57079633, 2.0943951 , + 2.61799388, 3.14159265, 3.66519143, 4.1887902 , 4.71238898, + 5.23598776, 5.75958653]) + +>>> out = np.zeros_like(deg) +>>> ret = np.radians(deg, out) +>>> ret is out +True +""" + +radians = DPNPUnaryFunc( + "radians", + ufi._radians_result_type, + ufi._radians, + _RADIANS_DOCSTRING, +) + + +_RECIPROCAL_DOCSTRING = """ +Computes the reciprocal square-root for each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.reciprocal`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a real-valued floating-point data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise reciprocals. + The returned array has a floating-point data type determined + by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.rsqrt` : Return the reciprocal square-root of an array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([1, 2., 3.33]) +>>> np.reciprocal(x) +array([1.0, 0.5, 0.3003003]) +""" + +reciprocal = DPNPUnaryFunc( + "reciprocal", + ti._reciprocal_result_type, + ti._reciprocal, + _RECIPROCAL_DOCSTRING, +) + + +
+[docs] +def reduce_hypot(x, /, *, axis=None, dtype=None, keepdims=False, out=None): + """ + Calculates the square root of the sum of squares of elements in + the input array. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a real-valued data type. + axis : {None, int or tuple of ints}, optional + Axis or axes along which values must be computed. If a tuple of unique + integers, values are computed over multiple axes. If ``None``, the + result is computed over the entire array. + Default: ``None``. + dtype : {None, dtype}, optional + Data type of the returned array. If ``None``, the default data type is + inferred from the "kind" of the input array data type. + + - If `x` has a real-valued floating-point data type, the returned array + will have the same data type as `x`. + - If `x` has a boolean or integral data type, the returned array will + have the default floating point data type for the device where input + array `x` is allocated. + - If `x` has a complex-valued floating-point data type, an error is + raised. + + If the data type (either specified or resolved) differs from the data + type of `x`, the input array elements are cast to the specified data + type before computing the result. + Default: ``None``. + keepdims : {None, bool}, optional + If ``True``, the reduced axes (dimensions) are included in the result + as singleton dimensions, so that the returned array remains compatible + with the input arrays according to Array Broadcasting rules. Otherwise, + if ``False``, the reduced axes are not included in the returned array. + Default: ``False``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + The array into which the result is written. The data type of `out` must + match the expected shape and the expected data type of the result or + (if provided) `dtype`. If ``None`` then a new array is returned. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + An array containing the results. If the result was computed over the + entire array, a zero-dimensional array is returned. The returned array + has the data type as described in the `dtype` parameter description + above. + + Note + ---- + This function is equivalent of `numpy.hypot.reduce`. + + See Also + -------- + :obj:`dpnp.hypot` : Given the "legs" of a right triangle, return its + hypotenuse. + + Examples + -------- + >>> import dpnp as np + >>> a = np.ones(10) + >>> np.reduce_hypot(a) + array(3.16227766) + >>> np.sqrt(np.sum(np.square(a))) + array(3.16227766) + + """ + + usm_x = dpnp.get_usm_ndarray(x) + return dpnp_wrap_reduction_call( + x, + out, + dpt.reduce_hypot, + _get_accumulation_res_dt, + usm_x, + axis=axis, + dtype=dtype, + keepdims=keepdims, + )
+ + + +_RSQRT_DOCSTRING = """ +Computes the reciprocal square-root for each element `x_i` for input array `x`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have a real floating-point data type. +out : ({None, dpnp.ndarray, usm_ndarray}, optional): + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : ({'C', 'F', 'A', 'K'}, optional): + Memory layout of the newly output array, if parameter `out` is `None`. + Default: ``"K"`` + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise reciprocal square-root. + The returned array has a floating-point data type determined by + the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.sqrt` : Return the positive square-root of an array, element-wise. +:obj:`dpnp.reciprocal` : Return the reciprocal of an array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([1, 8, 27]) +>>> np.rsqrt(x) +array([1. , 0.35355338, 0.19245009]) +""" + +rsqrt = DPNPUnaryFunc( + "rsqrt", + ti._rsqrt_result_type, + ti._rsqrt, + _RSQRT_DOCSTRING, +) + + +_SIN_DOCSTRING = """ +Computes sine for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.sin`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise sine. The data type of the + returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.arcsin` : Trigonometric inverse sine, element-wise. +:obj:`dpnp.cos` : Trigonometric cosine, element-wise. +:obj:`dpnp.tan` : Trigonometric tangent, element-wise. +:obj:`dpnp.sinh` : Hyperbolic sine, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([0, np.pi/2, np.pi]) +>>> np.sin(x) +array([ 0.000000e+00, 1.000000e+00, -8.742278e-08]) +""" + +sin = DPNPUnaryFunc( + "sin", + ti._sin_result_type, + ti._sin, + _SIN_DOCSTRING, + mkl_fn_to_call="_mkl_sin_to_call", + mkl_impl_fn="_sin", +) + + +_SINH_DOCSTRING = """ +Computes hyperbolic sine for each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.sinh`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise hyperbolic sine. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.arcsinh` : Hyperbolic inverse sine, element-wise. +:obj:`dpnp.cosh` : Hyperbolic cosine, element-wise. +:obj:`dpnp.tanh` : Hyperbolic tangent, element-wise. +:obj:`dpnp.sin` : Trigonometric sine, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([0, np.pi/2, np.pi]) +>>> np.sinh(x) +array([0.0, 2.3012989, 11.548739]) +""" + +sinh = DPNPUnaryFunc( + "sinh", + ti._sinh_result_type, + ti._sinh, + _SINH_DOCSTRING, + mkl_fn_to_call="_mkl_sinh_to_call", + mkl_impl_fn="_sinh", +) + + +_SQRT_DOCSTRING = """ +Computes the positive square-root for each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.sqrt`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise positive square-roots of `x`. The + data type of the returned array is determined by the Type Promotion + Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.cbrt` : Return the cube-root of an array, element-wise. +:obj:`dpnp.rsqrt` : Return the reciprocal square-root of an array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([1, 4, 9]) +>>> np.sqrt(x) +array([1., 2., 3.]) + +>>> x2 = np.array([4, -1, np.inf]) +>>> np.sqrt(x2) +array([ 2., nan, inf]) +""" + +sqrt = DPNPUnaryFunc( + "sqrt", + ti._sqrt_result_type, + ti._sqrt, + _SQRT_DOCSTRING, + mkl_fn_to_call="_mkl_sqrt_to_call", + mkl_impl_fn="_sqrt", +) + + +_SQUARE_DOCSTRING = """ +Squares each element `x_i` of input array `x`. + +For full documentation refer to :obj:`numpy.square`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise squares of `x`. The data type of + the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp..linalg.matrix_power` : Raise a square matrix + to the (integer) power `n`. +:obj:`dpnp.sqrt` : Return the positive square-root of an array, + element-wise. +:obj:`dpnp.power` : First array elements raised to powers + from second array, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([-1j, 1]) +>>> np.square(x) +array([-1.+0.j, 1.+0.j]) +""" + +square = DPNPUnaryFunc( + "square", + ti._square_result_type, + ti._square, + _SQUARE_DOCSTRING, + mkl_fn_to_call="_mkl_sqr_to_call", + mkl_impl_fn="_sqr", +) + + +_TAN_DOCSTRING = """ +Computes tangent for each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.tan`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise tangent. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.arctan` : Trigonometric inverse tangent, element-wise. +:obj:`dpnp.sin` : Trigonometric sine, element-wise. +:obj:`dpnp.cos` : Trigonometric cosine, element-wise. +:obj:`dpnp.tanh` : Hyperbolic tangent, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([-np.pi, np.pi/2, np.pi]) +>>> np.tan(x) +array([1.22460635e-16, 1.63317787e+16, -1.22460635e-16]) +""" + +tan = DPNPUnaryFunc( + "tan", + ti._tan_result_type, + ti._tan, + _TAN_DOCSTRING, + mkl_fn_to_call="_mkl_tan_to_call", + mkl_impl_fn="_tan", +) + + +_TANH_DOCSTRING = """ +Computes hyperbolic tangent for each element `x_i` for input array `x`. + +For full documentation refer to :obj:`numpy.tanh`. + +Parameters +---------- +x : {dpnp.ndarray, usm_ndarray} + Input array, expected to have numeric data type. +out : {None, dpnp.ndarray, usm_ndarray}, optional + Output array to populate. + Array must have the correct shape and the expected data type. + Default: ``None``. +order : {"C", "F", "A", "K"}, optional + Memory layout of the newly output array, if parameter `out` is ``None``. + Default: ``"K"``. + +Returns +------- +out : dpnp.ndarray + An array containing the element-wise hyperbolic tangent. The data type + of the returned array is determined by the Type Promotion Rules. + +Limitations +----------- +Parameters `where` and `subok` are supported with their default values. +Keyword argument `kwargs` is currently unsupported. +Otherwise ``NotImplementedError`` exception will be raised. + +See Also +-------- +:obj:`dpnp.arctanh` : Hyperbolic inverse tangent, element-wise. +:obj:`dpnp.sinh` : Hyperbolic sine, element-wise. +:obj:`dpnp.cosh` : Hyperbolic cosine, element-wise. +:obj:`dpnp.tan` : Trigonometric tangent, element-wise. + +Examples +-------- +>>> import dpnp as np +>>> x = np.array([0, -np.pi, np.pi/2, np.pi]) +>>> np.tanh(x) +array([0.0, -0.996272, 0.917152, 0.996272]) +""" + +tanh = DPNPUnaryFunc( + "tanh", + ti._tanh_result_type, + ti._tanh, + _TANH_DOCSTRING, + mkl_fn_to_call="_mkl_tanh_to_call", + mkl_impl_fn="_tanh", +) + + +
+[docs] +def unwrap(p, discont=None, axis=-1, *, period=2 * dpnp.pi): + r""" + Unwrap by taking the complement of large deltas with respect to the period. + + This unwraps a signal `p` by changing elements which have an absolute + difference from their predecessor of more than ``max(discont, period / 2)`` + to their `period`-complementary values. + + For the default case where `period` is :math:`2\pi` and `discont` is + :math:`\pi`, this unwraps a radian phase `p` such that adjacent differences + are never greater than :math:`\pi` by adding :math:`2k\pi` for some integer + :math:`k`. + + For full documentation refer to :obj:`numpy.unwrap`. + + Parameters + ---------- + p : {dpnp.ndarray, usm_ndarray} + Input array. + discont : {float, None}, optional + Maximum discontinuity between values, default is ``None`` which is an + alias for ``period / 2``. Values below ``period / 2`` are treated as if + they were ``period / 2``. To have an effect different from the default, + `discont` should be larger than ``period / 2``. + Default: ``None``. + axis : int, optional + Axis along which unwrap will operate, default is the last axis. + Default: ``-1``. + period : float, optional + Size of the range over which the input wraps. + Default: ``2 * pi``. + + Returns + ------- + out : dpnp.ndarray + Output array. + + See Also + -------- + :obj:`dpnp.rad2deg` : Convert angles from radians to degrees. + :obj:`dpnp.deg2rad` : Convert angles from degrees to radians. + + Notes + ----- + If the discontinuity in `p` is smaller than ``period / 2``, but larger than + `discont`, no unwrapping is done because taking the complement would only + make the discontinuity larger. + + Examples + -------- + >>> import dpnp as np + >>> phase = np.linspace(0, np.pi, num=5) + >>> phase[3:] += np.pi + >>> phase + array([0. , 0.78539816, 1.57079633, 5.49778714, 6.28318531]) + >>> np.unwrap(phase) + array([ 0. , 0.78539816, 1.57079633, -0.78539816, 0. ]) + + >>> phase = np.array([0, 1, 2, -1, 0]) + >>> np.unwrap(phase, period=4) + array([0, 1, 2, 3, 4]) + + >>> phase = np.array([1, 2, 3, 4, 5, 6, 1, 2, 3]) + >>> np.unwrap(phase, period=6) + array([1, 2, 3, 4, 5, 6, 7, 8, 9]) + + >>> phase = np.array([2, 3, 4, 5, 2, 3, 4, 5]) + >>> np.unwrap(phase, period=4) + array([2, 3, 4, 5, 6, 7, 8, 9]) + + >>> phase_deg = np.mod(np.linspace(0 ,720, 19), 360) - 180 + >>> np.unwrap(phase_deg, period=360) + array([-180., -140., -100., -60., -20., 20., 60., 100., 140., + 180., 220., 260., 300., 340., 380., 420., 460., 500., + 540.]) + + """ + + dpnp.check_supported_arrays_type(p) + + p_nd = p.ndim + p_diff = dpnp.diff(p, axis=axis) + + if discont is None: + discont = period / 2 + + # full slices + slice1 = [slice(None, None)] * p_nd + slice1[axis] = slice(1, None) + slice1 = tuple(slice1) + + dt = dpnp.result_type(p_diff, period) + if dpnp.issubdtype(dt, dpnp.integer): + interval_high, rem = divmod(period, 2) + boundary_ambiguous = rem == 0 + else: + interval_high = period / 2 + boundary_ambiguous = True + interval_low = -interval_high + + ddmod = p_diff - interval_low + ddmod = dpnp.remainder(ddmod, period, out=ddmod) + ddmod += interval_low + + if boundary_ambiguous: + mask = ddmod == interval_low + mask &= p_diff > 0 + ddmod = dpnp.where(mask, interval_high, ddmod, out=ddmod) + + ph_correct = dpnp.subtract(ddmod, p_diff, out=ddmod) + abs_p_diff = dpnp.abs(p_diff, out=p_diff) + ph_correct = dpnp.where(abs_p_diff < discont, 0, ph_correct, out=ph_correct) + + up = dpnp.astype(p, dtype=dt, copy=True) + up[slice1] = p[slice1] + # TODO: replace, once dpctl-1757 resolved + # up[slice1] += ph_correct.cumsum(axis=axis) + up[slice1] += ph_correct.cumsum(axis=axis, dtype=dt) + return up
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/dpnp_iface_types.html b/pull/2070/_modules/dpnp/dpnp_iface_types.html new file mode 100644 index 00000000000..5a2913dec06 --- /dev/null +++ b/pull/2070/_modules/dpnp/dpnp_iface_types.html @@ -0,0 +1,348 @@ + + + + + + + + + + dpnp.dpnp_iface_types — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.dpnp_iface_types

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Type interface of the DPNP
+
+Notes
+-----
+This module provides public type interface file for the library
+"""
+
+import dpctl.tensor as dpt
+import numpy
+
+from .dpnp_array import dpnp_array
+
+__all__ = [
+    "bool",
+    "bool_",
+    "cdouble",
+    "complex128",
+    "complex64",
+    "complexfloating",
+    "csingle",
+    "double",
+    "dtype",
+    "e",
+    "euler_gamma",
+    "finfo",
+    "float16",
+    "float32",
+    "float64",
+    "floating",
+    "iinfo",
+    "inexact",
+    "inf",
+    "int",
+    "int_",
+    "int32",
+    "int64",
+    "integer",
+    "intc",
+    "intp",
+    "issubdtype",
+    "is_type_supported",
+    "nan",
+    "newaxis",
+    "number",
+    "pi",
+    "signedinteger",
+    "single",
+]
+
+
+# pylint: disable=invalid-name
+# =============================================================================
+# Data types (borrowed from NumPy)
+# =============================================================================
+bool = numpy.bool_
+bool_ = numpy.bool_
+cdouble = numpy.cdouble
+complex128 = numpy.complex128
+complex64 = numpy.complex64
+complexfloating = numpy.complexfloating
+csingle = numpy.csingle
+double = numpy.double
+dtype = numpy.dtype
+float16 = numpy.float16
+float32 = numpy.float32
+float64 = numpy.float64
+floating = numpy.floating
+inexact = numpy.inexact
+int = numpy.int_
+int_ = numpy.int_
+int32 = numpy.int32
+int64 = numpy.int64
+integer = numpy.integer
+intc = numpy.intc
+intp = numpy.intp
+number = numpy.number
+signedinteger = numpy.signedinteger
+single = numpy.single
+
+
+# =============================================================================
+# Constants (borrowed from NumPy)
+# =============================================================================
+e = numpy.e
+euler_gamma = numpy.euler_gamma
+inf = numpy.inf
+nan = numpy.nan
+newaxis = None
+pi = numpy.pi
+
+
+# pylint: disable=redefined-outer-name
+
+[docs] +def finfo(dtype): + """ + Returns machine limits for floating-point data types. + + For full documentation refer to :obj:`numpy.finfo`. + + Parameters + ---------- + dtype : dtype, dpnp_array + Floating-point dtype or an array with floating point data type. + If complex, the information is about its component data type. + + Returns + ------- + out : finfo_object + An object have the following attributes + + * bits: int + number of bits occupied by dtype. + * dtype: dtype + real-valued floating-point data type. + * eps: float + difference between 1.0 and the next smallest representable + real-valued floating-point number larger than 1.0 according + to the IEEE-754 standard. + * epsneg: float + difference between 1.0 and the next smallest representable + real-valued floating-point number smaller than 1.0 according to + the IEEE-754 standard. + * max: float + largest representable real-valued number. + * min: float + smallest representable real-valued number. + * precision: float + the approximate number of decimal digits to which this kind of + floating point type is precise. + * resolution: float + the approximate decimal resolution of this type. + * tiny: float + an alias for `smallest_normal` + * smallest_normal: float + smallest positive real-valued floating-point number with + full precision. + + """ + if isinstance(dtype, dpnp_array): + dtype = dtype.dtype + return dpt.finfo(dtype)
+ + + +# pylint: disable=redefined-outer-name +
+[docs] +def iinfo(dtype): + """ + Returns machine limits for integer data types. + + For full documentation refer to :obj:`numpy.iinfo`. + + Parameters + ---------- + dtype : dtype, dpnp_array + Integer dtype or an array with integer dtype. + + Returns + ------- + out : iinfo_object + An object with the following attributes + + * bits: int + number of bits occupied by the data type + * dtype: dtype + integer data type. + * max: int + largest representable number. + * min: int + smallest representable number. + + """ + if isinstance(dtype, dpnp_array): + dtype = dtype.dtype + return dpt.iinfo(dtype)
+ + + +
+[docs] +def issubdtype(arg1, arg2): + """ + Returns ``True`` if the first argument is a type code lower/equal + in type hierarchy. + + For full documentation refer to :obj:`numpy.issubdtype`. + + """ + + return numpy.issubdtype(arg1, arg2)
+ + + +def is_type_supported(obj_type): + """Return True if type is supported by DPNP python level.""" + + if obj_type in (float64, float32, int64, int32): + return True + return False +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/fft/dpnp_iface_fft.html b/pull/2070/_modules/dpnp/fft/dpnp_iface_fft.html new file mode 100644 index 00000000000..5be50f192dc --- /dev/null +++ b/pull/2070/_modules/dpnp/fft/dpnp_iface_fft.html @@ -0,0 +1,1896 @@ + + + + + + + + + + dpnp.fft.dpnp_iface_fft — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for dpnp.fft.dpnp_iface_fft

+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the Discrete Fourier Transform part of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+
+"""
+
+import dpnp
+
+from .dpnp_utils_fft import (
+    dpnp_fft,
+    dpnp_fftn,
+)
+
+__all__ = [
+    "fft",
+    "fft2",
+    "fftfreq",
+    "fftn",
+    "fftshift",
+    "hfft",
+    "ifft",
+    "ifft2",
+    "ifftn",
+    "ifftshift",
+    "ihfft",
+    "irfft",
+    "irfft2",
+    "irfftn",
+    "rfft",
+    "rfft2",
+    "rfftfreq",
+    "rfftn",
+]
+
+
+_SWAP_DIRECTION_MAP = {
+    "backward": "forward",
+    None: "forward",
+    "ortho": "ortho",
+    "forward": "backward",
+}
+
+
+def _swap_direction(norm):
+    try:
+        return _SWAP_DIRECTION_MAP[norm]
+    except KeyError:
+        raise ValueError(
+            f'Invalid norm value {norm}; should be None, "backward", '
+            '"ortho" or "forward".'
+        ) from None
+
+
+
+[docs] +def fft(a, n=None, axis=-1, norm=None, out=None): + """ + Compute the one-dimensional discrete Fourier Transform. + + This function computes the one-dimensional *n*-point discrete Fourier + Transform (DFT) with the efficient Fast Fourier Transform (FFT) algorithm. + + For full documentation refer to :obj:`numpy.fft.fft`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, can be complex. + n : {None, int}, optional + Length of the transformed axis of the output. + If `n` is smaller than the length of the input, the input is cropped. + If it is larger, the input is padded with zeros. If `n` is not given, + the length of the input along the axis specified by `axis` is used. + Default: ``None``. + axis : int, optional + Axis over which to compute the FFT. If not given, the last axis is + used. Default: ``-1``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be of + the appropriate shape (consistent with the choice of `n`) and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axis + indicated by `axis`, or the last one if `axis` is not specified. + + See Also + -------- + :obj:`dpnp.fft` : For definition of the DFT and conventions used. + :obj:`dpnp.fft.ifft` : The inverse of :obj:`dpnp.fft.fft`. + :obj:`dpnp.fft.fft2` : The two-dimensional FFT. + :obj:`dpnp.fft.fftn` : The *N*-dimensional FFT. + :obj:`dpnp.fft.rfftn` : The *N*-dimensional FFT of real input. + :obj:`dpnp.fft.fftfreq` : Frequency bins for given FFT parameters. + + Notes + ----- + FFT (Fast Fourier Transform) refers to a way the discrete Fourier + Transform (DFT) can be calculated efficiently, by using symmetries in the + calculated terms. The symmetry is highest when `n` is a power of 2, and + the transform is therefore most efficient for these sizes. + + The DFT is defined, with the conventions used in this implementation, + in the documentation for the :obj:`dpnp.fft` module. + + Examples + -------- + >>> import dpnp as np + >>> a = np.exp(2j * np.pi * np.arange(8) / 8) + >>> np.fft.fft(a) + array([-3.44509285e-16+1.14423775e-17j, 8.00000000e+00-8.52069395e-16j, + 2.33486982e-16+1.22464680e-16j, 0.00000000e+00+1.22464680e-16j, + 9.95799250e-17+2.33486982e-16j, -8.88178420e-16+1.17281316e-16j, + 1.14423775e-17+1.22464680e-16j, 0.00000000e+00+1.22464680e-16j]) + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fft( + a, forward=True, real=False, n=n, axis=axis, norm=norm, out=out + )
+ + + +
+[docs] +def fft2(a, s=None, axes=(-2, -1), norm=None, out=None): + """ + Compute the 2-dimensional discrete Fourier Transform. + + This function computes the *N*-dimensional discrete Fourier Transform over + any axes in an *M*-dimensional array by means of the Fast Fourier + Transform (FFT). By default, the transform is computed over the last two + axes of the input array, i.e., a 2-dimensional FFT. + + For full documentation refer to :obj:`numpy.fft.fft2`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, can be complex. + s : {None, sequence of ints}, optional + Shape (length of each transformed axis) of the output + (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). + This corresponds to `n` for ``fft(x, n)``. + Along each axis, if the given shape is smaller than that of the input, + the input is cropped. If it is larger, the input is padded with zeros. + If it is ``-1``, the whole input is used (no padding/trimming). + If `s` is not given, the shape of the input along the axes specified + by `axes` is used. If `s` is not ``None``, `axes` must not be ``None`` + either. Default: ``None``. + axes : {None, sequence of ints}, optional + Axes over which to compute the FFT. If not given, the last two axes are + used. A repeated index in `axes` means the transform over that axis is + performed multiple times. If `s` is specified, the corresponding `axes` + to be transformed must be explicitly specified too. A one-element + sequence means that a one-dimensional FFT is performed. An empty + sequence means that no FFT is performed. + Default: ``(-2, -1)``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be of + the appropriate shape (consistent with the choice of `s`) and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axes + indicated by `axes`, or the last two axes if `axes` is not given. + + See Also + -------- + :obj:`dpnp.fft` : Overall view of discrete Fourier transforms, with + definitions and conventions used. + :obj:`dpnp.fft.ifft2` : The inverse two-dimensional FFT. + :obj:`dpnp.fft.fft` : The one-dimensional FFT. + :obj:`dpnp.fft.fftn` : The *N*-dimensional FFT. + :obj:`dpnp.fft.fftshift` : Shifts zero-frequency terms to the center of + the array. For two-dimensional input, swaps first and third quadrants, + and second and fourth quadrants. + + Notes + ----- + :obj:`dpnp.fft.fft2` is just :obj:`dpnp.fft.fftn` with a different + default for `axes`. + + The output, analogously to :obj:`dpnp.fft.fft`, contains the term for zero + frequency in the low-order corner of the transformed axes, the positive + frequency terms in the first half of these axes, the term for the Nyquist + frequency in the middle of the axes and the negative frequency terms in + the second half of the axes, in order of decreasingly negative frequency. + + See :obj:`dpnp.fft` for details, definitions and conventions used. + + Examples + -------- + >>> import dpnp as np + >>> a = np.mgrid[:5, :5][0] + >>> np.fft.fft2(a) + array([[ 50. +0.j , 0. +0.j , 0. +0.j , + 0. +0.j , 0. +0.j ], + [-12.5+17.20477401j, 0. +0.j , 0. +0.j , + 0. +0.j , 0. +0.j ], + [-12.5 +4.0614962j , 0. +0.j , 0. +0.j , + 0. +0.j , 0. +0.j ], + [-12.5 -4.0614962j , 0. +0.j , 0. +0.j , + 0. +0.j , 0. +0.j ], + [-12.5-17.20477401j, 0. +0.j , 0. +0.j , + 0. +0.j , 0. +0.j ]]) # may vary + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fftn( + a, forward=True, real=False, s=s, axes=axes, norm=norm, out=out + )
+ + + +
+[docs] +def fftfreq(n, d=1.0, device=None, usm_type=None, sycl_queue=None): + """ + Return the Discrete Fourier Transform sample frequencies. + + The returned float array `f` contains the frequency bin centers in cycles + per unit of the sample spacing (with zero at the start). For instance, if + the sample spacing is in seconds, then the frequency unit is cycles/second. + + Given a window length `n` and a sample spacing `d`:: + + f = [0, 1, ..., n/2-1, -n/2, ..., -1] / (d*n) if n is even + f = [0, 1, ..., (n-1)/2, -(n-1)/2, ..., -1] / (d*n) if n is odd + + For full documentation refer to :obj:`numpy.fft.fftfreq`. + + Parameters + ---------- + n : int + Window length. + d : scalar, optional + Sample spacing (inverse of the sampling rate). + Default: ``1.0``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + Default: ``None``. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + f : dpnp.ndarray + Array of length `n` containing the sample frequencies. + + See Also + -------- + :obj:`dpnp.fft.rfftfreq` : Return the Discrete Fourier Transform sample + frequencies (for usage with :obj:`dpnp.fft.rfft` and + :obj:`dpnp.fft.irfft`). + + Examples + -------- + >>> import dpnp as np + >>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5]) + >>> fourier = np.fft.fft(signal) + >>> n = signal.size + >>> timestep = 0.1 + >>> freq = np.fft.fftfreq(n, d=timestep) + >>> freq + array([ 0. , 1.25, 2.5 , 3.75, -5. , -3.75, -2.5 , -1.25]) + + Creating the output array on a different device or with a + specified usm_type: + + >>> x = np.fft.fftfreq(n, d=timestep) # default case + >>> x.shape, x.device, x.usm_type + ((8,), Device(level_zero:gpu:0), 'device') + + >>> y = np.fft.fftfreq(n, d=timestep, device="cpu") + >>> y.shape, y.device, y.usm_type + ((8,), Device(opencl:cpu:0), 'device') + + >>> z = np.fft.fftfreq(n, d=timestep, usm_type="host") + >>> z.shape, z.device, z.usm_type + ((8,), Device(level_zero:gpu:0), 'host') + + """ + + if not isinstance(n, int): + raise ValueError("`n` should be an integer") + if not dpnp.isscalar(d): + raise ValueError("`d` should be an scalar") + val = 1.0 / (n * d) + results = dpnp.empty( + n, + dtype=dpnp.intp, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + m = (n - 1) // 2 + 1 + p1 = dpnp.arange( + 0, + m, + dtype=dpnp.intp, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + results[:m] = p1 + p2 = dpnp.arange( + m - n, + 0, + dtype=dpnp.intp, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + results[m:] = p2 + return results * val
+ + + +
+[docs] +def fftn(a, s=None, axes=None, norm=None, out=None): + """ + Compute the *N*-dimensional discrete Fourier Transform. + + This function computes the *N*-dimensional discrete Fourier Transform over + any number of axes in an *M*-dimensional array by means of the + Fast Fourier Transform (FFT). + + For full documentation refer to :obj:`numpy.fft.fftn`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, can be complex. + s : {None, sequence of ints}, optional + Shape (length of each transformed axis) of the output + (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). + This corresponds to `n` for ``fft(x, n)``. + Along each axis, if the given shape is smaller than that of the input, + the input is cropped. If it is larger, the input is padded with zeros. + If it is ``-1``, the whole input is used (no padding/trimming). + If `s` is not given, the shape of the input along the axes specified + by `axes` is used. If `s` is not ``None``, `axes` must not be ``None`` + either. Default: ``None``. + axes : {None, sequence of ints}, optional + Axes over which to compute the FFT. If not given, the last ``len(s)`` + axes are used, or all axes if `s` is also not specified. + Repeated indices in `axes` means that the transform over that axis is + performed multiple times. If `s` is specified, the corresponding `axes` + to be transformed must be explicitly specified too. A one-element + sequence means that a one-dimensional FFT is performed. An empty + sequence means that no FFT is performed. + Default: ``None``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be of + the appropriate shape (consistent with the choice of `s`) and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axes + indicated by `axes`, or by a combination of `s` and `a`, + as explained in the parameters section above. + + See Also + -------- + :obj:`dpnp.fft` : Overall view of discrete Fourier transforms, with + definitions and conventions used. + :obj:`dpnp.fft.ifftn` : The inverse *N*-dimensional FFT. + :obj:`dpnp.fft.fft` : The one-dimensional FFT. + :obj:`dpnp.fft.rfftn` : The *N*-dimensional FFT of real input. + :obj:`dpnp.fft.fft2` : The two-dimensional FFT. + :obj:`dpnp.fft.fftshift` : Shifts zero-frequency terms to the center of + the array. + + Notes + ----- + The output, analogously to :obj:`dpnp.fft.fft`, contains the term for zero + frequency in the low-order corner of the transformed axes, the positive + frequency terms in the first half of these axes, the term for the Nyquist + frequency in the middle of the axes and the negative frequency terms in + the second half of the axes, in order of decreasingly negative frequency. + + See :obj:`dpnp.fft` for details, definitions and conventions used. + + Examples + -------- + >>> import dpnp as np + >>> a = np.mgrid[:3, :3, :3][0] + >>> np.fft.fftn(a, axes=(1, 2)) + array([[[ 0.+0.j, 0.+0.j, 0.+0.j], # may vary + [ 0.+0.j, 0.+0.j, 0.+0.j], + [ 0.+0.j, 0.+0.j, 0.+0.j]], + [[ 9.+0.j, 0.+0.j, 0.+0.j], + [ 0.+0.j, 0.+0.j, 0.+0.j], + [ 0.+0.j, 0.+0.j, 0.+0.j]], + [[18.+0.j, 0.+0.j, 0.+0.j], + [ 0.+0.j, 0.+0.j, 0.+0.j], + [ 0.+0.j, 0.+0.j, 0.+0.j]]]) + + >>> np.fft.fftn(a, (2, 2), axes=(0, 1)) + array([[[ 2.+0.j, 2.+0.j, 2.+0.j], # may vary + [ 0.+0.j, 0.+0.j, 0.+0.j]], + [[-2.+0.j, -2.+0.j, -2.+0.j], + [ 0.+0.j, 0.+0.j, 0.+0.j]]]) + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fftn( + a, forward=True, real=False, s=s, axes=axes, norm=norm, out=out + )
+ + + +
+[docs] +def fftshift(x, axes=None): + """ + Shift the zero-frequency component to the center of the spectrum. + + This function swaps half-spaces for all axes listed (defaults to all). + Note that ``out[0]`` is the Nyquist component only if ``len(x)`` is even. + + For full documentation refer to :obj:`numpy.fft.fftshift`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. + axes : {None, int, list or tuple of ints}, optional + Axes over which to shift. + Default is ``None``, which shifts all axes. + + Returns + ------- + out : dpnp.ndarray + The shifted array. + + See Also + -------- + :obj:`dpnp.fft.ifftshift` : The inverse of :obj:`dpnp.fft.fftshift`. + + Examples + -------- + >>> import dpnp as np + >>> freqs = np.fft.fftfreq(10, 0.1) + >>> freqs + array([ 0., 1., 2., 3., 4., -5., -4., -3., -2., -1.]) + >>> np.fft.fftshift(freqs) + array([-5., -4., -3., -2., -1., 0., 1., 2., 3., 4.]) + + Shift the zero-frequency component only along the second axis: + + >>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3) + >>> freqs + array([[ 0., 1., 2.], + [ 3., 4., -4.], + [-3., -2., -1.]]) + >>> np.fft.fftshift(freqs, axes=(1,)) + array([[ 2., 0., 1.], + [-4., 3., 4.], + [-1., -3., -2.]]) + + """ + + dpnp.check_supported_arrays_type(x) + if axes is None: + axes = tuple(range(x.ndim)) + shift = [dim // 2 for dim in x.shape] + elif isinstance(axes, int): + shift = x.shape[axes] // 2 + else: + x_shape = x.shape + shift = [x_shape[ax] // 2 for ax in axes] + + return dpnp.roll(x, shift, axes)
+ + + +
+[docs] +def hfft(a, n=None, axis=-1, norm=None, out=None): + """ + Compute the FFT of a signal that has Hermitian symmetry, i.e., + a real spectrum. + + For full documentation refer to :obj:`numpy.fft.hfft`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + n : {None, int}, optional + Length of the transformed axis of the output. + For `n` output points, ``n//2+1`` input points are necessary. If the + input is longer than this, it is cropped. If it is shorter than this, + it is padded with zeros. If `n` is not given, it is taken to be + ``2*(m-1)`` where `m` is the length of the input along the axis + specified by `axis`. Default: ``None``. + axis : int, optional + Axis over which to compute the FFT. If not given, the last axis is + used. Default: ``-1``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + If provided, the result will be placed in this array. It should be + of the appropriate shape and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The truncated or zero-padded input, transformed along the axis + indicated by `axis`, or the last one if `axis` is not specified. + The length of the transformed axis is `n`, or, if `n` is not given, + ``2*(m-1)`` where `m` is the length of the transformed axis of the + input. To get an odd number of output points, `n` must be specified, + for instance as ``2*m - 1`` in the typical case. + + See Also + -------- + :obj:`dpnp.fft` : For definition of the DFT and conventions used. + :obj:`dpnp.fft.rfft` : The one-dimensional FFT of real input. + :obj:`dpnp.fft.ihfft` :The inverse of :obj:`dpnp.fft.hfft`. + + + Notes + ----- + :obj:`dpnp.fft.hfft`/:obj:`dpnp.fft.ihfft` are a pair analogous to + :obj:`dpnp.fft.rfft`/:obj:`dpnp.fft.irfft`, but for the opposite case: + here the signal has Hermitian symmetry in the time domain and is real in + the frequency domain. So here it's :obj:`dpnp.fft.hfft` for which you must + supply the length of the result if it is to be odd. + + * even: ``ihfft(hfft(a, 2*len(a) - 2)) == a``, within round-off error, + * odd: ``ihfft(hfft(a, 2*len(a) - 1)) == a``, within round-off error. + + The correct interpretation of the Hermitian input depends on the length of + the original data, as given by `n`. This is because each input shape could + correspond to either an odd or even length signal. By default, + :obj:`dpnp.fft.hfft` assumes an even output length which puts the last + entry at the Nyquist frequency; aliasing with its symmetric counterpart. + By Hermitian symmetry, the value is thus treated as purely real. To avoid + losing information, the correct length of the real input **must** be given. + + Examples + -------- + >>> import dpnp as np + >>> signal = np.array([1, 2, 3, 4, 3, 2]) + >>> np.fft.fft(signal) + array([15.+0.j, -4.+0.j, 0.+0.j, -1.-0.j, 0.+0.j, -4.+0.j]) + >>> np.fft.hfft(signal[:4]) # Input first half of signal + array([15., -4., 0., -1., 0., -4.]) + >>> np.fft.hfft(signal, 6) # Input entire signal and truncate + array([15., -4., 0., -1., 0., -4.]) + + >>> signal = np.array([[1, 1.j], [-1.j, 2]]) + >>> np.conj(signal.T) - signal # check Hermitian symmetry + array([[ 0.-0.j, -0.+0.j], # may vary + [ 0.+0.j, 0.-0.j]]) + >>> freq_spectrum = np.fft.hfft(signal) + >>> freq_spectrum + array([[ 1., 1.], + [ 2., -2.]]) + + """ + + new_norm = _swap_direction(norm) + return irfft(dpnp.conjugate(a), n=n, axis=axis, norm=new_norm, out=out)
+ + + +
+[docs] +def ifft(a, n=None, axis=-1, norm=None, out=None): + """ + Compute the one-dimensional inverse discrete Fourier Transform. + + This function computes the inverse of the one-dimensional *n*-point + discrete Fourier transform computed by :obj:`dpnp.fft.fft`. In other words, + ``ifft(fft(a)) == a`` to within numerical accuracy. + For a general description of the algorithm and definitions, + see :obj:`dpnp.fft`. + + The input should be ordered in the same way as is returned by + :obj:`dpnp.fft.fft`, i.e., + + * ``a[0]`` should contain the zero frequency term, + * ``a[1:n//2]`` should contain the positive-frequency terms, + * ``a[n//2 + 1:]`` should contain the negative-frequency terms, in + increasing order starting from the most negative frequency. + + For an even number of input points, ``A[n//2]`` represents the sum of + the values at the positive and negative Nyquist frequencies, as the two + are aliased together. + + For full documentation refer to :obj:`numpy.fft.ifft`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, can be complex. + n : {None, int}, optional + Length of the transformed axis of the output. + If `n` is smaller than the length of the input, the input is cropped. + If it is larger, the input is padded with zeros. If `n` is not given, + the length of the input along the axis specified by `axis` is used. + Default: ``None``. + axis : int, optional + Axis over which to compute the inverse FFT. If not given, the last + axis is used. Default: ``-1``. + norm : {"backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be of + the appropriate shape (consistent with the choice of `n`) and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axis + indicated by `axis`, or the last one if `axis` is not specified. + + See Also + -------- + :obj:`dpnp.fft` : For definition of the DFT and conventions used. + :obj:`dpnp.fft.fft` : The one-dimensional (forward) FFT, + of which :obj:`dpnp.fft.ifft` is the inverse. + :obj:`dpnp.fft.ifft2` : The two-dimensional inverse FFT. + :obj:`dpnp.fft.ifftn` : The *N*-dimensional inverse FFT. + + Notes + ----- + If the input parameter `n` is larger than the size of the input, the input + is padded by appending zeros at the end. Even though this is the common + approach, it might lead to surprising results. If a different padding is + desired, it must be performed before calling :obj:`dpnp.fft.ifft`. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([0, 4, 0, 0]) + >>> np.fft.ifft(a) + array([ 1.+0.j, 0.+1.j, -1.+0.j, 0.-1.j]) # may vary + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fft( + a, forward=False, real=False, n=n, axis=axis, norm=norm, out=out + )
+ + + +
+[docs] +def ifft2(a, s=None, axes=(-2, -1), norm=None, out=None): + """ + Compute the 2-dimensional inverse discrete Fourier Transform. + + This function computes the inverse of the 2-dimensional discrete Fourier + Transform over any number of axes in an *M*-dimensional array by means of + the Fast Fourier Transform (FFT). In other words, ``ifft2(fft2(a)) == a`` + to within numerical accuracy. By default, the inverse transform is + computed over the last two axes of the input array. + + The input, analogously to :obj:`dpnp.fft.ifft`, should be ordered in the + same way as is returned by :obj:`dpnp.fft.fft2`, i.e. it should have the + term for zero frequency in the low-order corner of the two axes, the + positive frequency terms in the first half of these axes, the term for the + Nyquist frequency in the middle of the axes and the negative frequency + terms in the second half of both axes, in order of decreasingly negative + frequency. + + For full documentation refer to :obj:`numpy.fft.ifft2`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, can be complex. + s : {None, sequence of ints}, optional + Shape (length of each transformed axis) of the output + (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). + This corresponds to `n` for ``ifft(x, n)``. + Along each axis, if the given shape is smaller than that of the input, + the input is cropped. If it is larger, the input is padded with zeros. + If it is ``-1``, the whole input is used (no padding/trimming). + If `s` is not given, the shape of the input along the axes specified + by `axes` is used. See notes for issue on :obj:`dpnp.fft.ifft` + zero padding. If `s` is not ``None``, `axes` must not be ``None`` + either. Default: ``None``. + axes : {None, sequence of ints}, optional + Axes over which to compute the inverse FFT. If not given, the last two + axes are used. A repeated index in `axes` means the transform over that + axis is performed multiple times. If `s` is specified, the + corresponding `axes` to be transformed must be explicitly specified + too. A one-element sequence means that a one-dimensional FFT is + performed. An empty sequence means that no FFT is performed. + Default: ``(-2, -1)``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be of + the appropriate shape (consistent with the choice of `s`) and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axes + indicated by `axes`, or the last two axes if `axes` is not given. + + See Also + -------- + :obj:`dpnp.fft` : Overall view of discrete Fourier transforms, with + definitions and conventions used. + :obj:`dpnp.fft.fft2` : The forward two-dimensional FFT, of which + :obj:`dpnp.fft.ifft2` is the inverse. + :obj:`dpnp.fft.ifftn` : The inverse of *N*-dimensional FFT. + :obj:`dpnp.fft.fft` : The one-dimensional FFT. + :obj:`dpnp.fft.ifft` : The one-dimensional inverse FFT. + + Notes + ----- + :obj:`dpnp.fft.ifft2` is just :obj:`dpnp.fft.ifftn` with a different + default for `axes`. See :obj:`dpnp.fft` for details, definitions and + conventions used. + + Zero-padding, analogously with :obj:`dpnp.fft.ifft`, is performed by + appending zeros to the input along the specified dimension. Although this + is the common approach, it might lead to surprising results. If another + form of zero padding is desired, it must be performed before + :obj:`dpnp.fft.ifft2` is called. + + Examples + -------- + >>> import dpnp as np + >>> a = 4 * np.eye(4) + >>> np.fft.ifft2(a) + array([[1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j], # may vary + [0.+0.j, 0.+0.j, 0.+0.j, 1.+0.j], + [0.+0.j, 0.+0.j, 1.+0.j, 0.+0.j], + [0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j]]) + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fftn( + a, forward=False, real=False, s=s, axes=axes, norm=norm, out=out + )
+ + + +
+[docs] +def ifftn(a, s=None, axes=None, norm=None, out=None): + """ + Compute the *N*-dimensional inverse discrete Fourier Transform. + + This function computes the inverse of the *N*-dimensional discrete + Fourier Transform over any number of axes in an *M*-dimensional array by + means of the Fast Fourier Transform (FFT). In other words, + ``ifftn(fftn(a)) == a`` to within numerical accuracy. For a description + of the definitions and conventions used, see :obj:`dpnp.fft`. + + The input, analogously to :obj:`dpnp.fft.ifft`, should be ordered in the + same way as is returned by :obj:`dpnp.fft.fftn`, i.e. it should have the + term for zero frequency in all axes in the low-order corner, the positive + frequency terms in the first half of all axes, the term for the Nyquist + frequency in the middle of all axes and the negative frequency terms in + the second half of all axes, in order of decreasingly negative frequency. + + For full documentation refer to :obj:`numpy.fft.ifftn`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, can be complex. + s : {None, sequence of ints}, optional + Shape (length of each transformed axis) of the output + (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). + This corresponds to `n` for ``ifft(x, n)``. + Along each axis, if the given shape is smaller than that of the input, + the input is cropped. If it is larger, the input is padded with zeros. + If it is ``-1``, the whole input is used (no padding/trimming). + if `s` is not given, the shape of the input along the axes specified + by `axes` is used. If `s` is not ``None``, `axes` must not be ``None`` + either. Default: ``None``. + axes : {None, sequence of ints}, optional + Axes over which to compute the inverse FFT. If not given, the last + ``len(s)`` axes are used, or all axes if `s` is also not specified. + Repeated indices in `axes` means that the transform over that axis is + performed multiple times. If `s` is specified, the corresponding `axes` + to be transformed must be explicitly specified too. A one-element + sequence means that a one-dimensional FFT is performed. An empty + sequence means that no FFT is performed. + Default: ``None``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be of + the appropriate shape (consistent with the choice of `s`) and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axes + indicated by `axes`, or by a combination of `s` and `a`, + as explained in the parameters section above. + + See Also + -------- + :obj:`dpnp.fft` : Overall view of discrete Fourier transforms, with + definitions and conventions used. + :obj:`dpnp.fft.fftn` : The *N*-dimensional FFT. + :obj:`dpnp.fft.ifft` : The one-dimensional inverse FFT. + :obj:`dpnp.fft.ifft2` : The two-dimensional inverse FFT. + :obj:`dpnp.fft.ifftshift` : Undoes :obj:`dpnp.fft.fftshift`, shifts + zero-frequency terms to the center of the array. + + Notes + ----- + See :obj:`dpnp.fft` for details, definitions and conventions used. + + Zero-padding, analogously with :obj:`dpnp.fft.ifft`, is performed by + appending zeros to the input along the specified dimension. Although this + is the common approach, it might lead to surprising results. If another + form of zero padding is desired, it must be performed before + :obj:`dpnp.fft.ifftn` is called. + + Examples + -------- + >>> import dpnp as np + >>> a = np.eye(4) + >>> np.fft.ifftn(np.fft.fftn(a, axes=(0,)), axes=(1,)) + array([[1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j], # may vary + [0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j], + [0.+0.j, 0.+0.j, 1.+0.j, 0.+0.j], + [0.+0.j, 0.+0.j, 0.+0.j, 1.+0.j]]) + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fftn( + a, forward=False, real=False, s=s, axes=axes, norm=norm, out=out + )
+ + + +
+[docs] +def ifftshift(x, axes=None): + """ + Inverse shift the zero-frequency component to the center of the spectrum. + + Although identical for even-length `x`, the functions differ by one sample + for odd-length `x`. + + For full documentation refer to :obj:`numpy.fft.ifftshift`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. + axes : {None, int, list or tuple of ints}, optional + Axes over which to calculate. + Defaults to ``None``, which shifts all axes. + + Returns + ------- + out : dpnp.ndarray + The shifted array. + + See Also + -------- + :obj:`dpnp.fft.fftshift` : Shift zero-frequency component to the center + of the spectrum. + + Examples + -------- + >>> import dpnp as np + >>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3) + >>> freqs + array([[ 0., 1., 2.], + [ 3., 4., -4.], + [-3., -2., -1.]]) + >>> np.fft.ifftshift(np.fft.fftshift(freqs)) + array([[ 0., 1., 2.], + [ 3., 4., -4.], + [-3., -2., -1.]]) + + """ + + dpnp.check_supported_arrays_type(x) + if axes is None: + axes = tuple(range(x.ndim)) + shift = [-(dim // 2) for dim in x.shape] + elif isinstance(axes, int): + shift = -(x.shape[axes] // 2) + else: + x_shape = x.shape + shift = [-(x_shape[ax] // 2) for ax in axes] + + return dpnp.roll(x, shift, axes)
+ + + +
+[docs] +def ihfft(a, n=None, axis=-1, norm=None, out=None): + """ + Compute the inverse FFT of a signal that has Hermitian symmetry. + + For full documentation refer to :obj:`numpy.fft.ihfft`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + n : {None, int}, optional + Length of the inverse FFT, the number of points along + transformation axis in the input to use. If `n` is smaller than + the length of the input, the input is cropped. If it is larger, + the input is padded with zeros. If `n` is not given, the length of + the input along the axis specified by `axis` is used. + Default: ``None``. + axis : int, optional + Axis over which to compute the FFT. If not given, the last axis is + used. Default: ``-1``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be + of the appropriate shape and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axis + indicated by `axis`, or the last one if `axis` is not specified. + The length of the transformed axis is ``n//2 + 1``. + + See Also + -------- + :obj:`dpnp.fft` : For definition of the DFT and conventions used. + :obj:`dpnp.fft.hfft` : Compute the FFT of a signal that has + Hermitian symmetry. + :obj:`dpnp.fft.irfft` : The inverse of :obj:`dpnp.fft.rfft`. + + Notes + ----- + :obj:`dpnp.fft.hfft`/:obj:`dpnp.fft.ihfft` are a pair analogous to + :obj:`dpnp.fft.rfft`/:obj:`dpnp.fft.irfft`, but for the opposite case: + here the signal has Hermitian symmetry in the time domain and is real in + the frequency domain. So here it's :obj:`dpnp.fft.hfft` for which you must + supply the length of the result if it is to be odd. + + * even: ``ihfft(hfft(a, 2*len(a) - 2)) == a``, within round-off error, + * odd: ``ihfft(hfft(a, 2*len(a) - 1)) == a``, within round-off error. + + Examples + -------- + >>> import dpnp as np + >>> spectrum = np.array([ 15, -4, 0, -1, 0, -4]) + >>> np.fft.ifft(spectrum) + array([1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j, 3.+0.j, 2.+0.j]) # may vary + >>> np.fft.ihfft(spectrum) + array([1.-0.j, 2.-0.j, 3.-0.j, 4.-0.j]) # may vary + + """ + + new_norm = _swap_direction(norm) + res = rfft(a, n=n, axis=axis, norm=new_norm, out=out) + return dpnp.conjugate(res, out=out)
+ + + +
+[docs] +def irfft(a, n=None, axis=-1, norm=None, out=None): + """ + Computes the inverse of :obj:`dpnp.fft.rfft`. + + This function computes the inverse of the one-dimensional *n*-point + discrete Fourier Transform of real input computed by :obj:`dpnp.fft.rfft`. + In other words, ``irfft(rfft(a), len(a)) == a`` to within numerical + accuracy. (See Notes below for why ``len(a)`` is necessary here.) + + The input is expected to be in the form returned by :obj:`dpnp.fft.rfft`, + i.e. the real zero-frequency term followed by the complex positive + frequency terms in order of increasing frequency. Since the discrete + Fourier Transform of real input is Hermitian-symmetric, the negative + frequency terms are taken to be the complex conjugates of the corresponding + positive frequency terms. + + For full documentation refer to :obj:`numpy.fft.irfft`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array. + n : {None, int}, optional + Length of the transformed axis of the output. + For `n` output points, ``n//2+1`` input points are necessary. If the + input is longer than this, it is cropped. If it is shorter than this, + it is padded with zeros. If `n` is not given, it is taken to be + ``2*(m-1)`` where `m` is the length of the input along the axis + specified by `axis`. Default: ``None``. + axis : int, optional + Axis over which to compute the FFT. If not given, the last axis is + used. Default: ``-1``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray, usm_ndarray}, optional + If provided, the result will be placed in this array. It should be + of the appropriate shape and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The truncated or zero-padded input, transformed along the axis + indicated by `axis`, or the last one if `axis` is not specified. + The length of the transformed axis is `n`, or, if `n` is not given, + ``2*(m-1)`` where `m` is the length of the transformed axis of the + input. To get an odd number of output points, `n` must be specified. + + See Also + -------- + :obj:`dpnp.fft` : For definition of the DFT and conventions used. + :obj:`dpnp.fft.rfft` : The one-dimensional FFT of real input, of which + :obj:`dpnp.fft.irfft` is inverse. + :obj:`dpnp.fft.fft` : The one-dimensional FFT of general (complex) input. + :obj:`dpnp.fft.irfft2` :The inverse of the two-dimensional FFT of + real input. + :obj:`dpnp.fft.irfftn` : The inverse of the *N*-dimensional FFT of + real input. + + Notes + ----- + Returns the real valued *n*-point inverse discrete Fourier transform + of `a`, where `a` contains the non-negative frequency terms of a + Hermitian-symmetric sequence. `n` is the length of the result, not the + input. + + If you specify an `n` such that `a` must be zero-padded or truncated, the + extra/removed values will be added/removed at high frequencies. One can + thus re-sample a series to `m` points via Fourier interpolation by: + ``a_resamp = irfft(rfft(a), m)``. + + The correct interpretation of the Hermitian input depends on the length of + the original data, as given by `n`. This is because each input shape could + correspond to either an odd or even length signal. By default, + :obj:`dpnp.fft.irfft` assumes an even output length which puts the last + entry at the Nyquist frequency; aliasing with its symmetric counterpart. + By Hermitian symmetry, the value is thus treated as purely real. To avoid + losing information, the correct length of the real input **must** be given. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([1, -1j, -1, 1j]) + >>> np.fft.ifft(a) + array([0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j]) # may vary + >>> np.fft.irfft(a[:-1]) + array([0., 1., 0., 0.]) + + Notice how the last term in the input to the ordinary :obj:`dpnp.fft.ifft` + is the complex conjugate of the second term, and the output has zero + imaginary part everywhere. When calling :obj:`dpnp.fft.irfft`, the negative + frequencies are not specified, and the output array is purely real. + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fft( + a, forward=False, real=True, n=n, axis=axis, norm=norm, out=out + )
+ + + +
+[docs] +def irfft2(a, s=None, axes=(-2, -1), norm=None, out=None): + """ + Computes the inverse of :obj:`dpnp.fft.rfft2`. + + For full documentation refer to :obj:`numpy.fft.irfft2`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, can be complex. + s : {None, sequence of ints}, optional + Shape (length of each transformed axis) of the output + (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). `s` is also the + number of input points used along this axis, except for the last axis, + where ``s[-1]//2+1`` points of the input are used. + Along each axis, if the given shape is smaller than that of the input, + the input is cropped. If it is larger, the input is padded with zeros. + If it is ``-1``, the whole input is used (no padding/trimming). + If `s` is not given, the shape of the input along the axes + specified by `axes` is used. Except for the last axis which is taken to + be ``2*(m-1)`` where `m` is the length of the input along that axis. + If `s` is not ``None``, `axes` must not be ``None`` + Default: ``None``. + axes : {None, sequence of ints}, optional + Axes over which to compute the inverse FFT. If not given, the last + ``len(s)`` axes are used, or all axes if `s` is also not specified. + Repeated indices in `axes` means that the transform over that axis is + performed multiple times. If `s` is specified, the corresponding `axes` + to be transformed must be explicitly specified too. A one-element + sequence means that a one-dimensional FFT is performed. An empty + sequence means that no FFT is performed. + Default: ``(-2, -1)``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray}, optional + If provided, the result will be placed in this array. It should be of + the appropriate dtype and shape for the last transformation + (consistent with the choice of `s`). + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The truncated or zero-padded input, transformed along the axes + indicated by `axes`, or the last two axes if `axes` is not given. + + See Also + -------- + :obj:`dpnp.fft` : Overall view of discrete Fourier transforms, with + definitions and conventions used. + :obj:`dpnp.fft.rfft2` : The forward two-dimensional FFT of real input, + of which :obj:`dpnp.fft.irfft2` is the inverse. + :obj:`dpnp.fft.rfft` : The one-dimensional FFT for real input. + :obj:`dpnp.fft.irfft` : The inverse of the one-dimensional FFT of + real input. + :obj:`dpnp.fft.irfftn` : The inverse of the *N*-dimensional FFT of + real input. + + Notes + ----- + :obj:`dpnp.fft.irfft2` is just :obj:`dpnp.fft.irfftn` with a different + default for `axes`. For more details see :obj:`dpnp.fft.irfftn`. + + Examples + -------- + >>> import dpnp as np + >>> a = np.mgrid[:5, :5][0] + >>> A = np.fft.rfft2(a) + >>> np.fft.irfft2(A, s=a.shape) + array([[0., 0., 0., 0., 0.], + [1., 1., 1., 1., 1.], + [2., 2., 2., 2., 2.], + [3., 3., 3., 3., 3.], + [4., 4., 4., 4., 4.]]) + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fftn( + a, forward=False, real=True, s=s, axes=axes, norm=norm, out=out + )
+ + + +
+[docs] +def irfftn(a, s=None, axes=None, norm=None, out=None): + """ + Computes the inverse of :obj:`dpnp.fft.rfftn`. + + This function computes the inverse of the *N*-dimensional discrete Fourier + Transform for real input over any number of axes in an *M*-dimensional + array by means of the Fast Fourier Transform (FFT). In other words, + ``irfftn(rfftn(a), a.shape) == a`` to within numerical accuracy. (The + ``a.shape`` is necessary like ``len(a)`` is for :obj:`dpnp.fft.irfft`, + and for the same reason.) + + The input should be ordered in the same way as is returned by + :obj:`dpnp.fft.rfftn`, i.e. as for :obj:`dpnp.fft.irfft` for the final + transformation axis, and as for :obj:`dpnp.fft.irfftn` along all the other + axes. + + For full documentation refer to :obj:`numpy.fft.irfftn`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, can be complex. + s : {None, sequence of ints}, optional + Shape (length of each transformed axis) of the output + (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). `s` is also the + number of input points used along this axis, except for the last axis, + where ``s[-1]//2+1`` points of the input are used. + Along each axis, if the given shape is smaller than that of the input, + the input is cropped. If it is larger, the input is padded with zeros. + If it is ``-1``, the whole input is used (no padding/trimming). + If `s` is not given, the shape of the input along the axes + specified by axes is used. Except for the last axis which is taken to + be ``2*(m-1)`` where `m` is the length of the input along that axis. + If `s` is not ``None``, `axes` must not be ``None`` + Default: ``None``. + axes : {None, sequence of ints}, optional + Axes over which to compute the inverse FFT. If not given, the last + ``len(s)`` axes are used, or all axes if `s` is also not specified. + Repeated indices in `axes` means that the transform over that axis is + performed multiple times. If `s` is specified, the corresponding `axes` + to be transformed must be explicitly specified too. A one-element + sequence means that a one-dimensional FFT is performed. An empty + sequence means that no FFT is performed. + Default: ``None``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray}, optional + If provided, the result will be placed in this array. It should be of + the appropriate dtype and shape for the last transformation + (consistent with the choice of `s`). + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The truncated or zero-padded input, transformed along the axes + indicated by `axes`, or by a combination of `s` and `a`, + as explained in the parameters section above. + The length of each transformed axis is as given by the corresponding + element of `s`, or the length of the input in every axis except for the + last one if `s` is not given. In the final transformed axis the length + of the output when `s` is not given is ``2*(m-1)`` where `m` is the + length of the final transformed axis of the input. To get an odd + number of output points in the final axis, `s` must be specified. + + See Also + -------- + :obj:`dpnp.fft` : Overall view of discrete Fourier transforms, with + definitions and conventions used. + :obj:`dpnp.fft.rfftn` : The `n`-dimensional FFT of real input. + :obj:`dpnp.fft.fft` : The one-dimensional FFT, with definitions and + conventions used. + :obj:`dpnp.fft.irfft` : The inverse of the one-dimensional FFT of + real input. + :obj:`dpnp.fft.irfft2` : The inverse of the two-dimensional FFT of + real input. + + Notes + ----- + See :obj:`dpnp.fft` for details, definitions and conventions used. + + See :obj:`dpnp.fft.rfft` for definitions and conventions used for real + input. + + The correct interpretation of the Hermitian input depends on the shape of + the original data, as given by `s`. This is because each input shape could + correspond to either an odd or even length signal. By default, + :obj:`dpnp.fft.irfftn` assumes an even output length which puts the last + entry at the Nyquist frequency; aliasing with its symmetric counterpart. + When performing the final complex to real transform, the last value is thus + treated as purely real. To avoid losing information, the correct shape of + the real input **must** be given. + + Examples + -------- + >>> import dpnp as np + >>> a = np.zeros((3, 2, 2)) + >>> a[0, 0, 0] = 3 * 2 * 2 + >>> np.fft.irfftn(a) + array([[[1., 1.], + [1., 1.]], + [[1., 1.], + [1., 1.]], + [[1., 1.], + [1., 1.]]]) + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fftn( + a, forward=False, real=True, s=s, axes=axes, norm=norm, out=out + )
+ + + +
+[docs] +def rfft(a, n=None, axis=-1, norm=None, out=None): + """ + Compute the one-dimensional discrete Fourier Transform for real input. + + This function computes the one-dimensional *n*-point discrete Fourier + Transform (DFT) of a real-valued array by means of an efficient algorithm + called the Fast Fourier Transform (FFT). + + For full documentation refer to :obj:`numpy.fft.rfft`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, taken to be real. + n : {None, int}, optional + Number of points along transformation axis in the input to use. + If `n` is smaller than the length of the input, the input is cropped. + If it is larger, the input is padded with zeros. If `n` is not given, + the length of the input along the axis specified by `axis` is used. + Default: ``None``. + axis : int, optional + Axis over which to compute the FFT. If not given, the last axis is + used. Default: ``-1``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be + of the appropriate shape and dtype. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axis + indicated by `axis`, or the last one if `axis` is not specified. + If `n` is even, the length of the transformed axis is ``(n/2)+1``. + If `n` is odd, the length is ``(n+1)/2``. + + See Also + -------- + :obj:`dpnp.fft` : For definition of the DFT and conventions used. + :obj:`dpnp.fft.irfft` : The inverse of :obj:`dpnp.fft.rfft`. + :obj:`dpnp.fft.fft` : The one-dimensional FFT of general (complex) input. + :obj:`dpnp.fft.fftn` : The *N*-dimensional FFT. + :obj:`dpnp.fft.rfftn` : The *N*-dimensional FFT of real input. + + Notes + ----- + When the DFT is computed for purely real input, the output is + Hermitian-symmetric, i.e. the negative frequency terms are just the complex + conjugates of the corresponding positive-frequency terms, and the + negative-frequency terms are therefore redundant. This function does not + compute the negative frequency terms, and the length of the transformed + axis of the output is therefore ``n//2 + 1``. + + When ``A = dpnp.fft.rfft(a)`` and fs is the sampling frequency, ``A[0]`` + contains the zero-frequency term 0*fs, which is real due to Hermitian + symmetry. + + If `n` is even, ``A[-1]`` contains the term representing both positive + and negative Nyquist frequency (+fs/2 and -fs/2), and must also be purely + real. If `n` is odd, there is no term at fs/2; ``A[-1]`` contains + the largest positive frequency (fs/2*(n-1)/n), and is complex in the + general case. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([0, 1, 0, 0]) + >>> np.fft.fft(a) + array([ 1.+0.j, 0.-1.j, -1.+0.j, 0.+1.j]) # may vary + >>> np.fft.rfft(a) + array([ 1.+0.j, 0.-1.j, -1.+0.j]) # may vary + + Notice how the final element of the :obj:`dpnp.fft.fft` output is the + complex conjugate of the second element, for real input. + For :obj:`dpnp.fft.rfft`, this symmetry is exploited to compute only the + non-negative frequency terms. + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fft( + a, forward=True, real=True, n=n, axis=axis, norm=norm, out=out + )
+ + + +
+[docs] +def rfft2(a, s=None, axes=(-2, -1), norm=None, out=None): + """ + Compute the 2-dimensional FFT of a real array. + + For full documentation refer to :obj:`numpy.fft.rfft2`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, taken to be real. + s : {None, sequence of ints}, optional + Shape (length of each transformed axis) to use from the input. + (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). + The final element of `s` corresponds to `n` for ``rfft(x, n)``, while + for the remaining axes, it corresponds to `n` for ``fft(x, n)``. + Along each axis, if the given shape is smaller than that of the input, + the input is cropped. If it is larger, the input is padded with zeros. + If it is ``-1``, the whole input is used (no padding/trimming). + If `s` is not given, the shape of the input along the axes specified + by `axes` is used. If `s` is not ``None``, `axes` must not be ``None`` + either. Default: ``None``. + axes : {None, sequence of ints}, optional + Axes over which to compute the FFT. If not given, the last two axes are + used. A repeated index in `axes` means the transform over that axis is + performed multiple times. If `s` is specified, the corresponding `axes` + to be transformed must be explicitly specified too. A one-element + sequence means that a one-dimensional FFT is performed. An empty + sequence means that no FFT is performed. + Default: ``(-2, -1)``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be of + the appropriate dtype and shape for the last transformation + (consistent with the choice of `s`). + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axes + indicated by `axes`, or the last two axes if `axes` is not given. + + See Also + -------- + :obj:`dpnp.fft` : Overall view of discrete Fourier transforms, with + definitions and conventions used. + :obj:`dpnp.fft.rfft` : The one-dimensional FFT of real input. + :obj:`dpnp.fft.rfftn` : The `n`-dimensional FFT of real input. + :obj:`dpnp.fft.irfft2` : The inverse two-dimensional real FFT. + + Notes + ----- + This is just :obj:`dpnp.fft.rfftn` with different default behavior. + For more details see :obj:`dpnp.fft.rfftn`. + + Examples + -------- + >>> import dpnp as np + >>> a = np.mgrid[:5, :5][0] + >>> np.fft.rfft2(a) + array([[ 50. +0.j , 0. +0.j , 0. +0.j ], + [-12.5+17.20477401j, 0. +0.j , 0. +0.j ], + [-12.5 +4.0614962j , 0. +0.j , 0. +0.j ], + [-12.5 -4.0614962j , 0. +0.j , 0. +0.j ], + [-12.5-17.20477401j, 0. +0.j , 0. +0.j ]]) + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fftn( + a, forward=True, real=True, s=s, axes=axes, norm=norm, out=out + )
+ + + +
+[docs] +def rfftfreq(n, d=1.0, device=None, usm_type=None, sycl_queue=None): + """ + Return the Discrete Fourier Transform sample frequencies + (for usage with :obj:`dpnp.fft.rfft`, :obj:`dpnp.fft.irfft`). + + The returned float array `f` contains the frequency bin centers in cycles + per unit of the sample spacing (with zero at the start). For instance, if + the sample spacing is in seconds, then the frequency unit is cycles/second. + + Given a window length `n` and a sample spacing `d`:: + + f = [0, 1, ..., n/2-1, n/2] / (d*n) if n is even + f = [0, 1, ..., (n-1)/2-1, (n-1)/2] / (d*n) if n is odd + + Unlike :obj:`dpnp.fft.fftfreq` the Nyquist frequency component is + considered to be positive. + + For full documentation refer to :obj:`numpy.fft.rfftfreq`. + + Parameters + ---------- + n : int + Window length. + d : scalar, optional + Sample spacing (inverse of the sampling rate). + Default: ``1.0``. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + Default: ``None``. + usm_type : {None, "device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + Default: ``None``. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + f : dpnp.ndarray + Array of length ``n//2 + 1`` containing the sample frequencies. + + See Also + -------- + :obj:`dpnp.fft.fftfreq` : Return the Discrete Fourier Transform sample + frequencies (for usage with :obj:`dpnp.fft.fft` and + :obj:`dpnp.fft.ifft`). + + Examples + -------- + >>> import dpnp as np + >>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5, -3, 4]) + >>> fourier = np.fft.fft(signal) + >>> n = signal.size + >>> sample_rate = 100 + >>> freq = np.fft.fftfreq(n, d=1./sample_rate) + >>> freq + array([ 0., 10., 20., 30., 40., -50., -40., -30., -20., -10.]) + >>> freq = np.fft.rfftfreq(n, d=1./sample_rate) + >>> freq + array([ 0., 10., 20., 30., 40., 50.]) + + Creating the output array on a different device or with a + specified usm_type: + + >>> x = np.fft.rfftfreq(n, d=1./sample_rate) # default case + >>> x.shape, x.device, x.usm_type + ((6,), Device(level_zero:gpu:0), 'device') + + >>> y = np.fft.rfftfreq(n, d=1./sample_rate, device="cpu") + >>> y.shape, y.device, y.usm_type + ((6,), Device(opencl:cpu:0), 'device') + + >>> z = np.fft.rfftfreq(n, d=1./sample_rate, usm_type="host") + >>> z.shape, z.device, z.usm_type + ((6,), Device(level_zero:gpu:0), 'host') + + """ + + if not isinstance(n, int): + raise ValueError("`n` should be an integer") + if not dpnp.isscalar(d): + raise ValueError("`d` should be an scalar") + val = 1.0 / (n * d) + m = n // 2 + 1 + results = dpnp.arange( + 0, + m, + dtype=dpnp.intp, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + return results * val
+ + + +
+[docs] +def rfftn(a, s=None, axes=None, norm=None, out=None): + """ + Compute the *N*-dimensional discrete Fourier Transform for real input. + + This function computes the *N*-dimensional discrete Fourier Transform over + any number of axes in an *M*-dimensional real array by means of the Fast + Fourier Transform (FFT). By default, all axes are transformed, with the + real transform performed over the last axis, while the remaining + transforms are complex. + + For full documentation refer to :obj:`numpy.fft.rfftn`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Input array, taken to be real. + s : {None, sequence of ints}, optional + Shape (length of each transformed axis) to use from the input. + (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). + The final element of `s` corresponds to `n` for ``rfft(x, n)``, while + for the remaining axes, it corresponds to `n` for ``fft(x, n)``. + Along each axis, if the given shape is smaller than that of the input, + the input is cropped. If it is larger, the input is padded with zeros. + If it is ``-1``, the whole input is used (no padding/trimming). + If `s` is not given, the shape of the input along the axes specified + by `axes` is used. If `s` is not ``None``, `axes` must not be ``None`` + either. Default: ``None``. + axes : {None, sequence of ints}, optional + Axes over which to compute the FFT. If not given, the last ``len(s)`` + axes are used, or all axes if `s` is also not specified. + Repeated indices in `axes` means that the transform over that axis is + performed multiple times. If `s` is specified, the corresponding `axes` + to be transformed must be explicitly specified too. A one-element + sequence means that a one-dimensional FFT is performed. An empty + sequence means that no FFT is performed. + Default: ``None``. + norm : {None, "backward", "ortho", "forward"}, optional + Normalization mode (see :obj:`dpnp.fft`). + Indicates which direction of the forward/backward pair of transforms + is scaled and with what normalization factor. ``None`` is an alias of + the default option ``"backward"``. + Default: ``"backward"``. + out : {None, dpnp.ndarray or usm_ndarray of complex dtype}, optional + If provided, the result will be placed in this array. It should be of + the appropriate dtype and shape for the last transformation + (consistent with the choice of `s`). + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray of complex dtype + The truncated or zero-padded input, transformed along the axes + indicated by `axes`, or by a combination of `s` and `a`, + as explained in the parameters section above. + The length of the last axis transformed will be ``s[-1]//2+1``, + while the remaining transformed axes will have lengths according to + `s`, or unchanged from the input. + + See Also + -------- + :obj:`dpnp.fft` : Overall view of discrete Fourier transforms, with + definitions and conventions used. + :obj:`dpnp.fft.irfftn` : The inverse of the *N*-dimensional FFT of + real input. + :obj:`dpnp.fft.fft` : The one-dimensional FFT of general (complex) input. + :obj:`dpnp.fft.rfft` : The one-dimensional FFT of real input. + :obj:`dpnp.fft.fftn` : The *N*-dimensional FFT. + :obj:`dpnp.fft.fftn` : The two-dimensional FFT. + + Notes + ----- + The transform for real input is performed over the last transformation + axis, as by :obj:`dpnp.fft.rfft`, then the transform over the remaining + axes is performed as by :obj:`dpnp.fft.fftn`. The order of the output + is as for :obj:`dpnp.fft.rfft` for the final transformation axis, and + as for :obj:`dpnp.fft.fftn` for the remaining transformation axes. + + See :obj:`dpnp.fft` for details, definitions and conventions used. + + Examples + -------- + >>> import dpnp as np + >>> a = np.ones((2, 2, 2)) + >>> np.fft.rfftn(a) + array([[[8.+0.j, 0.+0.j], # may vary + [0.+0.j, 0.+0.j]], + [[0.+0.j, 0.+0.j], + [0.+0.j, 0.+0.j]]]) + + >>> np.fft.rfftn(a, axes=(2, 0)) + array([[[4.+0.j, 0.+0.j], # may vary + [4.+0.j, 0.+0.j]], + [[0.+0.j, 0.+0.j], + [0.+0.j, 0.+0.j]]]) + + """ + + dpnp.check_supported_arrays_type(a) + return dpnp_fftn( + a, forward=True, real=True, s=s, axes=axes, norm=norm, out=out + )
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/linalg/dpnp_iface_linalg.html b/pull/2070/_modules/dpnp/linalg/dpnp_iface_linalg.html new file mode 100644 index 00000000000..111a29db212 --- /dev/null +++ b/pull/2070/_modules/dpnp/linalg/dpnp_iface_linalg.html @@ -0,0 +1,1685 @@ + + + + + + + + + + dpnp.linalg.dpnp_iface_linalg — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for dpnp.linalg.dpnp_iface_linalg

+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Interface of the Linear Algebra part of the DPNP
+
+Notes
+-----
+This module is a face or public interface file for the library
+it contains:
+ - Interface functions
+ - documentation for the functions
+ - The functions parameters check
+
+"""
+
+# pylint: disable=invalid-name
+# pylint: disable=no-member
+
+import numpy
+
+import dpnp
+
+from .dpnp_utils_linalg import (
+    assert_2d,
+    assert_stacked_2d,
+    assert_stacked_square,
+    dpnp_cholesky,
+    dpnp_cond,
+    dpnp_det,
+    dpnp_eigh,
+    dpnp_inv,
+    dpnp_lstsq,
+    dpnp_matrix_power,
+    dpnp_matrix_rank,
+    dpnp_multi_dot,
+    dpnp_norm,
+    dpnp_pinv,
+    dpnp_qr,
+    dpnp_slogdet,
+    dpnp_solve,
+    dpnp_svd,
+)
+
+__all__ = [
+    "cholesky",
+    "cond",
+    "det",
+    "eig",
+    "eigh",
+    "eigvals",
+    "eigvalsh",
+    "inv",
+    "lstsq",
+    "matmul",
+    "matrix_power",
+    "matrix_rank",
+    "multi_dot",
+    "norm",
+    "pinv",
+    "qr",
+    "solve",
+    "svd",
+    "slogdet",
+    "tensorinv",
+    "tensorsolve",
+]
+
+
+
+[docs] +def cholesky(a, upper=False): + """ + Cholesky decomposition. + + Return the lower or upper Cholesky decomposition, ``L * L.H`` or + ``U.H * U``, of the square matrix ``a``, where ``L`` is lower-triangular, + ``U`` is upper-triangular, and ``.H`` is the conjugate transpose operator + (which is the ordinary transpose if ``a`` is real-valued). ``a`` must be + Hermitian (symmetric if real-valued) and positive-definite. No checking is + performed to verify whether ``a`` is Hermitian or not. In addition, only + the lower or upper-triangular and diagonal elements of ``a`` are used. + Only ``L`` or ``U`` is actually returned. + + For full documentation refer to :obj:`numpy.linalg.cholesky`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + Hermitian (symmetric if all elements are real), positive-definite + input matrix. + upper : {bool}, optional + If ``True``, the result must be the upper-triangular Cholesky factor. + If ``False``, the result must be the lower-triangular Cholesky factor. + Default: ``False``. + + Returns + ------- + L : (..., M, M) dpnp.ndarray + Lower or upper-triangular Cholesky factor of `a`. + + Examples + -------- + >>> import dpnp as np + >>> A = np.array([[1.0, 2.0],[2.0, 5.0]]) + >>> A + array([[1., 2.], + [2., 5.]]) + >>> L = np.linalg.cholesky(A) + >>> L + array([[1., 0.], + [2., 1.]]) + >>> np.dot(L, L.T.conj()) # verify that L * L.H = A + array([[1., 2.], + [2., 5.]]) + + The upper-triangular Cholesky factor can also be obtained: + + >>> np.linalg.cholesky(A, upper=True) + array([[ 1.+0.j, -0.-2.j], + [ 0.+0.j, 1.+0.j]] + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + return dpnp_cholesky(a, upper=upper)
+ + + +
+[docs] +def cond(x, p=None): + """ + Compute the condition number of a matrix. + + For full documentation refer to :obj:`numpy.linalg.cond`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + The matrix whose condition number is sought. + p : {None, 1, -1, 2, -2, inf, -inf, "fro"}, optional + Order of the norm used in the condition number computation. + ``inf`` means the `dpnp.inf` object, and the Frobenius norm is + the root-of-sum-of-squares norm. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The condition number of the matrix. May be infinite. + + See Also + -------- + :obj:`dpnp.linalg.norm` : Matrix or vector norm. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1, 0, -1], [0, 1, 0], [1, 0, 1]]) + >>> a + array([[ 1, 0, -1], + [ 0, 1, 0], + [ 1, 0, 1]]) + >>> np.linalg.cond(a) + array(1.41421356) + >>> np.linalg.cond(a, 'fro') + array(3.16227766) + >>> np.linalg.cond(a, np.inf) + array(2.) + >>> np.linalg.cond(a, -np.inf) + array(1.) + >>> np.linalg.cond(a, 1) + array(2.) + >>> np.linalg.cond(a, -1) + array(1.) + >>> np.linalg.cond(a, 2) + array(1.41421356) + >>> np.linalg.cond(a, -2) + array(0.70710678) # may vary + >>> x = min(np.linalg.svd(a, compute_uv=False)) + >>> y = min(np.linalg.svd(np.linalg.inv(a), compute_uv=False)) + >>> x * y + array(0.70710678) # may vary + + """ + + dpnp.check_supported_arrays_type(x) + return dpnp_cond(x, p)
+ + + +
+[docs] +def det(a): + """ + Compute the determinant of an array. + + For full documentation refer to :obj:`numpy.linalg.det`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + Input array to compute determinants for. + + Returns + ------- + det : (...) dpnp.ndarray + Determinant of `a`. + + See Also + -------- + :obj:`dpnp.linalg.slogdet` : Returns sign and logarithm of the determinant + of an array. + + Examples + -------- + The determinant of a 2-D array ``[[a, b], [c, d]]`` is ``ad - bc``: + + >>> import dpnp as dp + >>> a = dp.array([[1, 2], [3, 4]]) + >>> dp.linalg.det(a) + array(-2.) + + Computing determinants for a stack of matrices: + + >>> a = dp.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ]) + >>> a.shape + (3, 2, 2) + >>> dp.linalg.det(a) + array([-2., -3., -8.]) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + return dpnp_det(a)
+ + + +
+[docs] +def eig(a): + """ + Compute the eigenvalues and right eigenvectors of a square array. + + For full documentation refer to :obj:`numpy.linalg.eig`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + Matrices for which the eigenvalues and right eigenvectors will + be computed. + + Returns + ------- + eigenvalues : (..., M) dpnp.ndarray + The eigenvalues, each repeated according to its multiplicity. + The eigenvalues are not necessarily ordered. The resulting + array will be of complex type, unless the imaginary part is + zero in which case it will be cast to a real type. When `a` + is real the resulting eigenvalues will be real (0 imaginary + part) or occur in conjugate pairs + eigenvectors : (..., M, M) dpnp.ndarray + The normalized (unit "length") eigenvectors, such that the + column ``v[:,i]`` is the eigenvector corresponding to the + eigenvalue ``w[i]``. + + Note + ---- + Since there is no proper OneMKL LAPACK function, DPNP will calculate + through a fallback on NumPy call. + + See Also + -------- + :obj:`dpnp.linalg.eigvals` : Compute the eigenvalues of a general matrix. + :obj:`dpnp.linalg.eigh` : Return the eigenvalues and eigenvectors of + a complex Hermitian (conjugate symmetric) or + a real symmetric matrix. + :obj:`dpnp.linalg.eigvalsh` : Compute the eigenvalues of a complex + Hermitian or real symmetric matrix. + + Examples + -------- + >>> import dpnp as np + >>> from dpnp import linalg as LA + + (Almost) trivial example with real eigenvalues and eigenvectors. + + >>> w, v = LA.eig(np.diag((1, 2, 3))) + >>> w, v + (array([1., 2., 3.]), + array([[1., 0., 0.], + [0., 1., 0.], + [0., 0., 1.]])) + + Real matrix possessing complex eigenvalues and eigenvectors; + note that the eigenvalues are complex conjugates of each other. + + >>> w, v = LA.eig(np.array([[1, -1], [1, 1]])) + >>> w, v + (array([1.+1.j, 1.-1.j]), + array([[0.70710678+0.j , 0.70710678-0.j ], + [0. -0.70710678j, 0. +0.70710678j]])) + + Complex-valued matrix with real eigenvalues (but complex-valued + eigenvectors); note that ``a.conj().T == a``, i.e., `a` is Hermitian. + + >>> a = np.array([[1, 1j], [-1j, 1]]) + >>> w, v = LA.eig(a) + >>> w, v + (array([2.+0.j, 0.+0.j]), + array([[ 0. +0.70710678j, 0.70710678+0.j ], # may vary + [ 0.70710678+0.j , -0. +0.70710678j]]) + + Be careful about round-off error! + + >>> a = np.array([[1 + 1e-9, 0], [0, 1 - 1e-9]]) + >>> # Theor. eigenvalues are 1 +/- 1e-9 + >>> w, v = LA.eig(a) + >>> w, v + (array([1., 1.]), + array([[1., 0.], + [0., 1.]])) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + a_sycl_queue = a.sycl_queue + a_usm_type = a.usm_type + + # Since geev function from OneMKL LAPACK is not implemented yet, + # use NumPy for this calculation. + w_np, v_np = numpy.linalg.eig(dpnp.asnumpy(a)) + return ( + dpnp.array(w_np, sycl_queue=a_sycl_queue, usm_type=a_usm_type), + dpnp.array(v_np, sycl_queue=a_sycl_queue, usm_type=a_usm_type), + )
+ + + +
+[docs] +def eigh(a, UPLO="L"): + """ + Return the eigenvalues and eigenvectors of a complex Hermitian + (conjugate symmetric) or a real symmetric matrix. + + Returns two objects, a 1-D array containing the eigenvalues of `a`, and + a 2-D square array or matrix (depending on the input type) of the + corresponding eigenvectors (in columns). + + For full documentation refer to :obj:`numpy.linalg.eigh`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + A complex- or real-valued array whose eigenvalues and eigenvectors are + to be computed. + UPLO : {"L", "U"}, optional + Specifies the calculation uses either the lower ("L") or upper ("U") + triangular part of the matrix. + Regardless of this choice, only the real parts of the diagonal are + considered to preserve the Hermite matrix property. + It therefore follows that the imaginary part of the diagonal + will always be treated as zero. + Default: ``"L"``. + + Returns + ------- + w : (..., M) dpnp.ndarray + The eigenvalues in ascending order, each repeated according to + its multiplicity. + v : (..., M, M) dpnp.ndarray + The column ``v[:, i]`` is the normalized eigenvector corresponding + to the eigenvalue ``w[i]``. + + See Also + -------- + :obj:`dpnp.linalg.eigvalsh` : Compute the eigenvalues of a complex + Hermitian or real symmetric matrix. + :obj:`dpnp.linalg.eig` : Compute the eigenvalues and right eigenvectors of + a square array. + :obj:`dpnp.linalg.eigvals` : Compute the eigenvalues of a general matrix. + + Examples + -------- + >>> import dpnp as dp + >>> a = dp.array([[1, -2j], [2j, 5]]) + >>> a + array([[ 1.+0.j, -0.-2.j], + [ 0.+2.j, 5.+0.j]]) + >>> w, v = dp.linalg.eigh(a) + >>> w; v + array([0.17157288, 5.82842712]), + array([[-0.92387953-0.j , -0.38268343+0.j ], # may vary + [ 0. +0.38268343j, 0. -0.92387953j]])) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + UPLO = UPLO.upper() + if UPLO not in ("L", "U"): + raise ValueError("UPLO argument must be 'L' or 'U'") + + return dpnp_eigh(a, UPLO=UPLO)
+ + + +
+[docs] +def eigvals(a): + """ + Compute the eigenvalues of a general matrix. + + For full documentation refer to :obj:`numpy.linalg.eigvals`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + A complex- or real-valued matrix whose eigenvalues will be computed. + + Returns + ------- + w : (..., M) dpnp.ndarray + The eigenvalues, each repeated according to its multiplicity. + They are not necessarily ordered, nor are they necessarily + real for real matrices. + + Note + ---- + Since there is no proper OneMKL LAPACK function, DPNP will calculate + through a fallback on NumPy call. + + See Also + -------- + :obj:`dpnp.linalg.eig` : Compute the eigenvalues and right eigenvectors of + a square array. + :obj:`dpnp.linalg.eigvalsh` : Compute the eigenvalues of a complex + Hermitian or real symmetric matrix. + :obj:`dpnp.linalg.eigh` : Return the eigenvalues and eigenvectors of + a complex Hermitian (conjugate symmetric) or + a real symmetric matrix. + + Examples + -------- + Illustration, using the fact that the eigenvalues of a diagonal matrix + are its diagonal elements, that multiplying a matrix on the left + by an orthogonal matrix, `Q`, and on the right by `Q.T` (the transpose + of `Q`), preserves the eigenvalues of the "middle" matrix. In other words, + if `Q` is orthogonal, then ``Q * A * Q.T`` has the same eigenvalues as + ``A``: + + >>> import dpnp as np + >>> from dpnp import linalg as LA + >>> x = np.random.random() + >>> Q = np.array([[np.cos(x), -np.sin(x)], [np.sin(x), np.cos(x)]]) + >>> LA.norm(Q[0, :]), LA.norm(Q[1, :]), np.dot(Q[0, :],Q[1, :]) + (array(1.), array(1.), array(0.)) + + Now multiply a diagonal matrix by ``Q`` on one side and by ``Q.T`` on the + other: + + >>> D = np.diag((-1,1)) + >>> LA.eigvals(D) + array([-1., 1.]) + >>> A = np.dot(Q, D) + >>> A = np.dot(A, Q.T) + >>> LA.eigvals(A) + array([-1., 1.]) # random + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + # Since geev function from OneMKL LAPACK is not implemented yet, + # use NumPy for this calculation. + w_np = numpy.linalg.eigvals(dpnp.asnumpy(a)) + return dpnp.array(w_np, sycl_queue=a.sycl_queue, usm_type=a.usm_type)
+ + + +
+[docs] +def eigvalsh(a, UPLO="L"): + """ + Compute the eigenvalues of a complex Hermitian or real symmetric matrix. + + Main difference from :obj:`dpnp.linalg.eigh`: the eigenvectors are not + computed. + + For full documentation refer to :obj:`numpy.linalg.eigvalsh`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + A complex- or real-valued array whose eigenvalues are to be computed. + UPLO : {"L", "U"}, optional + Specifies the calculation uses either the lower ("L") or upper ("U") + triangular part of the matrix. + Regardless of this choice, only the real parts of the diagonal are + considered to preserve the Hermite matrix property. + It therefore follows that the imaginary part of the diagonal + will always be treated as zero. + Default: ``"L"``. + + Returns + ------- + w : (..., M) dpnp.ndarray + The eigenvalues in ascending order, each repeated according to + its multiplicity. + + See Also + -------- + :obj:`dpnp.linalg.eigh` : Return the eigenvalues and eigenvectors of + a complex Hermitian (conjugate symmetric) + or a real symmetric matrix. + :obj:`dpnp.linalg.eigvals` : Compute the eigenvalues of a general matrix. + :obj:`dpnp.linalg.eig` : Compute the eigenvalues and right eigenvectors of + a general matrix. + + Examples + -------- + >>> import dpnp as np + >>> from dpnp import linalg as LA + >>> a = np.array([[1, -2j], [2j, 5]]) + >>> LA.eigvalsh(a) + array([0.17157288, 5.82842712]) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + UPLO = UPLO.upper() + if UPLO not in ("L", "U"): + raise ValueError("UPLO argument must be 'L' or 'U'") + + return dpnp_eigh(a, UPLO=UPLO, eigen_mode="N")
+ + + +
+[docs] +def inv(a): + """ + Compute the (multiplicative) inverse of a matrix. + + Given a square matrix `a`, return the matrix `ainv` satisfying + ``dot(a, ainv) = dot(ainv, a) = eye(a.shape[0])``. + + For full documentation refer to :obj:`numpy.linalg.inv`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + Matrix to be inverted. + + Returns + ------- + out : (..., M, M) dpnp.ndarray + (Multiplicative) inverse of the matrix a. + + See Also + -------- + :obj:`dpnp.linalg.cond` : Compute the condition number of a matrix. + :obj:`dpnp.linalg.svd` : Compute the singular value decomposition. + + Examples + -------- + >>> import dpnp as np + >>> a = np.array([[1., 2.], [3., 4.]]) + >>> ainv = np.linalg.inv(a) + >>> np.allclose(np.dot(a, ainv), np.eye(2)) + array([ True]) + >>> np.allclose(np.dot(ainv, a), np.eye(2)) + array([ True]) + + Inverses of several matrices can be computed at once: + + >>> a = np.array([[[1., 2.], [3., 4.]], [[1, 3], [3, 5]]]) + >>> np.linalg.inv(a) + array([[[-2. , 1. ], + [ 1.5 , -0.5 ]], + [[-1.25, 0.75], + [ 0.75, -0.25]]]) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + return dpnp_inv(a)
+ + + +
+[docs] +def lstsq(a, b, rcond=None): + """ + Return the least-squares solution to a linear matrix equation. + + For full documentation refer to :obj:`numpy.linalg.lstsq`. + + Parameters + ---------- + a : (M, N) {dpnp.ndarray, usm_ndarray} + "Coefficient" matrix. + b : {(M,), (M, K)} {dpnp.ndarray, usm_ndarray} + Ordinate or "dependent variable" values. + If `b` is two-dimensional, the least-squares solution + is calculated for each of the `K` columns of `b`. + rcond : {None, int, float}, optional + Cut-off ratio for small singular values of `a`. + For the purposes of rank determination, singular values are treated as + zero if they are smaller than `rcond` times the largest singular value + of `a`. + The default uses the machine precision times ``max(M, N)``. Passing + ``-1`` will use machine precision. + Default: ``None``. + + Returns + ------- + x : {(N,), (N, K)} dpnp.ndarray + Least-squares solution. If `b` is two-dimensional, + the solutions are in the `K` columns of `x`. + residuals : {(1,), (K,), (0,)} dpnp.ndarray + Sums of squared residuals: Squared Euclidean 2-norm for each column in + ``b - a @ x``. + If the rank of `a` is < N or M <= N, this is an empty array. + If `b` is 1-dimensional, this is a (1,) shape array. + Otherwise the shape is (K,). + rank : int + Rank of matrix `a`. + s : (min(M, N),) dpnp.ndarray + Singular values of `a`. + + Examples + -------- + Fit a line, ``y = mx + c``, through some noisy data-points: + + >>> import dpnp as np + >>> x = np.array([0, 1, 2, 3]) + >>> y = np.array([-1, 0.2, 0.9, 2.1]) + + By examining the coefficients, we see that the line should have a + gradient of roughly 1 and cut the y-axis at, more or less, -1. + + We can rewrite the line equation as ``y = Ap``, where ``A = [[x 1]]`` + and ``p = [[m], [c]]``. Now use `lstsq` to solve for `p`: + + >>> A = np.vstack([x, np.ones(len(x))]).T + >>> A + array([[0., 1.], + [1., 1.], + [2., 1.], + [3., 1.]]) + + >>> m, c = np.linalg.lstsq(A, y, rcond=None)[0] + >>> m, c + (array(1.), array(-0.95)) # may vary + + """ + + dpnp.check_supported_arrays_type(a, b) + assert_2d(a) + if rcond is not None and not isinstance(rcond, (int, float)): + raise TypeError("rcond must be integer, floating type, or None") + + return dpnp_lstsq(a, b, rcond=rcond)
+ + + +def matmul(x1, x2, /): + """ + Computes the matrix product. + + This function is Array API compatible, contrary to :obj:`dpnp.matmul`. + + For full documentation refer to :obj:`numpy.linalg.matmul`. + + Parameters + ---------- + x1 : {dpnp.ndarray, usm_ndarray} + First input array. + x2 : {dpnp.ndarray, usm_ndarray} + Second input array. + + Returns + ------- + out : dpnp.ndarray + Returns the matrix product of the inputs. + This is a 0-d array only when both `x1`, `x2` are 1-d vectors. + + See Also + -------- + :obj:`dpnp.matmul` : similar function with support for more + kwyeord arguments. + + Examples + -------- + For 2-D arrays it is the matrix product: + + >>> import dpnp as np + >>> a = np.array([[1, 0], [0, 1]]) + >>> b = np.array([[4, 1], [2, 2]]) + >>> np.linalg.matmul(a, b) + array([[4, 1], + [2, 2]]) + + For 2-D mixed with 1-D, the result is the usual. + + >>> a = np.array([[1, 0], [0, 1]]) + >>> b = np.array([1, 2]) + >>> np.linalg.matmul(a, b) + array([1, 2]) + >>> np.linalg.matmul(b, a) + array([1, 2]) + + Broadcasting is conventional for stacks of arrays + + >>> a = np.arange(2 * 2 * 4).reshape((2, 2, 4)) + >>> b = np.arange(2 * 2 * 4).reshape((2, 4, 2)) + >>> np.linalg.matmul(a,b).shape + (2, 2, 2) + >>> np.linalg.matmul(a, b)[0, 1, 1] + array(98) + >>> np.sum(a[0, 1, :] * b[0 , :, 1]) + array(98) + + Vector, vector returns the scalar inner product, but neither argument + is complex-conjugated: + + >>> x1 = np.array([2j, 3j]) + >>> x2 = np.array([2j, 3j]) + >>> np.linalg.matmul(x1, x2) + array(-13+0j) + + """ + + return dpnp.matmul(x1, x2) + + +
+[docs] +def matrix_power(a, n): + """ + Raise a square matrix to the (integer) power `n`. + + For full documentation refer to :obj:`numpy.linalg.matrix_power`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + Matrix to be "powered". + n : int + The exponent can be any integer or long integer, positive, negative, + or zero. + + Returns + ------- + a**n : (..., M, M) dpnp.ndarray + The return value is the same shape and type as `M`; + if the exponent is positive or zero then the type of the + elements is the same as those of `M`. If the exponent is + negative the elements are floating-point. + + Examples + -------- + >>> import dpnp as np + >>> i = np.array([[0, 1], [-1, 0]]) # matrix equiv. of the imaginary unit + >>> np.linalg.matrix_power(i, 3) # should = -i + array([[ 0, -1], + [ 1, 0]]) + >>> np.linalg.matrix_power(i, 0) + array([[1, 0], + [0, 1]]) + >>> np.linalg.matrix_power(i, -3) # should 1/(-i) = i, but w/ f.p. elements + array([[ 0., 1.], + [-1., 0.]]) + + Somewhat more sophisticated example + + >>> q = np.zeros((4, 4)) + >>> q[0:2, 0:2] = -i + >>> q[2:4, 2:4] = i + >>> q # one of the three quaternion units not equal to 1 + array([[ 0., -1., 0., 0.], + [ 1., 0., 0., 0.], + [ 0., 0., 0., 1.], + [ 0., 0., -1., 0.]]) + >>> np.linalg.matrix_power(q, 2) # = -np.eye(4) + array([[-1., 0., 0., 0.], + [ 0., -1., 0., 0.], + [ 0., 0., -1., 0.], + [ 0., 0., 0., -1.]]) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + if not isinstance(n, int): + raise TypeError("exponent must be an integer") + + return dpnp_matrix_power(a, n)
+ + + +
+[docs] +def matrix_rank(A, tol=None, hermitian=False): + """ + Return matrix rank of array using SVD method. + + Rank of the array is the number of singular values of the array that are + greater than `tol`. + + Parameters + ---------- + A : {(M,), (..., M, N)} {dpnp.ndarray, usm_ndarray} + Input vector or stack of matrices. + tol : (...) {float, dpnp.ndarray, usm_ndarray}, optional + Threshold below which SVD values are considered zero. If `tol` is + ``None``, and ``S`` is an array with singular values for `M`, and + ``eps`` is the epsilon value for datatype of ``S``, then `tol` is + set to ``S.max() * max(M.shape) * eps``. + Default: ``None``. + hermitian : bool, optional + If ``True``, `A` is assumed to be Hermitian (symmetric if real-valued), + enabling a more efficient method for finding singular values. + Default: ``False``. + + Returns + ------- + rank : (...) dpnp.ndarray + Rank of A. + + See Also + -------- + :obj:`dpnp.linalg.svd` : Singular Value Decomposition. + + Examples + -------- + >>> import dpnp as np + >>> from dpnp.linalg import matrix_rank + >>> matrix_rank(np.eye(4)) # Full rank matrix + array(4) + >>> I=np.eye(4); I[-1,-1] = 0. # rank deficient matrix + >>> matrix_rank(I) + array(3) + >>> matrix_rank(np.ones((4,))) # 1 dimension - rank 1 unless all 0 + array(1) + >>> matrix_rank(np.zeros((4,))) + array(0) + + """ + + dpnp.check_supported_arrays_type(A) + if tol is not None: + dpnp.check_supported_arrays_type( + tol, scalar_type=True, all_scalars=True + ) + + return dpnp_matrix_rank(A, tol=tol, hermitian=hermitian)
+ + + +
+[docs] +def multi_dot(arrays, *, out=None): + """ + Compute the dot product of two or more arrays in a single function call. + + For full documentation refer to :obj:`numpy.linalg.multi_dot`. + + Parameters + ---------- + arrays : sequence of dpnp.ndarray or usm_ndarray + If the first argument is 1-D it is treated as row vector. + If the last argument is 1-D it is treated as column vector. + The other arguments must be 2-D. + out : {None, dpnp.ndarray, usm_ndarray}, optional + Output argument. This must have the exact kind that would be returned + if it was not used. In particular, it must have the right type, must be + C-contiguous, and its dtype must be the dtype that would be returned + for `dot(a, b)`. If these conditions are not met, an exception is + raised, instead of attempting to be flexible. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Returns the dot product of the supplied arrays. + + See Also + -------- + :obj:`dpnp.dot` : Returns the dot product of two arrays. + :obj:`dpnp.inner` : Returns the inner product of two arrays. + + Examples + -------- + >>> import dpnp as np + >>> from dpnp.linalg import multi_dot + >>> A = np.random.random((10000, 100)) + >>> B = np.random.random((100, 1000)) + >>> C = np.random.random((1000, 5)) + >>> D = np.random.random((5, 333)) + + the actual dot multiplication + + >>> multi_dot([A, B, C, D]).shape + (10000, 333) + + instead of + + >>> np.dot(np.dot(np.dot(A, B), C), D).shape + (10000, 333) + + or + + >>> A.dot(B).dot(C).dot(D).shape + (10000, 333) + + """ + + dpnp.check_supported_arrays_type(*arrays) + n = len(arrays) + if n < 2: + raise ValueError("Expecting at least two arrays.") + if n == 2: + return dpnp.dot(arrays[0], arrays[1], out=out) + + return dpnp_multi_dot(n, arrays, out)
+ + + +
+[docs] +def norm(x, ord=None, axis=None, keepdims=False): + """ + Matrix or vector norm. + + For full documentation refer to :obj:`numpy.linalg.norm`. + + Parameters + ---------- + x : {dpnp.ndarray, usm_ndarray} + Input array. If `axis` is ``None``, `x` must be 1-D or 2-D, unless + `ord` is ``None``. If both `axis` and `ord` are ``None``, the 2-norm + of ``x.ravel`` will be returned. + ord : {int, float, inf, -inf, "fro", "nuc"}, optional + Norm type. inf means dpnp's `inf` object. The default is ``None``. + axis : {None, int, 2-tuple of ints}, optional + If `axis` is an integer, it specifies the axis of `x` along which to + compute the vector norms. If `axis` is a 2-tuple, it specifies the + axes that hold 2-D matrices, and the matrix norms of these matrices + are computed. If `axis` is ``None`` then either a vector norm (when + `x` is 1-D) or a matrix norm (when `x` is 2-D) is returned. + Default: ``False``. + keepdims : bool, optional + If this is set to ``True``, the axes which are normed over are left in + the result as dimensions with size one. With this option the result + will broadcast correctly against the original `x`. + Default: ``False``. + + Returns + ------- + out : dpnp.ndarray + Norm of the matrix or vector(s). + + Examples + -------- + >>> import dpnp as np + >>> a = np.arange(9) - 4 + >>> a + array([-4, -3, -2, -1, 0, 1, 2, 3, 4]) + >>> b = a.reshape((3, 3)) + >>> b + array([[-4, -3, -2], + [-1, 0, 1], + [ 2, 3, 4]]) + + >>> np.linalg.norm(a) + array(7.74596669) + >>> np.linalg.norm(b) + array(7.74596669) + >>> np.linalg.norm(b, 'fro') + array(7.74596669) + >>> np.linalg.norm(a, np.inf) + array(4.) + >>> np.linalg.norm(b, np.inf) + array(9.) + >>> np.linalg.norm(a, -np.inf) + array(0.) + >>> np.linalg.norm(b, -np.inf) + array(2.) + + >>> np.linalg.norm(a, 1) + array(20.) + >>> np.linalg.norm(b, 1) + array(7.) + >>> np.linalg.norm(a, -1) + array(0.) + >>> np.linalg.norm(b, -1) + array(6.) + >>> np.linalg.norm(a, 2) + array(7.74596669) + >>> np.linalg.norm(b, 2) + array(7.34846923) + + >>> np.linalg.norm(a, -2) + array(0.) + >>> np.linalg.norm(b, -2) + array(4.35106603e-18) # may vary + >>> np.linalg.norm(a, 3) + array(5.84803548) # may vary + >>> np.linalg.norm(a, -3) + array(0.) + + Using the `axis` argument to compute vector norms: + + >>> c = np.array([[ 1, 2, 3], + ... [-1, 1, 4]]) + >>> np.linalg.norm(c, axis=0) + array([ 1.41421356, 2.23606798, 5. ]) + >>> np.linalg.norm(c, axis=1) + array([ 3.74165739, 4.24264069]) + >>> np.linalg.norm(c, ord=1, axis=1) + array([ 6., 6.]) + + Using the `axis` argument to compute matrix norms: + + >>> m = np.arange(8).reshape(2,2,2) + >>> np.linalg.norm(m, axis=(1,2)) + array([ 3.74165739, 11.22497216]) + >>> np.linalg.norm(m[0, :, :]), np.linalg.norm(m[1, :, :]) + (array(3.74165739), array(11.22497216)) + + """ + + dpnp.check_supported_arrays_type(x) + return dpnp_norm(x, ord, axis, keepdims)
+ + + +
+[docs] +def pinv(a, rcond=1e-15, hermitian=False): + """ + Compute the (Moore-Penrose) pseudo-inverse of a matrix. + + Calculate the generalized inverse of a matrix using its + singular-value decomposition (SVD) and including all large singular values. + + For full documentation refer to :obj:`numpy.linalg.inv`. + + Parameters + ---------- + a : (..., M, N) {dpnp.ndarray, usm_ndarray} + Matrix or stack of matrices to be pseudo-inverted. + rcond : {float, dpnp.ndarray, usm_ndarray}, optional + Cutoff for small singular values. + Singular values less than or equal to ``rcond * largest_singular_value`` + are set to zero. Broadcasts against the stack of matrices. + Default: ``1e-15``. + hermitian : bool, optional + If ``True``, a is assumed to be Hermitian (symmetric if real-valued), + enabling a more efficient method for finding singular values. + Default: ``False``. + + Returns + ------- + out : (..., N, M) dpnp.ndarray + The pseudo-inverse of a. + + Examples + -------- + The following example checks that ``a * a+ * a == a`` and + ``a+ * a * a+ == a+``: + + >>> import dpnp as np + >>> a = np.random.randn(9, 6) + >>> B = np.linalg.pinv(a) + >>> np.allclose(a, np.dot(a, np.dot(B, a))) + array([ True]) + >>> np.allclose(B, np.dot(B, np.dot(a, B))) + array([ True]) + + """ + + dpnp.check_supported_arrays_type(a) + dpnp.check_supported_arrays_type(rcond, scalar_type=True, all_scalars=True) + assert_stacked_2d(a) + + return dpnp_pinv(a, rcond=rcond, hermitian=hermitian)
+ + + +
+[docs] +def qr(a, mode="reduced"): + """ + Compute the qr factorization of a matrix. + + Factor the matrix `a` as *qr*, where `q` is orthonormal and `r` is + upper-triangular. + + For full documentation refer to :obj:`numpy.linalg.qr`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + The input array with the dimensionality of at least 2. + mode : {"reduced", "complete", "r", "raw"}, optional + If K = min(M, N), then + + - "reduced" : returns Q, R with dimensions (…, M, K), (…, K, N) + - "complete" : returns Q, R with dimensions (…, M, M), (…, M, N) + - "r" : returns R only with dimensions (…, K, N) + - "raw" : returns h, tau with dimensions (…, N, M), (…, K,) + + Default: ``"reduced"``. + + Returns + ------- + When mode is "reduced" or "complete", the result will be a namedtuple with + the attributes Q and R. + Q : dpnp.ndarray + A matrix with orthonormal columns. + When mode = "complete" the result is an orthogonal/unitary matrix + depending on whether or not a is real/complex. + The determinant may be either +/- 1 in that case. + In case the number of dimensions in the input array is greater + than 2 then a stack of the matrices with above properties is returned. + R : dpnp.ndarray + The upper-triangular matrix or a stack of upper-triangular matrices + if the number of dimensions in the input array is greater than 2. + (h, tau) : tuple of dpnp.ndarray + The `h` array contains the Householder reflectors that generate Q along + with R. The `tau` array contains scaling factors for the reflectors. + + Examples + -------- + >>> import dpnp as np + >>> a = np.random.randn(9, 6) + >>> Q, R = np.linalg.qr(a) + >>> np.allclose(a, np.dot(Q, R)) # a does equal QR + array([ True]) + >>> R2 = np.linalg.qr(a, mode='r') + >>> np.allclose(R, R2) # mode='r' returns the same R as mode='full' + array([ True]) + >>> a = np.random.normal(size=(3, 2, 2)) # Stack of 2 x 2 matrices as input + >>> Q, R = np.linalg.qr(a) + >>> Q.shape + (3, 2, 2) + >>> R.shape + (3, 2, 2) + >>> np.allclose(a, np.matmul(Q, R)) + array([ True]) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + + if mode not in ("reduced", "complete", "r", "raw"): + raise ValueError(f"Unrecognized mode {mode}") + + return dpnp_qr(a, mode)
+ + + +
+[docs] +def solve(a, b): + """ + Solve a linear matrix equation, or system of linear scalar equations. + + For full documentation refer to :obj:`numpy.linalg.solve`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + Coefficient matrix. + b : {(…, M,), (…, M, K)} {dpnp.ndarray, usm_ndarray} + Ordinate or "dependent variable" values. + + Returns + ------- + out : {(…, M,), (…, M, K)} dpnp.ndarray + Solution to the system `ax = b`. Returned shape is identical to `b`. + + See Also + -------- + :obj:`dpnp.dot` : Returns the dot product of two arrays. + + Examples + -------- + >>> import dpnp as dp + >>> a = dp.array([[1, 2], [3, 5]]) + >>> b = dp.array([1, 2]) + >>> x = dp.linalg.solve(a, b) + >>> x + array([-1., 1.]) + + Check that the solution is correct: + + >>> dp.allclose(dp.dot(a, x), b) + array([ True]) + + """ + + dpnp.check_supported_arrays_type(a, b) + assert_stacked_2d(a) + assert_stacked_square(a) + + if not ( + a.ndim in [b.ndim, b.ndim + 1] and a.shape[:-1] == b.shape[: a.ndim - 1] + ): + raise dpnp.linalg.LinAlgError( + "a must have (..., M, M) shape and b must have (..., M) " + "or (..., M, K)" + ) + + return dpnp_solve(a, b)
+ + + +
+[docs] +def svd(a, full_matrices=True, compute_uv=True, hermitian=False): + """ + Singular Value Decomposition. + + For full documentation refer to :obj:`numpy.linalg.svd`. + + Parameters + ---------- + a : (..., M, N) {dpnp.ndarray, usm_ndarray} + Input array with ``a.ndim >= 2``. + full_matrices : {bool}, optional + If ``True``, it returns `u` and `Vh` with full-sized matrices. + If ``False``, the matrices are reduced in size. + Default: ``True``. + compute_uv : {bool}, optional + If ``False``, it only returns singular values. + Default: ``True``. + hermitian : {bool}, optional + If True, a is assumed to be Hermitian (symmetric if real-valued), + enabling a more efficient method for finding singular values. + Default: ``False``. + + Returns + ------- + u : { (…, M, M), (…, M, K) } dpnp.ndarray + Unitary matrix, where M is the number of rows of the input array `a`. + The shape of the matrix `u` depends on the value of `full_matrices`. + If `full_matrices` is ``True``, `u` has the shape (…, M, M). + If `full_matrices` is ``False``, `u` has the shape (…, M, K), where + K = min(M, N), and N is the number of columns of the input array `a`. + If `compute_uv` is ``False``, neither `u` or `Vh` are computed. + s : (…, K) dpnp.ndarray + Vector containing the singular values of `a`, sorted in descending + order. The length of `s` is min(M, N). + Vh : { (…, N, N), (…, K, N) } dpnp.ndarray + Unitary matrix, where N is the number of columns of the input array `a`. + The shape of the matrix `Vh` depends on the value of `full_matrices`. + If `full_matrices` is ``True``, `Vh` has the shape (…, N, N). + If `full_matrices` is ``False``, `Vh` has the shape (…, K, N). + If `compute_uv` is ``False``, neither `u` or `Vh` are computed. + + Examples + -------- + >>> import dpnp as np + >>> a = np.random.randn(9, 6) + 1j*np.random.randn(9, 6) + >>> b = np.random.randn(2, 7, 8, 3) + 1j*np.random.randn(2, 7, 8, 3) + + Reconstruction based on full SVD, 2D case: + + >>> u, s, vh = np.linalg.svd(a, full_matrices=True) + >>> u.shape, s.shape, vh.shape + ((9, 9), (6,), (6, 6)) + >>> np.allclose(a, np.dot(u[:, :6] * s, vh)) + array([ True]) + >>> smat = np.zeros((9, 6), dtype=complex) + >>> smat[:6, :6] = np.diag(s) + >>> np.allclose(a, np.dot(u, np.dot(smat, vh))) + array([ True]) + + Reconstruction based on reduced SVD, 2D case: + + >>> u, s, vh = np.linalg.svd(a, full_matrices=False) + >>> u.shape, s.shape, vh.shape + ((9, 6), (6,), (6, 6)) + >>> np.allclose(a, np.dot(u * s, vh)) + array([ True]) + >>> smat = np.diag(s) + >>> np.allclose(a, np.dot(u, np.dot(smat, vh))) + array([ True]) + + Reconstruction based on full SVD, 4D case: + + >>> u, s, vh = np.linalg.svd(b, full_matrices=True) + >>> u.shape, s.shape, vh.shape + ((2, 7, 8, 8), (2, 7, 3), (2, 7, 3, 3)) + >>> np.allclose(b, np.matmul(u[..., :3] * s[..., None, :], vh)) + array([ True]) + >>> np.allclose(b, np.matmul(u[..., :3], s[..., None] * vh)) + array([ True]) + + Reconstruction based on reduced SVD, 4D case: + + >>> u, s, vh = np.linalg.svd(b, full_matrices=False) + >>> u.shape, s.shape, vh.shape + ((2, 7, 8, 3), (2, 7, 3), (2, 7, 3, 3)) + >>> np.allclose(b, np.matmul(u * s[..., None, :], vh)) + array([ True]) + >>> np.allclose(b, np.matmul(u, s[..., None] * vh)) + array([ True]) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + + return dpnp_svd(a, full_matrices, compute_uv, hermitian)
+ + + +
+[docs] +def slogdet(a): + """ + Compute the sign and (natural) logarithm of the determinant of an array. + + For full documentation refer to :obj:`numpy.linalg.slogdet`. + + Parameters + ---------- + a : (..., M, M) {dpnp.ndarray, usm_ndarray} + Input array, has to be a square 2-D array. + + Returns + ------- + sign : (...) dpnp.ndarray + A number representing the sign of the determinant. For a real matrix, + this is 1, 0, or -1. For a complex matrix, this is a complex number + with absolute value 1 (i.e., it is on the unit circle), or else 0. + logabsdet : (...) dpnp.ndarray + The natural log of the absolute value of the determinant. + + See Also + -------- + :obj:`dpnp.det` : Returns the determinant of an array. + + Examples + -------- + The determinant of a 2-D array ``[[a, b], [c, d]]`` is ``ad - bc``: + + >>> import dpnp as dp + >>> a = dp.array([[1, 2], [3, 4]]) + >>> (sign, logabsdet) = dp.linalg.slogdet(a) + >>> (sign, logabsdet) + (array(-1.), array(0.69314718)) + >>> sign * dp.exp(logabsdet) + array(-2.) + + Computing log-determinants for a stack of matrices: + + >>> a = dp.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ]) + >>> a.shape + (3, 2, 2) + >>> sign, logabsdet = dp.linalg.slogdet(a) + >>> (sign, logabsdet) + (array([-1., -1., -1.]), array([0.69314718, 1.09861229, 2.07944154])) + >>> sign * dp.exp(logabsdet) + array([-2., -3., -8.]) + + """ + + dpnp.check_supported_arrays_type(a) + assert_stacked_2d(a) + assert_stacked_square(a) + + return dpnp_slogdet(a)
+ + + +
+[docs] +def tensorinv(a, ind=2): + """ + Compute the 'inverse' of an N-dimensional array. + + For full documentation refer to :obj:`numpy.linalg.tensorinv`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Tensor to `invert`. Its shape must be 'square', i. e., + ``prod(a.shape[:ind]) == prod(a.shape[ind:])``. + ind : int, optional + Number of first indices that are involved in the inverse sum. + Must be a positive integer. + Default: ``2``. + + Returns + ------- + out : dpnp.ndarray + The inverse of a tensor whose shape is equivalent to + ``a.shape[ind:] + a.shape[:ind]``. + + See Also + -------- + :obj:`dpnp.linalg.tensordot` : Compute tensor dot product along specified + axes. + :obj:`dpnp.linalg.tensorsolve` : Solve the tensor equation + ``a x = b`` for x. + + Examples + -------- + >>> import dpnp as np + >>> a = np.eye(4*6) + >>> a.shape = (4, 6, 8, 3) + >>> ainv = np.linalg.tensorinv(a, ind=2) + >>> ainv.shape + (8, 3, 4, 6) + + >>> a = np.eye(4*6) + >>> a.shape = (24, 8, 3) + >>> ainv = np.linalg.tensorinv(a, ind=1) + >>> ainv.shape + (8, 3, 24) + + """ + + dpnp.check_supported_arrays_type(a) + + if ind <= 0: + raise ValueError("Invalid ind argument") + + old_shape = a.shape + inv_shape = old_shape[ind:] + old_shape[:ind] + prod = numpy.prod(old_shape[ind:]) + a = dpnp.reshape(a, (prod, -1)) + a_inv = inv(a) + + return a_inv.reshape(*inv_shape)
+ + + +
+[docs] +def tensorsolve(a, b, axes=None): + """ + Solve the tensor equation ``a x = b`` for x. + + For full documentation refer to :obj:`numpy.linalg.tensorsolve`. + + Parameters + ---------- + a : {dpnp.ndarray, usm_ndarray} + Coefficient tensor, of shape ``b.shape + Q``. `Q`, a tuple, equals + the shape of that sub-tensor of `a` consisting of the appropriate + number of its rightmost indices, and must be such that + ``prod(Q) == prod(b.shape)`` (in which sense `a` is said to be + 'square'). + b : {dpnp.ndarray, usm_ndarray} + Right-hand tensor, which can be of any shape. + axes : {None, tuple of ints}, optional + Axes in `a` to reorder to the right, before inversion. + If ``None`` , no reordering is done. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + The tensor with shape ``Q`` such that ``b.shape + Q == a.shape``. + + See Also + -------- + :obj:`dpnp.linalg.tensordot` : Compute tensor dot product along specified + axes. + :obj:`dpnp.linalg.tensorinv` : Compute the 'inverse' of an N-dimensional + array. + :obj:`dpnp.einsum` : Evaluates the Einstein summation convention on the + operands. + + Examples + -------- + >>> import dpnp as np + >>> a = np.eye(2*3*4) + >>> a.shape = (2*3, 4, 2, 3, 4) + >>> b = np.random.randn(2*3, 4) + >>> x = np.linalg.tensorsolve(a, b) + >>> x.shape + (2, 3, 4) + >>> np.allclose(np.tensordot(a, x, axes=3), b) + array([ True]) + + """ + + dpnp.check_supported_arrays_type(a, b) + a_ndim = a.ndim + + if axes is not None: + all_axes = list(range(a_ndim)) + for k in axes: + all_axes.remove(k) + all_axes.insert(a_ndim, k) + a = a.transpose(tuple(all_axes)) + + old_shape = a.shape[-(a_ndim - b.ndim) :] + prod = numpy.prod(old_shape) + + if a.size != prod**2: + raise dpnp.linalg.LinAlgError( + "Input arrays must satisfy the requirement " + "prod(a.shape[b.ndim:]) == prod(a.shape[:b.ndim])" + ) + + a = dpnp.reshape(a, (-1, prod)) + b = dpnp.ravel(b) + res = solve(a, b) + return res.reshape(old_shape)
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/random/dpnp_iface_random.html b/pull/2070/_modules/dpnp/random/dpnp_iface_random.html new file mode 100644 index 00000000000..f8cfda07abd --- /dev/null +++ b/pull/2070/_modules/dpnp/random/dpnp_iface_random.html @@ -0,0 +1,2235 @@ + + + + + + + + + + dpnp.random.dpnp_iface_random — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for dpnp.random.dpnp_iface_random

+# cython: language_level=3
+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Module Intel NumPy Random
+
+Set of functions to implement NumPy random module API
+
+    .. seealso:: :obj:`numpy.random`
+
+"""
+
+import operator
+
+import numpy
+
+import dpnp
+from dpnp.dpnp_algo import *
+from dpnp.dpnp_utils import *
+
+from .dpnp_algo_random import *
+from .dpnp_random_state import RandomState
+
+__all__ = [
+    "beta",
+    "binomial",
+    "bytes",
+    "chisquare",
+    "choice",
+    "dirichlet",
+    "exponential",
+    "f",
+    "gamma",
+    "geometric",
+    "gumbel",
+    "hypergeometric",
+    "laplace",
+    "logistic",
+    "lognormal",
+    "logseries",
+    "multinomial",
+    "multivariate_normal",
+    "negative_binomial",
+    "normal",
+    "noncentral_chisquare",
+    "noncentral_f",
+    "pareto",
+    "permutation",
+    "poisson",
+    "power",
+    "rand",
+    "randint",
+    "randn",
+    "random",
+    "random_integers",
+    "random_sample",
+    "ranf",
+    "rayleigh",
+    "sample",
+    "shuffle",
+    "seed",
+    "standard_cauchy",
+    "standard_exponential",
+    "standard_gamma",
+    "standard_normal",
+    "standard_t",
+    "triangular",
+    "uniform",
+    "vonmises",
+    "wald",
+    "weibull",
+    "zipf",
+]
+
+
+def _get_random_state(device=None, sycl_queue=None):
+    global _dpnp_random_states
+
+    if not isinstance(_dpnp_random_states, dict):
+        _dpnp_random_states = {}
+    sycl_queue = dpnp.get_normalized_queue_device(
+        device=device, sycl_queue=sycl_queue
+    )
+    if sycl_queue not in _dpnp_random_states:
+        rs = RandomState(device=device, sycl_queue=sycl_queue)
+        if sycl_queue == rs.get_sycl_queue():
+            _dpnp_random_states[sycl_queue] = rs
+        else:
+            raise RuntimeError(
+                "Normalized SYCL queue {} mismatched with one returned by RandmoState {}".format(
+                    sycl_queue, rs.get_sycl_queue()
+                )
+            )
+    return _dpnp_random_states[sycl_queue]
+
+
+
+[docs] +def beta(a, b, size=None): + """ + Draw samples from a Beta distribution. + + For full documentation refer to :obj:`numpy.random.beta`. + + Limitations + ----------- + Parameters `a` and `b` are supported as scalar. + Otherwise, :obj:`numpy.random.beta(a, b, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> a, b = .4, .5 # alpha, beta + >>> s = dpnp.random.beta(a, b, 1000) + + """ + + if not use_origin_backend(a): + # TODO: + # array_like of floats for `a`, `b` + if not dpnp.isscalar(a): + pass + elif not dpnp.isscalar(b): + pass + elif a <= 0: + pass + elif b <= 0: + pass + else: + return dpnp_rng_beta(a, b, size).get_pyobj() + + return call_origin(numpy.random.beta, a, b, size)
+ + + +
+[docs] +def binomial(n, p, size=None): + """ + Draw samples from a binomial distribution. + + For full documentation refer to :obj:`numpy.random.binomial`. + + Limitations + ----------- + Output array data type is :obj:`dpnp.int32`. + Parameters `n` and `p` are supported as scalar. + Otherwise, :obj:`numpy.random.binomial(n, p, size)` samples are drawn. + + Examples + -------- + Draw samples from the distribution: + + >>> n, p = 10, .5 # number of trials, probability of each trial + >>> s = dpnp.random.binomial(n, p, 1000) + # result of flipping a coin 10 times, tested 1000 times. + A real world example. A company drills 9 wild-cat oil exploration + wells, each with an estimated probability of success of 0.1. All nine + wells fail. What is the probability of that happening? + Let's do 20,000 trials of the model, and count the number that + generate zero positive results. + >>> sum(dpnp.random.binomial(9, 0.1, 20000) == 0)/20000. + # answer = 0.38885, or 38%. + + """ + + if not use_origin_backend(n): + # TODO: + # array_like of floats for `p` param + if not dpnp.isscalar(n): + pass + elif not dpnp.isscalar(p): + pass + elif p > 1 or p < 0: + pass + elif n < 0: + pass + else: + return dpnp_rng_binomial(int(n), p, size).get_pyobj() + + return call_origin(numpy.random.binomial, n, p, size)
+ + + +
+[docs] +def bytes(length): + """ + Return random bytes. + + For full documentation refer to :obj:`numpy.random.bytes`. + + Notes + ----- + The function uses `numpy.random.bytes` on the backend and will be + executed on fallback backend. + + """ + + return call_origin(numpy.random.bytes, length)
+ + + +
+[docs] +def chisquare(df, size=None): + """ + Draw samples from a chi-square distribution. + + For full documentation refer to :obj:`numpy.random.chisquare`. + + Limitations + ----------- + Parameter `df` is supported as a scalar. + Otherwise, :obj:`numpy.random.chisquare(df, size)` samples are drawn. + Output array data type is default float type. + + Examples + -------- + >>> dpnp.random.chisquare(2,4) + array([ 1.89920014, 9.00867716, 3.13710533, 5.62318272]) # random + + """ + + if not use_origin_backend(df): + # TODO: + # array_like of floats for `df` + if not dpnp.isscalar(df): + pass + elif df <= 0: + pass + else: + # TODO: + # float to int, safe + return dpnp_rng_chisquare(int(df), size).get_pyobj() + + return call_origin(numpy.random.chisquare, df, size)
+ + + +
+[docs] +def choice(a, size=None, replace=True, p=None): + """ + Generates a random sample from a given 1-D array. + + For full documentation refer to :obj:`numpy.random.choice`. + + Notes + ----- + The function uses `numpy.random.choice` on the backend and will be + executed on fallback backend. + + """ + + return call_origin(numpy.random.choice, a, size, replace, p)
+ + + +
+[docs] +def dirichlet(alpha, size=None): + """ + Draw samples from the Dirichlet distribution. + + For full documentation refer to :obj:`numpy.random.dirichlet`. + + Notes + ----- + The function uses `numpy.random.dirichlet` on the backend and will be + executed on fallback backend. + + """ + + return call_origin(numpy.random.dirichlet, alpha, size)
+ + + +
+[docs] +def exponential(scale=1.0, size=None): + """ + Draw samples from an exponential distribution. + + For full documentation refer to :obj:`numpy.random.exponential`. + + Limitations + ----------- + Parameter `scale` is supported as a scalar. + Otherwise, :obj:`numpy.random.exponential(scale, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> scale = .5 # alpha + >>> s = dpnp.random.exponential(scale, 1000) + + """ + + if not use_origin_backend(scale): + # TODO: + # array_like of floats for `scale` + if not dpnp.isscalar(scale): + pass + elif scale < 0: + pass + else: + return dpnp_rng_exponential(scale, size).get_pyobj() + + return call_origin(numpy.random.exponential, scale, size)
+ + + +
+[docs] +def f(dfnum, dfden, size=None): + """ + Draw samples from an F distribution. + + For full documentation refer to :obj:`numpy.random.f`. + + Limitations + ----------- + Parameters `dfnum` and `dfden` are supported as scalar. + Otherwise, :obj:`numpy.random.f(dfnum, dfden, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + >>> dfnum, dfden = 3., 2. + >>> s = dpnp.random.f(dfnum, dfden, size) + + """ + + if not use_origin_backend(dfnum): + # TODO: + # array_like of floats for `dfnum` and `dfden` + if not dpnp.isscalar(dfnum): + pass + elif not dpnp.isscalar(dfden): + pass + elif dfnum <= 0: + pass + elif dfden <= 0: + pass + else: + return dpnp_rng_f(dfnum, dfden, size).get_pyobj() + + return call_origin(numpy.random.f, dfnum, dfden, size)
+ + + +
+[docs] +def gamma(shape, scale=1.0, size=None): + """ + Draw samples from a Gamma distribution. + + For full documentation refer to :obj:`numpy.random.gamma`. + + Limitations + ----------- + Parameters `shape` and `scale` are supported as scalar. + Otherwise, :obj:`numpy.random.gamma(shape, scale, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> shape, scale = 0, 0.1 # shape and scale + >>> s = dpnp.random.gamma(shape, scale, 1000) + + """ + + if not use_origin_backend(scale): + # TODO: + # array_like of floats for `scale` and `shape` + if not dpnp.isscalar(scale): + pass + elif not dpnp.isscalar(shape): + pass + elif scale < 0: + pass + elif shape < 0: + pass + else: + return dpnp_rng_gamma(shape, scale, size).get_pyobj() + + return call_origin(numpy.random.gamma, shape, scale, size)
+ + + +
+[docs] +def geometric(p, size=None): + """ + Draw samples from the geometric distribution. + + For full documentation refer to :obj:`numpy.random.geometric`. + + Limitations + ----------- + Parameter `p` is supported as a scalar. + Otherwise, :obj:`numpy.random.geometric(p, size)` samples are drawn. + Output array data type is :obj:`dpnp.int32`. + + Examples + -------- + Draw ten thousand values from the geometric distribution, + with the probability of an individual success equal to 0.35: + + >>> z = dpnp.random.geometric(p=0.35, size=10000) + + """ + + if not use_origin_backend(p): + # TODO: + # array_like of floats for `p` param + if not dpnp.isscalar(p): + pass + elif p > 1 or p <= 0: + pass + else: + return dpnp_rng_geometric(p, size).get_pyobj() + + return call_origin(numpy.random.geometric, p, size)
+ + + +
+[docs] +def gumbel(loc=0.0, scale=1.0, size=None): + """ + Draw samples from a Gumbel distribution. + + For full documentation refer to :obj:`numpy.random.gumbel`. + + Limitations + ----------- + Parameters `loc` and `scale` are supported as scalar. + Otherwise, :obj:`numpy.random.gumbel(loc, scale, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> mu, beta = 0, 0.1 # location and scale + >>> s = dpnp.random.gumbel(mu, beta, 1000) + + """ + + if not use_origin_backend(loc): + # TODO: + # array_like of floats for `loc` and `scale` params + if not dpnp.isscalar(scale): + pass + elif not dpnp.isscalar(loc): + pass + elif scale < 0: + pass + else: + return dpnp_rng_gumbel(loc, scale, size).get_pyobj() + + return call_origin(numpy.random.gumbel, loc, scale, size)
+ + + +
+[docs] +def hypergeometric(ngood, nbad, nsample, size=None): + """ + Draw samples from a Hypergeometric distribution. + + For full documentation refer to :obj:`numpy.random.hypergeometric`. + + Limitations + ----------- + Parameters `ngood`, `nbad` and `nsample` are supported as scalar. + Otherwise, :obj:`numpy.random.hypergeometric(shape, scale, size)` samples + are drawn. + Output array data type is :obj:`dpnp.int32`. + + Examples + -------- + Draw samples from the distribution: + + >>> ngood, nbad, nsamp = 100, 2, 10 + # number of good, number of bad, and number of samples + >>> s = dpnp.random.hypergeometric(ngood, nbad, nsamp, 1000) + + """ + + if not use_origin_backend(ngood): + # TODO: + # array_like of ints for `ngood`, `nbad`, `nsample` param + if not dpnp.isscalar(ngood): + pass + elif not dpnp.isscalar(nbad): + pass + elif not dpnp.isscalar(nsample): + pass + elif ngood < 0: + pass + elif nbad < 0: + pass + elif nsample < 0: + pass + elif ngood + nbad < nsample: + pass + elif nsample < 1: + pass + else: + _m = int(ngood) + _l = int(ngood) + int(nbad) + _s = int(nsample) + return dpnp_rng_hypergeometric(_l, _s, _m, size).get_pyobj() + + return call_origin(numpy.random.hypergeometric, ngood, nbad, nsample, size)
+ + + +
+[docs] +def laplace(loc=0.0, scale=1.0, size=None): + """ + Draw samples from the Laplace or double exponential distribution with + specified location (or mean) and scale (decay). + + For full documentation refer to :obj:`numpy.random.laplace`. + + Limitations + ----------- + Parameters `loc` and `scale` are supported as scalar. + Otherwise, :obj:`numpy.random.laplace(loc, scale, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + >>> loc, scale = 0., 1. + >>> s = dpnp.random.laplace(loc, scale, 1000) + + """ + + if not use_origin_backend(loc): + # TODO: + # array_like of floats for `loc` and `scale` + if not dpnp.isscalar(loc): + pass + elif not dpnp.isscalar(scale): + pass + elif scale < 0: + pass + else: + return dpnp_rng_laplace(loc, scale, size).get_pyobj() + + return call_origin(numpy.random.laplace, loc, scale, size)
+ + + +
+[docs] +def logistic(loc=0.0, scale=1.0, size=None): + """ + Draw samples from a logistic distribution. + + For full documentation refer to :obj:`numpy.random.logistic`. + + Limitations + ----------- + Parameters `loc` and `scale` are supported as scalar. + Otherwise, :obj:`numpy.random.logistic(loc, scale, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + >>> loc, scale = 0., 1. + >>> s = dpnp.random.logistic(loc, scale, 1000) + + """ + + if not use_origin_backend(loc): + # TODO: + # array_like of floats for `loc` and `scale` + if not dpnp.isscalar(loc): + pass + elif not dpnp.isscalar(scale): + pass + elif scale < 0: + pass + else: + result = dpnp_rng_logistic(loc, scale, size).get_pyobj() + if size is None or size == 1: + return result[0] + else: + return result + + return call_origin(numpy.random.logistic, loc, scale, size)
+ + + +
+[docs] +def lognormal(mean=0.0, sigma=1.0, size=None): + """ + Draw samples from a log-normal distribution. + + For full documentation refer to :obj:`numpy.random.lognormal`. + + Limitations + ----------- + Parameters `mean` and `sigma` are supported as scalar. + Otherwise, :obj:`numpy.random.lognormal(mean, sigma, size)` samples + are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> mu, sigma = 3., 1. # mean and standard deviation + >>> s = dpnp.random.lognormal(mu, sigma, 1000) + + """ + + if not use_origin_backend(mean): + # TODO: + # array_like of floats for `mean` and `sigma` params + if not dpnp.isscalar(mean): + pass + elif not dpnp.isscalar(sigma): + pass + elif sigma < 0: + pass + else: + return dpnp_rng_lognormal(mean, sigma, size).get_pyobj() + + return call_origin(numpy.random.lognormal, mean, sigma, size)
+ + + +
+[docs] +def logseries(p, size=None): + """ + Draw samples from a logarithmic series distribution. + + For full documentation refer to :obj:`numpy.random.logseries`. + + Notes + ----- + The function uses `numpy.random.logseries` on the backend and will be + executed on fallback backend. + + """ + + return call_origin(numpy.random.logseries, p, size)
+ + + +
+[docs] +def multinomial(n, pvals, size=None): + """ + Draw samples from a multinomial distribution. + + For full documentation refer to :obj:`numpy.random.multinomial`. + + Limitations + ----------- + Parameter `n` limited with int32 max. See, `numpy.iinfo(numpy.int32).max`. + Sum of ``pvals``, `sum(pvals)` should be between (0, 1). + Otherwise, :obj:`numpy.random.multinomial(n, pvals, size)` + samples are drawn. + + Examples + -------- + Throw a dice 20 times: + + >>> s = dpnp.random.multinomial(20, [1/6.]*6, size=1) + >>> s.shape + (1, 6) + + """ + + if not use_origin_backend(n): + pvals_sum = sum(pvals) + pvals_desc = dpnp.get_dpnp_descriptor(dpnp.array(pvals)) + d = len(pvals) + if n < 0: + pass + elif n > dpnp.iinfo(dpnp.int32).max: + pass + elif pvals_sum > 1.0: + pass + elif pvals_sum < 0.0: + pass + else: + if size is None: + shape = (d,) + else: + try: + shape = (operator.index(size), d) + except Exception: + shape = tuple(size) + (d,) + + return dpnp_rng_multinomial(int(n), pvals_desc, shape).get_pyobj() + + return call_origin(numpy.random.multinomial, n, pvals, size)
+ + + +
+[docs] +def multivariate_normal(mean, cov, size=None, check_valid="warn", tol=1e-8): + """ + Draw random samples from a multivariate normal distribution. + + For full documentation refer to :obj:`numpy.random.multivariate_normal`. + + Limitations + ----------- + Parameters `check_valid` and `tol` are not supported. + Otherwise, :obj:`numpy.random.multivariate_normal(mean, cov, size, check_valid, tol)` + samples are drawn. + + Examples + -------- + >>> mean = (1, 2) + >>> cov = [[1, 0], [0, 1]] + >>> x = dpnp.random.multivariate_normal(mean, cov, (3, 3)) + >>> x.shape + (3, 3, 2) + + """ + + if not use_origin_backend(mean): + mean_ = dpnp.get_dpnp_descriptor(dpnp.array(mean, dtype=dpnp.float64)) + cov_ = dpnp.get_dpnp_descriptor(dpnp.array(cov, dtype=dpnp.float64)) + if size is None: + shape = [] + elif isinstance(size, (int, dpnp.integer)): + shape = [size] + else: + shape = size + if len(mean_.shape) != 1: + pass + elif (len(cov_.shape) != 2) or (cov_.shape[0] != cov_.shape[1]): + pass + elif mean_.shape[0] != cov_.shape[0]: + pass + else: + final_shape = list(shape[:]) + final_shape.append(mean_.shape[0]) + return dpnp_rng_multivariate_normal( + mean_, cov_, final_shape + ).get_pyobj() + + return call_origin( + numpy.random.multivariate_normal, mean, cov, size, check_valid, tol + )
+ + + +
+[docs] +def negative_binomial(n, p, size=None): + """ + Draw samples from a negative binomial distribution. + + For full documentation refer to :obj:`numpy.random.negative_binomial`. + + Limitations + ----------- + Parameters `n` and `p` are supported as scalar. + Otherwise, :obj:`numpy.random.negative_binomial(n, p, size)` samples + are drawn. + Output array data type is :obj:`dpnp.int32`. + + Examples + -------- + Draw samples from the distribution: + A real world example. A company drills wild-cat oil + exploration wells, each with an estimated probability of + success of 0.1. What is the probability of having one success + for each successive well, that is what is the probability of a + single success after drilling 5 wells, after 6 wells, etc.? + + >>> s = dpnp.random.negative_binomial(1, 0.1, 100000) + >>> for i in range(1, 11): + ... probability = sum(s<i) / 100000. + ... print(i, "wells drilled, probability of one success =", probability) + + """ + + if not use_origin_backend(n): + # TODO: + # array_like of floats for `p` and `n` params + if not dpnp.isscalar(n): + pass + elif not dpnp.isscalar(p): + pass + elif p > 1 or p < 0: + pass + elif n <= 0: + pass + else: + return dpnp_rng_negative_binomial(n, p, size).get_pyobj() + + return call_origin(numpy.random.negative_binomial, n, p, size)
+ + + +
+[docs] +def normal( + loc=0.0, + scale=1.0, + size=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Draw random samples from a normal (Gaussian) distribution. + + For full documentation refer to :obj:`numpy.random.normal`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Drawn samples from the parameterized normal distribution. + Output array data type is the same as input `dtype`. If `dtype` is ``None`` (the default), + :obj:`dpnp.float64` type will be used if device supports it, or :obj:`dpnp.float32` otherwise. + + Limitations + ----------- + Parameters `loc` and `scale` are supported as scalar. + Otherwise, :obj:`numpy.random.normal(loc, scale, size)` samples are drawn. + Parameter `dtype` is supported only as :obj:`dpnp.float32`, :obj:`dpnp.float64` or ``None``. + + Examples + -------- + Draw samples from the distribution: + + >>> mu, sigma = 0, 0.1 # mean and standard deviation + >>> s = dpnp.random.normal(mu, sigma, 1000) + + """ + + rs = _get_random_state(device=device, sycl_queue=sycl_queue) + return rs.normal( + loc=loc, scale=scale, size=size, dtype=None, usm_type=usm_type + )
+ + + +
+[docs] +def noncentral_chisquare(df, nonc, size=None): + """ + Draw samples from a non-central chi-square distribution. + + For full documentation refer to :obj:`numpy.random.noncentral_chisquare`. + + TODO + + """ + + if not use_origin_backend(df): + # TODO: + # array_like of floats for `mean` and `scale` + if not dpnp.isscalar(df): + pass + elif not dpnp.isscalar(nonc): + pass + elif df <= 0: + pass + elif nonc < 0: + pass + else: + return dpnp_rng_noncentral_chisquare(df, nonc, size).get_pyobj() + + return call_origin(numpy.random.noncentral_chisquare, df, nonc, size)
+ + + +
+[docs] +def noncentral_f(dfnum, dfden, nonc, size=None): + """ + Draw samples from the non-central F distribution. + + For full documentation refer to :obj:`numpy.random.noncentral_f`. + + Notes + ----- + The function uses `numpy.random.noncentral_f` on the backend and + will be executed on fallback backend. + + """ + + return call_origin(numpy.random.noncentral_f, dfnum, dfden, nonc, size)
+ + + +
+[docs] +def pareto(a, size=None): + """ + Draw samples from a Pareto II or Lomax distribution with specified shape. + + For full documentation refer to :obj:`numpy.random.pareto`. + + Limitations + ----------- + Parameter `a` is supported as a scalar. + Otherwise, :obj:`numpy.random.pareto(a, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> a = .5 # alpha + >>> s = dpnp.random.pareto(a, 1000) + + """ + + if not use_origin_backend(a): + # TODO: + # array_like of floats for `a` + if not dpnp.isscalar(a): + pass + elif a <= 0: + pass + else: + return dpnp_rng_pareto(a, size).get_pyobj() + + return call_origin(numpy.random.pareto, a, size)
+ + + +
+[docs] +def permutation(x): + """ + Randomly permute a sequence, or return a permuted range. + + For full documentation refer to :obj:`numpy.random.permutation`. + + Examples + -------- + >>> arr = dpnp.random.permutation(10) + >>> print(arr) + [3 8 7 9 0 6 1 2 4 5] # random + + >>> arr = dpnp.random.permutation([1, 4, 9, 12, 15]) + >>> print(arr) + [12 1 4 9 15] # random + + >>> arr = dpnp.arange(9).reshape((3, 3)) + >>> dpnp.random.permutation(arr) + >>> print(arr) + [[0 1 2] + [3 4 5] + [6 7 8]] # random + + """ + if not use_origin_backend(x): + if isinstance(x, (int, dpnp.integer)): + arr = dpnp.arange(x) + else: + arr = dpnp.array(x) + shuffle(arr) + return arr + + return call_origin(numpy.random.permutation, x)
+ + + +
+[docs] +def poisson(lam=1.0, size=None): + """ + Draw samples from a Poisson distribution. + + For full documentation refer to :obj:`numpy.random.poisson`. + + Limitations + ----------- + Parameter `lam` is supported as a scalar. + Otherwise, :obj:`numpy.random.poisson(lam, size)` samples are drawn. + Output array data type is :obj:`dpnp.int32`. + + Examples + -------- + Draw samples from the distribution: + + >>> import numpy as np + >>> s = dpnp.random.poisson(5, 10000) + + """ + + if not use_origin_backend(lam): + # TODO: + # array_like of floats for `lam` param + if not dpnp.isscalar(lam): + pass + elif lam < 0: + pass + else: + return dpnp_rng_poisson(lam, size).get_pyobj() + + return call_origin(numpy.random.poisson, lam, size)
+ + + +
+[docs] +def power(a, size=None): + """ + Draws samples in [0, 1] from a power distribution with positive + exponent a - 1. + + For full documentation refer to :obj:`numpy.random.power`. + + Limitations + ----------- + Parameter `a` is supported as a scalar. + Otherwise, :obj:`numpy.random.power(a, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> a = .5 # alpha + >>> s = dpnp.random.power(a, 1000) + + """ + + if not use_origin_backend(a): + # TODO: + # array_like of floats for `a` + if not dpnp.isscalar(a): + pass + elif a <= 0: + pass + else: + return dpnp_rng_power(a, size).get_pyobj() + + return call_origin(numpy.random.power, a, size)
+ + + +
+[docs] +def rand(d0, *dn, device=None, usm_type="device", sycl_queue=None): + """ + Random values in a given shape. + + Create an array of the given shape and populate it with random samples + from a uniform distribution over [0, 1). + + For full documentation refer to :obj:`numpy.random.rand`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Random values in a given shape. + Output array data type is :obj:`dpnp.float64` if device supports it, or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.rand(3, 2) + + See Also + -------- + :obj:`dpnp.random.random` + :obj:`dpnp.random.random_sample` + :obj:`dpnp.random.uniform` + + """ + + rs = _get_random_state(device=device, sycl_queue=sycl_queue) + return rs.rand(d0, *dn, usm_type=usm_type)
+ + + +
+[docs] +def randint( + low, + high=None, + size=None, + dtype=int, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Return random integers from `low` (inclusive) to `high` (exclusive). + + For full documentation refer to :obj:`numpy.random.randint`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + `size`-shaped array of random integers from the appropriate distribution, + or a single such random int if `size` is not provided. + Output array data type is the same as input `dtype`. + + Limitations + ----------- + Parameters `low` and `high` are supported only as a scalar. + Parameter `dtype` is supported only as :obj:`dpnp.int32` or ``int``, + but ``int`` value is considered to be exactly equivalent to :obj:`dpnp.int32`. + Otherwise, :obj:`numpy.random.RandomState.randint(low, high, size, dtype)` samples are drawn. + + Examples + -------- + Draw samples from the distribution: + + >>> low, high = 3, 11 # low and high + >>> s = dpnp.random.randint(low, high, 1000, dtype=dpnp.int32) + + See Also + -------- + :obj:`dpnp.random.random_integers` : similar to `randint`, only for the closed + interval [`low`, `high`], and 1 is the + lowest value if `high` is omitted. + + """ + + rs = _get_random_state(device=device, sycl_queue=sycl_queue) + return rs.randint( + low=low, high=high, size=size, dtype=dtype, usm_type=usm_type + )
+ + + +
+[docs] +def randn(d0, *dn, device=None, usm_type="device", sycl_queue=None): + """ + Return a sample (or samples) from the "standard normal" distribution. + + For full documentation refer to :obj:`numpy.random.randn`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + A ``(d0, d1, ..., dn)``-shaped array of floating-point samples from + the standard normal distribution, or a single such float if no parameters were supplied. + Output array data type is :obj:`dpnp.float64` if device supports it, or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> dpnp.random.randn() + 2.1923875335537315 # random + + Two-by-four array of samples from N(3, 6.25): + + >>> s = 3 + 2.5 * dpnp.random.randn(2, 4) + + See Also + -------- + :obj:`dpnp.random.standard_normal` + :obj:`dpnp.random.normal` + + """ + + rs = _get_random_state(device=device, sycl_queue=sycl_queue) + return rs.randn(d0, *dn, usm_type=usm_type)
+ + + +
+[docs] +def random(size=None, device=None, usm_type="device", sycl_queue=None): + """ + Return random floats in the half-open interval [0.0, 1.0). + + Alias for random_sample. + + For full documentation refer to :obj:`numpy.random.random`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of random floats of shape `size` (if ``size=None``, zero dimension array with a single float is returned). + Output array data type is :obj:`dpnp.float64` if device supports it, or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.random(1000) + + See Also + -------- + :obj:`dpnp.random.rand` + :obj:`dpnp.random.random_sample` + :obj:`dpnp.random.uniform` + + """ + + return random_sample( + size=size, device=device, usm_type=usm_type, sycl_queue=sycl_queue + )
+ + + +
+[docs] +def random_integers( + low, high=None, size=None, device=None, usm_type="device", sycl_queue=None +): + """ + Random integers between `low` and `high`, inclusive. + + For full documentation refer to :obj:`numpy.random.random_integers`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + `size`-shaped array of random integers from the appropriate distribution, + or a single such random int if `size` is not provided. + + Limitations + ----------- + Parameters `low` and `high` are supported as scalar. + Otherwise, :obj:`numpy.random.random_integers(low, high, size)` samples are drawn. + + See Also + -------- + :obj:`dpnp.random.randint` + + """ + + if high is None: + high = low + low = 0 + + # TODO: + # array_like of floats for `low` and `high` params + if not dpnp.isscalar(low): + pass + elif not dpnp.isscalar(high): + pass + else: + return randint( + low, + int(high) + 1, + size=size, + device=device, + usm_type=usm_type, + sycl_queue=sycl_queue, + ) + + return call_origin(numpy.random.random_integers, low, high, size)
+ + + +
+[docs] +def random_sample(size=None, device=None, usm_type="device", sycl_queue=None): + """ + Return random floats in the half-open interval [0.0, 1.0). + + Results are from the “continuous uniform” distribution over the interval. + + For full documentation refer to :obj:`numpy.random.random_sample`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of random floats of shape `size` (if ``size=None``, zero dimension array with a single float is returned). + Output array data type is :obj:`dpnp.float64` if device supports it, or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.random_sample((5,)) + + See Also + -------- + :obj:`dpnp.random.rand` + :obj:`dpnp.random.random` + :obj:`dpnp.random.uniform` + + """ + + rs = _get_random_state(device=device, sycl_queue=sycl_queue) + return rs.random_sample(size=size, usm_type=usm_type)
+ + + +
+[docs] +def ranf(size=None, device=None, usm_type="device", sycl_queue=None): + """ + Return random floats in the half-open interval [0.0, 1.0). + + This is an alias of random_sample. + + For full documentation refer to :obj:`numpy.random.ranf`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of random floats of shape `size` (if ``size=None``, zero dimension array with a single float is returned). + Output array data type is :obj:`dpnp.float64` if device supports it, or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.ranf(1000) + + See Also + -------- + :obj:`dpnp.random.rand` + :obj:`dpnp.random.random` + :obj:`dpnp.random.random_sample` + :obj:`dpnp.random.uniform` + + """ + + return random_sample( + size=size, device=device, usm_type=usm_type, sycl_queue=sycl_queue + )
+ + + +
+[docs] +def rayleigh(scale=1.0, size=None): + """ + Draw samples from a Rayleigh distribution. + + For full documentation refer to :obj:`numpy.random.rayleigh`. + + Limitations + ----------- + Parameter `scale` is supported as a scalar. + Otherwise, :obj:`numpy.random.rayleigh(scale, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> import numpy as np + >>> s = dpnp.random.rayleigh(1.0, 10000) + + """ + + if not use_origin_backend(scale): + # TODO: + # array_like of floats for `scale` params + if not dpnp.isscalar(scale): + pass + elif scale < 0: + pass + else: + return dpnp_rng_rayleigh(scale, size).get_pyobj() + + return call_origin(numpy.random.rayleigh, scale, size)
+ + + +
+[docs] +def sample(size=None, device=None, usm_type="device", sycl_queue=None): + """ + Return random floats in the half-open interval [0.0, 1.0). + + This is an alias of random_sample. + + For full documentation refer to :obj:`numpy.random.sample`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Array of random floats of shape `size` (if ``size=None``, zero dimension array with a single float is returned). + Output array data type is :obj:`dpnp.float64` if device supports it, or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.sample(1000) + + See Also + -------- + :obj:`dpnp.random.rand` + :obj:`dpnp.random.random` + :obj:`dpnp.random.random_sample` + :obj:`dpnp.random.uniform` + + """ + + return random_sample( + size=size, device=device, usm_type=usm_type, sycl_queue=sycl_queue + )
+ + + +
+[docs] +def shuffle(x1): + """ + Modify a sequence in-place by shuffling its contents. + + For full documentation refer to :obj:`numpy.random.shuffle`. + + Limitations + ----------- + Otherwise, the function will use :obj:`numpy.random.shuffle` on the backend + and will be executed on fallback backend. + + """ + + x1_desc = dpnp.get_dpnp_descriptor(x1, copy_when_strides=False) + if x1_desc: + if not dpnp.is_type_supported(x1_desc.dtype): + pass + else: + dpnp_rng_shuffle(x1_desc).get_pyobj() + return + + call_origin(numpy.random.shuffle, x1, dpnp_inplace=True) + return
+ + + +
+[docs] +def seed(seed=None, device=None, sycl_queue=None): + """ + Reseed a legacy MT19937 random number generator engine. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where an array with generated numbers + will be created. The `device` can be ``None`` (the default), an OneAPI + filter selector string, an instance of :class:`dpctl.SyclDevice` + corresponding to a non-partitioned SYCL device, an instance of + :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for an array with generated numbers. + + Limitations + ----------- + The `seed` parameter is supported as a scalar or an array of at most three + integer scalars. + + """ + + # update a mt19937 random number for both RandomState and legacy functionality + global _dpnp_random_states + + sycl_queue = dpnp.get_normalized_queue_device( + device=device, sycl_queue=sycl_queue + ) + _dpnp_random_states[sycl_queue] = RandomState( + seed=seed, sycl_queue=sycl_queue + ) + + if not use_origin_backend(seed): + # TODO: + # array_like of ints for `seed` + if seed is None: + seed = 1 + if not isinstance(seed, int): + pass + elif seed < 0: + pass + else: + # TODO: + # migrate to a single approach with RandomState class + dpnp_rng_srand(seed) + + # always reseed numpy engine also + return call_origin(numpy.random.seed, seed, allow_fallback=True)
+ + + +
+[docs] +def standard_cauchy(size=None): + """ + Draw samples from a standard Cauchy distribution with mode = 0. + + Also known as the Lorentz distribution. + + Limitations + ----------- + Output array data type is default float type. + + Examples + -------- + Draw samples and plot the distribution: + + >>> import matplotlib.pyplot as plt + >>> s = dpnp.random.standard_cauchy(1000000) + >>> s = s[(s>-25) & (s<25)] # truncate distribution so it plots well + >>> plt.hist(s, bins=100) + >>> plt.show() + + """ + + if not use_origin_backend(size): + return dpnp_rng_standard_cauchy(size).get_pyobj() + + return call_origin(numpy.random.standard_cauchy, size)
+ + + +
+[docs] +def standard_exponential(size=None): + """ + Draw samples from the standard exponential distribution. + + `standard_exponential` is identical to the exponential distribution + with a scale parameter of 1. + + Limitations + ----------- + Output array data type is default float type. + + Examples + -------- + Output a 3x8000 array: + + >>> n = dpnp.random.standard_exponential((3, 8000)) + + """ + + if not use_origin_backend(size): + return dpnp_rng_standard_exponential(size).get_pyobj() + + return call_origin(numpy.random.standard_exponential, size)
+ + + +
+[docs] +def standard_gamma(shape, size=None): + """ + Draw samples from a standard Gamma distribution. + + For full documentation refer to :obj:`numpy.random.standard_gamma`. + + Limitations + ----------- + Parameter `shape` is supported as a scalar. + Otherwise, :obj:`numpy.random.standard_gamma(shape, size)` samples + are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> shape = 2. + >>> s = dpnp.random.standard_gamma(shape, 1000000) + + """ + + if not use_origin_backend(shape): + # TODO: + # array_like of floats for `shape` + if not dpnp.isscalar(shape): + pass + elif shape < 0: + pass + else: + return dpnp_rng_standard_gamma(shape, size).get_pyobj() + + return call_origin(numpy.random.standard_gamma, shape, size)
+ + + +
+[docs] +def standard_normal(size=None, device=None, usm_type="device", sycl_queue=None): + """ + Draw samples from a standard Normal distribution ``(mean=0, stdev=1)``. + + For full documentation refer to :obj:`numpy.random.standard_normal`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + A floating-point array of shape `size` of drawn samples, or a + single sample if `size` was not specified. + Output array data type is :obj:`dpnp.float64` if device supports it, or :obj:`dpnp.float32` otherwise. + + Examples + -------- + Draw samples from the distribution: + + >>> s = dpnp.random.standard_normal(1000) + + """ + + rs = _get_random_state(device=device, sycl_queue=sycl_queue) + return rs.standard_normal(size=size, usm_type=usm_type)
+ + + +
+[docs] +def standard_t(df, size=None): + """ + Draw samples from a standard Student’s t distribution with + `df` degrees of freedom. + + For full documentation refer to :obj:`numpy.random.standard_t`. + + Limitations + ----------- + Parameter `df` is supported as a scalar. + Otherwise, :obj:`numpy.random.standard_t(df, size)` samples + are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> df = 2. + >>> s = dpnp.random.standard_t(df, 1000000) + + """ + + if not use_origin_backend(df): + # TODO: + # array_like of floats for `df` + if not dpnp.isscalar(df): + pass + elif df <= 0: + pass + else: + return dpnp_rng_standard_t(df, size).get_pyobj() + + return call_origin(numpy.random.standard_t, df, size)
+ + + +
+[docs] +def triangular(left, mode, right, size=None): + """ + Draw samples from the triangular distribution over the interval + [left, right]. + + For full documentation refer to :obj:`numpy.random.triangular`. + + Limitations + ----------- + Parameters `left`, `mode` and `right` are supported as scalar. + Otherwise, :obj:`numpy.random.triangular(left, mode, right, size)` + samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> df = 2. + >>> s = dpnp.random.triangular(-3, 0, 8, 1000000) + + """ + + if not use_origin_backend(left): + # TODO: + # array_like of floats for `left`, `mode`, `right`. + if not dpnp.isscalar(left): + pass + elif not dpnp.isscalar(mode): + pass + elif not dpnp.isscalar(right): + pass + elif left > mode: + pass + elif mode > right: + pass + elif left == right: + pass + else: + return dpnp_rng_triangular(left, mode, right, size).get_pyobj() + + return call_origin(numpy.random.triangular, left, mode, right, size)
+ + + +
+[docs] +def uniform( + low=0.0, + high=1.0, + size=None, + device=None, + usm_type="device", + sycl_queue=None, +): + """ + Draw samples from a uniform distribution. + + Samples are uniformly distributed over the half-open interval [low, high) (includes low, but excludes high). + In other words, any value within the given interval is equally likely to be drawn by uniform. + + For full documentation refer to :obj:`numpy.random.uniform`. + + Parameters + ---------- + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector string, + an instance of :class:`dpctl.SyclDevice` corresponding to a non-partitioned SYCL device, + an instance of :class:`dpctl.SyclQueue`, or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + Returns + ------- + out : dpnp.ndarray + Drawn samples from the parameterized uniform distribution. + Output array data type is the same as input `dtype`. If `dtype` is ``None`` (the default), + :obj:`dpnp.float64` type will be used if device supports it, or :obj:`dpnp.float32` otherwise. + + Limitations + ----------- + Parameters `low` and `high` are supported as a scalar. Otherwise, + :obj:`numpy.random.uniform(low, high, size)` samples are drawn. + Parameter `dtype` is supported only as :obj:`dpnp.int32`, :obj:`dpnp.float32`, :obj:`dpnp.float64` or ``None``. + + Examples + -------- + Draw samples from the distribution: + + >>> low, high = 0, 0.1 # low and high + >>> s = dpnp.random.uniform(low, high, 10000) + + See Also + -------- + :obj:`dpnp.random.random` : Floats uniformly distributed over ``[0, 1)``. + + """ + + rs = _get_random_state(device=device, sycl_queue=sycl_queue) + return rs.uniform( + low=low, high=high, size=size, dtype=None, usm_type=usm_type + )
+ + + +
+[docs] +def vonmises(mu, kappa, size=None): + """ + Draw samples from a von Mises distribution. + + For full documentation refer to :obj:`numpy.random.vonmises`. + + Limitations + ----------- + Parameters `mu` and `kappa` are supported as scalar. + Otherwise, :obj:`numpy.random.vonmises(mu, kappa, size)` + samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + Draw samples from the distribution: + + >>> mu, kappa = 0.0, 4.0 # mean and dispersion + >>> s = dpnp.random.vonmises(mu, kappa, 1000) + + """ + + if not use_origin_backend(mu): + # TODO: + # array_like of floats for `mu`, `kappa`. + if not dpnp.isscalar(mu): + pass + elif not dpnp.isscalar(kappa): + pass + elif numpy.isnan(kappa): + return dpnp.nan + elif kappa < 0: + pass + else: + return dpnp_rng_vonmises(mu, kappa, size).get_pyobj() + + return call_origin(numpy.random.vonmises, mu, kappa, size)
+ + + +
+[docs] +def wald(mean, scale, size=None): + """ + Draw samples from a Wald, or inverse Gaussian, distribution. + + For full documentation refer to :obj:`numpy.random.wald`. + + Limitations + ----------- + Parameters `mean` and `scale` are supported as scalar. + Otherwise, :obj:`numpy.random.wald(mean, scale, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + >>> loc, scale = 3., 2. + >>> s = dpnp.random.wald(loc, scale, 1000) + + """ + + if not use_origin_backend(mean): + # TODO: + # array_like of floats for `mean` and `scale` + if not dpnp.isscalar(mean): + pass + elif not dpnp.isscalar(scale): + pass + elif mean <= 0: + pass + elif scale <= 0: + pass + else: + return dpnp_rng_wald(mean, scale, size).get_pyobj() + + return call_origin(numpy.random.wald, mean, scale, size)
+ + + +
+[docs] +def weibull(a, size=None): + """ + Draw samples from a Weibull distribution. + + For full documentation refer to :obj:`numpy.random.weibull`. + + Limitations + ----------- + Parameter `a` is supported as a scalar. + Otherwise, :obj:`numpy.random.weibull(a, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + >>> a = 5. # shape + >>> s = np.random.weibull(a, 1000) + + """ + + if not use_origin_backend(a): + # TODO: + # array_like of floats for `a` param + if not dpnp.isscalar(a): + pass + elif a < 0: + pass + else: + return dpnp_rng_weibull(a, size).get_pyobj() + + return call_origin(numpy.random.weibull, a, size)
+ + + +
+[docs] +def zipf(a, size=None): + """ + Returns an array of samples drawn from the Zipf distribution. + + For full documentation refer to :obj:`numpy.random.zipf`. + + Limitations + ----------- + Parameter `a`` is supported as a scalar. + Otherwise, :obj:`numpy.zipf.weibull(a, size)` samples are drawn. + Output array data type is :obj:`dpnp.float64`. + + Examples + -------- + >>> a = 2. # parameter + >>> s = np.random.zipf(a, 1000) + + """ + + if not use_origin_backend(a): + # TODO: + # array_like of floats for `a` param + if not dpnp.isscalar(a): + pass + elif a <= 1: + pass + else: + return dpnp_rng_zipf(a, size).get_pyobj() + + return call_origin(numpy.random.zipf, a, size)
+ + + +_dpnp_random_states = {} +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/dpnp/random/dpnp_random_state.html b/pull/2070/_modules/dpnp/random/dpnp_random_state.html new file mode 100644 index 00000000000..ebd109fd028 --- /dev/null +++ b/pull/2070/_modules/dpnp/random/dpnp_random_state.html @@ -0,0 +1,790 @@ + + + + + + + + + + dpnp.random.dpnp_random_state — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for dpnp.random.dpnp_random_state

+# cython: language_level=3
+# -*- coding: utf-8 -*-
+# *****************************************************************************
+# Copyright (c) 2016-2024, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# - Redistributions of source code must retain the above copyright notice,
+#   this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+# *****************************************************************************
+
+"""
+Module Intel NumPy RandomState
+
+Set of functions to implement NumPy random module API
+
+    .. seealso:: :obj:`numpy.random.RandomState`
+
+"""
+
+
+import dpctl.utils as dpu
+import numpy
+
+import dpnp
+from dpnp.dpnp_utils.dpnp_algo_utils import (
+    call_origin,
+    map_dtype_to_device,
+    use_origin_backend,
+)
+from dpnp.random.dpnp_algo_random import MCG59, MT19937
+
+__all__ = ["RandomState"]
+
+
+
+[docs] +class RandomState: + """ + A container for the Mersenne Twister pseudo-random number generator. + + For full documentation refer to :obj:`numpy.random.RandomState`. + + Parameters + ---------- + seed : {None, int, array_like}, optional + A random seed to initialize the pseudo-random number generator. + The `seed` can be ``None`` (the default), an integer scalar, or + an array of at most three integer scalars. + device : {None, string, SyclDevice, SyclQueue}, optional + An array API concept of device where the output array is created. + The `device` can be ``None`` (the default), an OneAPI filter selector + string, an instance of :class:`dpctl.SyclDevice` corresponding to + a non-partitioned SYCL device, an instance of :class:`dpctl.SyclQueue`, + or a `Device` object returned by + :obj:`dpnp.dpnp_array.dpnp_array.device` property. + sycl_queue : {None, SyclQueue}, optional + A SYCL queue to use for output array allocation and copying. The + `sycl_queue` can be passed as ``None`` (the default), which means + to get the SYCL queue from `device` keyword if present or to use + a default queue. + Default: ``None``. + + """ + + def __init__(self, seed=None, device=None, sycl_queue=None): + self._sycl_queue = dpnp.get_normalized_queue_device( + device=device, sycl_queue=sycl_queue + ) + self._sycl_device = self._sycl_queue.sycl_device + + is_cpu = self._sycl_device.is_cpu + if seed is None: + low = 0 + high = dpnp.iinfo(numpy.int32).max + 1 + + if is_cpu: + # ask NumPy to generate an array of three random integers as default seed value + self._seed = numpy.random.randint(low=low, high=high, size=3) + else: + # ask NumPy to generate a random 32-bit integer as default seed value + self._seed = numpy.random.randint(low=low, high=high, size=1)[0] + else: + self._seed = seed + + # 'float32' is default floating data type if device doesn't support 'float64' + self._def_float_type = map_dtype_to_device( + dpnp.float64, self._sycl_device + ) + + # TODO: rework through pybind11 extension for OneMKL engine and distribution classes + if is_cpu: + self._random_state = MT19937(self._seed, self._sycl_queue) + else: + # MCG59 is assumed to provide a better performance on GPU than MT19937 + self._random_state = MCG59(self._seed, self._sycl_queue) + self._fallback_random_state = call_origin( + numpy.random.RandomState, seed, allow_fallback=True + ) + + def __repr__(self): + return self.__str__() + " at 0x{:X}".format(id(self)) + + def __str__(self): + _str = self.__class__.__name__ + _str += "(" + self._random_state.__class__.__name__ + ")" + return _str + + def __getstate__(self): + return self.get_state() + + def _is_finite_scalar(self, x): + """Test a scalar for finiteness (not infinity and not Not a Number).""" + + # TODO: replace with dpnp.isfinite() once function is available in DPNP, + # but for now use direct numpy calls without call_origin() wrapper, since data is a scalar + return numpy.isfinite(x) + + def _is_signbit_scalar(self, x): + """Test a scalar if sign bit is set for it (less than zero).""" + + # TODO: replace with dpnp.signbit() once function is available in DPNP, + # but for now use direct numpy calls without call_origin() wrapper, since data is a scalar + return numpy.signbit(x) + + def _validate_float_dtype(self, dtype, supported_types): + """ + Validate an input floating type. + + Test an input floating type if it is listed in `supported_types` and + if it is supported by the used SYCL device. + If `dtype` is ``None``, default floating type will be validating. + Return the examined floating type if it follows all validation checks. + """ + + if dtype is None: + dtype = self._def_float_type + + if dtype not in supported_types: + raise TypeError(f"dtype={dtype} is unsupported.") + elif dtype != map_dtype_to_device(dtype, self._sycl_device): + raise RuntimeError( + f"dtype={dtype} is not supported by SYCL device '{self._sycl_device}'" + ) + return dtype + +
+[docs] + def get_state(self): + """ + Return an internal state of the generator. + + For full documentation refer to :obj:`numpy.random.RandomState.get_state`. + + Returns + ------- + out : object + An object representing the internal state of the generator. + """ + return self._random_state
+ + +
+[docs] + def get_sycl_queue(self): + """ + Return an instance of :class:`dpctl.SyclQueue` used within the generator for data allocation. + + Returns + ------- + queue : dpctl.SyclQueue + A SYCL queue used for data allocation. + """ + return self._sycl_queue
+ + +
+[docs] + def get_sycl_device(self): + """ + Return an instance of :class:`dpctl.SyclDevice` used within the generator to allocate data on. + + Returns + ------- + device : dpctl.SyclDevice + A SYCL device used to allocate data on. + """ + return self._sycl_device
+ + +
+[docs] + def normal( + self, loc=0.0, scale=1.0, size=None, dtype=None, usm_type="device" + ): + """ + Draw random samples from a normal (Gaussian) distribution. + + For full documentation refer to :obj:`numpy.random.RandomState.normal`. + + Parameters + ---------- + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + + Returns + ------- + out : dpnp.ndarray + Drawn samples from the parameterized normal distribution. + Output array data type is the same as input `dtype`. If `dtype` is ``None`` (the default), + :obj:`dpnp.float64` type will be used if device supports it, or :obj:`dpnp.float32` otherwise. + + Limitations + ----------- + Parameters `loc` and `scale` are supported as a scalar. Otherwise, + :obj:`numpy.random.RandomState.normal(loc, scale, size)` samples are drawn. + Parameter `dtype` is supported only as :obj:`dpnp.float32`, :obj:`dpnp.float64` or ``None``. + + Examples + -------- + >>> s = dpnp.random.RandomState().normal(loc=3.7, scale=2.5, size=(2, 4)) + >>> print(s) + [[ 1.58997253 -0.84288406 2.33836967 4.16394577] + [ 4.40882036 5.39295758 6.48927254 6.74921661]] + + See Also + -------- + :obj:`dpnp.random.RandomState.randn` + :obj:`dpnp.random.RandomState.standard_normal` + + """ + + if not use_origin_backend(): + if not dpnp.isscalar(loc): + pass + elif not dpnp.isscalar(scale): + pass + else: + dtype = self._validate_float_dtype( + dtype, (dpnp.float32, dpnp.float64) + ) + min_floating = dpnp.finfo(dtype).min + max_floating = dpnp.finfo(dtype).max + + if ( + loc >= max_floating or loc <= min_floating + ) and self._is_finite_scalar(loc): + raise OverflowError( + f"Range of loc={loc} exceeds valid bounds" + ) + + if (scale >= max_floating) and self._is_finite_scalar(scale): + raise OverflowError( + f"Range of scale={scale} exceeds valid bounds" + ) + # scale = -0.0 is cosidered as negative + elif scale < 0 or scale == 0 and self._is_signbit_scalar(scale): + raise ValueError( + f"scale={scale}, but must be non-negative." + ) + + dpu.validate_usm_type(usm_type, allow_none=False) + return self._random_state.normal( + loc=loc, + scale=scale, + size=size, + dtype=dtype, + usm_type=usm_type, + ).get_pyobj() + + return call_origin( + self._fallback_random_state.normal, + loc=loc, + scale=scale, + size=size, + sycl_queue=self._sycl_queue, + )
+ + +
+[docs] + def rand(self, *args, usm_type="device"): + """ + Draw random values in a given shape. + + Create an array of the given shape and populate it with random samples + from a uniform distribution over [0, 1). + + For full documentation refer to :obj:`numpy.random.RandomState.rand`. + + Parameters + ---------- + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + + Returns + ------- + out : dpnp.ndarray + Random values in a given shape. + Output array data type is :obj:`dpnp.float64` if device supports it, or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.RandomState().rand(5, 2) + >>> print(s) + [[0.13436424 0.56920387] + [0.84743374 0.80226506] + [0.76377462 0.06310682] + [0.25506903 0.1179187 ] + [0.49543509 0.76096244]] + + See Also + -------- + :obj:`dpnp.random.RandomState.random_sample` + :obj:`dpnp.random.RandomState.uniform` + + """ + + if len(args) == 0: + return self.random_sample(usm_type=usm_type) + else: + return self.random_sample(size=args, usm_type=usm_type)
+ + +
+[docs] + def randint(self, low, high=None, size=None, dtype=int, usm_type="device"): + """ + Draw random integers from `low` (inclusive) to `high` (exclusive). + + Return random integers from the “discrete uniform” distribution of the specified type + in the “half-open” interval [low, high). + + For full documentation refer to :obj:`numpy.random.RandomState.randint`. + + Parameters + ---------- + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + + Returns + ------- + out : dpnp.ndarray + `size`-shaped array of random integers from the appropriate distribution, + or a single such random int if `size` is not provided. + Output array data type is the same as input `dtype`. + + Limitations + ----------- + Parameters `low` and `high` are supported only as a scalar. + Parameter `dtype` is supported only as :obj:`dpnp.int32` or ``int``, + but ``int`` value is considered to be exactly equivalent to :obj:`dpnp.int32`. + Otherwise, :obj:`numpy.random.RandomState.randint(low, high, size, dtype)` samples are drawn. + + Examples + -------- + >>> s = dpnp.random.RandomState().randint(2, size=10) + >>> print(s) + [0 1 1 1 1 0 0 0 0 1] + + See Also + -------- + :obj:`dpnp.random.RandomState.random_integers` : similar to `randint`, only for the closed + interval [`low`, `high`], and 1 is the lowest value if `high` is omitted. + + """ + + if not use_origin_backend(low): + if not dpnp.isscalar(low): + pass + elif not (high is None or dpnp.isscalar(high)): + pass + else: + _dtype = dpnp.int32 if dtype is int else dpnp.dtype(dtype) + if _dtype != dpnp.int32: + pass + else: + if high is None: + high = low + low = 0 + + min_int = dpnp.iinfo("int32").min + max_int = dpnp.iinfo("int32").max + + if ( + not self._is_finite_scalar(low) + or low > max_int + or low < min_int + ): + raise OverflowError( + f"Range of low={low} exceeds valid bounds" + ) + elif ( + not self._is_finite_scalar(high) + or high > max_int + or high < min_int + ): + raise OverflowError( + f"Range of high={high} exceeds valid bounds" + ) + + low = int(low) + high = int(high) + if low >= high: + raise ValueError(f"low={low} >= high={high}") + + return self.uniform( + low=low, + high=high, + size=size, + dtype=_dtype, + usm_type=usm_type, + ) + + return call_origin( + self._fallback_random_state.randint, + low=low, + high=high, + size=size, + dtype=dtype, + sycl_queue=self._sycl_queue, + )
+ + +
+[docs] + def randn(self, *args, usm_type="device"): + """ + Return a sample (or samples) from the "standard normal" distribution. + + For full documentation refer to :obj:`numpy.random.RandomState.randn`. + + Parameters + ---------- + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + + Returns + ------- + out : dpnp.ndarray + A ``(d0, d1, ..., dn)``-shaped array of floating-point samples from + the standard normal distribution, or a single such float if + no parameters were supplied. + Output array data type is :obj:`dpnp.float64` if device supports it, + or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.RandomState().randn() + >>> print(s) + -0.84401099 + + Two-by-four array of samples from the normal distribution with + mean 3 and standard deviation 2.5: + + >>> s = dpnp.random.RandomState().randn(2, 4) + >>> print(s) + [[ 0.88997253 -1.54288406 1.63836967 3.46394577] + [ 3.70882036 4.69295758 5.78927254 6.04921661]] + + See Also + -------- + :obj:`dpnp.random.normal` + :obj:`dpnp.random.standard_normal` + + """ + + if len(args) == 0: + return self.standard_normal(usm_type=usm_type) + return self.standard_normal(size=args, usm_type=usm_type)
+ + +
+[docs] + def random_sample(self, size=None, usm_type="device"): + """ + Draw random floats in the half-open interval [0.0, 1.0). + + Results are from the “continuous uniform” distribution over the interval. + + For full documentation refer to :obj:`numpy.random.RandomState.random_sample`. + + Parameters + ---------- + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + + Returns + ------- + out : dpnp.ndarray + Array of random floats of shape `size` (if ``size=None``, + zero dimension array with a single float is returned). + Output array data type is :obj:`dpnp.float64` if device supports it, + or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.RandomState().random_sample(size=(4,)) + >>> print(s) + [0.13436424 0.56920387 0.84743374 0.80226506] + + See Also + -------- + :obj:`dpnp.random.RandomState.rand` + :obj:`dpnp.random.RandomState.uniform` + + """ + + return self.uniform( + low=0.0, high=1.0, size=size, dtype=None, usm_type=usm_type + )
+ + +
+[docs] + def standard_normal(self, size=None, usm_type="device"): + """ + Draw samples from a standard Normal distribution ``(mean=0, stdev=1)``. + + For full documentation refer to :obj:`numpy.random.RandomState.standard_normal`. + + Parameters + ---------- + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + + Returns + ------- + out : dpnp.ndarray + A floating-point array of shape `size` of drawn samples, or a + single sample if `size` was not specified. + Output array data type is :obj:`dpnp.float64` if device supports it, + or :obj:`dpnp.float32` otherwise. + + Examples + -------- + >>> s = dpnp.random.RandomState().standard_normal(size=(3, 5)) + >>> print(s) + [[-0.84401099 -1.81715362 -0.54465213 0.18557831 0.28352814] + [ 0.67718303 1.11570901 1.21968665 -1.18236388 0.08156915] + [ 0.21941987 -1.24544512 0.63522211 -0.673174 0. ]] + + See Also + -------- + :obj:`dpnp.random.RandomState.normal` + :obj:`dpnp.random.RandomState.randn` + + """ + + return self.normal( + loc=0.0, scale=1.0, size=size, dtype=None, usm_type=usm_type + )
+ + +
+[docs] + def uniform( + self, low=0.0, high=1.0, size=None, dtype=None, usm_type="device" + ): + """ + Draw samples from a uniform distribution. + + Samples are uniformly distributed over the half-open interval [low, high) (includes low, but excludes high). + In other words, any value within the given interval is equally likely to be drawn by uniform. + + For full documentation refer to :obj:`numpy.random.RandomState.uniform`. + + Parameters + ---------- + usm_type : {"device", "shared", "host"}, optional + The type of SYCL USM allocation for the output array. + + Returns + ------- + out : dpnp.ndarray + Drawn samples from the parameterized uniform distribution. + Output array data type is the same as input `dtype`. If `dtype` is ``None`` (the default), + :obj:`dpnp.float64` type will be used if device supports it, or :obj:`dpnp.float32` otherwise. + + Limitations + ----------- + Parameters `low` and `high` are supported as a scalar. Otherwise, + :obj:`numpy.random.RandomState.uniform(low, high, size)` samples are drawn. + Parameter `dtype` is supported only as :obj:`dpnp.int32`, :obj:`dpnp.float32`, :obj:`dpnp.float64` or ``None``. + + Examples + -------- + >>> low, high = 1.23, 10.54 # low and high + >>> s = dpnp.random.RandomState().uniform(low, high, 5) + >>> print(s) + [2.48093112 6.52928804 9.1196081 8.6990877 8.34074171] + + See Also + -------- + :obj:`dpnp.random.RandomState.randint` : Discrete uniform distribution, yielding integers. + :obj:`dpnp.random.RandomState.random_integers` : Discrete uniform distribution over the closed interval ``[low, high]``. + :obj:`dpnp.random.RandomState.random_sample` : Floats uniformly distributed over ``[0, 1)``. + :obj:`dpnp.random.RandomState.random` : Alias for :obj:`dpnp.random.RandomState.random_sample`. + :obj:`dpnp.random.RandomState.rand` : Convenience function that accepts dimensions as input, e.g., + ``rand(2, 2)`` would generate a 2-by-2 array of floats, uniformly distributed over ``[0, 1)``. + + """ + + if not use_origin_backend(): + if not dpnp.isscalar(low): + pass + elif not dpnp.isscalar(high): + pass + else: + min_double = dpnp.finfo("double").min + max_double = dpnp.finfo("double").max + + if ( + not self._is_finite_scalar(low) + or low >= max_double + or low <= min_double + ): + raise OverflowError( + f"Range of low={low} exceeds valid bounds" + ) + elif ( + not self._is_finite_scalar(high) + or high >= max_double + or high <= min_double + ): + raise OverflowError( + f"Range of high={high} exceeds valid bounds" + ) + + if low > high: + low, high = high, low + + dtype = self._validate_float_dtype( + dtype, (dpnp.int32, dpnp.float32, dpnp.float64) + ) + dpu.validate_usm_type(usm_type, allow_none=False) + + return self._random_state.uniform( + low=low, + high=high, + size=size, + dtype=dtype, + usm_type=usm_type, + ).get_pyobj() + + return call_origin( + self._fallback_random_state.uniform, + low=low, + high=high, + size=size, + sycl_queue=self._sycl_queue, + )
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_modules/index.html b/pull/2070/_modules/index.html new file mode 100644 index 00000000000..0ead9f99ca9 --- /dev/null +++ b/pull/2070/_modules/index.html @@ -0,0 +1,141 @@ + + + + + + + + + + Overview: module code — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/pull/2070/_sources/dpctl.rst.txt b/pull/2070/_sources/dpctl.rst.txt new file mode 100644 index 00000000000..c8ba8c1f120 --- /dev/null +++ b/pull/2070/_sources/dpctl.rst.txt @@ -0,0 +1,39 @@ +.. _dptcl: +.. include:: ./ext_links.txt + +Interplay with the Data Parallel Control Library +================================================ + +`Data Parallel Control Library`_ provides API to manage specific +`SYCL*`_ resources for SYCL-based Python packages. + +An example below demonstrates how the Data Parallel Extension for NumPy* can be +easily combined with the device management interface provided by dpctl package. + +.. code-block:: python + :linenos: + + import dpctl + import dpnp + + d = dpctl.select_cpu_device() + x = dpnp.array([1, 2, 3], device=d) + s = dpnp.sum(x) + + y = dpnp.linspace(0, dpnp.pi, num=10**6, device="gpu") + f = 1 + y * dpnp.sin(y) + + # locate argument where function attains global maximum + max_arg = x[dpnp.argmax(f)] + max_val = dpnp.max(f) + + +For more information please refer to `Data Parallel Control Library`_ +documentation. + +Example +------- +.. literalinclude:: ../examples/example10.py + :linenos: + :language: python + :lines: 35- diff --git a/pull/2070/_sources/dpnp_backend_api.rst.txt b/pull/2070/_sources/dpnp_backend_api.rst.txt new file mode 100644 index 00000000000..56256c93935 --- /dev/null +++ b/pull/2070/_sources/dpnp_backend_api.rst.txt @@ -0,0 +1,7 @@ +.. _dpnp_backend_reference: + +************************* +C++ backend API Reference +************************* + +`C++ backend of Data Parallel Extension for NumPy* `_ diff --git a/pull/2070/_sources/index.rst.txt b/pull/2070/_sources/index.rst.txt new file mode 100644 index 00000000000..38c12489636 --- /dev/null +++ b/pull/2070/_sources/index.rst.txt @@ -0,0 +1,21 @@ +.. _index: +.. include:: ./ext_links.txt + +Data Parallel Extension for NumPy* +================================== + +.. module:: dpnp + :no-index: + +.. toctree:: + :maxdepth: 2 + + overview + quick_start_guide + reference/index + +.. toctree:: + :maxdepth: 1 + :caption: Development information + + dpnp_backend_api diff --git a/pull/2070/_sources/overview.rst.txt b/pull/2070/_sources/overview.rst.txt new file mode 100644 index 00000000000..4215566df7e --- /dev/null +++ b/pull/2070/_sources/overview.rst.txt @@ -0,0 +1,40 @@ +.. _overview: +.. include:: ./ext_links.txt + +Overview +======== + +.. module:: dpnp + +The Data Parallel Extension for NumPy* (dpnp package) - a library that +implements a subset of `NumPy*`_ that can be executed on any +data parallel device. The subset is a drop-in replacement of core `NumPy*`_ +functions and numerical data types. + +The Data Parallel Extension for NumPy* is being developed as part of +`Intel AI Analytics Toolkit`_ and is distributed with the +`Intel Distribution for Python*`_. The dpnp package is also available +on Anaconda cloud. Please refer the :doc:`quick_start_guide` page to learn more. + +Being drop-in replacement for `NumPy*`_ means that the usage is very similar: + + >>> import dpnp as np + +The :class:`dpnp.ndarray` class is a compatible alternative of +:class:`numpy.ndarray`. + + >>> x = np.array([1, 2, 3]) + +``x`` in the above example is an instance of :class:`dpnp.ndarray` that +is created identically to ``NumPy*``'s one. The key difference of +:class:`dpnp.ndarray` from :class:`numpy.ndarray` is that the memory +is allocated on the default `SYCL*`_ device, which is a ``"gpu"`` on systems +with integrated or discrete GPU (otherwise it is the ``"host"`` device +on systems that do not have GPU). + +Most of the array manipulations are also done in the way similar to `NumPy*`_ such as: + + >>> s = np.sum(x) + +Please see the :ref:`API Reference ` for the complete list of supported `NumPy*`_ APIs +along with their limitations. diff --git a/pull/2070/_sources/quick_start_guide.rst.txt b/pull/2070/_sources/quick_start_guide.rst.txt new file mode 100644 index 00000000000..e76556c0744 --- /dev/null +++ b/pull/2070/_sources/quick_start_guide.rst.txt @@ -0,0 +1,168 @@ +.. _quick_start_guide: +.. include:: ./ext_links.txt + +.. |copy| unicode:: U+000A9 + +.. |trade| unicode:: U+2122 + +================= +Quick Start Guide +================= + +Device Drivers +================= + +To start programming data parallel devices beyond CPU, you will need +an appropriate hardware. The Data Parallel Extension for NumPy* works fine +on Intel |copy| laptops with integrated graphics. In majority of cases, +your Windows*-based laptop already has all necessary device drivers installed. +But if you want the most up-to-date driver, you can always +`update it to the latest one `_. +Follow device driver installation instructions to complete the step. + + +Python Interpreter +================== + +You will need Python 3.8, 3.9, or 3.10 installed on your system. If you +do not have one yet the easiest way to do that is to install +`Intel Distribution for Python*`_. It installs all essential Python numerical +and machine learning packages optimized for the Intel hardware, including +Data Parallel Extension for NumPy*. +If you have Python installation from another vendor, it is fine too. All you +need is to install Data Parallel Extension for NumPy* manually as shown +in the next installation section. + + +Installation +============ + +Install Package from Intel(R) channel +------------------------------------------- + +You will need one of the commands below: + +* Conda: ``conda install dpnp -c https://software.repos.intel.com/python/conda/ -c conda-forge`` + +* Pip: ``python -m pip install dpnp`` + +These commands install dpnp package along with its dependencies, including +``dpctl`` package with `Data Parallel Control Library`_ and all required +compiler runtimes and OneMKL. + +.. note:: + Before installing with conda or pip it is strongly advised to update ``conda`` and ``pip`` to latest versions + + +Build and Install Conda Package +------------------------------- + +Alternatively you can create and activate a local conda build environment: + +.. code-block:: bash + + conda create -n build-env conda-build + conda activate build-env + +And to build dpnp package from the sources: + +.. code-block:: bash + + conda build conda-recipe -c https://software.repos.intel.com/python/conda/ -c conda-forge + +Finally, to install the result package: + +.. code-block:: bash + + conda install dpnp -c local + + +Build and Install with scikit-build +----------------------------------- + +Another way to build and install dpnp package from the source is to use Python +``setuptools`` and ``scikit-build``. You will need to create a local conda +build environment by command below depending on hosting OS. + +On Linux: + +.. code-block:: bash + + conda create -n build-env dpctl cython dpcpp_linux-64 mkl-devel-dpcpp tbb-devel onedpl-devel cmake scikit-build ninja pytest -c https://software.repos.intel.com/python/conda/ -c conda-forge + conda activate build-env + +On Windows: + +.. code-block:: bash + + conda create -n build-env dpctl cython dpcpp_win-64 mkl-devel-dpcpp tbb-devel onedpl-devel cmake scikit-build ninja pytest -c https://software.repos.intel.com/python/conda/ -c conda-forge + conda activate build-env + +To build and install the package on Linux OS, run: + +.. code-block:: bash + + python setup.py install -- -G Ninja -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx + +To build and install the package on Windows OS, run: + +.. code-block:: bash + + python setup.py install -- -G Ninja -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icx + +Alternatively, to develop on Linux OS, you can use the driver script: + +.. code-block:: bash + + python scripts/build_locally.py + +Building for custom SYCL targets +-------------------------------- +Project ``dpnp`` is written using generic SYCL and supports building for multiple SYCL targets, +subject to limitations of `CodePlay `_ plugins implementing SYCL +programming model for classes of devices. + +Building ``dpnp`` for these targets requires that these CodePlay plugins be installed into DPC++ +installation layout of compatible version. The following plugins from CodePlay are supported: + + - `oneAPI for NVIDIA(R) GPUs `_ + +.. _codeplay_nv_plugin: https://developer.codeplay.com/products/oneapi/nvidia/ + +Building ``dpnp`` also requires `building Data Parallel Control Library for custom SYCL targets. +`_ + +Build ``dpnp`` as follows: + +.. code-block:: bash + + python scripts/build_locally.py --target=cuda + +Testing +======= + +If you want to execute the scope of Python test suites which are available +by the source, you will need to run a command as below: + +.. code-block:: bash + + pytest -s tests + +Examples +======== + +The examples below demonstrates a simple usage of the Data Parallel Extension for NumPy* + +.. literalinclude:: ../examples/example_sum.py + :linenos: + :language: python + :lines: 35- + :caption: How to create an array and to sum the elements + +.. literalinclude:: ../examples/example_cfd.py + :linenos: + :language: python + :lines: 34- + :caption: How to create an array on the specific device type and how the next computations follow it + +More examples on how to use ``dpnp`` can be found in ``dpnp/examples``. diff --git a/pull/2070/_sources/reference/binary.rst.txt b/pull/2070/_sources/reference/binary.rst.txt new file mode 100644 index 00000000000..8313d91aaa2 --- /dev/null +++ b/pull/2070/_sources/reference/binary.rst.txt @@ -0,0 +1,40 @@ +Binary Operations +================= + +.. https://docs.scipy.org/doc/numpy/reference/routines.bitwise.html + +Element-wise bit operations +--------------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.bitwise_and + dpnp.bitwise_not + dpnp.bitwise_or + dpnp.bitwise_xor + dpnp.invert + dpnp.left_shift + dpnp.right_shift + + +Bit packing +----------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.packbits + dpnp.unpackbits + + +Output formatting +----------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.binary_repr diff --git a/pull/2070/_sources/reference/comparison.rst.txt b/pull/2070/_sources/reference/comparison.rst.txt new file mode 100644 index 00000000000..d7157d8ff0b --- /dev/null +++ b/pull/2070/_sources/reference/comparison.rst.txt @@ -0,0 +1,8 @@ +Comparison Table NumPy/ DPNP/ CuPy +================================== + +Here is a list of NumPy and CuPy APIs and its corresponding DPNP implementations. + +``-`` in DPNP column means that DPNP implementation is not provided yet. + +.. include:: comparison_table.rst.inc diff --git a/pull/2070/_sources/reference/creation.rst.txt b/pull/2070/_sources/reference/creation.rst.txt new file mode 100644 index 00000000000..7937073408e --- /dev/null +++ b/pull/2070/_sources/reference/creation.rst.txt @@ -0,0 +1,86 @@ +.. _routines.creation: + +Array creation routines +======================= + +.. https://docs.scipy.org/doc/numpy/reference/routines.array-creation.html + +From shape or value +----------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.empty + dpnp.empty_like + dpnp.eye + dpnp.identity + dpnp.ones + dpnp.ones_like + dpnp.zeros + dpnp.zeros_like + dpnp.full + dpnp.full_like + + +From existing data +------------------------ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.array + dpnp.asarray + dpnp.asanyarray + dpnp.ascontiguousarray + dpnp.astype + dpnp.copy + dpnp.frombuffer + dpnp.from_dlpack + dpnp.fromfile + dpnp.fromfunction + dpnp.fromiter + dpnp.fromstring + dpnp.loadtxt + + +Numerical ranges +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.arange + dpnp.linspace + dpnp.logspace + dpnp.geomspace + dpnp.meshgrid + dpnp.mgrid + dpnp.ogrid + + +Building matrices +----------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.diag + dpnp.diagflat + dpnp.tri + dpnp.tril + dpnp.triu + dpnp.vander + + +The Matrix class +---------------- +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.bmat diff --git a/pull/2070/_sources/reference/dtype.rst.txt b/pull/2070/_sources/reference/dtype.rst.txt new file mode 100644 index 00000000000..93593455f90 --- /dev/null +++ b/pull/2070/_sources/reference/dtype.rst.txt @@ -0,0 +1,53 @@ +.. _dtype: + +Data type routines +================== + +.. https://docs.scipy.org/doc/numpy/reference/routines.dtype.html + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.can_cast + dpnp.promote_types + dpnp.min_scalar_type + dpnp.result_type + dpnp.common_type + dpnp.obj2sctype + +Creating data types +------------------- +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.dtype + dpnp.format_parser + +Data type information +--------------------- +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.finfo + dpnp.iinfo + +Data type testing +----------------- +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.isdtype + dpnp.issubdtype + +Miscellaneous +------------- +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.typename + dpnp.mintypecode diff --git a/pull/2070/_sources/reference/dtypes_table.rst.txt b/pull/2070/_sources/reference/dtypes_table.rst.txt new file mode 100644 index 00000000000..6d851da401a --- /dev/null +++ b/pull/2070/_sources/reference/dtypes_table.rst.txt @@ -0,0 +1,37 @@ +.. _Data types: + +Available array data types +========================== + +Table below shows a list of all supported data types (dtypes) and constants of the Data Parallel Extension for NumPy*. + +.. list-table:: + :header-rows: 1 + + * - Data Types + - Type aliases + - Constants + * - + - :obj:`bool ` + - :obj:`int32 ` + - :obj:`int64 ` + - :obj:`float32 ` + - :obj:`float64 ` + - :obj:`complex64 ` + - :obj:`complex128 ` + - + - :obj:`bool_ ` + - :obj:`cdouble ` + - :obj:`csingle ` + - :obj:`double ` + - :obj:`float16 ` + - :obj:`int ` + - :obj:`int_ ` + - :obj:`intc ` + - :obj:`single ` + - + - :obj:`e ` + - :obj:`euler_gamma ` + - :obj:`inf ` + - :obj:`nan ` + - :obj:`pi ` diff --git a/pull/2070/_sources/reference/fft.rst.txt b/pull/2070/_sources/reference/fft.rst.txt new file mode 100644 index 00000000000..1c2708aae5e --- /dev/null +++ b/pull/2070/_sources/reference/fft.rst.txt @@ -0,0 +1,68 @@ +.. module:: dpnp.fft + +FFT Functions +============= + +.. https://docs.scipy.org/doc/numpy/reference/routines.fft.html + +Standard FFTs +------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + fft + ifft + fft2 + ifft2 + fftn + ifftn + + +Real FFTs +--------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + rfft + irfft + rfft2 + irfft2 + rfftn + irfftn + + +Hermitian FFTs +-------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + hfft + ihfft + + +Helper routines +--------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + fftfreq + rfftfreq + fftshift + ifftshift + + .. fft.config module is not implemented yet + .. dpnp.fft.config.set_cufft_callbacks + .. dpnp.fft.config.set_cufft_gpus + .. dpnp.fft.config.get_plan_cache + .. dpnp.fft.config.show_plan_cache_info + +.. automodule:: dpnp.fft + :no-index: diff --git a/pull/2070/_sources/reference/generated/dpnp.abs.rst.txt b/pull/2070/_sources/reference/generated/dpnp.abs.rst.txt new file mode 100644 index 00000000000..90c5b1a005b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.abs.rst.txt @@ -0,0 +1,6 @@ +dpnp.abs +======== + +.. currentmodule:: dpnp + +.. autofunction:: abs \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.absolute.rst.txt b/pull/2070/_sources/reference/generated/dpnp.absolute.rst.txt new file mode 100644 index 00000000000..589d92b90de --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.absolute.rst.txt @@ -0,0 +1,6 @@ +dpnp.absolute +============= + +.. currentmodule:: dpnp + +.. autofunction:: absolute \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.acos.rst.txt b/pull/2070/_sources/reference/generated/dpnp.acos.rst.txt new file mode 100644 index 00000000000..69f3a75d88d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.acos.rst.txt @@ -0,0 +1,6 @@ +dpnp.acos +========= + +.. currentmodule:: dpnp + +.. autofunction:: acos \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.acosh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.acosh.rst.txt new file mode 100644 index 00000000000..f9cb3669f73 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.acosh.rst.txt @@ -0,0 +1,6 @@ +dpnp.acosh +========== + +.. currentmodule:: dpnp + +.. autofunction:: acosh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.add.rst.txt b/pull/2070/_sources/reference/generated/dpnp.add.rst.txt new file mode 100644 index 00000000000..b000529a9d5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.add.rst.txt @@ -0,0 +1,6 @@ +dpnp.add +======== + +.. currentmodule:: dpnp + +.. autofunction:: add \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.all.rst.txt b/pull/2070/_sources/reference/generated/dpnp.all.rst.txt new file mode 100644 index 00000000000..cd7db1456cc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.all.rst.txt @@ -0,0 +1,6 @@ +dpnp.all +======== + +.. currentmodule:: dpnp + +.. autofunction:: all \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.allclose.rst.txt b/pull/2070/_sources/reference/generated/dpnp.allclose.rst.txt new file mode 100644 index 00000000000..e1577292dd5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.allclose.rst.txt @@ -0,0 +1,6 @@ +dpnp.allclose +============= + +.. currentmodule:: dpnp + +.. autofunction:: allclose \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.amax.rst.txt b/pull/2070/_sources/reference/generated/dpnp.amax.rst.txt new file mode 100644 index 00000000000..a665d227e68 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.amax.rst.txt @@ -0,0 +1,6 @@ +dpnp.amax +========= + +.. currentmodule:: dpnp + +.. autofunction:: amax \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.amin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.amin.rst.txt new file mode 100644 index 00000000000..1035117cf73 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.amin.rst.txt @@ -0,0 +1,6 @@ +dpnp.amin +========= + +.. currentmodule:: dpnp + +.. autofunction:: amin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.angle.rst.txt b/pull/2070/_sources/reference/generated/dpnp.angle.rst.txt new file mode 100644 index 00000000000..7ddd7d57bd2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.angle.rst.txt @@ -0,0 +1,6 @@ +dpnp.angle +========== + +.. currentmodule:: dpnp + +.. autofunction:: angle \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.any.rst.txt b/pull/2070/_sources/reference/generated/dpnp.any.rst.txt new file mode 100644 index 00000000000..44b63a38afe --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.any.rst.txt @@ -0,0 +1,6 @@ +dpnp.any +======== + +.. currentmodule:: dpnp + +.. autofunction:: any \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.append.rst.txt b/pull/2070/_sources/reference/generated/dpnp.append.rst.txt new file mode 100644 index 00000000000..717115ceadc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.append.rst.txt @@ -0,0 +1,6 @@ +dpnp.append +=========== + +.. currentmodule:: dpnp + +.. autofunction:: append \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.arange.rst.txt b/pull/2070/_sources/reference/generated/dpnp.arange.rst.txt new file mode 100644 index 00000000000..400c4e0562f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.arange.rst.txt @@ -0,0 +1,6 @@ +dpnp.arange +=========== + +.. currentmodule:: dpnp + +.. autofunction:: arange \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.arccos.rst.txt b/pull/2070/_sources/reference/generated/dpnp.arccos.rst.txt new file mode 100644 index 00000000000..5f2733aa956 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.arccos.rst.txt @@ -0,0 +1,6 @@ +dpnp.arccos +=========== + +.. currentmodule:: dpnp + +.. autofunction:: arccos \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.arccosh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.arccosh.rst.txt new file mode 100644 index 00000000000..91cb2431013 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.arccosh.rst.txt @@ -0,0 +1,6 @@ +dpnp.arccosh +============ + +.. currentmodule:: dpnp + +.. autofunction:: arccosh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.arcsin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.arcsin.rst.txt new file mode 100644 index 00000000000..c1ec9c16d0b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.arcsin.rst.txt @@ -0,0 +1,6 @@ +dpnp.arcsin +=========== + +.. currentmodule:: dpnp + +.. autofunction:: arcsin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.arcsinh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.arcsinh.rst.txt new file mode 100644 index 00000000000..4c8121729f9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.arcsinh.rst.txt @@ -0,0 +1,6 @@ +dpnp.arcsinh +============ + +.. currentmodule:: dpnp + +.. autofunction:: arcsinh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.arctan.rst.txt b/pull/2070/_sources/reference/generated/dpnp.arctan.rst.txt new file mode 100644 index 00000000000..a0b72d887d9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.arctan.rst.txt @@ -0,0 +1,6 @@ +dpnp.arctan +=========== + +.. currentmodule:: dpnp + +.. autofunction:: arctan \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.arctan2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.arctan2.rst.txt new file mode 100644 index 00000000000..8983b34baeb --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.arctan2.rst.txt @@ -0,0 +1,6 @@ +dpnp.arctan2 +============ + +.. currentmodule:: dpnp + +.. autofunction:: arctan2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.arctanh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.arctanh.rst.txt new file mode 100644 index 00000000000..780b0d6dc2d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.arctanh.rst.txt @@ -0,0 +1,6 @@ +dpnp.arctanh +============ + +.. currentmodule:: dpnp + +.. autofunction:: arctanh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.argmax.rst.txt b/pull/2070/_sources/reference/generated/dpnp.argmax.rst.txt new file mode 100644 index 00000000000..1b154ac42b8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.argmax.rst.txt @@ -0,0 +1,6 @@ +dpnp.argmax +=========== + +.. currentmodule:: dpnp + +.. autofunction:: argmax \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.argmin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.argmin.rst.txt new file mode 100644 index 00000000000..274297a5025 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.argmin.rst.txt @@ -0,0 +1,6 @@ +dpnp.argmin +=========== + +.. currentmodule:: dpnp + +.. autofunction:: argmin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.argsort.rst.txt b/pull/2070/_sources/reference/generated/dpnp.argsort.rst.txt new file mode 100644 index 00000000000..ba93aa70927 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.argsort.rst.txt @@ -0,0 +1,6 @@ +dpnp.argsort +============ + +.. currentmodule:: dpnp + +.. autofunction:: argsort \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.argwhere.rst.txt b/pull/2070/_sources/reference/generated/dpnp.argwhere.rst.txt new file mode 100644 index 00000000000..94454ea09ef --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.argwhere.rst.txt @@ -0,0 +1,6 @@ +dpnp.argwhere +============= + +.. currentmodule:: dpnp + +.. autofunction:: argwhere \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.around.rst.txt b/pull/2070/_sources/reference/generated/dpnp.around.rst.txt new file mode 100644 index 00000000000..ae2765d0ab9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.around.rst.txt @@ -0,0 +1,6 @@ +dpnp.around +=========== + +.. currentmodule:: dpnp + +.. autofunction:: around \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.array.rst.txt b/pull/2070/_sources/reference/generated/dpnp.array.rst.txt new file mode 100644 index 00000000000..81eeb47d352 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.array.rst.txt @@ -0,0 +1,6 @@ +dpnp.array +========== + +.. currentmodule:: dpnp + +.. autofunction:: array \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.array_equal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.array_equal.rst.txt new file mode 100644 index 00000000000..ab551b51dcd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.array_equal.rst.txt @@ -0,0 +1,6 @@ +dpnp.array\_equal +================= + +.. currentmodule:: dpnp + +.. autofunction:: array_equal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.array_equiv.rst.txt b/pull/2070/_sources/reference/generated/dpnp.array_equiv.rst.txt new file mode 100644 index 00000000000..16000c12b3f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.array_equiv.rst.txt @@ -0,0 +1,6 @@ +dpnp.array\_equiv +================= + +.. currentmodule:: dpnp + +.. autofunction:: array_equiv \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.array_split.rst.txt b/pull/2070/_sources/reference/generated/dpnp.array_split.rst.txt new file mode 100644 index 00000000000..956604f5a04 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.array_split.rst.txt @@ -0,0 +1,6 @@ +dpnp.array\_split +================= + +.. currentmodule:: dpnp + +.. autofunction:: array_split \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.asanyarray.rst.txt b/pull/2070/_sources/reference/generated/dpnp.asanyarray.rst.txt new file mode 100644 index 00000000000..1c3156993f6 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.asanyarray.rst.txt @@ -0,0 +1,6 @@ +dpnp.asanyarray +=============== + +.. currentmodule:: dpnp + +.. autofunction:: asanyarray \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.asarray.rst.txt b/pull/2070/_sources/reference/generated/dpnp.asarray.rst.txt new file mode 100644 index 00000000000..aa5ee867e81 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.asarray.rst.txt @@ -0,0 +1,6 @@ +dpnp.asarray +============ + +.. currentmodule:: dpnp + +.. autofunction:: asarray \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.asarray_chkfinite.rst.txt b/pull/2070/_sources/reference/generated/dpnp.asarray_chkfinite.rst.txt new file mode 100644 index 00000000000..d078c61fc33 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.asarray_chkfinite.rst.txt @@ -0,0 +1,6 @@ +dpnp.asarray\_chkfinite +======================= + +.. currentmodule:: dpnp + +.. autofunction:: asarray_chkfinite \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ascontiguousarray.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ascontiguousarray.rst.txt new file mode 100644 index 00000000000..f6bd018db18 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ascontiguousarray.rst.txt @@ -0,0 +1,6 @@ +dpnp.ascontiguousarray +====================== + +.. currentmodule:: dpnp + +.. autofunction:: ascontiguousarray \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.asfarray.rst.txt b/pull/2070/_sources/reference/generated/dpnp.asfarray.rst.txt new file mode 100644 index 00000000000..e0b001b948c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.asfarray.rst.txt @@ -0,0 +1,6 @@ +dpnp.asfarray +============= + +.. currentmodule:: dpnp + +.. autofunction:: asfarray \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.asfortranarray.rst.txt b/pull/2070/_sources/reference/generated/dpnp.asfortranarray.rst.txt new file mode 100644 index 00000000000..913478f7bc4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.asfortranarray.rst.txt @@ -0,0 +1,6 @@ +dpnp.asfortranarray +=================== + +.. currentmodule:: dpnp + +.. autofunction:: asfortranarray \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.asin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.asin.rst.txt new file mode 100644 index 00000000000..94a52b6dd37 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.asin.rst.txt @@ -0,0 +1,6 @@ +dpnp.asin +========= + +.. currentmodule:: dpnp + +.. autofunction:: asin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.asinh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.asinh.rst.txt new file mode 100644 index 00000000000..68255ff51b4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.asinh.rst.txt @@ -0,0 +1,6 @@ +dpnp.asinh +========== + +.. currentmodule:: dpnp + +.. autofunction:: asinh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.asnumpy.rst.txt b/pull/2070/_sources/reference/generated/dpnp.asnumpy.rst.txt new file mode 100644 index 00000000000..ea01357615f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.asnumpy.rst.txt @@ -0,0 +1,6 @@ +dpnp.asnumpy +============ + +.. currentmodule:: dpnp + +.. autofunction:: asnumpy \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.astype.rst.txt b/pull/2070/_sources/reference/generated/dpnp.astype.rst.txt new file mode 100644 index 00000000000..63a0c05537a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.astype.rst.txt @@ -0,0 +1,6 @@ +dpnp.astype +=========== + +.. currentmodule:: dpnp + +.. autofunction:: astype \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.atan.rst.txt b/pull/2070/_sources/reference/generated/dpnp.atan.rst.txt new file mode 100644 index 00000000000..2ed00bfe3f0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.atan.rst.txt @@ -0,0 +1,6 @@ +dpnp.atan +========= + +.. currentmodule:: dpnp + +.. autofunction:: atan \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.atan2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.atan2.rst.txt new file mode 100644 index 00000000000..aaa209eb949 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.atan2.rst.txt @@ -0,0 +1,6 @@ +dpnp.atan2 +========== + +.. currentmodule:: dpnp + +.. autofunction:: atan2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.atanh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.atanh.rst.txt new file mode 100644 index 00000000000..3020c97e5a2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.atanh.rst.txt @@ -0,0 +1,6 @@ +dpnp.atanh +========== + +.. currentmodule:: dpnp + +.. autofunction:: atanh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.atleast_1d.rst.txt b/pull/2070/_sources/reference/generated/dpnp.atleast_1d.rst.txt new file mode 100644 index 00000000000..395b129ef9f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.atleast_1d.rst.txt @@ -0,0 +1,6 @@ +dpnp.atleast\_1d +================ + +.. currentmodule:: dpnp + +.. autofunction:: atleast_1d \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.atleast_2d.rst.txt b/pull/2070/_sources/reference/generated/dpnp.atleast_2d.rst.txt new file mode 100644 index 00000000000..9a27afc6dd0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.atleast_2d.rst.txt @@ -0,0 +1,6 @@ +dpnp.atleast\_2d +================ + +.. currentmodule:: dpnp + +.. autofunction:: atleast_2d \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.atleast_3d.rst.txt b/pull/2070/_sources/reference/generated/dpnp.atleast_3d.rst.txt new file mode 100644 index 00000000000..108495584d7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.atleast_3d.rst.txt @@ -0,0 +1,6 @@ +dpnp.atleast\_3d +================ + +.. currentmodule:: dpnp + +.. autofunction:: atleast_3d \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.average.rst.txt b/pull/2070/_sources/reference/generated/dpnp.average.rst.txt new file mode 100644 index 00000000000..e0342001502 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.average.rst.txt @@ -0,0 +1,6 @@ +dpnp.average +============ + +.. currentmodule:: dpnp + +.. autofunction:: average \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.bincount.rst.txt b/pull/2070/_sources/reference/generated/dpnp.bincount.rst.txt new file mode 100644 index 00000000000..c7244b2f246 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.bincount.rst.txt @@ -0,0 +1,6 @@ +dpnp.bincount +============= + +.. currentmodule:: dpnp + +.. autofunction:: bincount \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.bitwise_and.rst.txt b/pull/2070/_sources/reference/generated/dpnp.bitwise_and.rst.txt new file mode 100644 index 00000000000..b42fc287c83 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.bitwise_and.rst.txt @@ -0,0 +1,6 @@ +dpnp.bitwise\_and +================= + +.. currentmodule:: dpnp + +.. autofunction:: bitwise_and \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.bitwise_not.rst.txt b/pull/2070/_sources/reference/generated/dpnp.bitwise_not.rst.txt new file mode 100644 index 00000000000..bb70c75750f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.bitwise_not.rst.txt @@ -0,0 +1,6 @@ +dpnp.bitwise\_not +================= + +.. currentmodule:: dpnp + +.. autofunction:: bitwise_not \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.bitwise_or.rst.txt b/pull/2070/_sources/reference/generated/dpnp.bitwise_or.rst.txt new file mode 100644 index 00000000000..b49f7dc3544 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.bitwise_or.rst.txt @@ -0,0 +1,6 @@ +dpnp.bitwise\_or +================ + +.. currentmodule:: dpnp + +.. autofunction:: bitwise_or \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.bitwise_xor.rst.txt b/pull/2070/_sources/reference/generated/dpnp.bitwise_xor.rst.txt new file mode 100644 index 00000000000..767f61ce030 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.bitwise_xor.rst.txt @@ -0,0 +1,6 @@ +dpnp.bitwise\_xor +================= + +.. currentmodule:: dpnp + +.. autofunction:: bitwise_xor \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.broadcast_arrays.rst.txt b/pull/2070/_sources/reference/generated/dpnp.broadcast_arrays.rst.txt new file mode 100644 index 00000000000..60879c95128 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.broadcast_arrays.rst.txt @@ -0,0 +1,6 @@ +dpnp.broadcast\_arrays +====================== + +.. currentmodule:: dpnp + +.. autofunction:: broadcast_arrays \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.broadcast_to.rst.txt b/pull/2070/_sources/reference/generated/dpnp.broadcast_to.rst.txt new file mode 100644 index 00000000000..abd8c874848 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.broadcast_to.rst.txt @@ -0,0 +1,6 @@ +dpnp.broadcast\_to +================== + +.. currentmodule:: dpnp + +.. autofunction:: broadcast_to \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.can_cast.rst.txt b/pull/2070/_sources/reference/generated/dpnp.can_cast.rst.txt new file mode 100644 index 00000000000..5e766d0fef2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.can_cast.rst.txt @@ -0,0 +1,6 @@ +dpnp.can\_cast +============== + +.. currentmodule:: dpnp + +.. autofunction:: can_cast \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.cbrt.rst.txt b/pull/2070/_sources/reference/generated/dpnp.cbrt.rst.txt new file mode 100644 index 00000000000..a736de23ca2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.cbrt.rst.txt @@ -0,0 +1,6 @@ +dpnp.cbrt +========= + +.. currentmodule:: dpnp + +.. autofunction:: cbrt \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ceil.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ceil.rst.txt new file mode 100644 index 00000000000..4e876e6026f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ceil.rst.txt @@ -0,0 +1,6 @@ +dpnp.ceil +========= + +.. currentmodule:: dpnp + +.. autofunction:: ceil \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.choose.rst.txt b/pull/2070/_sources/reference/generated/dpnp.choose.rst.txt new file mode 100644 index 00000000000..b2c5118dec5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.choose.rst.txt @@ -0,0 +1,6 @@ +dpnp.choose +=========== + +.. currentmodule:: dpnp + +.. autofunction:: choose \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.clip.rst.txt b/pull/2070/_sources/reference/generated/dpnp.clip.rst.txt new file mode 100644 index 00000000000..1041d5868d7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.clip.rst.txt @@ -0,0 +1,6 @@ +dpnp.clip +========= + +.. currentmodule:: dpnp + +.. autofunction:: clip \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.column_stack.rst.txt b/pull/2070/_sources/reference/generated/dpnp.column_stack.rst.txt new file mode 100644 index 00000000000..c834105b488 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.column_stack.rst.txt @@ -0,0 +1,6 @@ +dpnp.column\_stack +================== + +.. currentmodule:: dpnp + +.. autofunction:: column_stack \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.concat.rst.txt b/pull/2070/_sources/reference/generated/dpnp.concat.rst.txt new file mode 100644 index 00000000000..ea61460bce0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.concat.rst.txt @@ -0,0 +1,6 @@ +dpnp.concat +=========== + +.. currentmodule:: dpnp + +.. autofunction:: concat \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.concatenate.rst.txt b/pull/2070/_sources/reference/generated/dpnp.concatenate.rst.txt new file mode 100644 index 00000000000..4d7eae6f372 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.concatenate.rst.txt @@ -0,0 +1,6 @@ +dpnp.concatenate +================ + +.. currentmodule:: dpnp + +.. autofunction:: concatenate \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.conj.rst.txt b/pull/2070/_sources/reference/generated/dpnp.conj.rst.txt new file mode 100644 index 00000000000..86740bafbdf --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.conj.rst.txt @@ -0,0 +1,6 @@ +dpnp.conj +========= + +.. currentmodule:: dpnp + +.. autofunction:: conj \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.conjugate.rst.txt b/pull/2070/_sources/reference/generated/dpnp.conjugate.rst.txt new file mode 100644 index 00000000000..e1855276529 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.conjugate.rst.txt @@ -0,0 +1,6 @@ +dpnp.conjugate +============== + +.. currentmodule:: dpnp + +.. autofunction:: conjugate \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.convolve.rst.txt b/pull/2070/_sources/reference/generated/dpnp.convolve.rst.txt new file mode 100644 index 00000000000..01d906a5509 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.convolve.rst.txt @@ -0,0 +1,6 @@ +dpnp.convolve +============= + +.. currentmodule:: dpnp + +.. autofunction:: convolve \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.copy.rst.txt b/pull/2070/_sources/reference/generated/dpnp.copy.rst.txt new file mode 100644 index 00000000000..631169d342c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.copy.rst.txt @@ -0,0 +1,6 @@ +dpnp.copy +========= + +.. currentmodule:: dpnp + +.. autofunction:: copy \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.copysign.rst.txt b/pull/2070/_sources/reference/generated/dpnp.copysign.rst.txt new file mode 100644 index 00000000000..d5669a30925 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.copysign.rst.txt @@ -0,0 +1,6 @@ +dpnp.copysign +============= + +.. currentmodule:: dpnp + +.. autofunction:: copysign \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.copyto.rst.txt b/pull/2070/_sources/reference/generated/dpnp.copyto.rst.txt new file mode 100644 index 00000000000..92394ae0614 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.copyto.rst.txt @@ -0,0 +1,6 @@ +dpnp.copyto +=========== + +.. currentmodule:: dpnp + +.. autofunction:: copyto \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.correlate.rst.txt b/pull/2070/_sources/reference/generated/dpnp.correlate.rst.txt new file mode 100644 index 00000000000..6dbf14c44c5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.correlate.rst.txt @@ -0,0 +1,6 @@ +dpnp.correlate +============== + +.. currentmodule:: dpnp + +.. autofunction:: correlate \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.cos.rst.txt b/pull/2070/_sources/reference/generated/dpnp.cos.rst.txt new file mode 100644 index 00000000000..c1670f5d110 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.cos.rst.txt @@ -0,0 +1,6 @@ +dpnp.cos +======== + +.. currentmodule:: dpnp + +.. autofunction:: cos \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.cosh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.cosh.rst.txt new file mode 100644 index 00000000000..67c50badec5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.cosh.rst.txt @@ -0,0 +1,6 @@ +dpnp.cosh +========= + +.. currentmodule:: dpnp + +.. autofunction:: cosh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.count_nonzero.rst.txt b/pull/2070/_sources/reference/generated/dpnp.count_nonzero.rst.txt new file mode 100644 index 00000000000..dd473c8f9bf --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.count_nonzero.rst.txt @@ -0,0 +1,6 @@ +dpnp.count\_nonzero +=================== + +.. currentmodule:: dpnp + +.. autofunction:: count_nonzero \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.cov.rst.txt b/pull/2070/_sources/reference/generated/dpnp.cov.rst.txt new file mode 100644 index 00000000000..4b75831afff --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.cov.rst.txt @@ -0,0 +1,6 @@ +dpnp.cov +======== + +.. currentmodule:: dpnp + +.. autofunction:: cov \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.cross.rst.txt b/pull/2070/_sources/reference/generated/dpnp.cross.rst.txt new file mode 100644 index 00000000000..5964235757f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.cross.rst.txt @@ -0,0 +1,6 @@ +dpnp.cross +========== + +.. currentmodule:: dpnp + +.. autofunction:: cross \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.cumlogsumexp.rst.txt b/pull/2070/_sources/reference/generated/dpnp.cumlogsumexp.rst.txt new file mode 100644 index 00000000000..9e3461bbd06 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.cumlogsumexp.rst.txt @@ -0,0 +1,6 @@ +dpnp.cumlogsumexp +================= + +.. currentmodule:: dpnp + +.. autofunction:: cumlogsumexp \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.cumprod.rst.txt b/pull/2070/_sources/reference/generated/dpnp.cumprod.rst.txt new file mode 100644 index 00000000000..6f8f3214084 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.cumprod.rst.txt @@ -0,0 +1,6 @@ +dpnp.cumprod +============ + +.. currentmodule:: dpnp + +.. autofunction:: cumprod \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.cumsum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.cumsum.rst.txt new file mode 100644 index 00000000000..6cf552f93c3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.cumsum.rst.txt @@ -0,0 +1,6 @@ +dpnp.cumsum +=========== + +.. currentmodule:: dpnp + +.. autofunction:: cumsum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.deg2rad.rst.txt b/pull/2070/_sources/reference/generated/dpnp.deg2rad.rst.txt new file mode 100644 index 00000000000..78f5f34f730 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.deg2rad.rst.txt @@ -0,0 +1,6 @@ +dpnp.deg2rad +============ + +.. currentmodule:: dpnp + +.. autofunction:: deg2rad \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.degrees.rst.txt b/pull/2070/_sources/reference/generated/dpnp.degrees.rst.txt new file mode 100644 index 00000000000..cf18ac53411 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.degrees.rst.txt @@ -0,0 +1,6 @@ +dpnp.degrees +============ + +.. currentmodule:: dpnp + +.. autofunction:: degrees \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.diag.rst.txt b/pull/2070/_sources/reference/generated/dpnp.diag.rst.txt new file mode 100644 index 00000000000..36f36dbe5fb --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.diag.rst.txt @@ -0,0 +1,6 @@ +dpnp.diag +========= + +.. currentmodule:: dpnp + +.. autofunction:: diag \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.diag_indices.rst.txt b/pull/2070/_sources/reference/generated/dpnp.diag_indices.rst.txt new file mode 100644 index 00000000000..9376c32a8a7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.diag_indices.rst.txt @@ -0,0 +1,6 @@ +dpnp.diag\_indices +================== + +.. currentmodule:: dpnp + +.. autofunction:: diag_indices \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.diag_indices_from.rst.txt b/pull/2070/_sources/reference/generated/dpnp.diag_indices_from.rst.txt new file mode 100644 index 00000000000..34a24716fe0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.diag_indices_from.rst.txt @@ -0,0 +1,6 @@ +dpnp.diag\_indices\_from +======================== + +.. currentmodule:: dpnp + +.. autofunction:: diag_indices_from \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.diagflat.rst.txt b/pull/2070/_sources/reference/generated/dpnp.diagflat.rst.txt new file mode 100644 index 00000000000..4298d679f15 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.diagflat.rst.txt @@ -0,0 +1,6 @@ +dpnp.diagflat +============= + +.. currentmodule:: dpnp + +.. autofunction:: diagflat \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.diagonal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.diagonal.rst.txt new file mode 100644 index 00000000000..e6097c4bd1a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.diagonal.rst.txt @@ -0,0 +1,6 @@ +dpnp.diagonal +============= + +.. currentmodule:: dpnp + +.. autofunction:: diagonal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.diff.rst.txt b/pull/2070/_sources/reference/generated/dpnp.diff.rst.txt new file mode 100644 index 00000000000..86eb358c922 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.diff.rst.txt @@ -0,0 +1,6 @@ +dpnp.diff +========= + +.. currentmodule:: dpnp + +.. autofunction:: diff \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.digitize.rst.txt b/pull/2070/_sources/reference/generated/dpnp.digitize.rst.txt new file mode 100644 index 00000000000..c392138f687 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.digitize.rst.txt @@ -0,0 +1,6 @@ +dpnp.digitize +============= + +.. currentmodule:: dpnp + +.. autofunction:: digitize \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.divide.rst.txt b/pull/2070/_sources/reference/generated/dpnp.divide.rst.txt new file mode 100644 index 00000000000..de00ee18d9e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.divide.rst.txt @@ -0,0 +1,6 @@ +dpnp.divide +=========== + +.. currentmodule:: dpnp + +.. autofunction:: divide \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.dot.rst.txt b/pull/2070/_sources/reference/generated/dpnp.dot.rst.txt new file mode 100644 index 00000000000..086758ea240 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.dot.rst.txt @@ -0,0 +1,6 @@ +dpnp.dot +======== + +.. currentmodule:: dpnp + +.. autofunction:: dot \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.dpnp_array.dpnp_array.rst.txt b/pull/2070/_sources/reference/generated/dpnp.dpnp_array.dpnp_array.rst.txt new file mode 100644 index 00000000000..6929123182e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.dpnp_array.dpnp_array.rst.txt @@ -0,0 +1,212 @@ +dpnp.dpnp_array.dpnp_array +========================== + +.. currentmodule:: dpnp.dpnp_array + +.. autoclass:: dpnp_array + + .. + Methods + + + + .. rubric:: Methods + + .. + Special methods + + + + .. automethod:: __getitem__ + + + .. automethod:: __setitem__ + + + .. automethod:: __len__ + + + + + .. + Ordinary methods + + + + + .. automethod:: all + + + .. automethod:: any + + + .. automethod:: argmax + + + .. automethod:: argmin + + + .. automethod:: argsort + + + .. automethod:: asnumpy + + + .. automethod:: astype + + + .. automethod:: choose + + + .. automethod:: clip + + + .. automethod:: conj + + + .. automethod:: conjugate + + + .. automethod:: copy + + + .. automethod:: cumprod + + + .. automethod:: cumsum + + + .. automethod:: diagonal + + + .. automethod:: dot + + + .. automethod:: fill + + + .. automethod:: flatten + + + .. automethod:: get_array + + + .. automethod:: item + + + .. automethod:: max + + + .. automethod:: mean + + + .. automethod:: min + + + .. automethod:: nonzero + + + .. automethod:: partition + + + .. automethod:: prod + + + .. automethod:: put + + + .. automethod:: ravel + + + .. automethod:: repeat + + + .. automethod:: reshape + + + .. automethod:: round + + + .. automethod:: searchsorted + + + .. automethod:: sort + + + .. automethod:: squeeze + + + .. automethod:: std + + + .. automethod:: sum + + + .. automethod:: swapaxes + + + .. automethod:: take + + + .. automethod:: to_device + + + .. automethod:: trace + + + .. automethod:: transpose + + + .. automethod:: var + + + .. + Special methods + + + + .. automethod:: __eq__ + + + .. automethod:: __ne__ + + + .. automethod:: __lt__ + + + .. automethod:: __le__ + + + .. automethod:: __gt__ + + + .. automethod:: __ge__ + + + + .. + Attributes + + + + .. rubric:: Attributes + + + .. autoattribute:: T + .. autoattribute:: device + .. autoattribute:: dtype + .. autoattribute:: flags + .. autoattribute:: flat + .. autoattribute:: imag + .. autoattribute:: itemsize + .. autoattribute:: nbytes + .. autoattribute:: ndim + .. autoattribute:: real + .. autoattribute:: shape + .. autoattribute:: size + .. autoattribute:: strides + .. autoattribute:: sycl_context + .. autoattribute:: sycl_device + .. autoattribute:: sycl_queue + .. autoattribute:: usm_type + \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.dsplit.rst.txt b/pull/2070/_sources/reference/generated/dpnp.dsplit.rst.txt new file mode 100644 index 00000000000..d28cde4b738 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.dsplit.rst.txt @@ -0,0 +1,6 @@ +dpnp.dsplit +=========== + +.. currentmodule:: dpnp + +.. autofunction:: dsplit \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.dstack.rst.txt b/pull/2070/_sources/reference/generated/dpnp.dstack.rst.txt new file mode 100644 index 00000000000..ebf1650f0fb --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.dstack.rst.txt @@ -0,0 +1,6 @@ +dpnp.dstack +=========== + +.. currentmodule:: dpnp + +.. autofunction:: dstack \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.dtype.rst.txt b/pull/2070/_sources/reference/generated/dpnp.dtype.rst.txt new file mode 100644 index 00000000000..6e516c28185 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.dtype.rst.txt @@ -0,0 +1,92 @@ +dpnp.dtype +========== + +.. currentmodule:: dpnp + +.. autoclass:: dtype + + .. + Methods + + + + .. rubric:: Methods + + .. + Special methods + + + + .. automethod:: __getitem__ + + + + .. automethod:: __len__ + + + + + .. + Ordinary methods + + + + + .. automethod:: newbyteorder + + + .. + Special methods + + + + .. automethod:: __eq__ + + + .. automethod:: __ne__ + + + .. automethod:: __lt__ + + + .. automethod:: __le__ + + + .. automethod:: __gt__ + + + .. automethod:: __ge__ + + + + .. + Attributes + + + + .. rubric:: Attributes + + + .. autoattribute:: alignment + .. autoattribute:: base + .. autoattribute:: byteorder + .. autoattribute:: char + .. autoattribute:: descr + .. autoattribute:: fields + .. autoattribute:: flags + .. autoattribute:: hasobject + .. autoattribute:: isalignedstruct + .. autoattribute:: isbuiltin + .. autoattribute:: isnative + .. autoattribute:: itemsize + .. autoattribute:: kind + .. autoattribute:: metadata + .. autoattribute:: name + .. autoattribute:: names + .. autoattribute:: ndim + .. autoattribute:: num + .. autoattribute:: shape + .. autoattribute:: str + .. autoattribute:: subdtype + .. autoattribute:: type + \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ediff1d.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ediff1d.rst.txt new file mode 100644 index 00000000000..5b821905e42 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ediff1d.rst.txt @@ -0,0 +1,6 @@ +dpnp.ediff1d +============ + +.. currentmodule:: dpnp + +.. autofunction:: ediff1d \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.einsum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.einsum.rst.txt new file mode 100644 index 00000000000..98810b357d4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.einsum.rst.txt @@ -0,0 +1,6 @@ +dpnp.einsum +=========== + +.. currentmodule:: dpnp + +.. autofunction:: einsum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.einsum_path.rst.txt b/pull/2070/_sources/reference/generated/dpnp.einsum_path.rst.txt new file mode 100644 index 00000000000..b400fcbd349 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.einsum_path.rst.txt @@ -0,0 +1,6 @@ +dpnp.einsum\_path +================= + +.. currentmodule:: dpnp + +.. autofunction:: einsum_path \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.empty.rst.txt b/pull/2070/_sources/reference/generated/dpnp.empty.rst.txt new file mode 100644 index 00000000000..7692b2ca890 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.empty.rst.txt @@ -0,0 +1,6 @@ +dpnp.empty +========== + +.. currentmodule:: dpnp + +.. autofunction:: empty \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.empty_like.rst.txt b/pull/2070/_sources/reference/generated/dpnp.empty_like.rst.txt new file mode 100644 index 00000000000..e95d27e657c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.empty_like.rst.txt @@ -0,0 +1,6 @@ +dpnp.empty\_like +================ + +.. currentmodule:: dpnp + +.. autofunction:: empty_like \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.equal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.equal.rst.txt new file mode 100644 index 00000000000..9dde0e9fe86 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.equal.rst.txt @@ -0,0 +1,6 @@ +dpnp.equal +========== + +.. currentmodule:: dpnp + +.. autofunction:: equal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.erf.rst.txt b/pull/2070/_sources/reference/generated/dpnp.erf.rst.txt new file mode 100644 index 00000000000..0e440d7bea1 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.erf.rst.txt @@ -0,0 +1,6 @@ +dpnp.erf +======== + +.. currentmodule:: dpnp + +.. autofunction:: erf \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.exp.rst.txt b/pull/2070/_sources/reference/generated/dpnp.exp.rst.txt new file mode 100644 index 00000000000..f576f3b6dc0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.exp.rst.txt @@ -0,0 +1,6 @@ +dpnp.exp +======== + +.. currentmodule:: dpnp + +.. autofunction:: exp \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.exp2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.exp2.rst.txt new file mode 100644 index 00000000000..e9399b7cb24 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.exp2.rst.txt @@ -0,0 +1,6 @@ +dpnp.exp2 +========= + +.. currentmodule:: dpnp + +.. autofunction:: exp2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.expand_dims.rst.txt b/pull/2070/_sources/reference/generated/dpnp.expand_dims.rst.txt new file mode 100644 index 00000000000..8ccdcef3c6e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.expand_dims.rst.txt @@ -0,0 +1,6 @@ +dpnp.expand\_dims +================= + +.. currentmodule:: dpnp + +.. autofunction:: expand_dims \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.expm1.rst.txt b/pull/2070/_sources/reference/generated/dpnp.expm1.rst.txt new file mode 100644 index 00000000000..c5d423b2f2d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.expm1.rst.txt @@ -0,0 +1,6 @@ +dpnp.expm1 +========== + +.. currentmodule:: dpnp + +.. autofunction:: expm1 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.extract.rst.txt b/pull/2070/_sources/reference/generated/dpnp.extract.rst.txt new file mode 100644 index 00000000000..e36c766175c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.extract.rst.txt @@ -0,0 +1,6 @@ +dpnp.extract +============ + +.. currentmodule:: dpnp + +.. autofunction:: extract \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.eye.rst.txt b/pull/2070/_sources/reference/generated/dpnp.eye.rst.txt new file mode 100644 index 00000000000..c9d1eb107b9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.eye.rst.txt @@ -0,0 +1,6 @@ +dpnp.eye +======== + +.. currentmodule:: dpnp + +.. autofunction:: eye \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fabs.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fabs.rst.txt new file mode 100644 index 00000000000..2cfc13e52a3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fabs.rst.txt @@ -0,0 +1,6 @@ +dpnp.fabs +========= + +.. currentmodule:: dpnp + +.. autofunction:: fabs \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.fft.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.fft.rst.txt new file mode 100644 index 00000000000..497216ecd69 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.fft.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.fft +============ + +.. currentmodule:: dpnp.fft + +.. autofunction:: fft \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.fft2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.fft2.rst.txt new file mode 100644 index 00000000000..6bf65df5614 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.fft2.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.fft2 +============= + +.. currentmodule:: dpnp.fft + +.. autofunction:: fft2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.fftfreq.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.fftfreq.rst.txt new file mode 100644 index 00000000000..13ce2bb0004 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.fftfreq.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.fftfreq +================ + +.. currentmodule:: dpnp.fft + +.. autofunction:: fftfreq \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.fftn.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.fftn.rst.txt new file mode 100644 index 00000000000..faccb416102 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.fftn.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.fftn +============= + +.. currentmodule:: dpnp.fft + +.. autofunction:: fftn \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.fftshift.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.fftshift.rst.txt new file mode 100644 index 00000000000..6ed65744393 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.fftshift.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.fftshift +================= + +.. currentmodule:: dpnp.fft + +.. autofunction:: fftshift \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.hfft.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.hfft.rst.txt new file mode 100644 index 00000000000..8cd6c007f82 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.hfft.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.hfft +============= + +.. currentmodule:: dpnp.fft + +.. autofunction:: hfft \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.ifft.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.ifft.rst.txt new file mode 100644 index 00000000000..7a50520300d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.ifft.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.ifft +============= + +.. currentmodule:: dpnp.fft + +.. autofunction:: ifft \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.ifft2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.ifft2.rst.txt new file mode 100644 index 00000000000..a367d7154dd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.ifft2.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.ifft2 +============== + +.. currentmodule:: dpnp.fft + +.. autofunction:: ifft2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.ifftn.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.ifftn.rst.txt new file mode 100644 index 00000000000..c864c4c56e9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.ifftn.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.ifftn +============== + +.. currentmodule:: dpnp.fft + +.. autofunction:: ifftn \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.ifftshift.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.ifftshift.rst.txt new file mode 100644 index 00000000000..52b799ff6e4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.ifftshift.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.ifftshift +================== + +.. currentmodule:: dpnp.fft + +.. autofunction:: ifftshift \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.ihfft.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.ihfft.rst.txt new file mode 100644 index 00000000000..3a752528648 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.ihfft.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.ihfft +============== + +.. currentmodule:: dpnp.fft + +.. autofunction:: ihfft \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.irfft.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.irfft.rst.txt new file mode 100644 index 00000000000..f2311bcb97e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.irfft.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.irfft +============== + +.. currentmodule:: dpnp.fft + +.. autofunction:: irfft \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.irfft2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.irfft2.rst.txt new file mode 100644 index 00000000000..7adb7b88ea3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.irfft2.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.irfft2 +=============== + +.. currentmodule:: dpnp.fft + +.. autofunction:: irfft2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.irfftn.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.irfftn.rst.txt new file mode 100644 index 00000000000..2278f4e8d2b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.irfftn.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.irfftn +=============== + +.. currentmodule:: dpnp.fft + +.. autofunction:: irfftn \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.rfft.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.rfft.rst.txt new file mode 100644 index 00000000000..16bd423afd3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.rfft.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.rfft +============= + +.. currentmodule:: dpnp.fft + +.. autofunction:: rfft \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.rfft2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.rfft2.rst.txt new file mode 100644 index 00000000000..413be13c045 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.rfft2.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.rfft2 +============== + +.. currentmodule:: dpnp.fft + +.. autofunction:: rfft2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.rfftfreq.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.rfftfreq.rst.txt new file mode 100644 index 00000000000..cc8916759d1 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.rfftfreq.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.rfftfreq +================= + +.. currentmodule:: dpnp.fft + +.. autofunction:: rfftfreq \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fft.rfftn.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fft.rfftn.rst.txt new file mode 100644 index 00000000000..d477c0e4ff8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fft.rfftn.rst.txt @@ -0,0 +1,6 @@ +dpnp.fft.rfftn +============== + +.. currentmodule:: dpnp.fft + +.. autofunction:: rfftn \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fill_diagonal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fill_diagonal.rst.txt new file mode 100644 index 00000000000..b18608106da --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fill_diagonal.rst.txt @@ -0,0 +1,6 @@ +dpnp.fill\_diagonal +=================== + +.. currentmodule:: dpnp + +.. autofunction:: fill_diagonal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.finfo.rst.txt b/pull/2070/_sources/reference/generated/dpnp.finfo.rst.txt new file mode 100644 index 00000000000..b78f2229c4e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.finfo.rst.txt @@ -0,0 +1,6 @@ +dpnp.finfo +========== + +.. currentmodule:: dpnp + +.. autofunction:: finfo \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fix.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fix.rst.txt new file mode 100644 index 00000000000..9f92492eef4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fix.rst.txt @@ -0,0 +1,6 @@ +dpnp.fix +======== + +.. currentmodule:: dpnp + +.. autofunction:: fix \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.flatiter.rst.txt b/pull/2070/_sources/reference/generated/dpnp.flatiter.rst.txt new file mode 100644 index 00000000000..2bf5e22e4ef --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.flatiter.rst.txt @@ -0,0 +1,66 @@ +dpnp.flatiter +============= + +.. currentmodule:: dpnp + +.. autoclass:: flatiter + + .. + Methods + + + + .. rubric:: Methods + + .. + Special methods + + + + .. automethod:: __getitem__ + + + .. automethod:: __setitem__ + + + + .. automethod:: __next__ + + + .. automethod:: __iter__ + + + .. + Ordinary methods + + + + + .. + Special methods + + + + .. automethod:: __eq__ + + + .. automethod:: __ne__ + + + .. automethod:: __lt__ + + + .. automethod:: __le__ + + + .. automethod:: __gt__ + + + .. automethod:: __ge__ + + + + .. + Attributes + + \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.flatnonzero.rst.txt b/pull/2070/_sources/reference/generated/dpnp.flatnonzero.rst.txt new file mode 100644 index 00000000000..ee794bc2d7c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.flatnonzero.rst.txt @@ -0,0 +1,6 @@ +dpnp.flatnonzero +================ + +.. currentmodule:: dpnp + +.. autofunction:: flatnonzero \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.flip.rst.txt b/pull/2070/_sources/reference/generated/dpnp.flip.rst.txt new file mode 100644 index 00000000000..4fc944bbe82 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.flip.rst.txt @@ -0,0 +1,6 @@ +dpnp.flip +========= + +.. currentmodule:: dpnp + +.. autofunction:: flip \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fliplr.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fliplr.rst.txt new file mode 100644 index 00000000000..c94d189fbea --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fliplr.rst.txt @@ -0,0 +1,6 @@ +dpnp.fliplr +=========== + +.. currentmodule:: dpnp + +.. autofunction:: fliplr \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.flipud.rst.txt b/pull/2070/_sources/reference/generated/dpnp.flipud.rst.txt new file mode 100644 index 00000000000..1af91a52245 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.flipud.rst.txt @@ -0,0 +1,6 @@ +dpnp.flipud +=========== + +.. currentmodule:: dpnp + +.. autofunction:: flipud \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.float_power.rst.txt b/pull/2070/_sources/reference/generated/dpnp.float_power.rst.txt new file mode 100644 index 00000000000..f7a406beceb --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.float_power.rst.txt @@ -0,0 +1,6 @@ +dpnp.float\_power +================= + +.. currentmodule:: dpnp + +.. autofunction:: float_power \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.floor.rst.txt b/pull/2070/_sources/reference/generated/dpnp.floor.rst.txt new file mode 100644 index 00000000000..06ae88a65cd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.floor.rst.txt @@ -0,0 +1,6 @@ +dpnp.floor +========== + +.. currentmodule:: dpnp + +.. autofunction:: floor \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.floor_divide.rst.txt b/pull/2070/_sources/reference/generated/dpnp.floor_divide.rst.txt new file mode 100644 index 00000000000..3f36fd1e220 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.floor_divide.rst.txt @@ -0,0 +1,6 @@ +dpnp.floor\_divide +================== + +.. currentmodule:: dpnp + +.. autofunction:: floor_divide \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fmax.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fmax.rst.txt new file mode 100644 index 00000000000..5939b03d7b9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fmax.rst.txt @@ -0,0 +1,6 @@ +dpnp.fmax +========= + +.. currentmodule:: dpnp + +.. autofunction:: fmax \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fmin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fmin.rst.txt new file mode 100644 index 00000000000..99cfab5ca2f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fmin.rst.txt @@ -0,0 +1,6 @@ +dpnp.fmin +========= + +.. currentmodule:: dpnp + +.. autofunction:: fmin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fmod.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fmod.rst.txt new file mode 100644 index 00000000000..44d15df0c13 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fmod.rst.txt @@ -0,0 +1,6 @@ +dpnp.fmod +========= + +.. currentmodule:: dpnp + +.. autofunction:: fmod \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.from_dlpack.rst.txt b/pull/2070/_sources/reference/generated/dpnp.from_dlpack.rst.txt new file mode 100644 index 00000000000..e6ae8858cc7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.from_dlpack.rst.txt @@ -0,0 +1,6 @@ +dpnp.from\_dlpack +================= + +.. currentmodule:: dpnp + +.. autofunction:: from_dlpack \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.frombuffer.rst.txt b/pull/2070/_sources/reference/generated/dpnp.frombuffer.rst.txt new file mode 100644 index 00000000000..b561bf650d2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.frombuffer.rst.txt @@ -0,0 +1,6 @@ +dpnp.frombuffer +=============== + +.. currentmodule:: dpnp + +.. autofunction:: frombuffer \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fromfile.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fromfile.rst.txt new file mode 100644 index 00000000000..239e6b4eb98 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fromfile.rst.txt @@ -0,0 +1,6 @@ +dpnp.fromfile +============= + +.. currentmodule:: dpnp + +.. autofunction:: fromfile \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fromfunction.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fromfunction.rst.txt new file mode 100644 index 00000000000..c60497c6444 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fromfunction.rst.txt @@ -0,0 +1,6 @@ +dpnp.fromfunction +================= + +.. currentmodule:: dpnp + +.. autofunction:: fromfunction \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fromiter.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fromiter.rst.txt new file mode 100644 index 00000000000..ba4edc620fb --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fromiter.rst.txt @@ -0,0 +1,6 @@ +dpnp.fromiter +============= + +.. currentmodule:: dpnp + +.. autofunction:: fromiter \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.fromstring.rst.txt b/pull/2070/_sources/reference/generated/dpnp.fromstring.rst.txt new file mode 100644 index 00000000000..ee4d8085ea6 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.fromstring.rst.txt @@ -0,0 +1,6 @@ +dpnp.fromstring +=============== + +.. currentmodule:: dpnp + +.. autofunction:: fromstring \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.full.rst.txt b/pull/2070/_sources/reference/generated/dpnp.full.rst.txt new file mode 100644 index 00000000000..064482b3eff --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.full.rst.txt @@ -0,0 +1,6 @@ +dpnp.full +========= + +.. currentmodule:: dpnp + +.. autofunction:: full \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.full_like.rst.txt b/pull/2070/_sources/reference/generated/dpnp.full_like.rst.txt new file mode 100644 index 00000000000..e62be5aa765 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.full_like.rst.txt @@ -0,0 +1,6 @@ +dpnp.full\_like +=============== + +.. currentmodule:: dpnp + +.. autofunction:: full_like \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.geomspace.rst.txt b/pull/2070/_sources/reference/generated/dpnp.geomspace.rst.txt new file mode 100644 index 00000000000..f50e995cdc2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.geomspace.rst.txt @@ -0,0 +1,6 @@ +dpnp.geomspace +============== + +.. currentmodule:: dpnp + +.. autofunction:: geomspace \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.get_include.rst.txt b/pull/2070/_sources/reference/generated/dpnp.get_include.rst.txt new file mode 100644 index 00000000000..dc14dbf1ddf --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.get_include.rst.txt @@ -0,0 +1,6 @@ +dpnp.get\_include +================= + +.. currentmodule:: dpnp + +.. autofunction:: get_include \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.gradient.rst.txt b/pull/2070/_sources/reference/generated/dpnp.gradient.rst.txt new file mode 100644 index 00000000000..a4fff695f13 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.gradient.rst.txt @@ -0,0 +1,6 @@ +dpnp.gradient +============= + +.. currentmodule:: dpnp + +.. autofunction:: gradient \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.greater.rst.txt b/pull/2070/_sources/reference/generated/dpnp.greater.rst.txt new file mode 100644 index 00000000000..5795f156267 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.greater.rst.txt @@ -0,0 +1,6 @@ +dpnp.greater +============ + +.. currentmodule:: dpnp + +.. autofunction:: greater \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.greater_equal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.greater_equal.rst.txt new file mode 100644 index 00000000000..f54b91e290a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.greater_equal.rst.txt @@ -0,0 +1,6 @@ +dpnp.greater\_equal +=================== + +.. currentmodule:: dpnp + +.. autofunction:: greater_equal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.heaviside.rst.txt b/pull/2070/_sources/reference/generated/dpnp.heaviside.rst.txt new file mode 100644 index 00000000000..c8c849b0ecf --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.heaviside.rst.txt @@ -0,0 +1,6 @@ +dpnp.heaviside +============== + +.. currentmodule:: dpnp + +.. autofunction:: heaviside \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.histogram.rst.txt b/pull/2070/_sources/reference/generated/dpnp.histogram.rst.txt new file mode 100644 index 00000000000..19d2e143a68 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.histogram.rst.txt @@ -0,0 +1,6 @@ +dpnp.histogram +============== + +.. currentmodule:: dpnp + +.. autofunction:: histogram \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.histogram_bin_edges.rst.txt b/pull/2070/_sources/reference/generated/dpnp.histogram_bin_edges.rst.txt new file mode 100644 index 00000000000..442e63fb5eb --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.histogram_bin_edges.rst.txt @@ -0,0 +1,6 @@ +dpnp.histogram\_bin\_edges +========================== + +.. currentmodule:: dpnp + +.. autofunction:: histogram_bin_edges \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.hsplit.rst.txt b/pull/2070/_sources/reference/generated/dpnp.hsplit.rst.txt new file mode 100644 index 00000000000..9e04c62dec5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.hsplit.rst.txt @@ -0,0 +1,6 @@ +dpnp.hsplit +=========== + +.. currentmodule:: dpnp + +.. autofunction:: hsplit \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.hstack.rst.txt b/pull/2070/_sources/reference/generated/dpnp.hstack.rst.txt new file mode 100644 index 00000000000..5de50dfe071 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.hstack.rst.txt @@ -0,0 +1,6 @@ +dpnp.hstack +=========== + +.. currentmodule:: dpnp + +.. autofunction:: hstack \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.hypot.rst.txt b/pull/2070/_sources/reference/generated/dpnp.hypot.rst.txt new file mode 100644 index 00000000000..23736fb28c0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.hypot.rst.txt @@ -0,0 +1,6 @@ +dpnp.hypot +========== + +.. currentmodule:: dpnp + +.. autofunction:: hypot \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.identity.rst.txt b/pull/2070/_sources/reference/generated/dpnp.identity.rst.txt new file mode 100644 index 00000000000..6b280f2611b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.identity.rst.txt @@ -0,0 +1,6 @@ +dpnp.identity +============= + +.. currentmodule:: dpnp + +.. autofunction:: identity \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.iinfo.rst.txt b/pull/2070/_sources/reference/generated/dpnp.iinfo.rst.txt new file mode 100644 index 00000000000..ec4d7f5f42d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.iinfo.rst.txt @@ -0,0 +1,6 @@ +dpnp.iinfo +========== + +.. currentmodule:: dpnp + +.. autofunction:: iinfo \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.imag.rst.txt b/pull/2070/_sources/reference/generated/dpnp.imag.rst.txt new file mode 100644 index 00000000000..fde702618cd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.imag.rst.txt @@ -0,0 +1,6 @@ +dpnp.imag +========= + +.. currentmodule:: dpnp + +.. autofunction:: imag \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.indices.rst.txt b/pull/2070/_sources/reference/generated/dpnp.indices.rst.txt new file mode 100644 index 00000000000..4d761f3a0ec --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.indices.rst.txt @@ -0,0 +1,6 @@ +dpnp.indices +============ + +.. currentmodule:: dpnp + +.. autofunction:: indices \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.inner.rst.txt b/pull/2070/_sources/reference/generated/dpnp.inner.rst.txt new file mode 100644 index 00000000000..1e546ceec3e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.inner.rst.txt @@ -0,0 +1,6 @@ +dpnp.inner +========== + +.. currentmodule:: dpnp + +.. autofunction:: inner \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.invert.rst.txt b/pull/2070/_sources/reference/generated/dpnp.invert.rst.txt new file mode 100644 index 00000000000..932c90b0207 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.invert.rst.txt @@ -0,0 +1,6 @@ +dpnp.invert +=========== + +.. currentmodule:: dpnp + +.. autofunction:: invert \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isclose.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isclose.rst.txt new file mode 100644 index 00000000000..1a733ac472b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isclose.rst.txt @@ -0,0 +1,6 @@ +dpnp.isclose +============ + +.. currentmodule:: dpnp + +.. autofunction:: isclose \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.iscomplex.rst.txt b/pull/2070/_sources/reference/generated/dpnp.iscomplex.rst.txt new file mode 100644 index 00000000000..951cf959466 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.iscomplex.rst.txt @@ -0,0 +1,6 @@ +dpnp.iscomplex +============== + +.. currentmodule:: dpnp + +.. autofunction:: iscomplex \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.iscomplexobj.rst.txt b/pull/2070/_sources/reference/generated/dpnp.iscomplexobj.rst.txt new file mode 100644 index 00000000000..7160600a44a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.iscomplexobj.rst.txt @@ -0,0 +1,6 @@ +dpnp.iscomplexobj +================= + +.. currentmodule:: dpnp + +.. autofunction:: iscomplexobj \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isfinite.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isfinite.rst.txt new file mode 100644 index 00000000000..643a7c63581 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isfinite.rst.txt @@ -0,0 +1,6 @@ +dpnp.isfinite +============= + +.. currentmodule:: dpnp + +.. autofunction:: isfinite \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isinf.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isinf.rst.txt new file mode 100644 index 00000000000..6700e954ec0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isinf.rst.txt @@ -0,0 +1,6 @@ +dpnp.isinf +========== + +.. currentmodule:: dpnp + +.. autofunction:: isinf \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isnan.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isnan.rst.txt new file mode 100644 index 00000000000..45b9888cc98 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isnan.rst.txt @@ -0,0 +1,6 @@ +dpnp.isnan +========== + +.. currentmodule:: dpnp + +.. autofunction:: isnan \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isneginf.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isneginf.rst.txt new file mode 100644 index 00000000000..9f8b4b152db --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isneginf.rst.txt @@ -0,0 +1,6 @@ +dpnp.isneginf +============= + +.. currentmodule:: dpnp + +.. autofunction:: isneginf \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isposinf.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isposinf.rst.txt new file mode 100644 index 00000000000..2ed9d7f519f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isposinf.rst.txt @@ -0,0 +1,6 @@ +dpnp.isposinf +============= + +.. currentmodule:: dpnp + +.. autofunction:: isposinf \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isreal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isreal.rst.txt new file mode 100644 index 00000000000..a944a1995dc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isreal.rst.txt @@ -0,0 +1,6 @@ +dpnp.isreal +=========== + +.. currentmodule:: dpnp + +.. autofunction:: isreal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isrealobj.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isrealobj.rst.txt new file mode 100644 index 00000000000..a8ad7277b9d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isrealobj.rst.txt @@ -0,0 +1,6 @@ +dpnp.isrealobj +============== + +.. currentmodule:: dpnp + +.. autofunction:: isrealobj \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.isscalar.rst.txt b/pull/2070/_sources/reference/generated/dpnp.isscalar.rst.txt new file mode 100644 index 00000000000..e33a40ecdf0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.isscalar.rst.txt @@ -0,0 +1,6 @@ +dpnp.isscalar +============= + +.. currentmodule:: dpnp + +.. autofunction:: isscalar \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.issubdtype.rst.txt b/pull/2070/_sources/reference/generated/dpnp.issubdtype.rst.txt new file mode 100644 index 00000000000..5d1f3f2d5e9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.issubdtype.rst.txt @@ -0,0 +1,6 @@ +dpnp.issubdtype +=============== + +.. currentmodule:: dpnp + +.. autofunction:: issubdtype \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ix_.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ix_.rst.txt new file mode 100644 index 00000000000..ba8fb13ab63 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ix_.rst.txt @@ -0,0 +1,6 @@ +dpnp.ix\_ +========= + +.. currentmodule:: dpnp + +.. autofunction:: ix_ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.kron.rst.txt b/pull/2070/_sources/reference/generated/dpnp.kron.rst.txt new file mode 100644 index 00000000000..78e20e3d430 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.kron.rst.txt @@ -0,0 +1,6 @@ +dpnp.kron +========= + +.. currentmodule:: dpnp + +.. autofunction:: kron \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.left_shift.rst.txt b/pull/2070/_sources/reference/generated/dpnp.left_shift.rst.txt new file mode 100644 index 00000000000..6068fbdc486 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.left_shift.rst.txt @@ -0,0 +1,6 @@ +dpnp.left\_shift +================ + +.. currentmodule:: dpnp + +.. autofunction:: left_shift \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.less.rst.txt b/pull/2070/_sources/reference/generated/dpnp.less.rst.txt new file mode 100644 index 00000000000..72b8c22aabd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.less.rst.txt @@ -0,0 +1,6 @@ +dpnp.less +========= + +.. currentmodule:: dpnp + +.. autofunction:: less \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.less_equal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.less_equal.rst.txt new file mode 100644 index 00000000000..04969c7331a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.less_equal.rst.txt @@ -0,0 +1,6 @@ +dpnp.less\_equal +================ + +.. currentmodule:: dpnp + +.. autofunction:: less_equal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.cholesky.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.cholesky.rst.txt new file mode 100644 index 00000000000..a739760de8b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.cholesky.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.cholesky +==================== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: cholesky \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.cond.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.cond.rst.txt new file mode 100644 index 00000000000..8ebf90470fc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.cond.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.cond +================ + +.. currentmodule:: dpnp.linalg + +.. autofunction:: cond \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.det.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.det.rst.txt new file mode 100644 index 00000000000..f1822a692a2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.det.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.det +=============== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: det \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.eig.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.eig.rst.txt new file mode 100644 index 00000000000..eb06daace1a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.eig.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.eig +=============== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: eig \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.eigh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.eigh.rst.txt new file mode 100644 index 00000000000..cc3d2e8c4f3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.eigh.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.eigh +================ + +.. currentmodule:: dpnp.linalg + +.. autofunction:: eigh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.eigvals.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.eigvals.rst.txt new file mode 100644 index 00000000000..226ce74f208 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.eigvals.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.eigvals +=================== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: eigvals \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.eigvalsh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.eigvalsh.rst.txt new file mode 100644 index 00000000000..b5561bacbf7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.eigvalsh.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.eigvalsh +==================== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: eigvalsh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.inv.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.inv.rst.txt new file mode 100644 index 00000000000..17e4a2b7fe3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.inv.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.inv +=============== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: inv \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.lstsq.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.lstsq.rst.txt new file mode 100644 index 00000000000..bcccc73edae --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.lstsq.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.lstsq +================= + +.. currentmodule:: dpnp.linalg + +.. autofunction:: lstsq \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.matrix_power.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.matrix_power.rst.txt new file mode 100644 index 00000000000..5246c058929 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.matrix_power.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.matrix\_power +========================= + +.. currentmodule:: dpnp.linalg + +.. autofunction:: matrix_power \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.matrix_rank.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.matrix_rank.rst.txt new file mode 100644 index 00000000000..8ad4b6953cd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.matrix_rank.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.matrix\_rank +======================== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: matrix_rank \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.multi_dot.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.multi_dot.rst.txt new file mode 100644 index 00000000000..faa6660e1f6 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.multi_dot.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.multi\_dot +====================== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: multi_dot \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.norm.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.norm.rst.txt new file mode 100644 index 00000000000..ec87471887d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.norm.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.norm +================ + +.. currentmodule:: dpnp.linalg + +.. autofunction:: norm \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.pinv.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.pinv.rst.txt new file mode 100644 index 00000000000..65b863e6b32 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.pinv.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.pinv +================ + +.. currentmodule:: dpnp.linalg + +.. autofunction:: pinv \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.qr.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.qr.rst.txt new file mode 100644 index 00000000000..8c4bb5d505f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.qr.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.qr +============== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: qr \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.slogdet.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.slogdet.rst.txt new file mode 100644 index 00000000000..14422471444 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.slogdet.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.slogdet +=================== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: slogdet \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.solve.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.solve.rst.txt new file mode 100644 index 00000000000..938b50e8d26 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.solve.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.solve +================= + +.. currentmodule:: dpnp.linalg + +.. autofunction:: solve \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.svd.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.svd.rst.txt new file mode 100644 index 00000000000..ad52b8e71aa --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.svd.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.svd +=============== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: svd \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.tensorinv.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.tensorinv.rst.txt new file mode 100644 index 00000000000..e59c189fca9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.tensorinv.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.tensorinv +===================== + +.. currentmodule:: dpnp.linalg + +.. autofunction:: tensorinv \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linalg.tensorsolve.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linalg.tensorsolve.rst.txt new file mode 100644 index 00000000000..5cbda07850b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linalg.tensorsolve.rst.txt @@ -0,0 +1,6 @@ +dpnp.linalg.tensorsolve +======================= + +.. currentmodule:: dpnp.linalg + +.. autofunction:: tensorsolve \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.linspace.rst.txt b/pull/2070/_sources/reference/generated/dpnp.linspace.rst.txt new file mode 100644 index 00000000000..384b696926f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.linspace.rst.txt @@ -0,0 +1,6 @@ +dpnp.linspace +============= + +.. currentmodule:: dpnp + +.. autofunction:: linspace \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.loadtxt.rst.txt b/pull/2070/_sources/reference/generated/dpnp.loadtxt.rst.txt new file mode 100644 index 00000000000..fb1bf0afd8a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.loadtxt.rst.txt @@ -0,0 +1,6 @@ +dpnp.loadtxt +============ + +.. currentmodule:: dpnp + +.. autofunction:: loadtxt \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.log.rst.txt b/pull/2070/_sources/reference/generated/dpnp.log.rst.txt new file mode 100644 index 00000000000..0459e4e6b00 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.log.rst.txt @@ -0,0 +1,6 @@ +dpnp.log +======== + +.. currentmodule:: dpnp + +.. autofunction:: log \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.log10.rst.txt b/pull/2070/_sources/reference/generated/dpnp.log10.rst.txt new file mode 100644 index 00000000000..a8cfcdbf61f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.log10.rst.txt @@ -0,0 +1,6 @@ +dpnp.log10 +========== + +.. currentmodule:: dpnp + +.. autofunction:: log10 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.log1p.rst.txt b/pull/2070/_sources/reference/generated/dpnp.log1p.rst.txt new file mode 100644 index 00000000000..e6cefd9b85d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.log1p.rst.txt @@ -0,0 +1,6 @@ +dpnp.log1p +========== + +.. currentmodule:: dpnp + +.. autofunction:: log1p \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.log2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.log2.rst.txt new file mode 100644 index 00000000000..3cd5af744b4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.log2.rst.txt @@ -0,0 +1,6 @@ +dpnp.log2 +========= + +.. currentmodule:: dpnp + +.. autofunction:: log2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.logaddexp.rst.txt b/pull/2070/_sources/reference/generated/dpnp.logaddexp.rst.txt new file mode 100644 index 00000000000..ebe9c60ab71 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.logaddexp.rst.txt @@ -0,0 +1,6 @@ +dpnp.logaddexp +============== + +.. currentmodule:: dpnp + +.. autofunction:: logaddexp \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.logaddexp2.rst.txt b/pull/2070/_sources/reference/generated/dpnp.logaddexp2.rst.txt new file mode 100644 index 00000000000..06d2776c447 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.logaddexp2.rst.txt @@ -0,0 +1,6 @@ +dpnp.logaddexp2 +=============== + +.. currentmodule:: dpnp + +.. autofunction:: logaddexp2 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.logical_and.rst.txt b/pull/2070/_sources/reference/generated/dpnp.logical_and.rst.txt new file mode 100644 index 00000000000..f11c78ec0c5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.logical_and.rst.txt @@ -0,0 +1,6 @@ +dpnp.logical\_and +================= + +.. currentmodule:: dpnp + +.. autofunction:: logical_and \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.logical_not.rst.txt b/pull/2070/_sources/reference/generated/dpnp.logical_not.rst.txt new file mode 100644 index 00000000000..d8d4ed8e5be --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.logical_not.rst.txt @@ -0,0 +1,6 @@ +dpnp.logical\_not +================= + +.. currentmodule:: dpnp + +.. autofunction:: logical_not \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.logical_or.rst.txt b/pull/2070/_sources/reference/generated/dpnp.logical_or.rst.txt new file mode 100644 index 00000000000..ab54c97bb99 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.logical_or.rst.txt @@ -0,0 +1,6 @@ +dpnp.logical\_or +================ + +.. currentmodule:: dpnp + +.. autofunction:: logical_or \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.logical_xor.rst.txt b/pull/2070/_sources/reference/generated/dpnp.logical_xor.rst.txt new file mode 100644 index 00000000000..950b16c142b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.logical_xor.rst.txt @@ -0,0 +1,6 @@ +dpnp.logical\_xor +================= + +.. currentmodule:: dpnp + +.. autofunction:: logical_xor \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.logspace.rst.txt b/pull/2070/_sources/reference/generated/dpnp.logspace.rst.txt new file mode 100644 index 00000000000..f31f57414d3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.logspace.rst.txt @@ -0,0 +1,6 @@ +dpnp.logspace +============= + +.. currentmodule:: dpnp + +.. autofunction:: logspace \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.logsumexp.rst.txt b/pull/2070/_sources/reference/generated/dpnp.logsumexp.rst.txt new file mode 100644 index 00000000000..6e8b405ac35 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.logsumexp.rst.txt @@ -0,0 +1,6 @@ +dpnp.logsumexp +============== + +.. currentmodule:: dpnp + +.. autofunction:: logsumexp \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.mask_indices.rst.txt b/pull/2070/_sources/reference/generated/dpnp.mask_indices.rst.txt new file mode 100644 index 00000000000..97b897fd37c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.mask_indices.rst.txt @@ -0,0 +1,6 @@ +dpnp.mask\_indices +================== + +.. currentmodule:: dpnp + +.. autofunction:: mask_indices \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.matmul.rst.txt b/pull/2070/_sources/reference/generated/dpnp.matmul.rst.txt new file mode 100644 index 00000000000..7cefacb0e09 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.matmul.rst.txt @@ -0,0 +1,6 @@ +dpnp.matmul +=========== + +.. currentmodule:: dpnp + +.. autofunction:: matmul \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.max.rst.txt b/pull/2070/_sources/reference/generated/dpnp.max.rst.txt new file mode 100644 index 00000000000..51defe20d72 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.max.rst.txt @@ -0,0 +1,6 @@ +dpnp.max +======== + +.. currentmodule:: dpnp + +.. autofunction:: max \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.maximum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.maximum.rst.txt new file mode 100644 index 00000000000..cafbd197745 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.maximum.rst.txt @@ -0,0 +1,6 @@ +dpnp.maximum +============ + +.. currentmodule:: dpnp + +.. autofunction:: maximum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.mean.rst.txt b/pull/2070/_sources/reference/generated/dpnp.mean.rst.txt new file mode 100644 index 00000000000..79ddce38b6a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.mean.rst.txt @@ -0,0 +1,6 @@ +dpnp.mean +========= + +.. currentmodule:: dpnp + +.. autofunction:: mean \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.median.rst.txt b/pull/2070/_sources/reference/generated/dpnp.median.rst.txt new file mode 100644 index 00000000000..bcf49d5cb5d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.median.rst.txt @@ -0,0 +1,6 @@ +dpnp.median +=========== + +.. currentmodule:: dpnp + +.. autofunction:: median \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.meshgrid.rst.txt b/pull/2070/_sources/reference/generated/dpnp.meshgrid.rst.txt new file mode 100644 index 00000000000..7fd37f942ea --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.meshgrid.rst.txt @@ -0,0 +1,6 @@ +dpnp.meshgrid +============= + +.. currentmodule:: dpnp + +.. autofunction:: meshgrid \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.mgrid.rst.txt b/pull/2070/_sources/reference/generated/dpnp.mgrid.rst.txt new file mode 100644 index 00000000000..641c69c6d5e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.mgrid.rst.txt @@ -0,0 +1,6 @@ +dpnp.mgrid +========== + +.. currentmodule:: dpnp + +.. autodata:: mgrid \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.min.rst.txt b/pull/2070/_sources/reference/generated/dpnp.min.rst.txt new file mode 100644 index 00000000000..a54b3308aba --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.min.rst.txt @@ -0,0 +1,6 @@ +dpnp.min +======== + +.. currentmodule:: dpnp + +.. autofunction:: min \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.minimum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.minimum.rst.txt new file mode 100644 index 00000000000..8f49a1f7ea8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.minimum.rst.txt @@ -0,0 +1,6 @@ +dpnp.minimum +============ + +.. currentmodule:: dpnp + +.. autofunction:: minimum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.mod.rst.txt b/pull/2070/_sources/reference/generated/dpnp.mod.rst.txt new file mode 100644 index 00000000000..6bb8d7bcd35 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.mod.rst.txt @@ -0,0 +1,6 @@ +dpnp.mod +======== + +.. currentmodule:: dpnp + +.. autofunction:: mod \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.modf.rst.txt b/pull/2070/_sources/reference/generated/dpnp.modf.rst.txt new file mode 100644 index 00000000000..954ad7361b3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.modf.rst.txt @@ -0,0 +1,6 @@ +dpnp.modf +========= + +.. currentmodule:: dpnp + +.. autofunction:: modf \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.moveaxis.rst.txt b/pull/2070/_sources/reference/generated/dpnp.moveaxis.rst.txt new file mode 100644 index 00000000000..ba675e70792 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.moveaxis.rst.txt @@ -0,0 +1,6 @@ +dpnp.moveaxis +============= + +.. currentmodule:: dpnp + +.. autofunction:: moveaxis \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.multiply.rst.txt b/pull/2070/_sources/reference/generated/dpnp.multiply.rst.txt new file mode 100644 index 00000000000..6a69d4bed51 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.multiply.rst.txt @@ -0,0 +1,6 @@ +dpnp.multiply +============= + +.. currentmodule:: dpnp + +.. autofunction:: multiply \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nan_to_num.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nan_to_num.rst.txt new file mode 100644 index 00000000000..e376bc44ccf --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nan_to_num.rst.txt @@ -0,0 +1,6 @@ +dpnp.nan\_to\_num +================= + +.. currentmodule:: dpnp + +.. autofunction:: nan_to_num \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nanargmax.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nanargmax.rst.txt new file mode 100644 index 00000000000..accde736633 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nanargmax.rst.txt @@ -0,0 +1,6 @@ +dpnp.nanargmax +============== + +.. currentmodule:: dpnp + +.. autofunction:: nanargmax \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nanargmin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nanargmin.rst.txt new file mode 100644 index 00000000000..694a8f6968e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nanargmin.rst.txt @@ -0,0 +1,6 @@ +dpnp.nanargmin +============== + +.. currentmodule:: dpnp + +.. autofunction:: nanargmin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nancumprod.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nancumprod.rst.txt new file mode 100644 index 00000000000..14ecf7d5018 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nancumprod.rst.txt @@ -0,0 +1,6 @@ +dpnp.nancumprod +=============== + +.. currentmodule:: dpnp + +.. autofunction:: nancumprod \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nancumsum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nancumsum.rst.txt new file mode 100644 index 00000000000..594635bc737 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nancumsum.rst.txt @@ -0,0 +1,6 @@ +dpnp.nancumsum +============== + +.. currentmodule:: dpnp + +.. autofunction:: nancumsum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nanmax.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nanmax.rst.txt new file mode 100644 index 00000000000..7ad2498b5e3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nanmax.rst.txt @@ -0,0 +1,6 @@ +dpnp.nanmax +=========== + +.. currentmodule:: dpnp + +.. autofunction:: nanmax \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nanmean.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nanmean.rst.txt new file mode 100644 index 00000000000..5075def4bb4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nanmean.rst.txt @@ -0,0 +1,6 @@ +dpnp.nanmean +============ + +.. currentmodule:: dpnp + +.. autofunction:: nanmean \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nanmin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nanmin.rst.txt new file mode 100644 index 00000000000..0c3dc8f6632 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nanmin.rst.txt @@ -0,0 +1,6 @@ +dpnp.nanmin +=========== + +.. currentmodule:: dpnp + +.. autofunction:: nanmin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nanprod.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nanprod.rst.txt new file mode 100644 index 00000000000..c885be13490 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nanprod.rst.txt @@ -0,0 +1,6 @@ +dpnp.nanprod +============ + +.. currentmodule:: dpnp + +.. autofunction:: nanprod \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nanstd.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nanstd.rst.txt new file mode 100644 index 00000000000..197add00aa9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nanstd.rst.txt @@ -0,0 +1,6 @@ +dpnp.nanstd +=========== + +.. currentmodule:: dpnp + +.. autofunction:: nanstd \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nansum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nansum.rst.txt new file mode 100644 index 00000000000..482053ef268 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nansum.rst.txt @@ -0,0 +1,6 @@ +dpnp.nansum +=========== + +.. currentmodule:: dpnp + +.. autofunction:: nansum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nanvar.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nanvar.rst.txt new file mode 100644 index 00000000000..a6ba4248e5e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nanvar.rst.txt @@ -0,0 +1,6 @@ +dpnp.nanvar +=========== + +.. currentmodule:: dpnp + +.. autofunction:: nanvar \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.T.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.T.rst.txt new file mode 100644 index 00000000000..f5a67fd9c30 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.T.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.T +============== + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.T \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__abs__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__abs__.rst.txt new file mode 100644 index 00000000000..ff23de4f08d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__abs__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_abs\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__abs__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__add__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__add__.rst.txt new file mode 100644 index 00000000000..735c72351fc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__add__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_add\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__add__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__and__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__and__.rst.txt new file mode 100644 index 00000000000..3fcdef0702a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__and__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_and\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__and__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__bool__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__bool__.rst.txt new file mode 100644 index 00000000000..ef5b9faa1a8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__bool__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_bool\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__bool__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__complex__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__complex__.rst.txt new file mode 100644 index 00000000000..a5d80c2d258 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__complex__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_complex\_\_ +============================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__complex__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__copy__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__copy__.rst.txt new file mode 100644 index 00000000000..2471a6ab2a9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__copy__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_copy\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__copy__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__eq__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__eq__.rst.txt new file mode 100644 index 00000000000..76e0de52e5d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__eq__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_eq\_\_ +======================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__eq__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__float__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__float__.rst.txt new file mode 100644 index 00000000000..0e2dfe6fa55 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__float__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_float\_\_ +========================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__float__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__floordiv__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__floordiv__.rst.txt new file mode 100644 index 00000000000..d615c761d89 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__floordiv__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_floordiv\_\_ +============================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__floordiv__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__ge__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ge__.rst.txt new file mode 100644 index 00000000000..471bb5b867b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ge__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_ge\_\_ +======================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__ge__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__getitem__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__getitem__.rst.txt new file mode 100644 index 00000000000..e1420de4588 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__getitem__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_getitem\_\_ +============================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__getitem__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__gt__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__gt__.rst.txt new file mode 100644 index 00000000000..23cbd2adae0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__gt__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_gt\_\_ +======================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__gt__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__iadd__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__iadd__.rst.txt new file mode 100644 index 00000000000..50a67489ae8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__iadd__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_iadd\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__iadd__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__iand__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__iand__.rst.txt new file mode 100644 index 00000000000..a791af9ec23 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__iand__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_iand\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__iand__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__ifloordiv__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ifloordiv__.rst.txt new file mode 100644 index 00000000000..baaa3583e5e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ifloordiv__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_ifloordiv\_\_ +============================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__ifloordiv__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__ilshift__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ilshift__.rst.txt new file mode 100644 index 00000000000..e9207ab67f0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ilshift__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_ilshift\_\_ +============================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__ilshift__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__imod__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__imod__.rst.txt new file mode 100644 index 00000000000..a6032afefa0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__imod__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_imod\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__imod__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__imul__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__imul__.rst.txt new file mode 100644 index 00000000000..79877dc3b3e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__imul__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_imul\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__imul__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__int__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__int__.rst.txt new file mode 100644 index 00000000000..f4611328abd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__int__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_int\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__int__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__invert__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__invert__.rst.txt new file mode 100644 index 00000000000..03959b8ed12 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__invert__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_invert\_\_ +=========================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__invert__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__ior__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ior__.rst.txt new file mode 100644 index 00000000000..9e74181473e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ior__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_ior\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__ior__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__ipow__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ipow__.rst.txt new file mode 100644 index 00000000000..406dd6ad6f6 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ipow__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_ipow\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__ipow__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__irshift__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__irshift__.rst.txt new file mode 100644 index 00000000000..c6fa1f1d2a8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__irshift__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_irshift\_\_ +============================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__irshift__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__isub__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__isub__.rst.txt new file mode 100644 index 00000000000..cac91293dda --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__isub__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_isub\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__isub__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__itruediv__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__itruediv__.rst.txt new file mode 100644 index 00000000000..e20aac25327 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__itruediv__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_itruediv\_\_ +============================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__itruediv__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__ixor__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ixor__.rst.txt new file mode 100644 index 00000000000..e115b26c4e7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ixor__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_ixor\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__ixor__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__le__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__le__.rst.txt new file mode 100644 index 00000000000..64871a81a15 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__le__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_le\_\_ +======================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__le__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__len__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__len__.rst.txt new file mode 100644 index 00000000000..7bae23433be --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__len__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_len\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__len__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__lshift__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__lshift__.rst.txt new file mode 100644 index 00000000000..4ff0a9bf11f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__lshift__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_lshift\_\_ +=========================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__lshift__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__lt__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__lt__.rst.txt new file mode 100644 index 00000000000..eb06c5d3954 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__lt__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_lt\_\_ +======================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__lt__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__matmul__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__matmul__.rst.txt new file mode 100644 index 00000000000..c4ade4bc037 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__matmul__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_matmul\_\_ +=========================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__matmul__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__mod__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__mod__.rst.txt new file mode 100644 index 00000000000..7cc2518a61d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__mod__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_mod\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__mod__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__mul__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__mul__.rst.txt new file mode 100644 index 00000000000..e55d3404990 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__mul__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_mul\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__mul__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__ne__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ne__.rst.txt new file mode 100644 index 00000000000..24b1044e952 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__ne__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_ne\_\_ +======================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__ne__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__neg__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__neg__.rst.txt new file mode 100644 index 00000000000..337d146c461 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__neg__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_neg\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__neg__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__new__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__new__.rst.txt new file mode 100644 index 00000000000..4b44b475291 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__new__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_new\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__new__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__or__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__or__.rst.txt new file mode 100644 index 00000000000..8e2394e5eb2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__or__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_or\_\_ +======================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__or__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__pos__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__pos__.rst.txt new file mode 100644 index 00000000000..96355b900e1 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__pos__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_pos\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__pos__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__pow__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__pow__.rst.txt new file mode 100644 index 00000000000..d84331a5e17 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__pow__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_pow\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__pow__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__repr__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__repr__.rst.txt new file mode 100644 index 00000000000..be29565f483 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__repr__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_repr\_\_ +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__repr__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__rshift__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__rshift__.rst.txt new file mode 100644 index 00000000000..6ace5e1605e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__rshift__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_rshift\_\_ +=========================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__rshift__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__setitem__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__setitem__.rst.txt new file mode 100644 index 00000000000..2c3338ec4fa --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__setitem__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_setitem\_\_ +============================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__setitem__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__str__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__str__.rst.txt new file mode 100644 index 00000000000..5ca984a6e38 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__str__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_str\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__str__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__sub__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__sub__.rst.txt new file mode 100644 index 00000000000..4991ba39b1b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__sub__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_sub\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__sub__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__truediv__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__truediv__.rst.txt new file mode 100644 index 00000000000..c0f0906e718 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__truediv__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_truediv\_\_ +============================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__truediv__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.__xor__.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.__xor__.rst.txt new file mode 100644 index 00000000000..48c85678dee --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.__xor__.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.\_\_xor\_\_ +======================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.__xor__ \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.all.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.all.rst.txt new file mode 100644 index 00000000000..f84213e850e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.all.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.all +================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.all \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.any.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.any.rst.txt new file mode 100644 index 00000000000..55f8e1edad4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.any.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.any +================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.any \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.argmax.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.argmax.rst.txt new file mode 100644 index 00000000000..f9b1ca5d8c7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.argmax.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.argmax +=================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.argmax \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.argmin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.argmin.rst.txt new file mode 100644 index 00000000000..39472d1b4ec --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.argmin.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.argmin +=================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.argmin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.argsort.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.argsort.rst.txt new file mode 100644 index 00000000000..6c5ce6e3dd7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.argsort.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.argsort +==================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.argsort \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.astype.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.astype.rst.txt new file mode 100644 index 00000000000..62beaf3730c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.astype.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.astype +=================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.astype \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.choose.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.choose.rst.txt new file mode 100644 index 00000000000..c73215ea1f3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.choose.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.choose +=================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.choose \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.clip.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.clip.rst.txt new file mode 100644 index 00000000000..ca67e1f0417 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.clip.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.clip +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.clip \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.conj.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.conj.rst.txt new file mode 100644 index 00000000000..38697823ab5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.conj.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.conj +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.conj \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.conjugate.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.conjugate.rst.txt new file mode 100644 index 00000000000..5845b726a24 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.conjugate.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.conjugate +====================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.conjugate \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.copy.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.copy.rst.txt new file mode 100644 index 00000000000..da94d64c783 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.copy.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.copy +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.copy \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.cumprod.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.cumprod.rst.txt new file mode 100644 index 00000000000..32a32a78df8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.cumprod.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.cumprod +==================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.cumprod \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.cumsum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.cumsum.rst.txt new file mode 100644 index 00000000000..275235dfb37 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.cumsum.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.cumsum +=================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.cumsum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.diagonal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.diagonal.rst.txt new file mode 100644 index 00000000000..3135d4e4292 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.diagonal.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.diagonal +===================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.diagonal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.dtype.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.dtype.rst.txt new file mode 100644 index 00000000000..77a49de7fa4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.dtype.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.dtype +================== + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.dtype \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.fill.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.fill.rst.txt new file mode 100644 index 00000000000..cb7d7055f1f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.fill.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.fill +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.fill \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.flags.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.flags.rst.txt new file mode 100644 index 00000000000..77a5fb2a44e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.flags.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.flags +================== + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.flags \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.flat.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.flat.rst.txt new file mode 100644 index 00000000000..34313ef2362 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.flat.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.flat +================= + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.flat \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.flatten.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.flatten.rst.txt new file mode 100644 index 00000000000..822ac3d5cc0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.flatten.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.flatten +==================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.flatten \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.imag.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.imag.rst.txt new file mode 100644 index 00000000000..8232e6f6519 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.imag.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.imag +================= + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.imag \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.item.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.item.rst.txt new file mode 100644 index 00000000000..bb38da6d656 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.item.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.item +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.item \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.itemsize.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.itemsize.rst.txt new file mode 100644 index 00000000000..435bd65f9ee --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.itemsize.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.itemsize +===================== + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.itemsize \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.max.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.max.rst.txt new file mode 100644 index 00000000000..24751cb3aa4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.max.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.max +================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.max \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.mean.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.mean.rst.txt new file mode 100644 index 00000000000..4f99a8168b0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.mean.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.mean +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.mean \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.min.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.min.rst.txt new file mode 100644 index 00000000000..161e08ed104 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.min.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.min +================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.min \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.nbytes.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.nbytes.rst.txt new file mode 100644 index 00000000000..577b1e22a07 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.nbytes.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.nbytes +=================== + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.nbytes \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.ndim.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.ndim.rst.txt new file mode 100644 index 00000000000..e7674922ba9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.ndim.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.ndim +================= + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.ndim \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.nonzero.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.nonzero.rst.txt new file mode 100644 index 00000000000..ba5d628098b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.nonzero.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.nonzero +==================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.nonzero \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.partition.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.partition.rst.txt new file mode 100644 index 00000000000..0a9869724eb --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.partition.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.partition +====================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.partition \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.prod.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.prod.rst.txt new file mode 100644 index 00000000000..67f00230798 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.prod.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.prod +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.prod \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.put.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.put.rst.txt new file mode 100644 index 00000000000..da7a6cc3a96 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.put.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.put +================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.put \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.ravel.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.ravel.rst.txt new file mode 100644 index 00000000000..18ca6eaf3c4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.ravel.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.ravel +================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.ravel \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.real.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.real.rst.txt new file mode 100644 index 00000000000..0a307f9fbbc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.real.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.real +================= + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.real \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.repeat.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.repeat.rst.txt new file mode 100644 index 00000000000..47631aba227 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.repeat.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.repeat +=================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.repeat \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.reshape.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.reshape.rst.txt new file mode 100644 index 00000000000..2e9ec2fc7ec --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.reshape.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.reshape +==================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.reshape \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.round.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.round.rst.txt new file mode 100644 index 00000000000..a1a1b0d693c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.round.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.round +================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.round \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.rst.txt new file mode 100644 index 00000000000..ca3592e019e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.rst.txt @@ -0,0 +1,212 @@ +dpnp.ndarray +============ + +.. currentmodule:: dpnp + +.. autoclass:: ndarray + + .. + Methods + + + + .. rubric:: Methods + + .. + Special methods + + + + .. automethod:: __getitem__ + + + .. automethod:: __setitem__ + + + .. automethod:: __len__ + + + + + .. + Ordinary methods + + + + + .. automethod:: all + + + .. automethod:: any + + + .. automethod:: argmax + + + .. automethod:: argmin + + + .. automethod:: argsort + + + .. automethod:: asnumpy + + + .. automethod:: astype + + + .. automethod:: choose + + + .. automethod:: clip + + + .. automethod:: conj + + + .. automethod:: conjugate + + + .. automethod:: copy + + + .. automethod:: cumprod + + + .. automethod:: cumsum + + + .. automethod:: diagonal + + + .. automethod:: dot + + + .. automethod:: fill + + + .. automethod:: flatten + + + .. automethod:: get_array + + + .. automethod:: item + + + .. automethod:: max + + + .. automethod:: mean + + + .. automethod:: min + + + .. automethod:: nonzero + + + .. automethod:: partition + + + .. automethod:: prod + + + .. automethod:: put + + + .. automethod:: ravel + + + .. automethod:: repeat + + + .. automethod:: reshape + + + .. automethod:: round + + + .. automethod:: searchsorted + + + .. automethod:: sort + + + .. automethod:: squeeze + + + .. automethod:: std + + + .. automethod:: sum + + + .. automethod:: swapaxes + + + .. automethod:: take + + + .. automethod:: to_device + + + .. automethod:: trace + + + .. automethod:: transpose + + + .. automethod:: var + + + .. + Special methods + + + + .. automethod:: __eq__ + + + .. automethod:: __ne__ + + + .. automethod:: __lt__ + + + .. automethod:: __le__ + + + .. automethod:: __gt__ + + + .. automethod:: __ge__ + + + + .. + Attributes + + + + .. rubric:: Attributes + + + .. autoattribute:: T + .. autoattribute:: device + .. autoattribute:: dtype + .. autoattribute:: flags + .. autoattribute:: flat + .. autoattribute:: imag + .. autoattribute:: itemsize + .. autoattribute:: nbytes + .. autoattribute:: ndim + .. autoattribute:: real + .. autoattribute:: shape + .. autoattribute:: size + .. autoattribute:: strides + .. autoattribute:: sycl_context + .. autoattribute:: sycl_device + .. autoattribute:: sycl_queue + .. autoattribute:: usm_type + \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.searchsorted.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.searchsorted.rst.txt new file mode 100644 index 00000000000..3d51bb096e8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.searchsorted.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.searchsorted +========================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.searchsorted \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.shape.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.shape.rst.txt new file mode 100644 index 00000000000..90e9681b022 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.shape.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.shape +================== + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.shape \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.size.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.size.rst.txt new file mode 100644 index 00000000000..967e4f84bff --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.size.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.size +================= + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.size \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.sort.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.sort.rst.txt new file mode 100644 index 00000000000..82cb22568f5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.sort.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.sort +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.sort \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.squeeze.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.squeeze.rst.txt new file mode 100644 index 00000000000..9d6b6cba892 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.squeeze.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.squeeze +==================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.squeeze \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.std.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.std.rst.txt new file mode 100644 index 00000000000..e0fd62880fc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.std.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.std +================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.std \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.strides.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.strides.rst.txt new file mode 100644 index 00000000000..266560d79e2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.strides.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.strides +==================== + +.. currentmodule:: dpnp + +.. autoproperty:: ndarray.strides \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.sum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.sum.rst.txt new file mode 100644 index 00000000000..d77a13a8fa2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.sum.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.sum +================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.sum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.swapaxes.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.swapaxes.rst.txt new file mode 100644 index 00000000000..83fc700b358 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.swapaxes.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.swapaxes +===================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.swapaxes \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.take.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.take.rst.txt new file mode 100644 index 00000000000..7e8b41e1917 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.take.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.take +================= + +.. currentmodule:: dpnp + +.. automethod:: ndarray.take \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.trace.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.trace.rst.txt new file mode 100644 index 00000000000..80549ca9753 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.trace.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.trace +================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.trace \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.transpose.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.transpose.rst.txt new file mode 100644 index 00000000000..abb374111b8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.transpose.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.transpose +====================== + +.. currentmodule:: dpnp + +.. automethod:: ndarray.transpose \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndarray.var.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndarray.var.rst.txt new file mode 100644 index 00000000000..f00d0ddf2a5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndarray.var.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndarray.var +================ + +.. currentmodule:: dpnp + +.. automethod:: ndarray.var \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ndim.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ndim.rst.txt new file mode 100644 index 00000000000..72463bbf5d1 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ndim.rst.txt @@ -0,0 +1,6 @@ +dpnp.ndim +========= + +.. currentmodule:: dpnp + +.. autofunction:: ndim \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.negative.rst.txt b/pull/2070/_sources/reference/generated/dpnp.negative.rst.txt new file mode 100644 index 00000000000..89dc84d8590 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.negative.rst.txt @@ -0,0 +1,6 @@ +dpnp.negative +============= + +.. currentmodule:: dpnp + +.. autofunction:: negative \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nextafter.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nextafter.rst.txt new file mode 100644 index 00000000000..4e37e78a86b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nextafter.rst.txt @@ -0,0 +1,6 @@ +dpnp.nextafter +============== + +.. currentmodule:: dpnp + +.. autofunction:: nextafter \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.nonzero.rst.txt b/pull/2070/_sources/reference/generated/dpnp.nonzero.rst.txt new file mode 100644 index 00000000000..711e21e463a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.nonzero.rst.txt @@ -0,0 +1,6 @@ +dpnp.nonzero +============ + +.. currentmodule:: dpnp + +.. autofunction:: nonzero \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.not_equal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.not_equal.rst.txt new file mode 100644 index 00000000000..d967e9bc015 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.not_equal.rst.txt @@ -0,0 +1,6 @@ +dpnp.not\_equal +=============== + +.. currentmodule:: dpnp + +.. autofunction:: not_equal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ogrid.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ogrid.rst.txt new file mode 100644 index 00000000000..4ced3e07005 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ogrid.rst.txt @@ -0,0 +1,6 @@ +dpnp.ogrid +========== + +.. currentmodule:: dpnp + +.. autodata:: ogrid \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ones.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ones.rst.txt new file mode 100644 index 00000000000..bae6e20e2b0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ones.rst.txt @@ -0,0 +1,6 @@ +dpnp.ones +========= + +.. currentmodule:: dpnp + +.. autofunction:: ones \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ones_like.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ones_like.rst.txt new file mode 100644 index 00000000000..eeefde89d0a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ones_like.rst.txt @@ -0,0 +1,6 @@ +dpnp.ones\_like +=============== + +.. currentmodule:: dpnp + +.. autofunction:: ones_like \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.outer.rst.txt b/pull/2070/_sources/reference/generated/dpnp.outer.rst.txt new file mode 100644 index 00000000000..c76788a6527 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.outer.rst.txt @@ -0,0 +1,6 @@ +dpnp.outer +========== + +.. currentmodule:: dpnp + +.. autofunction:: outer \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.partition.rst.txt b/pull/2070/_sources/reference/generated/dpnp.partition.rst.txt new file mode 100644 index 00000000000..7c2b1c2f77d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.partition.rst.txt @@ -0,0 +1,6 @@ +dpnp.partition +============== + +.. currentmodule:: dpnp + +.. autofunction:: partition \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.permute_dims.rst.txt b/pull/2070/_sources/reference/generated/dpnp.permute_dims.rst.txt new file mode 100644 index 00000000000..1d82c256586 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.permute_dims.rst.txt @@ -0,0 +1,6 @@ +dpnp.permute\_dims +================== + +.. currentmodule:: dpnp + +.. autofunction:: permute_dims \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.place.rst.txt b/pull/2070/_sources/reference/generated/dpnp.place.rst.txt new file mode 100644 index 00000000000..7d64e308460 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.place.rst.txt @@ -0,0 +1,6 @@ +dpnp.place +========== + +.. currentmodule:: dpnp + +.. autofunction:: place \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.positive.rst.txt b/pull/2070/_sources/reference/generated/dpnp.positive.rst.txt new file mode 100644 index 00000000000..1eab6499c01 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.positive.rst.txt @@ -0,0 +1,6 @@ +dpnp.positive +============= + +.. currentmodule:: dpnp + +.. autofunction:: positive \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.pow.rst.txt b/pull/2070/_sources/reference/generated/dpnp.pow.rst.txt new file mode 100644 index 00000000000..7c8954e8649 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.pow.rst.txt @@ -0,0 +1,6 @@ +dpnp.pow +======== + +.. currentmodule:: dpnp + +.. autofunction:: pow \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.power.rst.txt b/pull/2070/_sources/reference/generated/dpnp.power.rst.txt new file mode 100644 index 00000000000..4aead4e45e2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.power.rst.txt @@ -0,0 +1,6 @@ +dpnp.power +========== + +.. currentmodule:: dpnp + +.. autofunction:: power \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.prod.rst.txt b/pull/2070/_sources/reference/generated/dpnp.prod.rst.txt new file mode 100644 index 00000000000..20db89eb435 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.prod.rst.txt @@ -0,0 +1,6 @@ +dpnp.prod +========= + +.. currentmodule:: dpnp + +.. autofunction:: prod \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.proj.rst.txt b/pull/2070/_sources/reference/generated/dpnp.proj.rst.txt new file mode 100644 index 00000000000..e41faa12d67 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.proj.rst.txt @@ -0,0 +1,6 @@ +dpnp.proj +========= + +.. currentmodule:: dpnp + +.. autofunction:: proj \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ptp.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ptp.rst.txt new file mode 100644 index 00000000000..9385acd8f3c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ptp.rst.txt @@ -0,0 +1,6 @@ +dpnp.ptp +======== + +.. currentmodule:: dpnp + +.. autofunction:: ptp \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.put.rst.txt b/pull/2070/_sources/reference/generated/dpnp.put.rst.txt new file mode 100644 index 00000000000..a4d2a522271 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.put.rst.txt @@ -0,0 +1,6 @@ +dpnp.put +======== + +.. currentmodule:: dpnp + +.. autofunction:: put \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.put_along_axis.rst.txt b/pull/2070/_sources/reference/generated/dpnp.put_along_axis.rst.txt new file mode 100644 index 00000000000..d61a093db42 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.put_along_axis.rst.txt @@ -0,0 +1,6 @@ +dpnp.put\_along\_axis +===================== + +.. currentmodule:: dpnp + +.. autofunction:: put_along_axis \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.putmask.rst.txt b/pull/2070/_sources/reference/generated/dpnp.putmask.rst.txt new file mode 100644 index 00000000000..adbc80797ae --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.putmask.rst.txt @@ -0,0 +1,6 @@ +dpnp.putmask +============ + +.. currentmodule:: dpnp + +.. autofunction:: putmask \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.rad2deg.rst.txt b/pull/2070/_sources/reference/generated/dpnp.rad2deg.rst.txt new file mode 100644 index 00000000000..55695d351ef --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.rad2deg.rst.txt @@ -0,0 +1,6 @@ +dpnp.rad2deg +============ + +.. currentmodule:: dpnp + +.. autofunction:: rad2deg \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.radians.rst.txt b/pull/2070/_sources/reference/generated/dpnp.radians.rst.txt new file mode 100644 index 00000000000..8e090661be8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.radians.rst.txt @@ -0,0 +1,6 @@ +dpnp.radians +============ + +.. currentmodule:: dpnp + +.. autofunction:: radians \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.RandomState.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.RandomState.rst.txt new file mode 100644 index 00000000000..9808b4b7c2b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.RandomState.rst.txt @@ -0,0 +1,88 @@ +dpnp.random.RandomState +======================= + +.. currentmodule:: dpnp.random + +.. autoclass:: RandomState + + .. + Methods + + + + .. rubric:: Methods + + .. + Special methods + + + + + + + + + .. + Ordinary methods + + + + + .. automethod:: get_state + + + .. automethod:: get_sycl_device + + + .. automethod:: get_sycl_queue + + + .. automethod:: normal + + + .. automethod:: rand + + + .. automethod:: randint + + + .. automethod:: randn + + + .. automethod:: random_sample + + + .. automethod:: standard_normal + + + .. automethod:: uniform + + + .. + Special methods + + + + .. automethod:: __eq__ + + + .. automethod:: __ne__ + + + .. automethod:: __lt__ + + + .. automethod:: __le__ + + + .. automethod:: __gt__ + + + .. automethod:: __ge__ + + + + .. + Attributes + + \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.beta.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.beta.rst.txt new file mode 100644 index 00000000000..2de753245a2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.beta.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.beta +================ + +.. currentmodule:: dpnp.random + +.. autofunction:: beta \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.binomial.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.binomial.rst.txt new file mode 100644 index 00000000000..2d438a3fc0d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.binomial.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.binomial +==================== + +.. currentmodule:: dpnp.random + +.. autofunction:: binomial \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.bytes.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.bytes.rst.txt new file mode 100644 index 00000000000..6699385732a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.bytes.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.bytes +================= + +.. currentmodule:: dpnp.random + +.. autofunction:: bytes \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.chisquare.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.chisquare.rst.txt new file mode 100644 index 00000000000..a3deb4f3b4b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.chisquare.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.chisquare +===================== + +.. currentmodule:: dpnp.random + +.. autofunction:: chisquare \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.choice.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.choice.rst.txt new file mode 100644 index 00000000000..a63a287ad67 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.choice.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.choice +================== + +.. currentmodule:: dpnp.random + +.. autofunction:: choice \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.dirichlet.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.dirichlet.rst.txt new file mode 100644 index 00000000000..6827be844b0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.dirichlet.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.dirichlet +===================== + +.. currentmodule:: dpnp.random + +.. autofunction:: dirichlet \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.exponential.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.exponential.rst.txt new file mode 100644 index 00000000000..77d33cdd705 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.exponential.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.exponential +======================= + +.. currentmodule:: dpnp.random + +.. autofunction:: exponential \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.f.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.f.rst.txt new file mode 100644 index 00000000000..44081154a4d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.f.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.f +============= + +.. currentmodule:: dpnp.random + +.. autofunction:: f \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.gamma.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.gamma.rst.txt new file mode 100644 index 00000000000..d5cd1dbf070 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.gamma.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.gamma +================= + +.. currentmodule:: dpnp.random + +.. autofunction:: gamma \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.geometric.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.geometric.rst.txt new file mode 100644 index 00000000000..349f362bb97 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.geometric.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.geometric +===================== + +.. currentmodule:: dpnp.random + +.. autofunction:: geometric \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.gumbel.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.gumbel.rst.txt new file mode 100644 index 00000000000..fb995d24e78 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.gumbel.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.gumbel +================== + +.. currentmodule:: dpnp.random + +.. autofunction:: gumbel \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.hypergeometric.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.hypergeometric.rst.txt new file mode 100644 index 00000000000..21e721864f6 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.hypergeometric.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.hypergeometric +========================== + +.. currentmodule:: dpnp.random + +.. autofunction:: hypergeometric \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.laplace.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.laplace.rst.txt new file mode 100644 index 00000000000..47c940309c7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.laplace.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.laplace +=================== + +.. currentmodule:: dpnp.random + +.. autofunction:: laplace \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.logistic.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.logistic.rst.txt new file mode 100644 index 00000000000..cbdac2b6396 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.logistic.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.logistic +==================== + +.. currentmodule:: dpnp.random + +.. autofunction:: logistic \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.lognormal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.lognormal.rst.txt new file mode 100644 index 00000000000..0d3e2eaa87d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.lognormal.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.lognormal +===================== + +.. currentmodule:: dpnp.random + +.. autofunction:: lognormal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.logseries.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.logseries.rst.txt new file mode 100644 index 00000000000..a3379242e79 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.logseries.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.logseries +===================== + +.. currentmodule:: dpnp.random + +.. autofunction:: logseries \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.multinomial.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.multinomial.rst.txt new file mode 100644 index 00000000000..2e7a7a08d9b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.multinomial.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.multinomial +======================= + +.. currentmodule:: dpnp.random + +.. autofunction:: multinomial \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.multivariate_normal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.multivariate_normal.rst.txt new file mode 100644 index 00000000000..ac5e109c6f4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.multivariate_normal.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.multivariate\_normal +================================ + +.. currentmodule:: dpnp.random + +.. autofunction:: multivariate_normal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.negative_binomial.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.negative_binomial.rst.txt new file mode 100644 index 00000000000..41e03660d91 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.negative_binomial.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.negative\_binomial +============================== + +.. currentmodule:: dpnp.random + +.. autofunction:: negative_binomial \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.noncentral_chisquare.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.noncentral_chisquare.rst.txt new file mode 100644 index 00000000000..d560819cad4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.noncentral_chisquare.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.noncentral\_chisquare +================================= + +.. currentmodule:: dpnp.random + +.. autofunction:: noncentral_chisquare \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.noncentral_f.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.noncentral_f.rst.txt new file mode 100644 index 00000000000..4f4ccda4ea4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.noncentral_f.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.noncentral\_f +========================= + +.. currentmodule:: dpnp.random + +.. autofunction:: noncentral_f \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.normal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.normal.rst.txt new file mode 100644 index 00000000000..2185b48abc3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.normal.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.normal +================== + +.. currentmodule:: dpnp.random + +.. autofunction:: normal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.pareto.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.pareto.rst.txt new file mode 100644 index 00000000000..e9e0aabc603 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.pareto.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.pareto +================== + +.. currentmodule:: dpnp.random + +.. autofunction:: pareto \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.permutation.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.permutation.rst.txt new file mode 100644 index 00000000000..8309c0d8abf --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.permutation.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.permutation +======================= + +.. currentmodule:: dpnp.random + +.. autofunction:: permutation \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.poisson.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.poisson.rst.txt new file mode 100644 index 00000000000..b02d705a247 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.poisson.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.poisson +=================== + +.. currentmodule:: dpnp.random + +.. autofunction:: poisson \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.power.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.power.rst.txt new file mode 100644 index 00000000000..ecedd6fa937 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.power.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.power +================= + +.. currentmodule:: dpnp.random + +.. autofunction:: power \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.rand.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.rand.rst.txt new file mode 100644 index 00000000000..44654c0560a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.rand.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.rand +================ + +.. currentmodule:: dpnp.random + +.. autofunction:: rand \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.randint.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.randint.rst.txt new file mode 100644 index 00000000000..3917577a9ab --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.randint.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.randint +=================== + +.. currentmodule:: dpnp.random + +.. autofunction:: randint \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.randn.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.randn.rst.txt new file mode 100644 index 00000000000..d6fb740691f --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.randn.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.randn +================= + +.. currentmodule:: dpnp.random + +.. autofunction:: randn \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.random.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.random.rst.txt new file mode 100644 index 00000000000..640b4e6cbfc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.random.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.random +================== + +.. currentmodule:: dpnp.random + +.. autofunction:: random \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.random_integers.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.random_integers.rst.txt new file mode 100644 index 00000000000..b1461204f49 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.random_integers.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.random\_integers +============================ + +.. currentmodule:: dpnp.random + +.. autofunction:: random_integers \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.random_sample.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.random_sample.rst.txt new file mode 100644 index 00000000000..057a2b8f309 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.random_sample.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.random\_sample +========================== + +.. currentmodule:: dpnp.random + +.. autofunction:: random_sample \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.ranf.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.ranf.rst.txt new file mode 100644 index 00000000000..fafbd330dcb --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.ranf.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.ranf +================ + +.. currentmodule:: dpnp.random + +.. autofunction:: ranf \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.rayleigh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.rayleigh.rst.txt new file mode 100644 index 00000000000..346f2f029f4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.rayleigh.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.rayleigh +==================== + +.. currentmodule:: dpnp.random + +.. autofunction:: rayleigh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.sample.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.sample.rst.txt new file mode 100644 index 00000000000..7ee6b41a753 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.sample.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.sample +================== + +.. currentmodule:: dpnp.random + +.. autofunction:: sample \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.seed.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.seed.rst.txt new file mode 100644 index 00000000000..c982bc5c09a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.seed.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.seed +================ + +.. currentmodule:: dpnp.random + +.. autofunction:: seed \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.shuffle.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.shuffle.rst.txt new file mode 100644 index 00000000000..8940737eb04 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.shuffle.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.shuffle +=================== + +.. currentmodule:: dpnp.random + +.. autofunction:: shuffle \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.standard_cauchy.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.standard_cauchy.rst.txt new file mode 100644 index 00000000000..4549880c637 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.standard_cauchy.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.standard\_cauchy +============================ + +.. currentmodule:: dpnp.random + +.. autofunction:: standard_cauchy \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.standard_exponential.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.standard_exponential.rst.txt new file mode 100644 index 00000000000..2620d3d5dee --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.standard_exponential.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.standard\_exponential +================================= + +.. currentmodule:: dpnp.random + +.. autofunction:: standard_exponential \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.standard_gamma.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.standard_gamma.rst.txt new file mode 100644 index 00000000000..b2080645b52 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.standard_gamma.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.standard\_gamma +=========================== + +.. currentmodule:: dpnp.random + +.. autofunction:: standard_gamma \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.standard_normal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.standard_normal.rst.txt new file mode 100644 index 00000000000..7b3ed0fae61 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.standard_normal.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.standard\_normal +============================ + +.. currentmodule:: dpnp.random + +.. autofunction:: standard_normal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.standard_t.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.standard_t.rst.txt new file mode 100644 index 00000000000..7975eb5c2d1 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.standard_t.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.standard\_t +======================= + +.. currentmodule:: dpnp.random + +.. autofunction:: standard_t \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.triangular.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.triangular.rst.txt new file mode 100644 index 00000000000..ff7c4a3a5e0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.triangular.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.triangular +====================== + +.. currentmodule:: dpnp.random + +.. autofunction:: triangular \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.uniform.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.uniform.rst.txt new file mode 100644 index 00000000000..6f8795aabb2 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.uniform.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.uniform +=================== + +.. currentmodule:: dpnp.random + +.. autofunction:: uniform \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.vonmises.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.vonmises.rst.txt new file mode 100644 index 00000000000..c7960c49542 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.vonmises.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.vonmises +==================== + +.. currentmodule:: dpnp.random + +.. autofunction:: vonmises \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.wald.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.wald.rst.txt new file mode 100644 index 00000000000..b24c68ded63 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.wald.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.wald +================ + +.. currentmodule:: dpnp.random + +.. autofunction:: wald \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.weibull.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.weibull.rst.txt new file mode 100644 index 00000000000..1a816da5049 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.weibull.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.weibull +=================== + +.. currentmodule:: dpnp.random + +.. autofunction:: weibull \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.random.zipf.rst.txt b/pull/2070/_sources/reference/generated/dpnp.random.zipf.rst.txt new file mode 100644 index 00000000000..8ef3491b62c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.random.zipf.rst.txt @@ -0,0 +1,6 @@ +dpnp.random.zipf +================ + +.. currentmodule:: dpnp.random + +.. autofunction:: zipf \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ravel.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ravel.rst.txt new file mode 100644 index 00000000000..8cd3bb24cb4 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ravel.rst.txt @@ -0,0 +1,6 @@ +dpnp.ravel +========== + +.. currentmodule:: dpnp + +.. autofunction:: ravel \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.ravel_multi_index.rst.txt b/pull/2070/_sources/reference/generated/dpnp.ravel_multi_index.rst.txt new file mode 100644 index 00000000000..89fc66dac00 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.ravel_multi_index.rst.txt @@ -0,0 +1,6 @@ +dpnp.ravel\_multi\_index +======================== + +.. currentmodule:: dpnp + +.. autofunction:: ravel_multi_index \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.real.rst.txt b/pull/2070/_sources/reference/generated/dpnp.real.rst.txt new file mode 100644 index 00000000000..532f29e1183 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.real.rst.txt @@ -0,0 +1,6 @@ +dpnp.real +========= + +.. currentmodule:: dpnp + +.. autofunction:: real \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.real_if_close.rst.txt b/pull/2070/_sources/reference/generated/dpnp.real_if_close.rst.txt new file mode 100644 index 00000000000..e060993d104 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.real_if_close.rst.txt @@ -0,0 +1,6 @@ +dpnp.real\_if\_close +==================== + +.. currentmodule:: dpnp + +.. autofunction:: real_if_close \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.reciprocal.rst.txt b/pull/2070/_sources/reference/generated/dpnp.reciprocal.rst.txt new file mode 100644 index 00000000000..d529e32e1a7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.reciprocal.rst.txt @@ -0,0 +1,6 @@ +dpnp.reciprocal +=============== + +.. currentmodule:: dpnp + +.. autofunction:: reciprocal \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.reduce_hypot.rst.txt b/pull/2070/_sources/reference/generated/dpnp.reduce_hypot.rst.txt new file mode 100644 index 00000000000..498d3494e1a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.reduce_hypot.rst.txt @@ -0,0 +1,6 @@ +dpnp.reduce\_hypot +================== + +.. currentmodule:: dpnp + +.. autofunction:: reduce_hypot \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.remainder.rst.txt b/pull/2070/_sources/reference/generated/dpnp.remainder.rst.txt new file mode 100644 index 00000000000..e70109f8fed --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.remainder.rst.txt @@ -0,0 +1,6 @@ +dpnp.remainder +============== + +.. currentmodule:: dpnp + +.. autofunction:: remainder \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.repeat.rst.txt b/pull/2070/_sources/reference/generated/dpnp.repeat.rst.txt new file mode 100644 index 00000000000..9bf69ced827 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.repeat.rst.txt @@ -0,0 +1,6 @@ +dpnp.repeat +=========== + +.. currentmodule:: dpnp + +.. autofunction:: repeat \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.require.rst.txt b/pull/2070/_sources/reference/generated/dpnp.require.rst.txt new file mode 100644 index 00000000000..6a2b2c93304 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.require.rst.txt @@ -0,0 +1,6 @@ +dpnp.require +============ + +.. currentmodule:: dpnp + +.. autofunction:: require \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.reshape.rst.txt b/pull/2070/_sources/reference/generated/dpnp.reshape.rst.txt new file mode 100644 index 00000000000..b0db98cb5b5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.reshape.rst.txt @@ -0,0 +1,6 @@ +dpnp.reshape +============ + +.. currentmodule:: dpnp + +.. autofunction:: reshape \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.resize.rst.txt b/pull/2070/_sources/reference/generated/dpnp.resize.rst.txt new file mode 100644 index 00000000000..60107ea02a6 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.resize.rst.txt @@ -0,0 +1,6 @@ +dpnp.resize +=========== + +.. currentmodule:: dpnp + +.. autofunction:: resize \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.result_type.rst.txt b/pull/2070/_sources/reference/generated/dpnp.result_type.rst.txt new file mode 100644 index 00000000000..1ce2f6068a1 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.result_type.rst.txt @@ -0,0 +1,6 @@ +dpnp.result\_type +================= + +.. currentmodule:: dpnp + +.. autofunction:: result_type \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.right_shift.rst.txt b/pull/2070/_sources/reference/generated/dpnp.right_shift.rst.txt new file mode 100644 index 00000000000..51b2d3e98de --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.right_shift.rst.txt @@ -0,0 +1,6 @@ +dpnp.right\_shift +================= + +.. currentmodule:: dpnp + +.. autofunction:: right_shift \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.rint.rst.txt b/pull/2070/_sources/reference/generated/dpnp.rint.rst.txt new file mode 100644 index 00000000000..71bbcdd3247 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.rint.rst.txt @@ -0,0 +1,6 @@ +dpnp.rint +========= + +.. currentmodule:: dpnp + +.. autofunction:: rint \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.roll.rst.txt b/pull/2070/_sources/reference/generated/dpnp.roll.rst.txt new file mode 100644 index 00000000000..ef8c957ebde --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.roll.rst.txt @@ -0,0 +1,6 @@ +dpnp.roll +========= + +.. currentmodule:: dpnp + +.. autofunction:: roll \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.rollaxis.rst.txt b/pull/2070/_sources/reference/generated/dpnp.rollaxis.rst.txt new file mode 100644 index 00000000000..bd258fdb197 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.rollaxis.rst.txt @@ -0,0 +1,6 @@ +dpnp.rollaxis +============= + +.. currentmodule:: dpnp + +.. autofunction:: rollaxis \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.rot90.rst.txt b/pull/2070/_sources/reference/generated/dpnp.rot90.rst.txt new file mode 100644 index 00000000000..e703c183f3e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.rot90.rst.txt @@ -0,0 +1,6 @@ +dpnp.rot90 +========== + +.. currentmodule:: dpnp + +.. autofunction:: rot90 \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.round.rst.txt b/pull/2070/_sources/reference/generated/dpnp.round.rst.txt new file mode 100644 index 00000000000..f1f918176c0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.round.rst.txt @@ -0,0 +1,6 @@ +dpnp.round +========== + +.. currentmodule:: dpnp + +.. autofunction:: round \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.row_stack.rst.txt b/pull/2070/_sources/reference/generated/dpnp.row_stack.rst.txt new file mode 100644 index 00000000000..c3c8f1d37f5 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.row_stack.rst.txt @@ -0,0 +1,6 @@ +dpnp.row\_stack +=============== + +.. currentmodule:: dpnp + +.. autofunction:: row_stack \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.rsqrt.rst.txt b/pull/2070/_sources/reference/generated/dpnp.rsqrt.rst.txt new file mode 100644 index 00000000000..b76f1894483 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.rsqrt.rst.txt @@ -0,0 +1,6 @@ +dpnp.rsqrt +========== + +.. currentmodule:: dpnp + +.. autofunction:: rsqrt \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.searchsorted.rst.txt b/pull/2070/_sources/reference/generated/dpnp.searchsorted.rst.txt new file mode 100644 index 00000000000..944e7a40dea --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.searchsorted.rst.txt @@ -0,0 +1,6 @@ +dpnp.searchsorted +================= + +.. currentmodule:: dpnp + +.. autofunction:: searchsorted \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.select.rst.txt b/pull/2070/_sources/reference/generated/dpnp.select.rst.txt new file mode 100644 index 00000000000..69f09bc0332 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.select.rst.txt @@ -0,0 +1,6 @@ +dpnp.select +=========== + +.. currentmodule:: dpnp + +.. autofunction:: select \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.shape.rst.txt b/pull/2070/_sources/reference/generated/dpnp.shape.rst.txt new file mode 100644 index 00000000000..c47c690047b --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.shape.rst.txt @@ -0,0 +1,6 @@ +dpnp.shape +========== + +.. currentmodule:: dpnp + +.. autofunction:: shape \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.sign.rst.txt b/pull/2070/_sources/reference/generated/dpnp.sign.rst.txt new file mode 100644 index 00000000000..4af5f97843a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.sign.rst.txt @@ -0,0 +1,6 @@ +dpnp.sign +========= + +.. currentmodule:: dpnp + +.. autofunction:: sign \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.signbit.rst.txt b/pull/2070/_sources/reference/generated/dpnp.signbit.rst.txt new file mode 100644 index 00000000000..b0e8bb3236c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.signbit.rst.txt @@ -0,0 +1,6 @@ +dpnp.signbit +============ + +.. currentmodule:: dpnp + +.. autofunction:: signbit \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.sin.rst.txt b/pull/2070/_sources/reference/generated/dpnp.sin.rst.txt new file mode 100644 index 00000000000..e5c8cbe6c73 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.sin.rst.txt @@ -0,0 +1,6 @@ +dpnp.sin +======== + +.. currentmodule:: dpnp + +.. autofunction:: sin \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.sinh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.sinh.rst.txt new file mode 100644 index 00000000000..19442da83d6 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.sinh.rst.txt @@ -0,0 +1,6 @@ +dpnp.sinh +========= + +.. currentmodule:: dpnp + +.. autofunction:: sinh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.size.rst.txt b/pull/2070/_sources/reference/generated/dpnp.size.rst.txt new file mode 100644 index 00000000000..2dd66310a5c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.size.rst.txt @@ -0,0 +1,6 @@ +dpnp.size +========= + +.. currentmodule:: dpnp + +.. autofunction:: size \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.sort.rst.txt b/pull/2070/_sources/reference/generated/dpnp.sort.rst.txt new file mode 100644 index 00000000000..6102918f4aa --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.sort.rst.txt @@ -0,0 +1,6 @@ +dpnp.sort +========= + +.. currentmodule:: dpnp + +.. autofunction:: sort \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.sort_complex.rst.txt b/pull/2070/_sources/reference/generated/dpnp.sort_complex.rst.txt new file mode 100644 index 00000000000..9390b508aa0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.sort_complex.rst.txt @@ -0,0 +1,6 @@ +dpnp.sort\_complex +================== + +.. currentmodule:: dpnp + +.. autofunction:: sort_complex \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.split.rst.txt b/pull/2070/_sources/reference/generated/dpnp.split.rst.txt new file mode 100644 index 00000000000..9834fca7620 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.split.rst.txt @@ -0,0 +1,6 @@ +dpnp.split +========== + +.. currentmodule:: dpnp + +.. autofunction:: split \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.sqrt.rst.txt b/pull/2070/_sources/reference/generated/dpnp.sqrt.rst.txt new file mode 100644 index 00000000000..275c820a3b8 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.sqrt.rst.txt @@ -0,0 +1,6 @@ +dpnp.sqrt +========= + +.. currentmodule:: dpnp + +.. autofunction:: sqrt \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.square.rst.txt b/pull/2070/_sources/reference/generated/dpnp.square.rst.txt new file mode 100644 index 00000000000..5bd3ecb5d0c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.square.rst.txt @@ -0,0 +1,6 @@ +dpnp.square +=========== + +.. currentmodule:: dpnp + +.. autofunction:: square \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.squeeze.rst.txt b/pull/2070/_sources/reference/generated/dpnp.squeeze.rst.txt new file mode 100644 index 00000000000..c567cb0c63a --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.squeeze.rst.txt @@ -0,0 +1,6 @@ +dpnp.squeeze +============ + +.. currentmodule:: dpnp + +.. autofunction:: squeeze \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.stack.rst.txt b/pull/2070/_sources/reference/generated/dpnp.stack.rst.txt new file mode 100644 index 00000000000..3f0fd52b55c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.stack.rst.txt @@ -0,0 +1,6 @@ +dpnp.stack +========== + +.. currentmodule:: dpnp + +.. autofunction:: stack \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.std.rst.txt b/pull/2070/_sources/reference/generated/dpnp.std.rst.txt new file mode 100644 index 00000000000..0e1c9c8a8fc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.std.rst.txt @@ -0,0 +1,6 @@ +dpnp.std +======== + +.. currentmodule:: dpnp + +.. autofunction:: std \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.subtract.rst.txt b/pull/2070/_sources/reference/generated/dpnp.subtract.rst.txt new file mode 100644 index 00000000000..767ad39a3dc --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.subtract.rst.txt @@ -0,0 +1,6 @@ +dpnp.subtract +============= + +.. currentmodule:: dpnp + +.. autofunction:: subtract \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.sum.rst.txt b/pull/2070/_sources/reference/generated/dpnp.sum.rst.txt new file mode 100644 index 00000000000..ff3ae01c6af --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.sum.rst.txt @@ -0,0 +1,6 @@ +dpnp.sum +======== + +.. currentmodule:: dpnp + +.. autofunction:: sum \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.swapaxes.rst.txt b/pull/2070/_sources/reference/generated/dpnp.swapaxes.rst.txt new file mode 100644 index 00000000000..ae3d1a41d04 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.swapaxes.rst.txt @@ -0,0 +1,6 @@ +dpnp.swapaxes +============= + +.. currentmodule:: dpnp + +.. autofunction:: swapaxes \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.take.rst.txt b/pull/2070/_sources/reference/generated/dpnp.take.rst.txt new file mode 100644 index 00000000000..afd4a03f72e --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.take.rst.txt @@ -0,0 +1,6 @@ +dpnp.take +========= + +.. currentmodule:: dpnp + +.. autofunction:: take \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.take_along_axis.rst.txt b/pull/2070/_sources/reference/generated/dpnp.take_along_axis.rst.txt new file mode 100644 index 00000000000..8e77b54c629 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.take_along_axis.rst.txt @@ -0,0 +1,6 @@ +dpnp.take\_along\_axis +====================== + +.. currentmodule:: dpnp + +.. autofunction:: take_along_axis \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.tan.rst.txt b/pull/2070/_sources/reference/generated/dpnp.tan.rst.txt new file mode 100644 index 00000000000..af968d011fd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.tan.rst.txt @@ -0,0 +1,6 @@ +dpnp.tan +======== + +.. currentmodule:: dpnp + +.. autofunction:: tan \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.tanh.rst.txt b/pull/2070/_sources/reference/generated/dpnp.tanh.rst.txt new file mode 100644 index 00000000000..f8b67cd9085 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.tanh.rst.txt @@ -0,0 +1,6 @@ +dpnp.tanh +========= + +.. currentmodule:: dpnp + +.. autofunction:: tanh \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.tensordot.rst.txt b/pull/2070/_sources/reference/generated/dpnp.tensordot.rst.txt new file mode 100644 index 00000000000..dbc1d75e712 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.tensordot.rst.txt @@ -0,0 +1,6 @@ +dpnp.tensordot +============== + +.. currentmodule:: dpnp + +.. autofunction:: tensordot \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.tile.rst.txt b/pull/2070/_sources/reference/generated/dpnp.tile.rst.txt new file mode 100644 index 00000000000..75e400edaba --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.tile.rst.txt @@ -0,0 +1,6 @@ +dpnp.tile +========= + +.. currentmodule:: dpnp + +.. autofunction:: tile \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.trace.rst.txt b/pull/2070/_sources/reference/generated/dpnp.trace.rst.txt new file mode 100644 index 00000000000..d2241a21d95 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.trace.rst.txt @@ -0,0 +1,6 @@ +dpnp.trace +========== + +.. currentmodule:: dpnp + +.. autofunction:: trace \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.transpose.rst.txt b/pull/2070/_sources/reference/generated/dpnp.transpose.rst.txt new file mode 100644 index 00000000000..65a1e92e0af --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.transpose.rst.txt @@ -0,0 +1,6 @@ +dpnp.transpose +============== + +.. currentmodule:: dpnp + +.. autofunction:: transpose \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.trapezoid.rst.txt b/pull/2070/_sources/reference/generated/dpnp.trapezoid.rst.txt new file mode 100644 index 00000000000..50cdb4d8fd3 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.trapezoid.rst.txt @@ -0,0 +1,6 @@ +dpnp.trapezoid +============== + +.. currentmodule:: dpnp + +.. autofunction:: trapezoid \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.tri.rst.txt b/pull/2070/_sources/reference/generated/dpnp.tri.rst.txt new file mode 100644 index 00000000000..3b2ae79b289 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.tri.rst.txt @@ -0,0 +1,6 @@ +dpnp.tri +======== + +.. currentmodule:: dpnp + +.. autofunction:: tri \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.tril.rst.txt b/pull/2070/_sources/reference/generated/dpnp.tril.rst.txt new file mode 100644 index 00000000000..fd02293c7bd --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.tril.rst.txt @@ -0,0 +1,6 @@ +dpnp.tril +========= + +.. currentmodule:: dpnp + +.. autofunction:: tril \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.tril_indices.rst.txt b/pull/2070/_sources/reference/generated/dpnp.tril_indices.rst.txt new file mode 100644 index 00000000000..e8ef80fc654 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.tril_indices.rst.txt @@ -0,0 +1,6 @@ +dpnp.tril\_indices +================== + +.. currentmodule:: dpnp + +.. autofunction:: tril_indices \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.tril_indices_from.rst.txt b/pull/2070/_sources/reference/generated/dpnp.tril_indices_from.rst.txt new file mode 100644 index 00000000000..4025ab786e7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.tril_indices_from.rst.txt @@ -0,0 +1,6 @@ +dpnp.tril\_indices\_from +======================== + +.. currentmodule:: dpnp + +.. autofunction:: tril_indices_from \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.trim_zeros.rst.txt b/pull/2070/_sources/reference/generated/dpnp.trim_zeros.rst.txt new file mode 100644 index 00000000000..35749a4547c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.trim_zeros.rst.txt @@ -0,0 +1,6 @@ +dpnp.trim\_zeros +================ + +.. currentmodule:: dpnp + +.. autofunction:: trim_zeros \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.triu.rst.txt b/pull/2070/_sources/reference/generated/dpnp.triu.rst.txt new file mode 100644 index 00000000000..7c45cc57a21 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.triu.rst.txt @@ -0,0 +1,6 @@ +dpnp.triu +========= + +.. currentmodule:: dpnp + +.. autofunction:: triu \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.triu_indices.rst.txt b/pull/2070/_sources/reference/generated/dpnp.triu_indices.rst.txt new file mode 100644 index 00000000000..4c67d3acfd9 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.triu_indices.rst.txt @@ -0,0 +1,6 @@ +dpnp.triu\_indices +================== + +.. currentmodule:: dpnp + +.. autofunction:: triu_indices \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.triu_indices_from.rst.txt b/pull/2070/_sources/reference/generated/dpnp.triu_indices_from.rst.txt new file mode 100644 index 00000000000..daa82eb5e62 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.triu_indices_from.rst.txt @@ -0,0 +1,6 @@ +dpnp.triu\_indices\_from +======================== + +.. currentmodule:: dpnp + +.. autofunction:: triu_indices_from \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.true_divide.rst.txt b/pull/2070/_sources/reference/generated/dpnp.true_divide.rst.txt new file mode 100644 index 00000000000..70ed8e1535d --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.true_divide.rst.txt @@ -0,0 +1,6 @@ +dpnp.true\_divide +================= + +.. currentmodule:: dpnp + +.. autofunction:: true_divide \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.trunc.rst.txt b/pull/2070/_sources/reference/generated/dpnp.trunc.rst.txt new file mode 100644 index 00000000000..64d1ab56711 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.trunc.rst.txt @@ -0,0 +1,6 @@ +dpnp.trunc +========== + +.. currentmodule:: dpnp + +.. autofunction:: trunc \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.unique.rst.txt b/pull/2070/_sources/reference/generated/dpnp.unique.rst.txt new file mode 100644 index 00000000000..1120279d75c --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.unique.rst.txt @@ -0,0 +1,6 @@ +dpnp.unique +=========== + +.. currentmodule:: dpnp + +.. autofunction:: unique \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.unravel_index.rst.txt b/pull/2070/_sources/reference/generated/dpnp.unravel_index.rst.txt new file mode 100644 index 00000000000..4a2e6060e51 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.unravel_index.rst.txt @@ -0,0 +1,6 @@ +dpnp.unravel\_index +=================== + +.. currentmodule:: dpnp + +.. autofunction:: unravel_index \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.unwrap.rst.txt b/pull/2070/_sources/reference/generated/dpnp.unwrap.rst.txt new file mode 100644 index 00000000000..ad593be9d11 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.unwrap.rst.txt @@ -0,0 +1,6 @@ +dpnp.unwrap +=========== + +.. currentmodule:: dpnp + +.. autofunction:: unwrap \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.vander.rst.txt b/pull/2070/_sources/reference/generated/dpnp.vander.rst.txt new file mode 100644 index 00000000000..6650e1cded7 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.vander.rst.txt @@ -0,0 +1,6 @@ +dpnp.vander +=========== + +.. currentmodule:: dpnp + +.. autofunction:: vander \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.var.rst.txt b/pull/2070/_sources/reference/generated/dpnp.var.rst.txt new file mode 100644 index 00000000000..1400f2f3c90 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.var.rst.txt @@ -0,0 +1,6 @@ +dpnp.var +======== + +.. currentmodule:: dpnp + +.. autofunction:: var \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.vdot.rst.txt b/pull/2070/_sources/reference/generated/dpnp.vdot.rst.txt new file mode 100644 index 00000000000..04bfddc4f13 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.vdot.rst.txt @@ -0,0 +1,6 @@ +dpnp.vdot +========= + +.. currentmodule:: dpnp + +.. autofunction:: vdot \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.vsplit.rst.txt b/pull/2070/_sources/reference/generated/dpnp.vsplit.rst.txt new file mode 100644 index 00000000000..4bb648b2e11 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.vsplit.rst.txt @@ -0,0 +1,6 @@ +dpnp.vsplit +=========== + +.. currentmodule:: dpnp + +.. autofunction:: vsplit \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.vstack.rst.txt b/pull/2070/_sources/reference/generated/dpnp.vstack.rst.txt new file mode 100644 index 00000000000..2e3c0bcf8f0 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.vstack.rst.txt @@ -0,0 +1,6 @@ +dpnp.vstack +=========== + +.. currentmodule:: dpnp + +.. autofunction:: vstack \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.where.rst.txt b/pull/2070/_sources/reference/generated/dpnp.where.rst.txt new file mode 100644 index 00000000000..aa5c9dd62af --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.where.rst.txt @@ -0,0 +1,6 @@ +dpnp.where +========== + +.. currentmodule:: dpnp + +.. autofunction:: where \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.zeros.rst.txt b/pull/2070/_sources/reference/generated/dpnp.zeros.rst.txt new file mode 100644 index 00000000000..b5cda021d54 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.zeros.rst.txt @@ -0,0 +1,6 @@ +dpnp.zeros +========== + +.. currentmodule:: dpnp + +.. autofunction:: zeros \ No newline at end of file diff --git a/pull/2070/_sources/reference/generated/dpnp.zeros_like.rst.txt b/pull/2070/_sources/reference/generated/dpnp.zeros_like.rst.txt new file mode 100644 index 00000000000..4e9527da764 --- /dev/null +++ b/pull/2070/_sources/reference/generated/dpnp.zeros_like.rst.txt @@ -0,0 +1,6 @@ +dpnp.zeros\_like +================ + +.. currentmodule:: dpnp + +.. autofunction:: zeros_like \ No newline at end of file diff --git a/pull/2070/_sources/reference/index.rst.txt b/pull/2070/_sources/reference/index.rst.txt new file mode 100644 index 00000000000..44a29008871 --- /dev/null +++ b/pull/2070/_sources/reference/index.rst.txt @@ -0,0 +1,35 @@ +.. _dpnp_reference: + +************* +API Reference +************* + +API reference of the Data Parallel Extension for NumPy* + +---- + +.. currentmodule:: dpnp + +.. toctree:: + :maxdepth: 2 + + ndarray + ufunc + routines + special + scipy + sparse + ndimage + generic + memory + cuda + memoize + kernel + optimize + interoperability + testing + prof + environment + dtypes_table + comparison + misc diff --git a/pull/2070/_sources/reference/indexing.rst.txt b/pull/2070/_sources/reference/indexing.rst.txt new file mode 100644 index 00000000000..491964c7f49 --- /dev/null +++ b/pull/2070/_sources/reference/indexing.rst.txt @@ -0,0 +1,73 @@ +.. _routines.indexing: +.. _arrays.indexing: + +Indexing routines +================= + +.. https://numpy.org/doc/stable/reference/routines.indexing.html + +Generating index arrays +----------------------- +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.c_ + dpnp.r_ + dpnp.s_ + dpnp.nonzero + dpnp.where + dpnp.indices + dpnp.ix_ + dpnp.ogrid + dpnp.ravel_multi_index + dpnp.unravel_index + dpnp.diag_indices + dpnp.diag_indices_from + dpnp.mask_indices + dpnp.tril_indices + dpnp.tril_indices_from + dpnp.triu_indices + dpnp.triu_indices_from + + +Indexing-like operations +------------------------ +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.take + dpnp.take_along_axis + dpnp.choose + dpnp.compress + dpnp.diag + dpnp.diagonal + dpnp.select + + +Inserting data into arrays +-------------------------- +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.place + dpnp.put + dpnp.put_along_axis + dpnp.putmask + dpnp.fill_diagonal + + +Iterating over arrays +--------------------- +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.nditer + dpnp.ndenumerate + dpnp.ndindex + dpnp.nested_iters + dpnp.flatiter + dpnp.iterable diff --git a/pull/2070/_sources/reference/linalg.rst.txt b/pull/2070/_sources/reference/linalg.rst.txt new file mode 100644 index 00000000000..ddde45cb41d --- /dev/null +++ b/pull/2070/_sources/reference/linalg.rst.txt @@ -0,0 +1,75 @@ +Linear Algebra +============== + +.. https://docs.scipy.org/doc/numpy/reference/routines.linalg.html + +Matrix and vector products +-------------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.dot + dpnp.linalg.multi_dot + dpnp.vdot + dpnp.inner + dpnp.outer + dpnp.matmul + dpnp.tensordot + dpnp.einsum + dpnp.einsum_path + dpnp.linalg.matrix_power + dpnp.kron + +Decompositions +-------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.linalg.cholesky + dpnp.linalg.qr + dpnp.linalg.svd + +Matrix eigenvalues +------------------ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.linalg.eig + dpnp.linalg.eigh + dpnp.linalg.eigvals + dpnp.linalg.eigvalsh + +Norms and other numbers +----------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.linalg.norm + dpnp.linalg.cond + dpnp.linalg.det + dpnp.linalg.matrix_rank + dpnp.linalg.slogdet + dpnp.trace + + +Solving linear equations +-------------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.linalg.solve + dpnp.linalg.tensorsolve + dpnp.linalg.lstsq + dpnp.linalg.inv + dpnp.linalg.pinv + dpnp.linalg.tensorinv diff --git a/pull/2070/_sources/reference/logic.rst.txt b/pull/2070/_sources/reference/logic.rst.txt new file mode 100644 index 00000000000..5cd7066b452 --- /dev/null +++ b/pull/2070/_sources/reference/logic.rst.txt @@ -0,0 +1,77 @@ +Logic Functions +=============== + +.. https://docs.scipy.org/doc/numpy/reference/routines.logic.html + +Truth value testing +------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.all + dpnp.any + dpnp.in1d + dpnp.isin + + +Infinities and NaNs +------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.isfinite + dpnp.isinf + dpnp.isnan + dpnp.isneginf + dpnp.isposinf + + +Array type testing +------------------ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.iscomplex + dpnp.iscomplexobj + dpnp.isfortran + dpnp.isreal + dpnp.isrealobj + dpnp.isscalar + + +Logic operations +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.logical_and + dpnp.logical_or + dpnp.logical_not + dpnp.logical_xor + + +Comparison +---------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.allclose + dpnp.isclose + dpnp.array_equal + dpnp.array_equiv + dpnp.greater + dpnp.greater_equal + dpnp.less + dpnp.less_equal + dpnp.equal + dpnp.not_equal diff --git a/pull/2070/_sources/reference/manipulation.rst.txt b/pull/2070/_sources/reference/manipulation.rst.txt new file mode 100644 index 00000000000..a9682c488bf --- /dev/null +++ b/pull/2070/_sources/reference/manipulation.rst.txt @@ -0,0 +1,153 @@ +Array Manipulation Routines +=========================== + +.. https://docs.scipy.org/doc/numpy/reference/routines.array-manipulation.html + +Basic operations +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.copyto + dpnp.ndim + dpnp.shape + dpnp.size + + +Changing array shape +-------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.reshape + dpnp.ravel + dpnp.ndarray.flat + dpnp.ndarray.flatten + + +Transpose-like operations +------------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.moveaxis + dpnp.rollaxis + dpnp.swapaxes + dpnp.ndarray.T + dpnp.transpose + dpnp.permute_dims + dpnp.matrix_transpose (Array API compatible) + + +Changing number of dimensions +----------------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.atleast_1d + dpnp.atleast_2d + dpnp.atleast_3d + dpnp.broadcast + dpnp.broadcast_to + dpnp.broadcast_arrays + dpnp.expand_dims + dpnp.squeeze + + +Changing kind of array +---------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.asarray + dpnp.asanyarray + dpnp.asnumpy + dpnp.asfarray + dpnp.asfortranarray + dpnp.ascontiguousarray + dpnp.asarray_chkfinite + dpnp.require + + +Joining arrays +-------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.concatenate + dpnp.concat + dpnp.stack + dpnp.block + dpnp.vstack + dpnp.hstack + dpnp.dstack + dpnp.column_stack + dpnp.row_stack + + +Splitting arrays +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.split + dpnp.array_split + dpnp.dsplit + dpnp.hsplit + dpnp.vsplit + dpnp.unstack + + +Tiling arrays +------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.tile + dpnp.repeat + + +Adding and removing elements +---------------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.delete + dpnp.insert + dpnp.append + dpnp.resize + dpnp.trim_zeros + dpnp.unique + dpnp.pad + + +Rearranging elements +-------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.flip + dpnp.fliplr + dpnp.flipud + dpnp.roll + dpnp.rot90 diff --git a/pull/2070/_sources/reference/math.rst.txt b/pull/2070/_sources/reference/math.rst.txt new file mode 100644 index 00000000000..522d046299e --- /dev/null +++ b/pull/2070/_sources/reference/math.rst.txt @@ -0,0 +1,236 @@ +Mathematical functions +====================== + +.. https://docs.scipy.org/doc/numpy/reference/routines.math.html + +Trigonometric functions +----------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.sin + dpnp.cos + dpnp.tan + dpnp.arcsin + dpnp.asin + dpnp.arccos + dpnp.acos + dpnp.arctan + dpnp.atan + dpnp.hypot + dpnp.arctan2 + dpnp.atan2 + dpnp.degrees + dpnp.radians + dpnp.unwrap + dpnp.deg2rad + dpnp.rad2deg + dpnp.reduce_hypot + + +Hyperbolic functions +-------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.sinh + dpnp.cosh + dpnp.tanh + dpnp.arcsinh + dpnp.asinh + dpnp.arccosh + dpnp.acosh + dpnp.arctanh + dpnp.atanh + + +Rounding +-------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.round + dpnp.around + dpnp.rint + dpnp.fix + dpnp.floor + dpnp.ceil + dpnp.trunc + + +Sums, products, differences +--------------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.prod + dpnp.sum + dpnp.nanprod + dpnp.nansum + dpnp.cumulative_sum + dpnp.cumulative_prod + dpnp.cumprod + dpnp.cumsum + dpnp.nancumprod + dpnp.nancumsum + dpnp.diff + dpnp.ediff1d + dpnp.gradient + dpnp.cross + dpnp.trapezoid + + +Exponents and logarithms +------------------------ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.exp + dpnp.expm1 + dpnp.exp2 + dpnp.log + dpnp.log10 + dpnp.log2 + dpnp.log1p + dpnp.logaddexp + dpnp.logaddexp2 + dpnp.logsumexp + dpnp.cumlogsumexp + + +Other special functions +----------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.i0 + dpnp.sinc + + +Floating point routines +----------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.signbit + dpnp.copysign + dpnp.frexp + dpnp.ldexp + dpnp.nextafter + dpnp.spacing + + +Rational routines +----------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.lcm + dpnp.gcd + + +Arithmetic operations +--------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.add + dpnp.reciprocal + dpnp.positive + dpnp.negative + dpnp.multiply + dpnp.divide + dpnp.power + dpnp.pow + dpnp.subtract + dpnp.true_divide + dpnp.floor_divide + dpnp.float_power + + dpnp.fmod + dpnp.mod + dpnp.modf + dpnp.remainder + dpnp.divmod + + +Handling complex numbers +------------------------ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.angle + dpnp.real + dpnp.imag + dpnp.conj + dpnp.conjugate + dpnp.proj + + +Extrema finding +--------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.maximum + dpnp.max + dpnp.amax + dpnp.fmax + dpnp.nanmax + + dpnp.minimum + dpnp.min + dpnp.amin + dpnp.fmin + dpnp.nanmin + + +Miscellaneous +------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.convolve + dpnp.clip + + dpnp.sqrt + dpnp.cbrt + dpnp.square + dpnp.rsqrt + + dpnp.abs + dpnp.absolute + dpnp.fabs + dpnp.sign + dpnp.heaviside + + dpnp.nan_to_num + dpnp.real_if_close + + dpnp.interp + + dpnp.bitwise_count diff --git a/pull/2070/_sources/reference/misc.rst.txt b/pull/2070/_sources/reference/misc.rst.txt new file mode 100644 index 00000000000..413aace06cc --- /dev/null +++ b/pull/2070/_sources/reference/misc.rst.txt @@ -0,0 +1,18 @@ +Miscellaneous routines +====================== + +.. https://docs.scipy.org/doc/numpy/reference/routines.other.html + +Utility +------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.get_include + dpnp.show_config + dpnp.show_runtime + dpnp.deprecate + dpnp.deprecate_with_doc + dpnp.broadcast_shapes diff --git a/pull/2070/_sources/reference/ndarray.rst.txt b/pull/2070/_sources/reference/ndarray.rst.txt new file mode 100644 index 00000000000..5eadd5b9aba --- /dev/null +++ b/pull/2070/_sources/reference/ndarray.rst.txt @@ -0,0 +1,386 @@ +Multi-Dimensional Array (ndarray) +================================= + +:class:`dpnp.ndarray` is the DPNP counterpart of NumPy :class:`numpy.ndarray`. + +For the basic concept of ``ndarray``\s, please refer to the `NumPy documentation `_. + + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray + dpnp.dpnp_array.dpnp_array + + +Constructing arrays +------------------- + +New arrays can be constructed using the routines detailed in +:ref:`Array Creation Routines `, and also by using the low-level +:class:`dpnp.ndarray` constructor: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray + + +Indexing arrays +--------------- + +Arrays can be indexed using an extended Python slicing syntax, +``array[selection]``. + +.. seealso:: :ref:`Indexing routines `. + + +Array attributes +---------------- + +Array attributes reflect information that is intrinsic to the array +itself. Generally, accessing an array through its attributes allows +you to get and sometimes set intrinsic properties of the array without +creating a new array. The exposed attributes are the core parts of an +array and only some of them can be reset meaningfully without creating +a new array. Information on each attribute is given below. + + +Memory layout +------------- + +The following attributes contain information about the memory layout +of the array: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.flags + dpnp.ndarray.shape + dpnp.ndarray.strides + dpnp.ndarray.ndim + dpnp.ndarray.data + dpnp.ndarray.size + dpnp.ndarray.itemsize + dpnp.ndarray.nbytes + dpnp.ndarray.base + + +Data type +--------- + +.. seealso:: :ref:`Available array data types ` + +The data type object associated with the array can be found in the +:attr:`dtype ` attribute: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.dtype + + +Other attributes +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.T + dpnp.ndarray.real + dpnp.ndarray.imag + dpnp.ndarray.flat + + +Array methods +------------- + +An :class:`dpnp.ndarray` object has many methods which operate on or with +the array in some fashion, typically returning an array result. These +methods are briefly explained below. (Each method's docstring has a +more complete description.) + +For the following methods there are also corresponding functions in +:mod:`dpnp`: :func:`all `, :func:`any `, +:func:`argmax `, :func:`argmin `, +:func:`argpartition `, :func:`argsort `, +:func:`choose `, :func:`clip `, +:func:`compress `, :func:`copy `, +:func:`cumprod `, :func:`cumsum `, +:func:`diagonal `, :func:`imag `, +:func:`max `, :func:`mean `, :func:`min `, +:func:`nonzero `, :func:`partition `, +:func:`prod `, :func:`put `, +:func:`ravel `, :func:`real `, :func:`repeat `, +:func:`reshape `, :func:`round `, +:func:`searchsorted `, :func:`sort `, +:func:`squeeze `, :func:`std `, :func:`sum `, +:func:`swapaxes `, :func:`take `, :func:`trace `, +:func:`transpose `, :func:`var `. + + +Array conversion +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.item + dpnp.ndarray.tolist + dpnp.ndarray.itemset + dpnp.ndarray.tostring + dpnp.ndarray.tobytes + dpnp.ndarray.tofile + dpnp.ndarray.dump + dpnp.ndarray.dumps + dpnp.ndarray.astype + dpnp.ndarray.byteswap + dpnp.ndarray.copy + dpnp.ndarray.view + dpnp.ndarray.getfield + dpnp.ndarray.setflags + dpnp.ndarray.fill + + +Shape manipulation +------------------ + +For reshape, resize, and transpose, the single tuple argument may be +replaced with ``n`` integers which will be interpreted as an n-tuple. + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.reshape + dpnp.ndarray.resize + dpnp.ndarray.transpose + dpnp.ndarray.swapaxes + dpnp.ndarray.flatten + dpnp.ndarray.ravel + dpnp.ndarray.squeeze + + +Item selection and manipulation +------------------------------- + +For array methods that take an *axis* keyword, it defaults to +*None*. If axis is *None*, then the array is treated as a 1-D +array. Any other value for *axis* represents the dimension along which +the operation should proceed. + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.take + dpnp.ndarray.put + dpnp.ndarray.repeat + dpnp.ndarray.choose + dpnp.ndarray.sort + dpnp.ndarray.argsort + dpnp.ndarray.partition + dpnp.ndarray.argpartition + dpnp.ndarray.searchsorted + dpnp.ndarray.nonzero + dpnp.ndarray.compress + dpnp.ndarray.diagonal + + +Calculation +----------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.max + dpnp.ndarray.argmax + dpnp.ndarray.min + dpnp.ndarray.argmin + dpnp.ndarray.clip + dpnp.ndarray.conj + dpnp.ndarray.conjugate + dpnp.ndarray.round + dpnp.ndarray.trace + dpnp.ndarray.sum + dpnp.ndarray.cumsum + dpnp.ndarray.mean + dpnp.ndarray.var + dpnp.ndarray.std + dpnp.ndarray.prod + dpnp.ndarray.cumprod + dpnp.ndarray.all + dpnp.ndarray.any + + +Arithmetic, matrix multiplication, and comparison operations +------------------------------------------------------------ + +Arithmetic and comparison operations on :class:`dpnp.ndarrays ` +are defined as element-wise operations, and generally yield +:class:`dpnp.ndarray` objects as results. + +Each of the arithmetic operations (``+``, ``-``, ``*``, ``/``, ``//``, +``%``, ``divmod()``, ``**`` or ``pow()``, ``<<``, ``>>``, ``&``, +``^``, ``|``, ``~``) and the comparisons (``==``, ``<``, ``>``, +``<=``, ``>=``, ``!=``) is equivalent to the corresponding +universal function (or :term:`ufunc` for short) in DPNP. For +more information, see the section on :ref:`Universal Functions +`. + + +Comparison operators: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__lt__ + dpnp.ndarray.__le__ + dpnp.ndarray.__gt__ + dpnp.ndarray.__ge__ + dpnp.ndarray.__eq__ + dpnp.ndarray.__ne__ + +Truth value of an array (:func:`bool()`): + +.. autosummary:: + :toctree: generated/ + + dpnp.ndarray.__bool__ + +.. note:: + + Truth-value testing of an array invokes + :meth:`dpnp.ndarray.__bool__`, which raises an error if the number of + elements in the array is larger than 1, because the truth value + of such arrays is ambiguous. Use :meth:`.any() ` and + :meth:`.all() ` instead to be clear about what is meant + in such cases. (If the number of elements is 0, the array evaluates + to ``False``.) + + +Unary operations: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__neg__ + dpnp.ndarray.__pos__ + dpnp.ndarray.__abs__ + dpnp.ndarray.__invert__ + + +Arithmetic: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__add__ + dpnp.ndarray.__sub__ + dpnp.ndarray.__mul__ + dpnp.ndarray.__truediv__ + dpnp.ndarray.__floordiv__ + dpnp.ndarray.__mod__ + dpnp.ndarray.__divmod__ + dpnp.ndarray.__pow__ + dpnp.ndarray.__lshift__ + dpnp.ndarray.__rshift__ + dpnp.ndarray.__and__ + dpnp.ndarray.__or__ + dpnp.ndarray.__xor__ + + +Arithmetic, in-place: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__iadd__ + dpnp.ndarray.__isub__ + dpnp.ndarray.__imul__ + dpnp.ndarray.__itruediv__ + dpnp.ndarray.__ifloordiv__ + dpnp.ndarray.__imod__ + dpnp.ndarray.__ipow__ + dpnp.ndarray.__ilshift__ + dpnp.ndarray.__irshift__ + dpnp.ndarray.__iand__ + dpnp.ndarray.__ior__ + dpnp.ndarray.__ixor__ + + +Matrix Multiplication: + +.. autosummary:: + :toctree: generated/ + + dpnp.ndarray.__matmul__ + + +Special methods +--------------- + +For standard library functions: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__copy__ + dpnp.ndarray.__deepcopy__ + .. dpnp.ndarray.__reduce__ + dpnp.ndarray.__setstate__ + +Basic customization: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__new__ + dpnp.ndarray.__array__ + dpnp.ndarray.__array_wrap__ + +Container customization: (see :ref:`Indexing `) + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__len__ + dpnp.ndarray.__getitem__ + dpnp.ndarray.__setitem__ + dpnp.ndarray.__contains__ + +Conversion; the operations :class:`int() `, +:class:`float() ` and :class:`complex() `. +They work only on arrays that have one element in them +and return the appropriate scalar. + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__int__ + dpnp.ndarray.__float__ + dpnp.ndarray.__complex__ + +String representations: + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ndarray.__str__ + dpnp.ndarray.__repr__ diff --git a/pull/2070/_sources/reference/pad.rst.txt b/pull/2070/_sources/reference/pad.rst.txt new file mode 100644 index 00000000000..0724a6d66f6 --- /dev/null +++ b/pull/2070/_sources/reference/pad.rst.txt @@ -0,0 +1,10 @@ +Padding +================================ + +.. https://docs.scipy.org/doc/numpy/reference/routines.padding.html + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.pad diff --git a/pull/2070/_sources/reference/polynomials.rst.txt b/pull/2070/_sources/reference/polynomials.rst.txt new file mode 100644 index 00000000000..d86cedfe49a --- /dev/null +++ b/pull/2070/_sources/reference/polynomials.rst.txt @@ -0,0 +1,58 @@ +Polynomials +=========== + +.. https://numpy.org/doc/stable/reference/routines.polynomials.html + +Polynomial Package +------------------ + +Polynomial Module +~~~~~~~~~~~~~~~~~ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + .. polynomial module is not implemented yet + .. dpnp.polynomial.polynomial.polyvander + .. dpnp.polynomial.polynomial.polycompanion + + +Polyutils +~~~~~~~~~ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + .. polyutils module is not implemented yet + .. dpnp.polynomial.polyutils.as_series + .. dpnp.polynomial.polyutils.trimseq + .. dpnp.polynomial.polyutils.trimcoef + + +Poly1d +------ + +Basics +~~~~~~ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.poly1d + dpnp.polyval + dpnp.roots + + +Arithmetic +~~~~~~~~~~ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.polyadd + dpnp.polysub + dpnp.polymul diff --git a/pull/2070/_sources/reference/random.rst.txt b/pull/2070/_sources/reference/random.rst.txt new file mode 100644 index 00000000000..db7b76b8bd4 --- /dev/null +++ b/pull/2070/_sources/reference/random.rst.txt @@ -0,0 +1,93 @@ +.. module:: dpnp.random + +Random Sampling (``dpnp.random``) +================================= + +.. https://docs.scipy.org/doc/numpy/reference/random/legacy.html + + +Simple random data +------------------ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + rand + randn + randint + random_integers + random_sample + random + ranf + sample + choice + bytes + + +Permutations +------------ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + shuffle + permutation + + +Distributions +------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + beta + binomial + chisquare + dirichlet + exponential + f + gamma + geometric + gumbel + hypergeometric + laplace + logistic + lognormal + logseries + multinomial + multivariate_normal + negative_binomial + noncentral_chisquare + noncentral_f + normal + pareto + poisson + power + rayleigh + standard_cauchy + standard_exponential + standard_gamma + standard_normal + standard_t + triangular + uniform + vonmises + wald + weibull + zipf + + +Random generator +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + RandomState + seed + get_random_state + set_random_state diff --git a/pull/2070/_sources/reference/routines.rst.txt b/pull/2070/_sources/reference/routines.rst.txt new file mode 100644 index 00000000000..645d1a6be5d --- /dev/null +++ b/pull/2070/_sources/reference/routines.rst.txt @@ -0,0 +1,27 @@ +-------- +Routines +-------- + +The following pages describe NumPy-compatible routines. +These functions cover a subset of +`NumPy routines `_. + +.. currentmodule:: dpnp + +.. toctree:: + :maxdepth: 2 + + creation + manipulation + indexing + binary + dtype + fft + linalg + logic + math + .. pad + .. polynomials + random + sorting + statistics diff --git a/pull/2070/_sources/reference/sorting.rst.txt b/pull/2070/_sources/reference/sorting.rst.txt new file mode 100644 index 00000000000..42179debd0f --- /dev/null +++ b/pull/2070/_sources/reference/sorting.rst.txt @@ -0,0 +1,48 @@ +Sorting, Searching, and Counting +================================ + +.. https://docs.scipy.org/doc/numpy/reference/routines.sort.html + +Sorting +------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.sort + dpnp.lexsort + dpnp.argsort + dpnp.sort_complex + dpnp.partition + dpnp.argpartition + +.. seealso:: + :func:`dpnp.ndarray.sort` + +Searching +--------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.argmax + dpnp.nanargmax + dpnp.argmin + dpnp.nanargmin + dpnp.argwhere + dpnp.nonzero + dpnp.flatnonzero + dpnp.where + dpnp.searchsorted + dpnp.extract + +Counting +-------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.count_nonzero diff --git a/pull/2070/_sources/reference/special.rst.txt b/pull/2070/_sources/reference/special.rst.txt new file mode 100644 index 00000000000..1261625e5e2 --- /dev/null +++ b/pull/2070/_sources/reference/special.rst.txt @@ -0,0 +1,17 @@ +Special Functions +================= + +.. https://docs.scipy.org/doc/scipy/reference/special.html + +Error Function +-------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.erf + dpnp.erfc + dpnp.erfcx + dpnp.erfinv + dpnp.erfcinv diff --git a/pull/2070/_sources/reference/statistics.rst.txt b/pull/2070/_sources/reference/statistics.rst.txt new file mode 100644 index 00000000000..540b6e314a6 --- /dev/null +++ b/pull/2070/_sources/reference/statistics.rst.txt @@ -0,0 +1,61 @@ +Statistical Functions +===================== + +.. https://docs.scipy.org/doc/numpy/reference/routines.statistics.html + +Order statistics +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.ptp + dpnp.percentile + dpnp.nanpercentile + dpnp.quantile + dpnp.nanquantile + + +Averages and variances +---------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.median + dpnp.average + dpnp.mean + dpnp.std + dpnp.var + dpnp.nanmean + dpnp.nanvar + dpnp.nanstd + + +Correlations +------------ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.corrcoef + dpnp.cov + dpnp.correlate + + +Histograms +---------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.histogram + dpnp.histogram2d + dpnp.histogramdd + dpnp.bincount + dpnp.histogram_bin_edges + dpnp.digitize diff --git a/pull/2070/_sources/reference/ufunc.rst.txt b/pull/2070/_sources/reference/ufunc.rst.txt new file mode 100644 index 00000000000..5c76da99d8e --- /dev/null +++ b/pull/2070/_sources/reference/ufunc.rst.txt @@ -0,0 +1,163 @@ +.. _ufunc: + +Universal Functions (ufunc) +=========================== + +.. https://docs.scipy.org/doc/numpy/reference/ufuncs.html + +DPNP provides universal functions (a.k.a. ufuncs) to support various element-wise operations. + +Available ufuncs +---------------- + +Math operations +~~~~~~~~~~~~~~~ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.add + dpnp.subtract + dpnp.multiply + dpnp.matmul + dpnp.divide + dpnp.logaddexp + dpnp.logaddexp2 + dpnp.true_divide + dpnp.floor_divide + dpnp.negative + dpnp.positive + dpnp.power + dpnp.float_power + dpnp.remainder + dpnp.mod + dpnp.fmod + dpnp.divmod + dpnp.absolute + dpnp.fabs + dpnp.rint + dpnp.sign + dpnp.heaviside + dpnp.conj + dpnp.conjugate + dpnp.exp + dpnp.exp2 + dpnp.log + dpnp.log2 + dpnp.log10 + dpnp.expm1 + dpnp.log1p + dpnp.proj + dpnp.sqrt + dpnp.square + dpnp.cbrt + dpnp.reciprocal + dpnp.rsqrt + dpnp.gcd + dpnp.lcm + +.. tip:: + + The optional output arguments can be used to help you save memory + for large calculations. If your arrays are large, complicated + expressions can take longer than absolutely necessary due to the + creation and (later) destruction of temporary calculation + spaces. For example, the expression ``G = A * B + C`` is equivalent to + ``T1 = A * B; G = T1 + C; del T1``. It will be more quickly executed + as ``G = A * B; add(G, C, G)`` which is the same as + ``G = A * B; G += C``. + + +Trigonometric functions +~~~~~~~~~~~~~~~~~~~~~~~ +All trigonometric functions use radians when an angle is called for. +The ratio of degrees to radians is :math:`180^{\circ}/\pi.` + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.sin + dpnp.cos + dpnp.tan + dpnp.arcsin + dpnp.arccos + dpnp.arctan + dpnp.arctan2 + dpnp.hypot + dpnp.sinh + dpnp.cosh + dpnp.tanh + dpnp.arcsinh + dpnp.arccosh + dpnp.arctanh + dpnp.degrees + dpnp.radians + dpnp.deg2rad + dpnp.rad2deg + + +Bit-twiddling functions +~~~~~~~~~~~~~~~~~~~~~~~ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.bitwise_and + dpnp.bitwise_or + dpnp.bitwise_xor + dpnp.invert + dpnp.left_shift + dpnp.right_shift + + +Comparison functions +~~~~~~~~~~~~~~~~~~~~ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.greater + dpnp.greater_equal + dpnp.less + dpnp.less_equal + dpnp.not_equal + dpnp.equal + + dpnp.logical_and + dpnp.logical_or + dpnp.logical_xor + dpnp.logical_not + + dpnp.maximum + dpnp.minimum + dpnp.fmax + dpnp.fmin + + +Floating functions +~~~~~~~~~~~~~~~~~~ + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + dpnp.isfinite + dpnp.isinf + dpnp.isnan + dpnp.isnat + dpnp.fabs + dpnp.signbit + dpnp.copysign + dpnp.nextafter + dpnp.spacing + dpnp.modf + dpnp.ldexp + dpnp.frexp + dpnp.fmod + dpnp.floor + dpnp.ceil + dpnp.trunc diff --git a/pull/2070/_static/_sphinx_javascript_frameworks_compat.js b/pull/2070/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 00000000000..81415803ec2 --- /dev/null +++ b/pull/2070/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/pull/2070/_static/basic.css b/pull/2070/_static/basic.css new file mode 100644 index 00000000000..4355edf0552 --- /dev/null +++ b/pull/2070/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 30px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/pull/2070/_static/css/badge_only.css b/pull/2070/_static/css/badge_only.css new file mode 100644 index 00000000000..c718cee4418 --- /dev/null +++ b/pull/2070/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/pull/2070/_static/css/fonts/Roboto-Slab-Bold.woff b/pull/2070/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 00000000000..6cb60000181 Binary files /dev/null and b/pull/2070/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/pull/2070/_static/css/fonts/Roboto-Slab-Bold.woff2 b/pull/2070/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 00000000000..7059e23142a Binary files /dev/null and b/pull/2070/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/pull/2070/_static/css/fonts/Roboto-Slab-Regular.woff b/pull/2070/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 00000000000..f815f63f99d Binary files /dev/null and b/pull/2070/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/pull/2070/_static/css/fonts/Roboto-Slab-Regular.woff2 b/pull/2070/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 00000000000..f2c76e5bda1 Binary files /dev/null and b/pull/2070/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/pull/2070/_static/css/fonts/fontawesome-webfont.eot b/pull/2070/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000000..e9f60ca953f Binary files /dev/null and b/pull/2070/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/pull/2070/_static/css/fonts/fontawesome-webfont.svg b/pull/2070/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000000..855c845e538 --- /dev/null +++ b/pull/2070/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pull/2070/_static/css/fonts/fontawesome-webfont.ttf b/pull/2070/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000000..35acda2fa11 Binary files /dev/null and b/pull/2070/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/pull/2070/_static/css/fonts/fontawesome-webfont.woff b/pull/2070/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000000..400014a4b06 Binary files /dev/null and b/pull/2070/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/pull/2070/_static/css/fonts/fontawesome-webfont.woff2 b/pull/2070/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000000..4d13fc60404 Binary files /dev/null and b/pull/2070/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/pull/2070/_static/css/fonts/lato-bold-italic.woff b/pull/2070/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 00000000000..88ad05b9ff4 Binary files /dev/null and b/pull/2070/_static/css/fonts/lato-bold-italic.woff differ diff --git a/pull/2070/_static/css/fonts/lato-bold-italic.woff2 b/pull/2070/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 00000000000..c4e3d804b57 Binary files /dev/null and b/pull/2070/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/pull/2070/_static/css/fonts/lato-bold.woff b/pull/2070/_static/css/fonts/lato-bold.woff new file mode 100644 index 00000000000..c6dff51f063 Binary files /dev/null and b/pull/2070/_static/css/fonts/lato-bold.woff differ diff --git a/pull/2070/_static/css/fonts/lato-bold.woff2 b/pull/2070/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 00000000000..bb195043cfc Binary files /dev/null and b/pull/2070/_static/css/fonts/lato-bold.woff2 differ diff --git a/pull/2070/_static/css/fonts/lato-normal-italic.woff b/pull/2070/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 00000000000..76114bc0336 Binary files /dev/null and b/pull/2070/_static/css/fonts/lato-normal-italic.woff differ diff --git a/pull/2070/_static/css/fonts/lato-normal-italic.woff2 b/pull/2070/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 00000000000..3404f37e2e3 Binary files /dev/null and b/pull/2070/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/pull/2070/_static/css/fonts/lato-normal.woff b/pull/2070/_static/css/fonts/lato-normal.woff new file mode 100644 index 00000000000..ae1307ff5f4 Binary files /dev/null and b/pull/2070/_static/css/fonts/lato-normal.woff differ diff --git a/pull/2070/_static/css/fonts/lato-normal.woff2 b/pull/2070/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 00000000000..3bf9843328a Binary files /dev/null and b/pull/2070/_static/css/fonts/lato-normal.woff2 differ diff --git a/pull/2070/_static/css/theme.css b/pull/2070/_static/css/theme.css new file mode 100644 index 00000000000..19a446a0e70 --- /dev/null +++ b/pull/2070/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/pull/2070/_static/doctools.js b/pull/2070/_static/doctools.js new file mode 100644 index 00000000000..4d67807d17d --- /dev/null +++ b/pull/2070/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/pull/2070/_static/documentation_options.js b/pull/2070/_static/documentation_options.js new file mode 100644 index 00000000000..e130cf93180 --- /dev/null +++ b/pull/2070/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '0.16.0dev1+17.g69a3b6ac3c2', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/pull/2070/_static/file.png b/pull/2070/_static/file.png new file mode 100644 index 00000000000..a858a410e4f Binary files /dev/null and b/pull/2070/_static/file.png differ diff --git a/pull/2070/_static/jquery.js b/pull/2070/_static/jquery.js new file mode 100644 index 00000000000..c4c6022f298 --- /dev/null +++ b/pull/2070/_static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/pull/2070/_static/js/html5shiv.min.js b/pull/2070/_static/js/html5shiv.min.js new file mode 100644 index 00000000000..cd1c674f5e3 --- /dev/null +++ b/pull/2070/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/pull/2070/_static/js/theme.js b/pull/2070/_static/js/theme.js new file mode 100644 index 00000000000..1fddb6ee4a6 --- /dev/null +++ b/pull/2070/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/pull/2070/_static/minus.png b/pull/2070/_static/minus.png new file mode 100644 index 00000000000..d96755fdaf8 Binary files /dev/null and b/pull/2070/_static/minus.png differ diff --git a/pull/2070/_static/plus.png b/pull/2070/_static/plus.png new file mode 100644 index 00000000000..7107cec93a9 Binary files /dev/null and b/pull/2070/_static/plus.png differ diff --git a/pull/2070/_static/pygments.css b/pull/2070/_static/pygments.css new file mode 100644 index 00000000000..0d49244edab --- /dev/null +++ b/pull/2070/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #208050 } /* Literal.Number.Bin */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e } /* Name.Function.Magic */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/pull/2070/_static/searchtools.js b/pull/2070/_static/searchtools.js new file mode 100644 index 00000000000..b08d58c9b9b --- /dev/null +++ b/pull/2070/_static/searchtools.js @@ -0,0 +1,620 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score + boost, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/pull/2070/_static/sphinx_highlight.js b/pull/2070/_static/sphinx_highlight.js new file mode 100644 index 00000000000..8a96c69a194 --- /dev/null +++ b/pull/2070/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/pull/2070/backend_doc/abs_8hpp_source.html b/pull/2070/backend_doc/abs_8hpp_source.html new file mode 100644 index 00000000000..1daab9df97a --- /dev/null +++ b/pull/2070/backend_doc/abs_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/abs.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
abs.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_abs(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/acos_8hpp_source.html b/pull/2070/backend_doc/acos_8hpp_source.html new file mode 100644 index 00000000000..0a18f4649e0 --- /dev/null +++ b/pull/2070/backend_doc/acos_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/acos.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
acos.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_acos(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/acosh_8hpp_source.html b/pull/2070/backend_doc/acosh_8hpp_source.html new file mode 100644 index 00000000000..09eb8977913 --- /dev/null +++ b/pull/2070/backend_doc/acosh_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/acosh.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
acosh.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_acosh(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/add_8hpp_source.html b/pull/2070/backend_doc/add_8hpp_source.html new file mode 100644 index 00000000000..02ea110e7c7 --- /dev/null +++ b/pull/2070/backend_doc/add_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/add.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
add.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_add(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/annotated.html b/pull/2070/backend_doc/annotated.html new file mode 100644 index 00000000000..32ca053b39a --- /dev/null +++ b/pull/2070/backend_doc/annotated.html @@ -0,0 +1,187 @@ + + + + + + + +DPNP C++ backend kernel library: Class List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12345]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Ndpnp
 Nextensions
 Nblas
 Ntypes
 CDotcTypePairSupportFactoryA factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dotc<T> function
 CDotTypePairSupportFactoryA factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dot<T> function
 CDotuTypePairSupportFactoryA factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dotu<T> function
 CGemmBatchTypePairSupportFactoryA factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemm_batch<Tab, Tc> function
 CGemmTypePairSupportFactoryA factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemm<Tab, Tc> function
 CGemvTypePairSupportFactoryA factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemv<T> function
 CDotcContigFactory
 CDotContigFactory
 CDotuContigFactory
 Nfft
 CDescriptorWrapper
 CPrecisionType
 CPrecisionType< mkl_dft::precision::DOUBLE >
 CPrecisionType< mkl_dft::precision::SINGLE >
 CScaleType
 CScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >
 CScaleType< prec, mkl_dft::domain::REAL, false >
 CScaleType< prec, mkl_dft::domain::REAL, true >
 Nlapack
 Nhelper
 Cvalue_type_of
 Cvalue_type_of< std::complex< T > >
 Ntypes
 CGeqrfBatchTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::geqrf_batch<T> function
 CGeqrfTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::geqrf<T> function
 CGesvdTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::gesvd<T, RealT> function
 CGesvTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::gesv<T> function
 CGetrfBatchTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrf_batch<T> function
 CGetrfTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrf<T> function
 CGetriBatchTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getri_batch<T> function
 CGetrsTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrs<T> function
 CHeevdTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::heevd<T, RealT> function
 COrgqrBatchTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::orgqr_batch<T> function
 COrgqrTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::orgqr<T> function
 CPotrfBatchTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::potrf<T> function
 CPotrfTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::potrf<T> function
 CSyevdTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::syevd<T> function
 CUngqrBatchTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::ungqr_batch<T> function
 CUngqrTypePairSupportFactoryA factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::ungqr<T> function
 CLinAlgError
 Nkernels
 Ndegrees
 CDegreesFunctor
 Nfabs
 CFabsFunctor
 Nfix
 CFixFunctor
 Nfmax
 CFmaxFunctor
 Nfmin
 CFminFunctor
 Nfmod
 CFmodFunctor
 Nheaviside
 CHeavisideFunctor
 Nlogaddexp2
 CLogaddexp2Functor
 Nradians
 CRadiansFunctor
 Care_same
 Cbackend_sycl
 Cdpnp_less_comp"<" comparison with complex types support
 CDPNP_USM_iteratorIterator for DPNPC_id type
 CDPNPC_idType to keep USM array pointers used in kernels
 CDPNPC_ptr_adapterAdapter for the memory given by parameters in the DPNPC functions
 CDPNPFuncDataContains information about the C++ backend function
 Cengine_struct
 Cfunc_type_map_factory_t
 Cfunc_type_pair_t
 Cis_any
 Cis_complex
 Cmcg59_struct
 Cmt19937_struct
 Cpython_constants
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/annotated_dup.js b/pull/2070/backend_doc/annotated_dup.js new file mode 100644 index 00000000000..2acd8a59cf1 --- /dev/null +++ b/pull/2070/backend_doc/annotated_dup.js @@ -0,0 +1,99 @@ +var annotated_dup = +[ + [ "dpnp", null, [ + [ "extensions", null, [ + [ "blas", null, [ + [ "types", null, [ + [ "DotcTypePairSupportFactory", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory.html", null ], + [ "DotTypePairSupportFactory", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory.html", null ], + [ "DotuTypePairSupportFactory", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory.html", null ], + [ "GemmBatchTypePairSupportFactory", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory.html", null ], + [ "GemmTypePairSupportFactory", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory.html", null ], + [ "GemvTypePairSupportFactory", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory.html", null ] + ] ], + [ "DotcContigFactory", "structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory.html", null ], + [ "DotContigFactory", "structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory.html", null ], + [ "DotuContigFactory", "structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory.html", null ] + ] ], + [ "fft", null, [ + [ "DescriptorWrapper", "classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper.html", null ], + [ "PrecisionType", "structdpnp_1_1extensions_1_1fft_1_1_precision_type.html", null ], + [ "PrecisionType< mkl_dft::precision::DOUBLE >", "structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4.html", null ], + [ "PrecisionType< mkl_dft::precision::SINGLE >", "structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4.html", null ], + [ "ScaleType", "structdpnp_1_1extensions_1_1fft_1_1_scale_type.html", null ], + [ "ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >", "structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4.html", null ], + [ "ScaleType< prec, mkl_dft::domain::REAL, false >", "structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4.html", null ], + [ "ScaleType< prec, mkl_dft::domain::REAL, true >", "structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4.html", null ] + ] ], + [ "lapack", null, [ + [ "helper", null, [ + [ "value_type_of", "structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of.html", null ], + [ "value_type_of< std::complex< T > >", "structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4.html", null ] + ] ], + [ "types", null, [ + [ "GeqrfBatchTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory.html", null ], + [ "GeqrfTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory.html", null ], + [ "GesvdTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory.html", null ], + [ "GesvTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory.html", null ], + [ "GetrfBatchTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory.html", null ], + [ "GetrfTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory.html", null ], + [ "GetriBatchTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory.html", null ], + [ "GetrsTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory.html", null ], + [ "HeevdTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory.html", null ], + [ "OrgqrBatchTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory.html", null ], + [ "OrgqrTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory.html", null ], + [ "PotrfBatchTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory.html", null ], + [ "PotrfTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory.html", null ], + [ "SyevdTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory.html", null ], + [ "UngqrBatchTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory.html", null ], + [ "UngqrTypePairSupportFactory", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory.html", null ] + ] ], + [ "LinAlgError", "classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error.html", null ] + ] ] + ] ], + [ "kernels", null, [ + [ "degrees", null, [ + [ "DegreesFunctor", "structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor.html", null ] + ] ], + [ "fabs", null, [ + [ "FabsFunctor", "structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor.html", null ] + ] ], + [ "fix", null, [ + [ "FixFunctor", "structdpnp_1_1kernels_1_1fix_1_1_fix_functor.html", null ] + ] ], + [ "fmax", null, [ + [ "FmaxFunctor", "structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor.html", null ] + ] ], + [ "fmin", null, [ + [ "FminFunctor", "structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor.html", null ] + ] ], + [ "fmod", null, [ + [ "FmodFunctor", "structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor.html", null ] + ] ], + [ "heaviside", null, [ + [ "HeavisideFunctor", "structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor.html", null ] + ] ], + [ "logaddexp2", null, [ + [ "Logaddexp2Functor", "structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor.html", null ] + ] ], + [ "radians", null, [ + [ "RadiansFunctor", "structdpnp_1_1kernels_1_1radians_1_1_radians_functor.html", null ] + ] ] + ] ] + ] ], + [ "are_same", "structare__same.html", null ], + [ "backend_sycl", "classbackend__sycl.html", null ], + [ "dpnp_less_comp", "classdpnp__less__comp.html", null ], + [ "DPNP_USM_iterator", "class_d_p_n_p___u_s_m__iterator.html", "class_d_p_n_p___u_s_m__iterator" ], + [ "DPNPC_id", "class_d_p_n_p_c__id.html", "class_d_p_n_p_c__id" ], + [ "DPNPC_ptr_adapter", "class_d_p_n_p_c__ptr__adapter.html", null ], + [ "DPNPFuncData", "struct_d_p_n_p_func_data.html", "struct_d_p_n_p_func_data" ], + [ "engine_struct", "structengine__struct.html", null ], + [ "func_type_map_factory_t", "structfunc__type__map__factory__t.html", null ], + [ "func_type_pair_t", "structfunc__type__pair__t.html", null ], + [ "is_any", "structis__any.html", null ], + [ "is_complex", "structis__complex.html", null ], + [ "mcg59_struct", "structmcg59__struct.html", null ], + [ "mt19937_struct", "structmt19937__struct.html", null ], + [ "python_constants", "structpython__constants.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/asin_8hpp_source.html b/pull/2070/backend_doc/asin_8hpp_source.html new file mode 100644 index 00000000000..4a98fa4e15d --- /dev/null +++ b/pull/2070/backend_doc/asin_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/asin.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
asin.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_asin(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/asinh_8hpp_source.html b/pull/2070/backend_doc/asinh_8hpp_source.html new file mode 100644 index 00000000000..77cad720d4f --- /dev/null +++ b/pull/2070/backend_doc/asinh_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/asinh.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
asinh.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_asinh(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/atan2_8hpp_source.html b/pull/2070/backend_doc/atan2_8hpp_source.html new file mode 100644 index 00000000000..28df7b92c6f --- /dev/null +++ b/pull/2070/backend_doc/atan2_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/atan2.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
atan2.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_atan2(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/atan_8hpp_source.html b/pull/2070/backend_doc/atan_8hpp_source.html new file mode 100644 index 00000000000..9b0304d0503 --- /dev/null +++ b/pull/2070/backend_doc/atan_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/atan.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
atan.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_atan(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/atanh_8hpp_source.html b/pull/2070/backend_doc/atanh_8hpp_source.html new file mode 100644 index 00000000000..a0a592aafff --- /dev/null +++ b/pull/2070/backend_doc/atanh_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/atanh.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
atanh.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_atanh(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/bc_s.png b/pull/2070/backend_doc/bc_s.png new file mode 100644 index 00000000000..224b29aa984 Binary files /dev/null and b/pull/2070/backend_doc/bc_s.png differ diff --git a/pull/2070/backend_doc/bc_sd.png b/pull/2070/backend_doc/bc_sd.png new file mode 100644 index 00000000000..31ca888dc71 Binary files /dev/null and b/pull/2070/backend_doc/bc_sd.png differ diff --git a/pull/2070/backend_doc/blas_2types__matrix_8hpp_source.html b/pull/2070/backend_doc/blas_2types__matrix_8hpp_source.html new file mode 100644 index 00000000000..45c34fda5f9 --- /dev/null +++ b/pull/2070/backend_doc/blas_2types__matrix_8hpp_source.html @@ -0,0 +1,274 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/blas/types_matrix.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
types_matrix.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <type_traits>
+
29
+
30// dpctl tensor headers
+
31#include "utils/type_dispatch.hpp"
+
32
+
33// dpctl namespace for operations with types
+
34namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
+
35
+
36namespace dpnp::extensions::blas::types
+
37{
+
45template <typename T>
+
+ +
47{
+
48 static constexpr bool is_defined = std::disjunction<
+
49 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
50 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
51 // fall-through
+
52 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
53};
+
+
54
+
62template <typename T>
+
+ +
64{
+
65 static constexpr bool is_defined = std::disjunction<
+
66 dpctl_td_ns::TypePairDefinedEntry<T,
+
67 std::complex<float>,
+
68 T,
+
69 std::complex<float>>,
+
70 dpctl_td_ns::TypePairDefinedEntry<T,
+
71 std::complex<double>,
+
72 T,
+
73 std::complex<double>>,
+
74 // fall-through
+
75 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
76};
+
+
77
+
85template <typename T>
+
+ +
87{
+
88 static constexpr bool is_defined = std::disjunction<
+
89 dpctl_td_ns::TypePairDefinedEntry<T,
+
90 std::complex<float>,
+
91 T,
+
92 std::complex<float>>,
+
93 dpctl_td_ns::TypePairDefinedEntry<T,
+
94 std::complex<double>,
+
95 T,
+
96 std::complex<double>>,
+
97 // fall-through
+
98 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
99};
+
+
100
+
109template <typename Tab, typename Tc>
+
+ +
111{
+
112 static constexpr bool is_defined = std::disjunction<
+
113#if !defined(USE_ONEMKL_INTERFACES)
+
114 dpctl_td_ns::TypePairDefinedEntry<Tab, std::int8_t, Tc, std::int32_t>,
+
115 dpctl_td_ns::TypePairDefinedEntry<Tab, std::int8_t, Tc, float>,
+
116#endif // USE_ONEMKL_INTERFACES
+
117 dpctl_td_ns::TypePairDefinedEntry<Tab, sycl::half, Tc, float>,
+
118 dpctl_td_ns::TypePairDefinedEntry<Tab, sycl::half, Tc, sycl::half>,
+
119 dpctl_td_ns::TypePairDefinedEntry<Tab, float, Tc, float>,
+
120 dpctl_td_ns::TypePairDefinedEntry<Tab, double, Tc, double>,
+
121 dpctl_td_ns::TypePairDefinedEntry<Tab,
+
122 std::complex<float>,
+
123 Tc,
+
124 std::complex<float>>,
+
125 dpctl_td_ns::TypePairDefinedEntry<Tab,
+
126 std::complex<double>,
+
127 Tc,
+
128 std::complex<double>>,
+
129 // fall-through
+
130 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
131};
+
+
132
+
141template <typename Tab, typename Tc>
+
+ +
143{
+
144 static constexpr bool is_defined = std::disjunction<
+
145#if !defined(USE_ONEMKL_INTERFACES)
+
146 dpctl_td_ns::TypePairDefinedEntry<Tab, std::int8_t, Tc, std::int32_t>,
+
147 dpctl_td_ns::TypePairDefinedEntry<Tab, std::int8_t, Tc, float>,
+
148#endif // USE_ONEMKL_INTERFACES
+
149 dpctl_td_ns::TypePairDefinedEntry<Tab, sycl::half, Tc, float>,
+
150 dpctl_td_ns::TypePairDefinedEntry<Tab, sycl::half, Tc, sycl::half>,
+
151 dpctl_td_ns::TypePairDefinedEntry<Tab, float, Tc, float>,
+
152 dpctl_td_ns::TypePairDefinedEntry<Tab, double, Tc, double>,
+
153 dpctl_td_ns::TypePairDefinedEntry<Tab,
+
154 std::complex<float>,
+
155 Tc,
+
156 std::complex<float>>,
+
157 dpctl_td_ns::TypePairDefinedEntry<Tab,
+
158 std::complex<double>,
+
159 Tc,
+
160 std::complex<double>>,
+
161 // fall-through
+
162 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
163};
+
+
164
+
172template <typename T>
+
+ +
174{
+
175 static constexpr bool is_defined = std::disjunction<
+
176 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
177 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
178 dpctl_td_ns::TypePairDefinedEntry<T,
+
179 std::complex<float>,
+
180 T,
+
181 std::complex<float>>,
+
182 dpctl_td_ns::TypePairDefinedEntry<T,
+
183 std::complex<double>,
+
184 T,
+
185 std::complex<double>>,
+
186 // fall-through
+
187 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
188};
+
+
189} // namespace dpnp::extensions::blas::types
+
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
+
+ + + + diff --git a/pull/2070/backend_doc/cbrt_8hpp_source.html b/pull/2070/backend_doc/cbrt_8hpp_source.html new file mode 100644 index 00000000000..e703013e228 --- /dev/null +++ b/pull/2070/backend_doc/cbrt_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/cbrt.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cbrt.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_cbrt(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/ceil_8hpp_source.html b/pull/2070/backend_doc/ceil_8hpp_source.html new file mode 100644 index 00000000000..2fd6b19e7cc --- /dev/null +++ b/pull/2070/backend_doc/ceil_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/ceil.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ceil.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_ceil(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator-members.html b/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator-members.html new file mode 100644 index 00000000000..6675014d048 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator-members.html @@ -0,0 +1,126 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DPNP_USM_iterator< _Tp > Member List
+
+
+ +

This is the complete list of members for DPNP_USM_iterator< _Tp >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
difference_type typedef (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >
DPNP_USM_iterator(pointer __base_ptr, size_type __id, const size_type *__shape_stride=nullptr, const size_type *__axes_stride=nullptr, size_type __shape_size=0) (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >inline
DPNP_USM_iterator()=delete (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >
iterator_category typedef (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >
operator!=(const DPNP_USM_iterator &__rhs) const (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >inline
operator*() const (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >inline
operator++()DPNP_USM_iterator< _Tp >inline
operator++(int)DPNP_USM_iterator< _Tp >inline
operator-(const DPNP_USM_iterator &__rhs) const (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >inline
operator->() const (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >inline
operator<(const DPNP_USM_iterator &__rhs) const (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >inline
operator<<DPNP_USM_iterator< _Tp >friend
operator==(const DPNP_USM_iterator &__rhs) const (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >inline
operator[](size_type __n) const (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >inline
pointer typedef (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >
reference typedef (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >
size_type typedef (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >
value_type typedef (defined in DPNP_USM_iterator< _Tp >)DPNP_USM_iterator< _Tp >
+
+ + + + diff --git a/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator.html b/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator.html new file mode 100644 index 00000000000..b3e1d111b94 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator.html @@ -0,0 +1,655 @@ + + + + + + + +DPNP C++ backend kernel library: DPNP_USM_iterator< _Tp > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
DPNP_USM_iterator< _Tp > Class Template Referencefinal
+
+
+ +

Iterator for DPNPC_id type. + More...

+ +

#include <dpnp_iterator.hpp>

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

+Public Types

using value_type = _Tp
 
using difference_type = std::ptrdiff_t
 
using iterator_category = std::random_access_iterator_tag
 
using pointer = value_type *
 
using reference = value_type &
 
using size_type = shape_elem_type
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DPNP_USM_iterator (pointer __base_ptr, size_type __id, const size_type *__shape_stride=nullptr, const size_type *__axes_stride=nullptr, size_type __shape_size=0)
 
reference operator* () const
 
pointer operator-> () const
 
DPNP_USM_iteratoroperator++ ()
 prefix increment
 
DPNP_USM_iterator operator++ (int)
 postfix increment
 
bool operator== (const DPNP_USM_iterator &__rhs) const
 
bool operator!= (const DPNP_USM_iterator &__rhs) const
 
bool operator< (const DPNP_USM_iterator &__rhs) const
 
reference operator[] (size_type __n) const
 
difference_type operator- (const DPNP_USM_iterator &__rhs) const
 
+ + + + +

+Friends

std::ostream & operator<< (std::ostream &__out, const DPNP_USM_iterator &__it)
 Print this container in human readable form in error reporting.
 
+

Detailed Description

+
template<typename _Tp>
+class DPNP_USM_iterator< _Tp >

Iterator for DPNPC_id type.

+

This type should be used to simplify data iteration over input with parameters "[axis|axes]" It is designed to be used in SYCL environment

+ +

Definition at line 49 of file dpnp_iterator.hpp.

+

Member Typedef Documentation

+ +

◆ difference_type

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNP_USM_iterator< _Tp >::difference_type = std::ptrdiff_t
+
+ +

Definition at line 53 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ iterator_category

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNP_USM_iterator< _Tp >::iterator_category = std::random_access_iterator_tag
+
+ +

Definition at line 54 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNP_USM_iterator< _Tp >::pointer = value_type *
+
+ +

Definition at line 55 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNP_USM_iterator< _Tp >::reference = value_type &
+
+ +

Definition at line 56 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNP_USM_iterator< _Tp >::size_type = shape_elem_type
+
+ +

Definition at line 57 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNP_USM_iterator< _Tp >::value_type = _Tp
+
+ +

Definition at line 52 of file dpnp_iterator.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ DPNP_USM_iterator()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPNP_USM_iterator< _Tp >::DPNP_USM_iterator (pointer __base_ptr,
size_type __id,
const size_type * __shape_stride = nullptr,
const size_type * __axes_stride = nullptr,
size_type __shape_size = 0 
)
+
+inline
+
+ +

Definition at line 59 of file dpnp_iterator.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator!=()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
bool DPNP_USM_iterator< _Tp >::operator!= (const DPNP_USM_iterator< _Tp > & __rhs) const
+
+inline
+
+ +

Definition at line 106 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator*()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + +
reference DPNP_USM_iterator< _Tp >::operator* () const
+
+inline
+
+ +

Definition at line 72 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator++() [1/2]

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + +
DPNP_USM_iterator & DPNP_USM_iterator< _Tp >::operator++ ()
+
+inline
+
+ +

prefix increment

+ +

Definition at line 83 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator++() [2/2]

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
DPNP_USM_iterator DPNP_USM_iterator< _Tp >::operator++ (int )
+
+inline
+
+ +

postfix increment

+ +

Definition at line 91 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator-()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
difference_type DPNP_USM_iterator< _Tp >::operator- (const DPNP_USM_iterator< _Tp > & __rhs) const
+
+inline
+
+ +

Definition at line 124 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator->()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + +
pointer DPNP_USM_iterator< _Tp >::operator-> () const
+
+inline
+
+ +

Definition at line 77 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator<()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
bool DPNP_USM_iterator< _Tp >::operator< (const DPNP_USM_iterator< _Tp > & __rhs) const
+
+inline
+
+ +

Definition at line 111 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator==()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
bool DPNP_USM_iterator< _Tp >::operator== (const DPNP_USM_iterator< _Tp > & __rhs) const
+
+inline
+
+ +

Definition at line 99 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
reference DPNP_USM_iterator< _Tp >::operator[] (size_type __n) const
+
+inline
+
+ +

Definition at line 119 of file dpnp_iterator.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ operator<<

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream & operator<< (std::ostream & __out,
const DPNP_USM_iterator< _Tp > & __it 
)
+
+friend
+
+ +

Print this container in human readable form in error reporting.

+ +

Definition at line 133 of file dpnp_iterator.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator.js b/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator.js new file mode 100644 index 00000000000..5c88254cd84 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p___u_s_m__iterator.js @@ -0,0 +1,6 @@ +var class_d_p_n_p___u_s_m__iterator = +[ + [ "operator++", "class_d_p_n_p___u_s_m__iterator.html#a995480447406ffd7421ddbd4006637be", null ], + [ "operator++", "class_d_p_n_p___u_s_m__iterator.html#a8f31f980fbfb90d1e9367438a7351e26", null ], + [ "operator<<", "class_d_p_n_p___u_s_m__iterator.html#ad8717a8073f17dc82cbfc74a9fbcc777", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id-members.html b/pull/2070/backend_doc/class_d_p_n_p_c__id-members.html new file mode 100644 index 00000000000..2a2d61d44c6 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__id-members.html @@ -0,0 +1,128 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DPNPC_id< _Tp > Member List
+
+
+ +

This is the complete list of members for DPNPC_id< _Tp >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
begin(size_type output_global_id=0) constDPNPC_id< _Tp >inline
broadcast_to_shape(const size_type *__shape, const size_type __shape_size) (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >inline
broadcast_to_shape(const std::vector< size_type > &__shape)DPNPC_id< _Tp >inline
DPNPC_id(DPCTLSyclQueueRef q_ref, pointer __ptr, const size_type *__shape, const size_type __shape_size) (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >inline
DPNPC_id(DPCTLSyclQueueRef q_ref, pointer __ptr, const size_type *__shape, const size_type *__strides, const size_type __ndim) (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >inline
DPNPC_id(DPCTLSyclQueueRef q_ref, pointer __ptr, const std::vector< size_type > &__shape)DPNPC_id< _Tp >inline
DPNPC_id(pointer __ptr, const std::vector< size_type > &__shape, const std::vector< size_type > &__strides)DPNPC_id< _Tp >inline
DPNPC_id()=delete (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >
end(size_type output_global_id=0) constDPNPC_id< _Tp >inline
get_output_size() constDPNPC_id< _Tp >inline
iterator typedef (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >
operator[](size_type __n) constDPNPC_id< _Tp >inline
pointer typedef (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >
reference typedef (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >
set_axes(const shape_elem_type *__axes, const size_t axes_ndim) (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >inline
set_axes(const std::vector< shape_elem_type > &__axes)DPNPC_id< _Tp >inline
set_axis(shape_elem_type __axis)DPNPC_id< _Tp >inline
size_type typedef (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >
value_type typedef (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >
~DPNPC_id() (defined in DPNPC_id< _Tp >)DPNPC_id< _Tp >inline
+
+ + + + diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id.html b/pull/2070/backend_doc/class_d_p_n_p_c__id.html new file mode 100644 index 00000000000..58923b8867a --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__id.html @@ -0,0 +1,635 @@ + + + + + + + +DPNP C++ backend kernel library: DPNPC_id< _Tp > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
DPNPC_id< _Tp > Class Template Referencefinal
+
+
+ +

Type to keep USM array pointers used in kernels. + More...

+ +

#include <dpnp_iterator.hpp>

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

+Public Types

using value_type = _Tp
 
using iterator = DPNP_USM_iterator< value_type >
 
using pointer = value_type *
 
using reference = value_type &
 
using size_type = shape_elem_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DPNPC_id (DPCTLSyclQueueRef q_ref, pointer __ptr, const size_type *__shape, const size_type __shape_size)
 
 DPNPC_id (DPCTLSyclQueueRef q_ref, pointer __ptr, const size_type *__shape, const size_type *__strides, const size_type __ndim)
 
 DPNPC_id (DPCTLSyclQueueRef q_ref, pointer __ptr, const std::vector< size_type > &__shape)
 Main container for reduction iterator.
 
 DPNPC_id (pointer __ptr, const std::vector< size_type > &__shape, const std::vector< size_type > &__strides)
 Main container for reduction/broadcasting iterator.
 
size_type get_output_size () const
 this function return number of elements in output
 
void broadcast_to_shape (const size_type *__shape, const size_type __shape_size)
 
void broadcast_to_shape (const std::vector< size_type > &__shape)
 Broadcast input data to specified shape.
 
void set_axis (shape_elem_type __axis)
 Set axis for the data object to use in computation.
 
void set_axes (const shape_elem_type *__axes, const size_t axes_ndim)
 
void set_axes (const std::vector< shape_elem_type > &__axes)
 Set axes for the data object to use in computation.
 
iterator begin (size_type output_global_id=0) const
 this function is designed for SYCL environment execution
 
iterator end (size_type output_global_id=0) const
 this function is designed for SYCL environment execution
 
reference operator[] (size_type __n) const
 this function is designed for SYCL environment execution
 
+

Detailed Description

+
template<typename _Tp>
+class DPNPC_id< _Tp >

Type to keep USM array pointers used in kernels.

+

This type should be used in host part of the code to provide pre-calculated data. The DPNP_USM_iterator will be used later in SYCL environment

+ +

Definition at line 200 of file dpnp_iterator.hpp.

+

Member Typedef Documentation

+ +

◆ iterator

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNPC_id< _Tp >::iterator = DPNP_USM_iterator<value_type>
+
+ +

Definition at line 204 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNPC_id< _Tp >::pointer = value_type *
+
+ +

Definition at line 205 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNPC_id< _Tp >::reference = value_type &
+
+ +

Definition at line 206 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNPC_id< _Tp >::size_type = shape_elem_type
+
+ +

Definition at line 207 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<typename _Tp >
+ + + + +
using DPNPC_id< _Tp >::value_type = _Tp
+
+ +

Definition at line 203 of file dpnp_iterator.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ DPNPC_id() [1/2]

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPNPC_id< _Tp >::DPNPC_id (DPCTLSyclQueueRef q_ref,
pointer __ptr,
const size_type * __shape,
const size_type __shape_size 
)
+
+inline
+
+ +

Definition at line 209 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ DPNPC_id() [2/2]

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPNPC_id< _Tp >::DPNPC_id (DPCTLSyclQueueRef q_ref,
pointer __ptr,
const size_type * __shape,
const size_type * __strides,
const size_type __ndim 
)
+
+inline
+
+ +

Definition at line 219 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ ~DPNPC_id()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + +
DPNPC_id< _Tp >::~DPNPC_id ()
+
+inline
+
+ +

Definition at line 278 of file dpnp_iterator.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
iterator DPNPC_id< _Tp >::begin (size_type output_global_id = 0) const
+
+inline
+
+ +

this function is designed for SYCL environment execution

+ +

Definition at line 468 of file dpnp_iterator.hpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ broadcast_to_shape()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void DPNPC_id< _Tp >::broadcast_to_shape (const size_type * __shape,
const size_type __shape_size 
)
+
+inline
+
+ +

Definition at line 289 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ end()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
iterator DPNPC_id< _Tp >::end (size_type output_global_id = 0) const
+
+inline
+
+ +

this function is designed for SYCL environment execution

+ +

Definition at line 476 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ get_output_size()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + +
size_type DPNPC_id< _Tp >::get_output_size () const
+
+inline
+
+ +

this function return number of elements in output

+ +

Definition at line 284 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
reference DPNPC_id< _Tp >::operator[] (size_type __n) const
+
+inline
+
+ +

this function is designed for SYCL environment execution

+ +

Definition at line 486 of file dpnp_iterator.hpp.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ set_axes()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void DPNPC_id< _Tp >::set_axes (const shape_elem_type * __axes,
const size_t axes_ndim 
)
+
+inline
+
+ +

Definition at line 379 of file dpnp_iterator.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id.js b/pull/2070/backend_doc/class_d_p_n_p_c__id.js new file mode 100644 index 00000000000..bbcca0fc7c6 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__id.js @@ -0,0 +1,12 @@ +var class_d_p_n_p_c__id = +[ + [ "DPNPC_id", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga1e1d9e72e8f1a92a6e25d7f563562b11", null ], + [ "DPNPC_id", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae67edf544bf0edce8e1cd74d68d8dc76", null ], + [ "begin", "class_d_p_n_p_c__id.html#a1e1427181e175dacfb37d3a042d4876f", null ], + [ "broadcast_to_shape", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga5f47f787627aa8dbd02301760482d7d6", null ], + [ "end", "class_d_p_n_p_c__id.html#aa70a960886549f3d75137ac573a4c828", null ], + [ "get_output_size", "class_d_p_n_p_c__id.html#a79168b2adbe07a8099747374bba2c483", null ], + [ "operator[]", "class_d_p_n_p_c__id.html#a2e98849be3b71da7efdfbccdcb26c010", null ], + [ "set_axes", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga87a0b53a5ae1b69762f201cd6521e210", null ], + [ "set_axis", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae4294907d97ba7d7a630d5097b435d0a", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.map b/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.map new file mode 100644 index 00000000000..ca333fdc9f3 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.md5 b/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.md5 new file mode 100644 index 00000000000..b792f47e28f --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.md5 @@ -0,0 +1 @@ +66816b3c820eace845523322c928f32b \ No newline at end of file diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.png b/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.png new file mode 100644 index 00000000000..10885c518af Binary files /dev/null and b/pull/2070/backend_doc/class_d_p_n_p_c__id_a1e1427181e175dacfb37d3a042d4876f_icgraph.png differ diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.map b/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.map new file mode 100644 index 00000000000..c68bb1d6d03 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.md5 b/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.md5 new file mode 100644 index 00000000000..84e69f2175c --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.md5 @@ -0,0 +1 @@ +ca4b4e002c4511782f81610bba5e6067 \ No newline at end of file diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.png b/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.png new file mode 100644 index 00000000000..847bae86dee Binary files /dev/null and b/pull/2070/backend_doc/class_d_p_n_p_c__id_a2e98849be3b71da7efdfbccdcb26c010_cgraph.png differ diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__ptr__adapter-members.html b/pull/2070/backend_doc/class_d_p_n_p_c__ptr__adapter-members.html new file mode 100644 index 00000000000..0f660a04164 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__ptr__adapter-members.html @@ -0,0 +1,116 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DPNPC_ptr_adapter< _DataType > Member List
+
+
+ +

This is the complete list of members for DPNPC_ptr_adapter< _DataType >, including all inherited members.

+ + + + + + + + + +
copy_data_back() const (defined in DPNPC_ptr_adapter< _DataType >)DPNPC_ptr_adapter< _DataType >inline
depends_on(const std::vector< sycl::event > &new_deps) (defined in DPNPC_ptr_adapter< _DataType >)DPNPC_ptr_adapter< _DataType >inline
depends_on(const sycl::event &new_dep) (defined in DPNPC_ptr_adapter< _DataType >)DPNPC_ptr_adapter< _DataType >inline
DPNPC_ptr_adapter()=delete (defined in DPNPC_ptr_adapter< _DataType >)DPNPC_ptr_adapter< _DataType >
DPNPC_ptr_adapter(DPCTLSyclQueueRef q_ref, const void *src_ptr, const size_t size, bool target_no_sycl=false, bool copy_back_request=false) (defined in DPNPC_ptr_adapter< _DataType >)DPNPC_ptr_adapter< _DataType >inline
get_ptr() const (defined in DPNPC_ptr_adapter< _DataType >)DPNPC_ptr_adapter< _DataType >inline
is_memcpy_required(sycl::usm::alloc src_ptr_type) (defined in DPNPC_ptr_adapter< _DataType >)DPNPC_ptr_adapter< _DataType >inline
~DPNPC_ptr_adapter() (defined in DPNPC_ptr_adapter< _DataType >)DPNPC_ptr_adapter< _DataType >inline
+
+ + + + diff --git a/pull/2070/backend_doc/class_d_p_n_p_c__ptr__adapter.html b/pull/2070/backend_doc/class_d_p_n_p_c__ptr__adapter.html new file mode 100644 index 00000000000..5d09ac56543 --- /dev/null +++ b/pull/2070/backend_doc/class_d_p_n_p_c__ptr__adapter.html @@ -0,0 +1,377 @@ + + + + + + + +DPNP C++ backend kernel library: DPNPC_ptr_adapter< _DataType > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
DPNPC_ptr_adapter< _DataType > Class Template Referencefinal
+
+
+ +

Adapter for the memory given by parameters in the DPNPC functions. + More...

+ +

#include <dpnpc_memory_adapter.hpp>

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

+Public Member Functions

 DPNPC_ptr_adapter (DPCTLSyclQueueRef q_ref, const void *src_ptr, const size_t size, bool target_no_sycl=false, bool copy_back_request=false)
 
bool is_memcpy_required (sycl::usm::alloc src_ptr_type)
 
_DataType * get_ptr () const
 
void copy_data_back () const
 
void depends_on (const std::vector< sycl::event > &new_deps)
 
void depends_on (const sycl::event &new_dep)
 
+

Detailed Description

+
template<typename _DataType>
+class DPNPC_ptr_adapter< _DataType >

Adapter for the memory given by parameters in the DPNPC functions.

+

This type should be used to accommodate memory in the function. For example, if the kernel must be executed in "queue_1" which is host based, but input arrays are located on other "queue_2" or unknown place.

+

Also, some functions completely host based and has no SYCL environment.

+ +

Definition at line 45 of file dpnpc_memory_adapter.hpp.

+

Constructor & Destructor Documentation

+ +

◆ DPNPC_ptr_adapter()

+ +
+
+
+template<typename _DataType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPNPC_ptr_adapter< _DataType >::DPNPC_ptr_adapter (DPCTLSyclQueueRef q_ref,
const void * src_ptr,
const size_t size,
bool target_no_sycl = false,
bool copy_back_request = false 
)
+
+inline
+
+ +

Definition at line 65 of file dpnpc_memory_adapter.hpp.

+ +
+
+ +

◆ ~DPNPC_ptr_adapter()

+ +
+
+
+template<typename _DataType >
+ + + + + +
+ + + + + + + +
DPNPC_ptr_adapter< _DataType >::~DPNPC_ptr_adapter ()
+
+inline
+
+ +

Definition at line 115 of file dpnpc_memory_adapter.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ copy_data_back()

+ +
+
+
+template<typename _DataType >
+ + + + + +
+ + + + + + + +
void DPNPC_ptr_adapter< _DataType >::copy_data_back () const
+
+inline
+
+ +

Definition at line 153 of file dpnpc_memory_adapter.hpp.

+ +
+
+ +

◆ depends_on() [1/2]

+ +
+
+
+template<typename _DataType >
+ + + + + +
+ + + + + + + + +
void DPNPC_ptr_adapter< _DataType >::depends_on (const std::vector< sycl::event > & new_deps)
+
+inline
+
+ +

Definition at line 164 of file dpnpc_memory_adapter.hpp.

+ +
+
+ +

◆ depends_on() [2/2]

+ +
+
+
+template<typename _DataType >
+ + + + + +
+ + + + + + + + +
void DPNPC_ptr_adapter< _DataType >::depends_on (const sycl::event & new_dep)
+
+inline
+
+ +

Definition at line 170 of file dpnpc_memory_adapter.hpp.

+ +
+
+ +

◆ get_ptr()

+ +
+
+
+template<typename _DataType >
+ + + + + +
+ + + + + + + +
_DataType * DPNPC_ptr_adapter< _DataType >::get_ptr () const
+
+inline
+
+ +

Definition at line 148 of file dpnpc_memory_adapter.hpp.

+ +
+
+ +

◆ is_memcpy_required()

+ +
+
+
+template<typename _DataType >
+ + + + + +
+ + + + + + + + +
bool DPNPC_ptr_adapter< _DataType >::is_memcpy_required (sycl::usm::alloc src_ptr_type)
+
+inline
+
+ +

Definition at line 133 of file dpnpc_memory_adapter.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/pull/2070/backend_doc/classbackend__sycl-members.html b/pull/2070/backend_doc/classbackend__sycl-members.html new file mode 100644 index 00000000000..4651cdf2285 --- /dev/null +++ b/pull/2070/backend_doc/classbackend__sycl-members.html @@ -0,0 +1,115 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
backend_sycl Member List
+
+
+ +

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

+ + + + + + + + +
backend_sycl_is_cpu() const (defined in backend_sycl)backend_syclinline
get() (defined in backend_sycl)backend_syclinlinestatic
get_queue() (defined in backend_sycl)backend_syclinlinestatic
get_rng_engine() (defined in backend_sycl)backend_syclinlinestatic
get_rng_mcg59_engine() (defined in backend_sycl)backend_syclinlinestatic
set_rng_engines_seed(const SeedT &seed) (defined in backend_sycl)backend_syclinline
~backend_sycl() (defined in backend_sycl)backend_syclinline
+
+ + + + diff --git a/pull/2070/backend_doc/classbackend__sycl.html b/pull/2070/backend_doc/classbackend__sycl.html new file mode 100644 index 00000000000..877be81a621 --- /dev/null +++ b/pull/2070/backend_doc/classbackend__sycl.html @@ -0,0 +1,333 @@ + + + + + + + +DPNP C++ backend kernel library: backend_sycl Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

#include <queue_sycl.hpp>

+ + + + + + + +

+Public Member Functions

template<typename SeedT >
void set_rng_engines_seed (const SeedT &seed)
 
bool backend_sycl_is_cpu () const
 
+ + + + + + + + + +

+Static Public Member Functions

static backend_syclget ()
 
static sycl::queue & get_queue ()
 
static mkl_rng::mt19937 & get_rng_engine ()
 
static mkl_rng::mcg59 & get_rng_mcg59_engine ()
 
+

Detailed Description

+

This is container for the SYCL queue, random number generation engine and related functions like queue and engine initialization and maintenance. The queue could not be initialized as a global object. Global object initialization order is undefined. This class postpone initialization of the SYCL queue and mt19937 random number generation engine.

+ +

Definition at line 60 of file queue_sycl.hpp.

+

Constructor & Destructor Documentation

+ +

◆ ~backend_sycl()

+ +
+
+ + + + + +
+ + + + + + + +
backend_sycl::~backend_sycl ()
+
+inline
+
+ +

Definition at line 63 of file queue_sycl.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ backend_sycl_is_cpu()

+ +
+
+ + + + + +
+ + + + + + + +
bool backend_sycl::backend_sycl_is_cpu () const
+
+inline
+
+ +

Definition at line 100 of file queue_sycl.hpp.

+ +
+
+ +

◆ get()

+ +
+
+ + + + + +
+ + + + + + + +
static backend_sycl & backend_sycl::get ()
+
+inlinestatic
+
+ +

Definition at line 65 of file queue_sycl.hpp.

+ +
+
+ +

◆ get_queue()

+ +
+
+ + + + + +
+ + + + + + + +
static sycl::queue & backend_sycl::get_queue ()
+
+inlinestatic
+
+ +

Definition at line 71 of file queue_sycl.hpp.

+ +
+
+ +

◆ get_rng_engine()

+ +
+
+ + + + + +
+ + + + + + + +
static mkl_rng::mt19937 & backend_sycl::get_rng_engine ()
+
+inlinestatic
+
+ +

Definition at line 77 of file queue_sycl.hpp.

+ +
+
+ +

◆ get_rng_mcg59_engine()

+ +
+
+ + + + + +
+ + + + + + + +
static mkl_rng::mcg59 & backend_sycl::get_rng_mcg59_engine ()
+
+inlinestatic
+
+ +

Definition at line 83 of file queue_sycl.hpp.

+ +
+
+ +

◆ set_rng_engines_seed()

+ +
+
+
+template<typename SeedT >
+ + + + + +
+ + + + + + + + +
void backend_sycl::set_rng_engines_seed (const SeedT & seed)
+
+inline
+
+ +

Definition at line 90 of file queue_sycl.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper-members.html b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper-members.html new file mode 100644 index 00000000000..ed48a6187bc --- /dev/null +++ b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper-members.html @@ -0,0 +1,130 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp::extensions::fft::DescriptorWrapper< prec, dom > Member List
+
+
+ +

This is the complete list of members for dpnp::extensions::fft::DescriptorWrapper< prec, dom >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
commit(sycl::queue &q) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
descr_type typedef (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >
DescriptorWrapper(std::int64_t n) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
DescriptorWrapper(std::vector< std::int64_t > dimensions) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_bwd_distance() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_bwd_strides() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_descriptor() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_dim() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_fwd_distance() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_fwd_strides() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_in_place() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_number_of_transforms() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_precision() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
get_queue() const (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
is_committed() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
set_bwd_distance(const valT &dist) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
set_bwd_strides(const valT &strides) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
set_fwd_distance(const valT &dist) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
set_fwd_strides(const valT &strides) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
set_in_place(const bool &in_place_request) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
set_number_of_transforms(const valT &num) (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
~DescriptorWrapper() (defined in dpnp::extensions::fft::DescriptorWrapper< prec, dom >)dpnp::extensions::fft::DescriptorWrapper< prec, dom >inline
+
+ + + + diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper.html b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper.html new file mode 100644 index 00000000000..535d94bfe4d --- /dev/null +++ b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper.html @@ -0,0 +1,838 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::fft::DescriptorWrapper< prec, dom > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
dpnp::extensions::fft::DescriptorWrapper< prec, dom > Class Template Reference
+
+
+ + + + +

+Public Types

using descr_type = mkl_dft::descriptor< prec, dom >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DescriptorWrapper (std::int64_t n)
 
 DescriptorWrapper (std::vector< std::int64_t > dimensions)
 
void commit (sycl::queue &q)
 
descr_type & get_descriptor ()
 
const sycl::queue & get_queue () const
 
template<typename valT = std::int64_t>
const valT get_dim ()
 
template<typename valT = std::int64_t>
const valT get_number_of_transforms ()
 
template<typename valT = std::int64_t>
void set_number_of_transforms (const valT &num)
 
template<typename valT = std::vector<std::int64_t>>
const valT get_fwd_strides ()
 
template<typename valT = std::vector<std::int64_t>>
void set_fwd_strides (const valT &strides)
 
template<typename valT = std::vector<std::int64_t>>
const valT get_bwd_strides ()
 
template<typename valT = std::vector<std::int64_t>>
void set_bwd_strides (const valT &strides)
 
template<typename valT = std::int64_t>
const valT get_fwd_distance ()
 
template<typename valT = std::int64_t>
void set_fwd_distance (const valT &dist)
 
template<typename valT = std::int64_t>
const valT get_bwd_distance ()
 
template<typename valT = std::int64_t>
void set_bwd_distance (const valT &dist)
 
bool get_in_place ()
 
void set_in_place (const bool &in_place_request)
 
mkl_dft::precision get_precision ()
 
bool is_committed ()
 
+

Detailed Description

+
template<mkl_dft::precision prec, mkl_dft::domain dom>
+class dpnp::extensions::fft::DescriptorWrapper< prec, dom >
+

Definition at line 38 of file common.hpp.

+

Member Typedef Documentation

+ +

◆ descr_type

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + +
using dpnp::extensions::fft::DescriptorWrapper< prec, dom >::descr_type = mkl_dft::descriptor<prec, dom>
+
+ +

Definition at line 41 of file common.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ DescriptorWrapper() [1/2]

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + + +
dpnp::extensions::fft::DescriptorWrapper< prec, dom >::DescriptorWrapper (std::int64_t n)
+
+inline
+
+ +

Definition at line 43 of file common.hpp.

+ +
+
+ +

◆ DescriptorWrapper() [2/2]

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + + +
dpnp::extensions::fft::DescriptorWrapper< prec, dom >::DescriptorWrapper (std::vector< std::int64_t > dimensions)
+
+inline
+
+ +

Definition at line 44 of file common.hpp.

+ +
+
+ +

◆ ~DescriptorWrapper()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + +
dpnp::extensions::fft::DescriptorWrapper< prec, dom >::~DescriptorWrapper ()
+
+inline
+
+ +

Definition at line 48 of file common.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ commit()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + + +
void dpnp::extensions::fft::DescriptorWrapper< prec, dom >::commit (sycl::queue & q)
+
+inline
+
+ +

Definition at line 50 of file common.hpp.

+ +
+
+ +

◆ get_bwd_distance()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::int64_t>
+ + + + + +
+ + + + + + + +
const valT dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_bwd_distance ()
+
+inline
+
+ +

Definition at line 189 of file common.hpp.

+ +
+
+ +

◆ get_bwd_strides()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::vector<std::int64_t>>
+ + + + + +
+ + + + + + + +
const valT dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_bwd_strides ()
+
+inline
+
+ +

Definition at line 141 of file common.hpp.

+ +
+
+ +

◆ get_descriptor()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + +
descr_type & dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_descriptor ()
+
+inline
+
+ +

Definition at line 64 of file common.hpp.

+ +
+
+ +

◆ get_dim()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::int64_t>
+ + + + + +
+ + + + + + + +
const valT dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_dim ()
+
+inline
+
+ +

Definition at line 82 of file common.hpp.

+ +
+
+ +

◆ get_fwd_distance()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::int64_t>
+ + + + + +
+ + + + + + + +
const valT dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_fwd_distance ()
+
+inline
+
+ +

Definition at line 173 of file common.hpp.

+ +
+
+ +

◆ get_fwd_strides()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::vector<std::int64_t>>
+ + + + + +
+ + + + + + + +
const valT dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_fwd_strides ()
+
+inline
+
+ +

Definition at line 109 of file common.hpp.

+ +
+
+ +

◆ get_in_place()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + +
bool dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_in_place ()
+
+inline
+
+ +

Definition at line 204 of file common.hpp.

+ +
+
+ +

◆ get_number_of_transforms()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::int64_t>
+ + + + + +
+ + + + + + + +
const valT dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_number_of_transforms ()
+
+inline
+
+ +

Definition at line 92 of file common.hpp.

+ +
+
+ +

◆ get_precision()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + +
mkl_dft::precision dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_precision ()
+
+inline
+
+ +

Definition at line 235 of file common.hpp.

+ +
+
+ +

◆ get_queue()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + +
const sycl::queue & dpnp::extensions::fft::DescriptorWrapper< prec, dom >::get_queue () const
+
+inline
+
+ +

Definition at line 69 of file common.hpp.

+ +
+
+ +

◆ is_committed()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + +
bool dpnp::extensions::fft::DescriptorWrapper< prec, dom >::is_committed ()
+
+inline
+
+ +

Definition at line 244 of file common.hpp.

+ +
+
+ +

◆ set_bwd_distance()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::int64_t>
+ + + + + +
+ + + + + + + + +
void dpnp::extensions::fft::DescriptorWrapper< prec, dom >::set_bwd_distance (const valT & dist)
+
+inline
+
+ +

Definition at line 198 of file common.hpp.

+ +
+
+ +

◆ set_bwd_strides()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::vector<std::int64_t>>
+ + + + + +
+ + + + + + + + +
void dpnp::extensions::fft::DescriptorWrapper< prec, dom >::set_bwd_strides (const valT & strides)
+
+inline
+
+ +

Definition at line 156 of file common.hpp.

+ +
+
+ +

◆ set_fwd_distance()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::int64_t>
+ + + + + +
+ + + + + + + + +
void dpnp::extensions::fft::DescriptorWrapper< prec, dom >::set_fwd_distance (const valT & dist)
+
+inline
+
+ +

Definition at line 182 of file common.hpp.

+ +
+
+ +

◆ set_fwd_strides()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::vector<std::int64_t>>
+ + + + + +
+ + + + + + + + +
void dpnp::extensions::fft::DescriptorWrapper< prec, dom >::set_fwd_strides (const valT & strides)
+
+inline
+
+ +

Definition at line 124 of file common.hpp.

+ +
+
+ +

◆ set_in_place()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+ + + + + +
+ + + + + + + + +
void dpnp::extensions::fft::DescriptorWrapper< prec, dom >::set_in_place (const bool & in_place_request)
+
+inline
+
+ +

Definition at line 218 of file common.hpp.

+ +
+
+ +

◆ set_number_of_transforms()

+ +
+
+
+template<mkl_dft::precision prec, mkl_dft::domain dom>
+
+template<typename valT = std::int64_t>
+ + + + + +
+ + + + + + + + +
void dpnp::extensions::fft::DescriptorWrapper< prec, dom >::set_number_of_transforms (const valT & num)
+
+inline
+
+ +

Definition at line 102 of file common.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /github/workspace/dpnp/backend/extensions/fft/common.hpp
  • +
+
+
+ + + + diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error-members.html b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error-members.html new file mode 100644 index 00000000000..9bf38a482dc --- /dev/null +++ b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error-members.html @@ -0,0 +1,110 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp::extensions::lapack::LinAlgError Member List
+
+
+ +

This is the complete list of members for dpnp::extensions::lapack::LinAlgError, including all inherited members.

+ + + +
LinAlgError(const char *message) (defined in dpnp::extensions::lapack::LinAlgError)dpnp::extensions::lapack::LinAlgErrorinlineexplicit
what() const noexcept override (defined in dpnp::extensions::lapack::LinAlgError)dpnp::extensions::lapack::LinAlgErrorinline
+
+ + + + diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error.html b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error.html new file mode 100644 index 00000000000..14ac32cf7e0 --- /dev/null +++ b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error.html @@ -0,0 +1,200 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::LinAlgError Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
dpnp::extensions::lapack::LinAlgError Class Reference
+
+
+
+Inheritance diagram for dpnp::extensions::lapack::LinAlgError:
+
+
Inheritance graph
+ + + + + +
[legend]
+
+Collaboration diagram for dpnp::extensions::lapack::LinAlgError:
+
+
Collaboration graph
+ + + + + +
[legend]
+ + + + + + +

+Public Member Functions

 LinAlgError (const char *message)
 
const char * what () const noexcept override
 
+

Detailed Description

+
+

Definition at line 32 of file linalg_exceptions.hpp.

+

Constructor & Destructor Documentation

+ +

◆ LinAlgError()

+ +
+
+ + + + + +
+ + + + + + + + +
dpnp::extensions::lapack::LinAlgError::LinAlgError (const char * message)
+
+inlineexplicit
+
+ +

Definition at line 35 of file linalg_exceptions.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ what()

+ +
+
+ + + + + +
+ + + + + + + +
const char * dpnp::extensions::lapack::LinAlgError::what () const
+
+inlineoverridenoexcept
+
+ +

Definition at line 37 of file linalg_exceptions.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.map b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.map new file mode 100644 index 00000000000..369882c7829 --- /dev/null +++ b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.md5 b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.md5 new file mode 100644 index 00000000000..669d3eba15e --- /dev/null +++ b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.md5 @@ -0,0 +1 @@ +0286cf5a13aaabdd85659e8c598ca078 \ No newline at end of file diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.png b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.png new file mode 100644 index 00000000000..9b9277a3635 Binary files /dev/null and b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__coll__graph.png differ diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.map b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.map new file mode 100644 index 00000000000..369882c7829 --- /dev/null +++ b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.md5 b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.md5 new file mode 100644 index 00000000000..669d3eba15e --- /dev/null +++ b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.md5 @@ -0,0 +1 @@ +0286cf5a13aaabdd85659e8c598ca078 \ No newline at end of file diff --git a/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.png b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.png new file mode 100644 index 00000000000..9b9277a3635 Binary files /dev/null and b/pull/2070/backend_doc/classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error__inherit__graph.png differ diff --git a/pull/2070/backend_doc/classdpnp__less__comp-members.html b/pull/2070/backend_doc/classdpnp__less__comp-members.html new file mode 100644 index 00000000000..ecd94858f99 --- /dev/null +++ b/pull/2070/backend_doc/classdpnp__less__comp-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_less_comp Member List
+
+
+ +

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

+ + +
operator()(_Xp &&__x, _Yp &&__y) const (defined in dpnp_less_comp)dpnp_less_compinline
+
+ + + + diff --git a/pull/2070/backend_doc/classdpnp__less__comp.html b/pull/2070/backend_doc/classdpnp__less__comp.html new file mode 100644 index 00000000000..57783563b2c --- /dev/null +++ b/pull/2070/backend_doc/classdpnp__less__comp.html @@ -0,0 +1,170 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp_less_comp Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
dpnp_less_comp Class Reference
+
+
+ +

"<" comparison with complex types support. + More...

+ +

#include <dpnp_fptr.hpp>

+ + + + + +

+Public Member Functions

template<typename _Xp , typename _Yp >
bool operator() (_Xp &&__x, _Yp &&__y) const
 
+

Detailed Description

+

"<" comparison with complex types support.

+
Note
return a result of lexicographical "<" comparison for complex types.
+ +

Definition at line 239 of file dpnp_fptr.hpp.

+

Member Function Documentation

+ +

◆ operator()()

+ +
+
+
+template<typename _Xp , typename _Yp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool dpnp_less_comp::operator() (_Xp && __x,
_Yp && __y 
) const
+
+inline
+
+ +

Definition at line 243 of file dpnp_fptr.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/pull/2070/backend_doc/classes.html b/pull/2070/backend_doc/classes.html new file mode 100644 index 00000000000..6b1d9651f2d --- /dev/null +++ b/pull/2070/backend_doc/classes.html @@ -0,0 +1,156 @@ + + + + + + + +DPNP C++ backend kernel library: Class Index + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+
+
A | B | D | E | F | G | H | I | L | M | O | P | R | S | U | V
+
+
+
A
+
are_same
+
+
B
+
backend_sycl
+
+
D
+
DegreesFunctor (dpnp::kernels::degrees)
DescriptorWrapper (dpnp::extensions::fft)
DotcContigFactory (dpnp::extensions::blas)
DotContigFactory (dpnp::extensions::blas)
DotcTypePairSupportFactory (dpnp::extensions::blas::types)
DotTypePairSupportFactory (dpnp::extensions::blas::types)
DotuContigFactory (dpnp::extensions::blas)
DotuTypePairSupportFactory (dpnp::extensions::blas::types)
dpnp_less_comp
DPNP_USM_iterator
DPNPC_id
DPNPC_ptr_adapter
DPNPFuncData
+
+
E
+
engine_struct
+
+
F
+
FabsFunctor (dpnp::kernels::fabs)
FixFunctor (dpnp::kernels::fix)
FmaxFunctor (dpnp::kernels::fmax)
FminFunctor (dpnp::kernels::fmin)
FmodFunctor (dpnp::kernels::fmod)
func_type_map_factory_t
func_type_pair_t
+
+
G
+
GemmBatchTypePairSupportFactory (dpnp::extensions::blas::types)
GemmTypePairSupportFactory (dpnp::extensions::blas::types)
GemvTypePairSupportFactory (dpnp::extensions::blas::types)
GeqrfBatchTypePairSupportFactory (dpnp::extensions::lapack::types)
GeqrfTypePairSupportFactory (dpnp::extensions::lapack::types)
GesvdTypePairSupportFactory (dpnp::extensions::lapack::types)
GesvTypePairSupportFactory (dpnp::extensions::lapack::types)
GetrfBatchTypePairSupportFactory (dpnp::extensions::lapack::types)
GetrfTypePairSupportFactory (dpnp::extensions::lapack::types)
GetriBatchTypePairSupportFactory (dpnp::extensions::lapack::types)
GetrsTypePairSupportFactory (dpnp::extensions::lapack::types)
+
+
H
+
HeavisideFunctor (dpnp::kernels::heaviside)
HeevdTypePairSupportFactory (dpnp::extensions::lapack::types)
+
+
I
+
is_any
is_complex
+
+
L
+
LinAlgError (dpnp::extensions::lapack)
Logaddexp2Functor (dpnp::kernels::logaddexp2)
+
+
M
+
mcg59_struct
mt19937_struct
+
+
O
+
OrgqrBatchTypePairSupportFactory (dpnp::extensions::lapack::types)
OrgqrTypePairSupportFactory (dpnp::extensions::lapack::types)
+
+
P
+
PotrfBatchTypePairSupportFactory (dpnp::extensions::lapack::types)
PotrfTypePairSupportFactory (dpnp::extensions::lapack::types)
PrecisionType (dpnp::extensions::fft)
PrecisionType< mkl_dft::precision::DOUBLE > (dpnp::extensions::fft)
PrecisionType< mkl_dft::precision::SINGLE > (dpnp::extensions::fft)
python_constants
+
+
R
+
RadiansFunctor (dpnp::kernels::radians)
+
+
S
+
ScaleType (dpnp::extensions::fft)
ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd > (dpnp::extensions::fft)
ScaleType< prec, mkl_dft::domain::REAL, false > (dpnp::extensions::fft)
ScaleType< prec, mkl_dft::domain::REAL, true > (dpnp::extensions::fft)
SyevdTypePairSupportFactory (dpnp::extensions::lapack::types)
+
+
U
+
UngqrBatchTypePairSupportFactory (dpnp::extensions::lapack::types)
UngqrTypePairSupportFactory (dpnp::extensions::lapack::types)
+
+
V
+
value_type_of (dpnp::extensions::lapack::helper)
value_type_of< std::complex< T > > (dpnp::extensions::lapack::helper)
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/closed.png b/pull/2070/backend_doc/closed.png new file mode 100644 index 00000000000..98cc2c909da Binary files /dev/null and b/pull/2070/backend_doc/closed.png differ diff --git a/pull/2070/backend_doc/common__helpers_8hpp_source.html b/pull/2070/backend_doc/common__helpers_8hpp_source.html new file mode 100644 index 00000000000..56e5a086293 --- /dev/null +++ b/pull/2070/backend_doc/common__helpers_8hpp_source.html @@ -0,0 +1,272 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/common_helpers.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
common_helpers.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27#include <pybind11/pybind11.h>
+
28#include <sycl/sycl.hpp>
+
29
+
30#include <complex>
+
31#include <cstring>
+
32#include <stdexcept>
+
33
+
34// dpctl tensor headers
+
35#include "utils/sycl_alloc_utils.hpp"
+
36
+
37namespace dpnp::extensions::lapack::helper
+
38{
+
39namespace py = pybind11;
+
40
+
41template <typename T>
+
+ +
43{
+
44 using type = T;
+
45};
+
+
46
+
47template <typename T>
+
+
48struct value_type_of<std::complex<T>>
+
49{
+
50 using type = T;
+
51};
+
+
52
+
53// Rounds up the number `value` to the nearest multiple of `mult`.
+
54template <typename intT>
+
55inline intT round_up_mult(intT value, intT mult)
+
56{
+
57 intT q = (value + (mult - 1)) / mult;
+
58 return q * mult;
+
59}
+
60
+
61// Checks if the shape array has any non-zero dimension.
+
62inline bool check_zeros_shape(int ndim, const py::ssize_t *shape)
+
63{
+
64 size_t src_nelems(1);
+
65
+
66 for (int i = 0; i < ndim; ++i) {
+
67 src_nelems *= static_cast<size_t>(shape[i]);
+
68 }
+
69 return src_nelems == 0;
+
70}
+
71
+
72// Allocate the memory for the pivot indices
+
73inline std::int64_t *alloc_ipiv(const std::int64_t n, sycl::queue &exec_q)
+
74{
+
75 std::int64_t *ipiv = nullptr;
+
76
+
77 try {
+
78 ipiv = sycl::malloc_device<std::int64_t>(n, exec_q);
+
79 if (!ipiv) {
+
80 throw std::runtime_error("Device allocation for ipiv failed");
+
81 }
+
82 } catch (sycl::exception const &e) {
+
83 if (ipiv != nullptr)
+
84 dpctl::tensor::alloc_utils::sycl_free_noexcept(ipiv, exec_q);
+
85 throw std::runtime_error(
+
86 std::string(
+
87 "Unexpected SYCL exception caught during ipiv allocation: ") +
+
88 e.what());
+
89 }
+
90
+
91 return ipiv;
+
92}
+
93
+
94// Allocate the total memory for the total pivot indices with proper alignment
+
95// for batch implementations
+
96template <typename T>
+
97inline std::int64_t *alloc_ipiv_batch(const std::int64_t n,
+
98 std::int64_t n_linear_streams,
+
99 sycl::queue &exec_q)
+
100{
+
101 // Get padding size to ensure memory allocations are aligned to 256 bytes
+
102 // for better performance
+
103 const std::int64_t padding = 256 / sizeof(T);
+
104
+
105 // Calculate the total size needed for the pivot indices array for all
+
106 // linear streams with proper alignment
+
107 size_t alloc_ipiv_size = round_up_mult(n_linear_streams * n, padding);
+
108
+
109 return alloc_ipiv(alloc_ipiv_size, exec_q);
+
110}
+
111
+
112// Allocate the memory for the scratchpad
+
113template <typename T>
+
114inline T *alloc_scratchpad(std::int64_t scratchpad_size, sycl::queue &exec_q)
+
115{
+
116 T *scratchpad = nullptr;
+
117
+
118 try {
+
119 if (scratchpad_size > 0) {
+
120 scratchpad = sycl::malloc_device<T>(scratchpad_size, exec_q);
+
121 if (!scratchpad) {
+
122 throw std::runtime_error(
+
123 "Device allocation for scratchpad failed");
+
124 }
+
125 }
+
126 } catch (sycl::exception const &e) {
+
127 if (scratchpad != nullptr) {
+
128 dpctl::tensor::alloc_utils::sycl_free_noexcept(scratchpad, exec_q);
+
129 }
+
130 throw std::runtime_error(std::string("Unexpected SYCL exception caught "
+
131 "during scratchpad allocation: ") +
+
132 e.what());
+
133 }
+
134
+
135 return scratchpad;
+
136}
+
137
+
138// Allocate the total scratchpad memory with proper alignment for batch
+
139// implementations
+
140template <typename T>
+
141inline T *alloc_scratchpad_batch(std::int64_t scratchpad_size,
+
142 std::int64_t n_linear_streams,
+
143 sycl::queue &exec_q)
+
144{
+
145 // Get padding size to ensure memory allocations are aligned to 256 bytes
+
146 // for better performance
+
147 const std::int64_t padding = 256 / sizeof(T);
+
148
+
149 // Calculate the total scratchpad memory size needed for all linear
+
150 // streams with proper alignment
+
151 const size_t alloc_scratch_size =
+
152 round_up_mult(n_linear_streams * scratchpad_size, padding);
+
153
+
154 return alloc_scratchpad<T>(alloc_scratch_size, exec_q);
+
155}
+
156} // namespace dpnp::extensions::lapack::helper
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/conj_8hpp_source.html b/pull/2070/backend_doc/conj_8hpp_source.html new file mode 100644 index 00000000000..3239c67986d --- /dev/null +++ b/pull/2070/backend_doc/conj_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/conj.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
conj.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_conj(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/constants_8hpp_source.html b/pull/2070/backend_doc/constants_8hpp_source.html new file mode 100644 index 00000000000..85caadd92e3 --- /dev/null +++ b/pull/2070/backend_doc/constants_8hpp_source.html @@ -0,0 +1,158 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/constants.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
constants.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27#ifndef CONSTANTS_H // Cython compatibility
+
28#define CONSTANTS_H
+
29
+
30#include "dpnp_iface.hpp"
+
31
+
+ +
37{
+
38 static void *py_none;
+
39 static void *py_nan;
+
40};
+
+
41
+
51INP_DLLEXPORT void dpnp_python_constants_initialize_c(void *py_none,
+
52 void *py_nan);
+
53
+
54#endif // CONSTANTS_H
+
INP_DLLEXPORT void dpnp_python_constants_initialize_c(void *py_none, void *py_nan)
Python constants initialization in the backend.
+ +
static void * py_none
Definition constants.hpp:38
+
static void * py_nan
Definition constants.hpp:39
+
+
+ + + + diff --git a/pull/2070/backend_doc/cos_8hpp_source.html b/pull/2070/backend_doc/cos_8hpp_source.html new file mode 100644 index 00000000000..51170b67ad1 --- /dev/null +++ b/pull/2070/backend_doc/cos_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/cos.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cos.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_cos(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/cosh_8hpp_source.html b/pull/2070/backend_doc/cosh_8hpp_source.html new file mode 100644 index 00000000000..c0a6fd329cd --- /dev/null +++ b/pull/2070/backend_doc/cosh_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/cosh.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cosh.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_cosh(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd.html b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd.html new file mode 100644 index 00000000000..6948723d69c --- /dev/null +++ b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd.html @@ -0,0 +1,122 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ufunc Directory Reference
+
+
+
+Directory dependency graph for ufunc:
+
+
/github/workspace/dpnp/backend/extensions/ufunc
+ + + + + +
+ + + + +

+Directories

 elementwise_functions
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd.js b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd.js new file mode 100644 index 00000000000..aea95165b23 --- /dev/null +++ b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd.js @@ -0,0 +1,4 @@ +var dir_06d9876029225c96c08c71d920e648bd = +[ + [ "elementwise_functions", "dir_4f4d020a650a668743abea55668e1676.html", "dir_4f4d020a650a668743abea55668e1676" ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.map b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.map new file mode 100644 index 00000000000..6e364226dcd --- /dev/null +++ b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.md5 b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.md5 new file mode 100644 index 00000000000..6ab9abe6235 --- /dev/null +++ b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.md5 @@ -0,0 +1 @@ +b93b3d67f8423d58090079e4ae238e7b \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.png b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.png new file mode 100644 index 00000000000..a7c8d07ef74 Binary files /dev/null and b/pull/2070/backend_doc/dir_06d9876029225c96c08c71d920e648bd_dep.png differ diff --git a/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82.html b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82.html new file mode 100644 index 00000000000..8d31b209269 --- /dev/null +++ b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82.html @@ -0,0 +1,127 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/fft Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fft Directory Reference
+
+
+
+Directory dependency graph for fft:
+
+
/github/workspace/dpnp/backend/extensions/fft
+ + + + +
+ + + + + + + + + + +

+Files

 common.hpp
 
 fft_utils.hpp
 
 in_place.hpp
 
 out_of_place.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82.js b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82.js new file mode 100644 index 00000000000..ab06a4666a5 --- /dev/null +++ b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82.js @@ -0,0 +1,7 @@ +var dir_0fcde517d397c2a2ee97f57d46d3af82 = +[ + [ "common.hpp", "fft_2common_8hpp_source.html", null ], + [ "fft_utils.hpp", "fft__utils_8hpp_source.html", null ], + [ "in_place.hpp", "in__place_8hpp_source.html", null ], + [ "out_of_place.hpp", "out__of__place_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.map b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.map new file mode 100644 index 00000000000..ac56ff780b0 --- /dev/null +++ b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.md5 b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.md5 new file mode 100644 index 00000000000..7c181870563 --- /dev/null +++ b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.md5 @@ -0,0 +1 @@ +38a69d5b203fc5c92517e53e2b515454 \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.png b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.png new file mode 100644 index 00000000000..43b589e1777 Binary files /dev/null and b/pull/2070/backend_doc/dir_0fcde517d397c2a2ee97f57d46d3af82_dep.png differ diff --git a/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e.html b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e.html new file mode 100644 index 00000000000..68005459b82 --- /dev/null +++ b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e.html @@ -0,0 +1,137 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
elementwise_functions Directory Reference
+
+
+
+Directory dependency graph for elementwise_functions:
+
+
/github/workspace/dpnp/backend/kernels/elementwise_functions
+ + + + +
+ + + + + + + + + + + + + + + + + + + + +

+Files

 degrees.hpp
 
 fabs.hpp
 
 fix.hpp
 
 fmax.hpp
 
 fmin.hpp
 
 fmod.hpp
 
 heaviside.hpp
 
 logaddexp2.hpp
 
 radians.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e.js b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e.js new file mode 100644 index 00000000000..569432d6ff8 --- /dev/null +++ b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e.js @@ -0,0 +1,12 @@ +var dir_2dc4cca66e7325a4fed455b9bcd79a3e = +[ + [ "degrees.hpp", "kernels_2elementwise__functions_2degrees_8hpp_source.html", null ], + [ "fabs.hpp", "kernels_2elementwise__functions_2fabs_8hpp_source.html", null ], + [ "fix.hpp", "kernels_2elementwise__functions_2fix_8hpp_source.html", null ], + [ "fmax.hpp", "kernels_2elementwise__functions_2fmax_8hpp_source.html", null ], + [ "fmin.hpp", "kernels_2elementwise__functions_2fmin_8hpp_source.html", null ], + [ "fmod.hpp", "kernels_2elementwise__functions_2fmod_8hpp_source.html", null ], + [ "heaviside.hpp", "kernels_2elementwise__functions_2heaviside_8hpp_source.html", null ], + [ "logaddexp2.hpp", "kernels_2elementwise__functions_2logaddexp2_8hpp_source.html", null ], + [ "radians.hpp", "kernels_2elementwise__functions_2radians_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.map b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.map new file mode 100644 index 00000000000..8378f61a9b5 --- /dev/null +++ b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.md5 b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.md5 new file mode 100644 index 00000000000..6b0bd522ff6 --- /dev/null +++ b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.md5 @@ -0,0 +1 @@ +090e45dea4e00bb70a28445aceb9fe1d \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.png b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.png new file mode 100644 index 00000000000..c34090c658f Binary files /dev/null and b/pull/2070/backend_doc/dir_2dc4cca66e7325a4fed455b9bcd79a3e_dep.png differ diff --git a/pull/2070/backend_doc/dir_445263fafd9544f9ee19804b2b65121e.html b/pull/2070/backend_doc/dir_445263fafd9544f9ee19804b2b65121e.html new file mode 100644 index 00000000000..ef3aa4bea43 --- /dev/null +++ b/pull/2070/backend_doc/dir_445263fafd9544f9ee19804b2b65121e.html @@ -0,0 +1,120 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
extensions Directory Reference
+
+
+ + + + + + + + + + + + +

+Directories

 blas
 
 elementwise_functions
 
 fft
 
 lapack
 
 vm
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_445263fafd9544f9ee19804b2b65121e.js b/pull/2070/backend_doc/dir_445263fafd9544f9ee19804b2b65121e.js new file mode 100644 index 00000000000..226f589403e --- /dev/null +++ b/pull/2070/backend_doc/dir_445263fafd9544f9ee19804b2b65121e.js @@ -0,0 +1,9 @@ +var dir_445263fafd9544f9ee19804b2b65121e = +[ + [ "blas", "dir_719437c54d6b79fb9761845202c39532.html", "dir_719437c54d6b79fb9761845202c39532" ], + [ "elementwise_functions", "dir_7db72d04786399a7e16076c21d91dbc7.html", "dir_7db72d04786399a7e16076c21d91dbc7" ], + [ "fft", "dir_0fcde517d397c2a2ee97f57d46d3af82.html", "dir_0fcde517d397c2a2ee97f57d46d3af82" ], + [ "lapack", "dir_778e4a311d05ac011b91752da00d45a4.html", "dir_778e4a311d05ac011b91752da00d45a4" ], + [ "ufunc", "dir_06d9876029225c96c08c71d920e648bd.html", "dir_06d9876029225c96c08c71d920e648bd" ], + [ "vm", "dir_8ecf9f741f71669d18a115ce11ef5e52.html", "dir_8ecf9f741f71669d18a115ce11ef5e52" ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676.html b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676.html new file mode 100644 index 00000000000..c911f802925 --- /dev/null +++ b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676.html @@ -0,0 +1,143 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
elementwise_functions Directory Reference
+
+
+
+Directory dependency graph for elementwise_functions:
+
+
/github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 common.hpp
 
 degrees.hpp
 
 fabs.hpp
 
 fix.hpp
 
 float_power.hpp
 
 fmax.hpp
 
 fmin.hpp
 
 fmod.hpp
 
 heaviside.hpp
 
 logaddexp2.hpp
 
 populate.hpp
 
 radians.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676.js b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676.js new file mode 100644 index 00000000000..d5757441246 --- /dev/null +++ b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676.js @@ -0,0 +1,15 @@ +var dir_4f4d020a650a668743abea55668e1676 = +[ + [ "common.hpp", "ufunc_2elementwise__functions_2common_8hpp_source.html", null ], + [ "degrees.hpp", "extensions_2ufunc_2elementwise__functions_2degrees_8hpp_source.html", null ], + [ "fabs.hpp", "extensions_2ufunc_2elementwise__functions_2fabs_8hpp_source.html", null ], + [ "fix.hpp", "extensions_2ufunc_2elementwise__functions_2fix_8hpp_source.html", null ], + [ "float_power.hpp", "float__power_8hpp_source.html", null ], + [ "fmax.hpp", "extensions_2ufunc_2elementwise__functions_2fmax_8hpp_source.html", null ], + [ "fmin.hpp", "extensions_2ufunc_2elementwise__functions_2fmin_8hpp_source.html", null ], + [ "fmod.hpp", "extensions_2ufunc_2elementwise__functions_2fmod_8hpp_source.html", null ], + [ "heaviside.hpp", "extensions_2ufunc_2elementwise__functions_2heaviside_8hpp_source.html", null ], + [ "logaddexp2.hpp", "extensions_2ufunc_2elementwise__functions_2logaddexp2_8hpp_source.html", null ], + [ "populate.hpp", "populate_8hpp_source.html", null ], + [ "radians.hpp", "extensions_2ufunc_2elementwise__functions_2radians_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.map b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.map new file mode 100644 index 00000000000..648e7c70e06 --- /dev/null +++ b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.md5 b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.md5 new file mode 100644 index 00000000000..bf6e69185c9 --- /dev/null +++ b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.md5 @@ -0,0 +1 @@ +931dbf556f6ea6b4d5c79189f38a72db \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.png b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.png new file mode 100644 index 00000000000..beed000e604 Binary files /dev/null and b/pull/2070/backend_doc/dir_4f4d020a650a668743abea55668e1676_dep.png differ diff --git a/pull/2070/backend_doc/dir_59425e443f801f1f2fd8bbe4959a3ccf.html b/pull/2070/backend_doc/dir_59425e443f801f1f2fd8bbe4959a3ccf.html new file mode 100644 index 00000000000..5ccd2dce623 --- /dev/null +++ b/pull/2070/backend_doc/dir_59425e443f801f1f2fd8bbe4959a3ccf.html @@ -0,0 +1,112 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/tests Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tests Directory Reference
+
+
+ + + + +

+Files

 dpnp_test_utils.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_59425e443f801f1f2fd8bbe4959a3ccf.js b/pull/2070/backend_doc/dir_59425e443f801f1f2fd8bbe4959a3ccf.js new file mode 100644 index 00000000000..75e99d8e3b4 --- /dev/null +++ b/pull/2070/backend_doc/dir_59425e443f801f1f2fd8bbe4959a3ccf.js @@ -0,0 +1,4 @@ +var dir_59425e443f801f1f2fd8bbe4959a3ccf = +[ + [ "dpnp_test_utils.hpp", "dpnp__test__utils_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/pull/2070/backend_doc/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 00000000000..fe487ac8bdd --- /dev/null +++ b/pull/2070/backend_doc/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,128 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
src Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Files

 constants.hpp
 
 dpnp_fptr.hpp
 
 dpnp_iterator.hpp
 
 dpnp_pstl.hpp
 
 dpnp_random_state.hpp
 
 dpnp_utils.hpp
 
 dpnpc_memory_adapter.hpp
 
 queue_sycl.hpp
 
 verbose.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/pull/2070/backend_doc/dir_68267d1309a1af8e8297ef4c3efbcdba.js new file mode 100644 index 00000000000..cbd85ac531b --- /dev/null +++ b/pull/2070/backend_doc/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -0,0 +1,12 @@ +var dir_68267d1309a1af8e8297ef4c3efbcdba = +[ + [ "constants.hpp", "constants_8hpp_source.html", null ], + [ "dpnp_fptr.hpp", "dpnp__fptr_8hpp_source.html", null ], + [ "dpnp_iterator.hpp", "dpnp__iterator_8hpp_source.html", null ], + [ "dpnp_pstl.hpp", "dpnp__pstl_8hpp_source.html", null ], + [ "dpnp_random_state.hpp", "dpnp__random__state_8hpp_source.html", null ], + [ "dpnp_utils.hpp", "dpnp__utils_8hpp_source.html", null ], + [ "dpnpc_memory_adapter.hpp", "dpnpc__memory__adapter_8hpp_source.html", null ], + [ "queue_sycl.hpp", "queue__sycl_8hpp_source.html", null ], + [ "verbose.hpp", "verbose_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532.html b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532.html new file mode 100644 index 00000000000..b86e434214d --- /dev/null +++ b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532.html @@ -0,0 +1,133 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/blas Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
blas Directory Reference
+
+
+
+Directory dependency graph for blas:
+
+
/github/workspace/dpnp/backend/extensions/blas
+ + + + +
+ + + + + + + + + + + + + + + + +

+Files

 dot.hpp
 
 dot_common.hpp
 
 dotc.hpp
 
 dotu.hpp
 
 gemm.hpp
 
 gemv.hpp
 
 types_matrix.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532.js b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532.js new file mode 100644 index 00000000000..321f2026940 --- /dev/null +++ b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532.js @@ -0,0 +1,10 @@ +var dir_719437c54d6b79fb9761845202c39532 = +[ + [ "dot.hpp", "dot_8hpp_source.html", null ], + [ "dot_common.hpp", "dot__common_8hpp_source.html", null ], + [ "dotc.hpp", "dotc_8hpp_source.html", null ], + [ "dotu.hpp", "dotu_8hpp_source.html", null ], + [ "gemm.hpp", "gemm_8hpp_source.html", null ], + [ "gemv.hpp", "gemv_8hpp_source.html", null ], + [ "types_matrix.hpp", "blas_2types__matrix_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.map b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.map new file mode 100644 index 00000000000..cb3cf215767 --- /dev/null +++ b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.md5 b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.md5 new file mode 100644 index 00000000000..6e539685eb9 --- /dev/null +++ b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.md5 @@ -0,0 +1 @@ +84949d88ff49fd41962da13d8b90ca3f \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.png b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.png new file mode 100644 index 00000000000..8d293fcd910 Binary files /dev/null and b/pull/2070/backend_doc/dir_719437c54d6b79fb9761845202c39532_dep.png differ diff --git a/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4.html b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4.html new file mode 100644 index 00000000000..1cfc91a0dae --- /dev/null +++ b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4.html @@ -0,0 +1,161 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
lapack Directory Reference
+
+
+
+Directory dependency graph for lapack:
+
+
/github/workspace/dpnp/backend/extensions/lapack
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 common_helpers.hpp
 
 evd_batch_common.hpp
 
 evd_common.hpp
 
 evd_common_utils.hpp
 
 geqrf.hpp
 
 gesv.hpp
 
 gesv_common_utils.hpp
 
 gesvd.hpp
 
 gesvd_common_utils.hpp
 
 getrf.hpp
 
 getri.hpp
 
 getrs.hpp
 
 heevd.hpp
 
 heevd_batch.hpp
 
 linalg_exceptions.hpp
 
 orgqr.hpp
 
 potrf.hpp
 
 syevd.hpp
 
 syevd_batch.hpp
 
 types_matrix.hpp
 
 ungqr.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4.js b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4.js new file mode 100644 index 00000000000..0bf909e9649 --- /dev/null +++ b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4.js @@ -0,0 +1,24 @@ +var dir_778e4a311d05ac011b91752da00d45a4 = +[ + [ "common_helpers.hpp", "common__helpers_8hpp_source.html", null ], + [ "evd_batch_common.hpp", "evd__batch__common_8hpp_source.html", null ], + [ "evd_common.hpp", "evd__common_8hpp_source.html", null ], + [ "evd_common_utils.hpp", "evd__common__utils_8hpp_source.html", null ], + [ "geqrf.hpp", "geqrf_8hpp_source.html", null ], + [ "gesv.hpp", "gesv_8hpp_source.html", null ], + [ "gesv_common_utils.hpp", "gesv__common__utils_8hpp_source.html", null ], + [ "gesvd.hpp", "gesvd_8hpp_source.html", null ], + [ "gesvd_common_utils.hpp", "gesvd__common__utils_8hpp_source.html", null ], + [ "getrf.hpp", "getrf_8hpp_source.html", null ], + [ "getri.hpp", "getri_8hpp_source.html", null ], + [ "getrs.hpp", "getrs_8hpp_source.html", null ], + [ "heevd.hpp", "heevd_8hpp_source.html", null ], + [ "heevd_batch.hpp", "heevd__batch_8hpp_source.html", null ], + [ "linalg_exceptions.hpp", "linalg__exceptions_8hpp_source.html", null ], + [ "orgqr.hpp", "orgqr_8hpp_source.html", null ], + [ "potrf.hpp", "potrf_8hpp_source.html", null ], + [ "syevd.hpp", "syevd_8hpp_source.html", null ], + [ "syevd_batch.hpp", "syevd__batch_8hpp_source.html", null ], + [ "types_matrix.hpp", "lapack_2types__matrix_8hpp_source.html", null ], + [ "ungqr.hpp", "ungqr_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.map b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.map new file mode 100644 index 00000000000..7d8681c31fb --- /dev/null +++ b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.md5 b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.md5 new file mode 100644 index 00000000000..4a80a5c77a8 --- /dev/null +++ b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.md5 @@ -0,0 +1 @@ +29207ce3ced71ed567c4b705547d75d2 \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.png b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.png new file mode 100644 index 00000000000..d17ec5740b4 Binary files /dev/null and b/pull/2070/backend_doc/dir_778e4a311d05ac011b91752da00d45a4_dep.png differ diff --git a/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7.html b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7.html new file mode 100644 index 00000000000..82da862e3ce --- /dev/null +++ b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7.html @@ -0,0 +1,125 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/elementwise_functions Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
elementwise_functions Directory Reference
+
+
+
+Directory dependency graph for elementwise_functions:
+
+
/github/workspace/dpnp/backend/extensions/elementwise_functions
+ + + + +
+ + + + + + + + +

+Files

 elementwise_functions.hpp
 
 elementwise_functions_type_utils.hpp
 
 simplify_iteration_space.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7.js b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7.js new file mode 100644 index 00000000000..9c84e1a1a53 --- /dev/null +++ b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7.js @@ -0,0 +1,6 @@ +var dir_7db72d04786399a7e16076c21d91dbc7 = +[ + [ "elementwise_functions.hpp", "elementwise__functions_8hpp_source.html", null ], + [ "elementwise_functions_type_utils.hpp", "elementwise__functions__type__utils_8hpp_source.html", null ], + [ "simplify_iteration_space.hpp", "simplify__iteration__space_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.map b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.map new file mode 100644 index 00000000000..62d58ea0160 --- /dev/null +++ b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.md5 b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.md5 new file mode 100644 index 00000000000..007640f823a --- /dev/null +++ b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.md5 @@ -0,0 +1 @@ +ca1ca6867f94a638ea1378f9f8a9747f \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.png b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.png new file mode 100644 index 00000000000..b364b71ee1a Binary files /dev/null and b/pull/2070/backend_doc/dir_7db72d04786399a7e16076c21d91dbc7_dep.png differ diff --git a/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52.html b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52.html new file mode 100644 index 00000000000..b2787e08c99 --- /dev/null +++ b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52.html @@ -0,0 +1,199 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
vm Directory Reference
+
+
+
+Directory dependency graph for vm:
+
+
/github/workspace/dpnp/backend/extensions/vm
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 abs.hpp
 
 acos.hpp
 
 acosh.hpp
 
 add.hpp
 
 asin.hpp
 
 asinh.hpp
 
 atan.hpp
 
 atan2.hpp
 
 atanh.hpp
 
 cbrt.hpp
 
 ceil.hpp
 
 common.hpp
 
 conj.hpp
 
 cos.hpp
 
 cosh.hpp
 
 div.hpp
 
 exp.hpp
 
 exp2.hpp
 
 expm1.hpp
 
 floor.hpp
 
 fmax.hpp
 
 fmin.hpp
 
 fmod.hpp
 
 hypot.hpp
 
 ln.hpp
 
 log10.hpp
 
 log1p.hpp
 
 log2.hpp
 
 mul.hpp
 
 nextafter.hpp
 
 pow.hpp
 
 rint.hpp
 
 sin.hpp
 
 sinh.hpp
 
 sqr.hpp
 
 sqrt.hpp
 
 sub.hpp
 
 tan.hpp
 
 tanh.hpp
 
 trunc.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52.js b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52.js new file mode 100644 index 00000000000..66d6857402e --- /dev/null +++ b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52.js @@ -0,0 +1,43 @@ +var dir_8ecf9f741f71669d18a115ce11ef5e52 = +[ + [ "abs.hpp", "abs_8hpp_source.html", null ], + [ "acos.hpp", "acos_8hpp_source.html", null ], + [ "acosh.hpp", "acosh_8hpp_source.html", null ], + [ "add.hpp", "add_8hpp_source.html", null ], + [ "asin.hpp", "asin_8hpp_source.html", null ], + [ "asinh.hpp", "asinh_8hpp_source.html", null ], + [ "atan.hpp", "atan_8hpp_source.html", null ], + [ "atan2.hpp", "atan2_8hpp_source.html", null ], + [ "atanh.hpp", "atanh_8hpp_source.html", null ], + [ "cbrt.hpp", "cbrt_8hpp_source.html", null ], + [ "ceil.hpp", "ceil_8hpp_source.html", null ], + [ "common.hpp", "vm_2common_8hpp_source.html", null ], + [ "conj.hpp", "conj_8hpp_source.html", null ], + [ "cos.hpp", "cos_8hpp_source.html", null ], + [ "cosh.hpp", "cosh_8hpp_source.html", null ], + [ "div.hpp", "div_8hpp_source.html", null ], + [ "exp.hpp", "exp_8hpp_source.html", null ], + [ "exp2.hpp", "exp2_8hpp_source.html", null ], + [ "expm1.hpp", "expm1_8hpp_source.html", null ], + [ "floor.hpp", "floor_8hpp_source.html", null ], + [ "fmax.hpp", "extensions_2vm_2fmax_8hpp_source.html", null ], + [ "fmin.hpp", "extensions_2vm_2fmin_8hpp_source.html", null ], + [ "fmod.hpp", "extensions_2vm_2fmod_8hpp_source.html", null ], + [ "hypot.hpp", "hypot_8hpp_source.html", null ], + [ "ln.hpp", "ln_8hpp_source.html", null ], + [ "log10.hpp", "log10_8hpp_source.html", null ], + [ "log1p.hpp", "log1p_8hpp_source.html", null ], + [ "log2.hpp", "log2_8hpp_source.html", null ], + [ "mul.hpp", "mul_8hpp_source.html", null ], + [ "nextafter.hpp", "nextafter_8hpp_source.html", null ], + [ "pow.hpp", "pow_8hpp_source.html", null ], + [ "rint.hpp", "rint_8hpp_source.html", null ], + [ "sin.hpp", "sin_8hpp_source.html", null ], + [ "sinh.hpp", "sinh_8hpp_source.html", null ], + [ "sqr.hpp", "sqr_8hpp_source.html", null ], + [ "sqrt.hpp", "sqrt_8hpp_source.html", null ], + [ "sub.hpp", "sub_8hpp_source.html", null ], + [ "tan.hpp", "tan_8hpp_source.html", null ], + [ "tanh.hpp", "tanh_8hpp_source.html", null ], + [ "trunc.hpp", "trunc_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.map b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.map new file mode 100644 index 00000000000..0672664a000 --- /dev/null +++ b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.md5 b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.md5 new file mode 100644 index 00000000000..c6bbf4319fb --- /dev/null +++ b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.md5 @@ -0,0 +1 @@ +039fda99531933b46ef163a1762d051f \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.png b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.png new file mode 100644 index 00000000000..64edbcdbdc0 Binary files /dev/null and b/pull/2070/backend_doc/dir_8ecf9f741f71669d18a115ce11ef5e52_dep.png differ diff --git a/pull/2070/backend_doc/dir_d3fd84b2e4114076d2551689812cf799.html b/pull/2070/backend_doc/dir_d3fd84b2e4114076d2551689812cf799.html new file mode 100644 index 00000000000..3e7deaffc8b --- /dev/null +++ b/pull/2070/backend_doc/dir_d3fd84b2e4114076d2551689812cf799.html @@ -0,0 +1,112 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
kernels Directory Reference
+
+
+ + + + +

+Directories

 elementwise_functions
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_d3fd84b2e4114076d2551689812cf799.js b/pull/2070/backend_doc/dir_d3fd84b2e4114076d2551689812cf799.js new file mode 100644 index 00000000000..ce0c2193f76 --- /dev/null +++ b/pull/2070/backend_doc/dir_d3fd84b2e4114076d2551689812cf799.js @@ -0,0 +1,4 @@ +var dir_d3fd84b2e4114076d2551689812cf799 = +[ + [ "elementwise_functions", "dir_2dc4cca66e7325a4fed455b9bcd79a3e.html", "dir_2dc4cca66e7325a4fed455b9bcd79a3e" ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/dir_d44c64559bbebec7f509842c48db8b23.html b/pull/2070/backend_doc/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 00000000000..ec43b323324 --- /dev/null +++ b/pull/2070/backend_doc/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,122 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

 dpnp_gen_1arg_1type_tbl.hpp
 
 dpnp_gen_1arg_2type_tbl.hpp
 
 dpnp_gen_2arg_3type_tbl.hpp
 
 dpnp_iface.hpp
 
 dpnp_iface_fptr.hpp
 
 dpnp_iface_random.hpp
 
+
+
+ + + + diff --git a/pull/2070/backend_doc/dir_d44c64559bbebec7f509842c48db8b23.js b/pull/2070/backend_doc/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 00000000000..0626b814caf --- /dev/null +++ b/pull/2070/backend_doc/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,9 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "dpnp_gen_1arg_1type_tbl.hpp", "dpnp__gen__1arg__1type__tbl_8hpp_source.html", null ], + [ "dpnp_gen_1arg_2type_tbl.hpp", "dpnp__gen__1arg__2type__tbl_8hpp_source.html", null ], + [ "dpnp_gen_2arg_3type_tbl.hpp", "dpnp__gen__2arg__3type__tbl_8hpp_source.html", null ], + [ "dpnp_iface.hpp", "dpnp__iface_8hpp_source.html", null ], + [ "dpnp_iface_fptr.hpp", "dpnp__iface__fptr_8hpp_source.html", null ], + [ "dpnp_iface_random.hpp", "dpnp__iface__random_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/div_8hpp_source.html b/pull/2070/backend_doc/div_8hpp_source.html new file mode 100644 index 00000000000..035ee2ac1de --- /dev/null +++ b/pull/2070/backend_doc/div_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/div.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
div.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_div(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/doc.svg b/pull/2070/backend_doc/doc.svg new file mode 100644 index 00000000000..0b928a53171 --- /dev/null +++ b/pull/2070/backend_doc/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/pull/2070/backend_doc/docd.svg b/pull/2070/backend_doc/docd.svg new file mode 100644 index 00000000000..ac18b275522 --- /dev/null +++ b/pull/2070/backend_doc/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/pull/2070/backend_doc/dot_8hpp_source.html b/pull/2070/backend_doc/dot_8hpp_source.html new file mode 100644 index 00000000000..801d7e77dff --- /dev/null +++ b/pull/2070/backend_doc/dot_8hpp_source.html @@ -0,0 +1,211 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/blas/dot.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dot.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include "dot_common.hpp"
+
29
+
30namespace dpnp::extensions::blas
+
31{
+
32namespace mkl_blas = oneapi::mkl::blas;
+
33namespace type_utils = dpctl::tensor::type_utils;
+
34
+
35template <typename T>
+
36static sycl::event dot_impl(sycl::queue &exec_q,
+
37 const std::int64_t n,
+
38 const char *vectorX,
+
39 const std::int64_t incx,
+
40 const char *vectorY,
+
41 const std::int64_t incy,
+
42 char *result,
+
43 const std::vector<sycl::event> &depends)
+
44{
+
45 type_utils::validate_type_for_device<T>(exec_q);
+
46
+
47 const T *x = reinterpret_cast<const T *>(vectorX);
+
48 const T *y = reinterpret_cast<const T *>(vectorY);
+
49 T *res = reinterpret_cast<T *>(result);
+
50
+
51 std::stringstream error_msg;
+
52 bool is_exception_caught = false;
+
53
+
54 sycl::event dot_event;
+
55 try {
+
56 dot_event = mkl_blas::column_major::dot(exec_q,
+
57 n, // size of the input vectors
+
58 x, // Pointer to vector x.
+
59 incx, // Stride of vector x.
+
60 y, // Pointer to vector y.
+
61 incy, // Stride of vector y.
+
62 res, // Pointer to result.
+
63 depends);
+
64 } catch (oneapi::mkl::exception const &e) {
+
65 error_msg
+
66 << "Unexpected MKL exception caught during dot() call:\nreason: "
+
67 << e.what();
+
68 is_exception_caught = true;
+
69 } catch (sycl::exception const &e) {
+
70 error_msg << "Unexpected SYCL exception caught during dot() call:\n"
+
71 << e.what();
+
72 is_exception_caught = true;
+
73 }
+
74
+
75 if (is_exception_caught) // an unexpected error occurs
+
76 {
+
77 throw std::runtime_error(error_msg.str());
+
78 }
+
79
+
80 return dot_event;
+
81}
+
82
+
83template <typename fnT, typename varT>
+
+ +
85{
+
86 fnT get()
+
87 {
+ +
89 return dot_impl<varT>;
+
90 }
+
91 else {
+
92 return nullptr;
+
93 }
+
94 }
+
95};
+
+
96} // namespace dpnp::extensions::blas
+ +
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
+
+ + + + diff --git a/pull/2070/backend_doc/dot__common_8hpp_source.html b/pull/2070/backend_doc/dot__common_8hpp_source.html new file mode 100644 index 00000000000..57f9abd8ad2 --- /dev/null +++ b/pull/2070/backend_doc/dot__common_8hpp_source.html @@ -0,0 +1,290 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/blas/dot_common.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dot_common.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <pybind11/pybind11.h>
+
30
+
31// dpctl tensor headers
+
32#include "utils/memory_overlap.hpp"
+
33#include "utils/output_validation.hpp"
+
34#include "utils/type_dispatch.hpp"
+
35#include "utils/type_utils.hpp"
+
36
+
37#include "types_matrix.hpp"
+
38
+
39namespace dpnp::extensions::blas::dot
+
40{
+
41typedef sycl::event (*dot_impl_fn_ptr_t)(sycl::queue &,
+
42 const std::int64_t,
+
43 const char *,
+
44 const std::int64_t,
+
45 const char *,
+
46 const std::int64_t,
+
47 char *,
+
48 const std::vector<sycl::event> &);
+
49
+
50namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
+
51namespace py = pybind11;
+
52
+
53template <typename dispatchT>
+
54std::pair<sycl::event, sycl::event>
+
55 dot_func(sycl::queue &exec_q,
+
56 const dpctl::tensor::usm_ndarray &vectorX,
+
57 const dpctl::tensor::usm_ndarray &vectorY,
+
58 const dpctl::tensor::usm_ndarray &result,
+
59 const std::vector<sycl::event> &depends,
+
60 const dispatchT &dot_dispatch_vector)
+
61{
+
62 const int vectorX_nd = vectorX.get_ndim();
+
63 const int vectorY_nd = vectorY.get_ndim();
+
64 const int result_nd = result.get_ndim();
+
65
+
66 if ((vectorX_nd != 1)) {
+
67 throw py::value_error(
+
68 "The first input array has ndim=" + std::to_string(vectorX_nd) +
+
69 ", but a 1-dimensional array is expected.");
+
70 }
+
71
+
72 if ((vectorY_nd != 1)) {
+
73 throw py::value_error(
+
74 "The second input array has ndim=" + std::to_string(vectorY_nd) +
+
75 ", but a 1-dimensional array is expected.");
+
76 }
+
77
+
78 if ((result_nd != 0)) {
+
79 throw py::value_error(
+
80 "The output array has ndim=" + std::to_string(result_nd) +
+
81 ", but a 0-dimensional array is expected.");
+
82 }
+
83
+
84 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
+
85 if (overlap(vectorX, result)) {
+
86 throw py::value_error(
+
87 "The first input array and output array are overlapping "
+
88 "segments of memory");
+
89 }
+
90 if (overlap(vectorY, result)) {
+
91 throw py::value_error(
+
92 "The second input array and output array are overlapping "
+
93 "segments of memory");
+
94 }
+
95
+
96 if (!dpctl::utils::queues_are_compatible(
+
97 exec_q,
+
98 {vectorX.get_queue(), vectorY.get_queue(), result.get_queue()}))
+
99 {
+
100 throw py::value_error(
+
101 "USM allocations are not compatible with the execution queue.");
+
102 }
+
103
+
104 const int src_nelems = 1;
+
105 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(result);
+
106 dpctl::tensor::validation::AmpleMemory::throw_if_not_ample(result,
+
107 src_nelems);
+
108
+
109 const py::ssize_t x_size = vectorX.get_size();
+
110 const py::ssize_t y_size = vectorY.get_size();
+
111 const std::int64_t n = x_size;
+
112 if (x_size != y_size) {
+
113 throw py::value_error("The size of the first input array must be "
+
114 "equal to the size of the second input array.");
+
115 }
+
116
+
117 const int vectorX_typenum = vectorX.get_typenum();
+
118 const int vectorY_typenum = vectorY.get_typenum();
+
119 const int result_typenum = result.get_typenum();
+
120
+
121 if (result_typenum != vectorX_typenum || result_typenum != vectorY_typenum)
+
122 {
+
123 throw py::value_error("Given arrays must be of the same type.");
+
124 }
+
125
+
126 auto array_types = dpctl_td_ns::usm_ndarray_types();
+
127 const int type_id = array_types.typenum_to_lookup_id(vectorX_typenum);
+
128
+
129 dot_impl_fn_ptr_t dot_fn = dot_dispatch_vector[type_id];
+
130 if (dot_fn == nullptr) {
+
131 throw py::value_error(
+
132 "Types of input vectors and result array are mismatched.");
+
133 }
+
134
+
135 char *x_typeless_ptr = vectorX.get_data();
+
136 char *y_typeless_ptr = vectorY.get_data();
+
137 char *r_typeless_ptr = result.get_data();
+
138
+
139 const std::vector<py::ssize_t> x_stride = vectorX.get_strides_vector();
+
140 const std::vector<py::ssize_t> y_stride = vectorY.get_strides_vector();
+
141 const int x_elemsize = vectorX.get_elemsize();
+
142 const int y_elemsize = vectorY.get_elemsize();
+
143
+
144 const std::int64_t incx = x_stride[0];
+
145 const std::int64_t incy = y_stride[0];
+
146 // In OneMKL, the pointer should always point out to the first element of
+
147 // the array and OneMKL handle the rest depending on the sign of stride.
+
148 // In OneMKL, when the stride is positive, the data is read in order and
+
149 // when it is negative, the data is read in reverse order while pointer
+
150 // always point to the first element
+
151 // When the stride is negative, the pointer of the array coming from dpnp
+
152 // points to the last element. So, we need to adjust the pointer
+
153 if (incx < 0) {
+
154 x_typeless_ptr -= (n - 1) * std::abs(incx) * x_elemsize;
+
155 }
+
156 if (incy < 0) {
+
157 y_typeless_ptr -= (n - 1) * std::abs(incy) * y_elemsize;
+
158 }
+
159
+
160 sycl::event dot_ev = dot_fn(exec_q, n, x_typeless_ptr, incx, y_typeless_ptr,
+
161 incy, r_typeless_ptr, depends);
+
162
+
163 sycl::event args_ev = dpctl::utils::keep_args_alive(
+
164 exec_q, {vectorX, vectorY, result}, {dot_ev});
+
165
+
166 return std::make_pair(args_ev, dot_ev);
+
167}
+
168
+
169template <typename dispatchT,
+
170 template <typename fnT, typename T>
+
171 typename factoryT>
+
172void init_dot_dispatch_vector(dispatchT dot_dispatch_vector[])
+
173{
+
174 dpctl_td_ns::DispatchVectorBuilder<dispatchT, factoryT,
+
175 dpctl_td_ns::num_types>
+
176 contig;
+
177 contig.populate_dispatch_vector(dot_dispatch_vector);
+
178}
+
179} // namespace dpnp::extensions::blas::dot
+
+
+ + + + diff --git a/pull/2070/backend_doc/dotc_8hpp_source.html b/pull/2070/backend_doc/dotc_8hpp_source.html new file mode 100644 index 00000000000..069982e998a --- /dev/null +++ b/pull/2070/backend_doc/dotc_8hpp_source.html @@ -0,0 +1,213 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/blas/dotc.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dotc.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include "dot_common.hpp"
+
29
+
30namespace dpnp::extensions::blas
+
31{
+
32namespace mkl_blas = oneapi::mkl::blas;
+
33namespace type_utils = dpctl::tensor::type_utils;
+
34
+
35template <typename T>
+
36static sycl::event dotc_impl(sycl::queue &exec_q,
+
37 const std::int64_t n,
+
38 const char *vectorX,
+
39 const std::int64_t incx,
+
40 const char *vectorY,
+
41 const std::int64_t incy,
+
42 char *result,
+
43 const std::vector<sycl::event> &depends)
+
44{
+
45 type_utils::validate_type_for_device<T>(exec_q);
+
46
+
47 const T *x = reinterpret_cast<const T *>(vectorX);
+
48 const T *y = reinterpret_cast<const T *>(vectorY);
+
49 T *res = reinterpret_cast<T *>(result);
+
50
+
51 std::stringstream error_msg;
+
52 bool is_exception_caught = false;
+
53
+
54 sycl::event dotc_event;
+
55 try {
+
56 dotc_event =
+
57 mkl_blas::column_major::dotc(exec_q,
+
58 n, // size of the input vectors
+
59 x, // Pointer to vector x.
+
60 incx, // Stride of vector x.
+
61 y, // Pointer to vector y.
+
62 incy, // Stride of vector y.
+
63 res, // Pointer to result.
+
64 depends);
+
65 } catch (oneapi::mkl::exception const &e) {
+
66 error_msg
+
67 << "Unexpected MKL exception caught during dotc() call:\nreason: "
+
68 << e.what();
+
69 is_exception_caught = true;
+
70 } catch (sycl::exception const &e) {
+
71 error_msg << "Unexpected SYCL exception caught during dotc() call:\n"
+
72 << e.what();
+
73 is_exception_caught = true;
+
74 }
+
75
+
76 if (is_exception_caught) // an unexpected error occurs
+
77 {
+
78 throw std::runtime_error(error_msg.str());
+
79 }
+
80
+
81 return dotc_event;
+
82}
+
83
+
84template <typename fnT, typename varT>
+
+ +
86{
+
87 fnT get()
+
88 {
+ +
90 return dotc_impl<varT>;
+
91 }
+
92 else {
+
93 return nullptr;
+
94 }
+
95 }
+
96};
+
+
97
+
98} // namespace dpnp::extensions::blas
+ +
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
+
+ + + + diff --git a/pull/2070/backend_doc/dotu_8hpp_source.html b/pull/2070/backend_doc/dotu_8hpp_source.html new file mode 100644 index 00000000000..cf52ec6b66d --- /dev/null +++ b/pull/2070/backend_doc/dotu_8hpp_source.html @@ -0,0 +1,212 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/blas/dotu.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dotu.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include "dot_common.hpp"
+
29
+
30namespace dpnp::extensions::blas
+
31{
+
32namespace mkl_blas = oneapi::mkl::blas;
+
33namespace type_utils = dpctl::tensor::type_utils;
+
34
+
35template <typename T>
+
36static sycl::event dotu_impl(sycl::queue &exec_q,
+
37 const std::int64_t n,
+
38 const char *vectorX,
+
39 const std::int64_t incx,
+
40 const char *vectorY,
+
41 const std::int64_t incy,
+
42 char *result,
+
43 const std::vector<sycl::event> &depends)
+
44{
+
45 type_utils::validate_type_for_device<T>(exec_q);
+
46
+
47 const T *x = reinterpret_cast<const T *>(vectorX);
+
48 const T *y = reinterpret_cast<const T *>(vectorY);
+
49 T *res = reinterpret_cast<T *>(result);
+
50
+
51 std::stringstream error_msg;
+
52 bool is_exception_caught = false;
+
53
+
54 sycl::event dotu_event;
+
55 try {
+
56 dotu_event =
+
57 mkl_blas::column_major::dotu(exec_q,
+
58 n, // size of the input vectors
+
59 x, // Pointer to vector x.
+
60 incx, // Stride of vector x.
+
61 y, // Pointer to vector y.
+
62 incy, // Stride of vector y.
+
63 res, // Pointer to result.
+
64 depends);
+
65 } catch (oneapi::mkl::exception const &e) {
+
66 error_msg
+
67 << "Unexpected MKL exception caught during dotu() call:\nreason: "
+
68 << e.what();
+
69 is_exception_caught = true;
+
70 } catch (sycl::exception const &e) {
+
71 error_msg << "Unexpected SYCL exception caught during dotu() call:\n"
+
72 << e.what();
+
73 is_exception_caught = true;
+
74 }
+
75
+
76 if (is_exception_caught) // an unexpected error occurs
+
77 {
+
78 throw std::runtime_error(error_msg.str());
+
79 }
+
80
+
81 return dotu_event;
+
82}
+
83
+
84template <typename fnT, typename varT>
+
+ +
86{
+
87 fnT get()
+
88 {
+ +
90 return dotu_impl<varT>;
+
91 }
+
92 else {
+
93 return nullptr;
+
94 }
+
95 }
+
96};
+
+
97} // namespace dpnp::extensions::blas
+ +
A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::m...
+
+
+ + + + diff --git a/pull/2070/backend_doc/doxygen.css b/pull/2070/backend_doc/doxygen.css new file mode 100644 index 00000000000..009a9b5546a --- /dev/null +++ b/pull/2070/backend_doc/doxygen.css @@ -0,0 +1,2045 @@ +/* The standard CSS for doxygen 1.9.8*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/pull/2070/backend_doc/doxygen.svg b/pull/2070/backend_doc/doxygen.svg new file mode 100644 index 00000000000..79a76354078 --- /dev/null +++ b/pull/2070/backend_doc/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pull/2070/backend_doc/dpnp__fptr_8hpp_source.html b/pull/2070/backend_doc/dpnp__fptr_8hpp_source.html new file mode 100644 index 00000000000..659e954a135 --- /dev/null +++ b/pull/2070/backend_doc/dpnp__fptr_8hpp_source.html @@ -0,0 +1,380 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/dpnp_fptr.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_fptr.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26/*
+
27 * This header file contains internal function declarations related to FPTR
+
28 * interface. It should not contains public declarations
+
29 */
+
30
+
31#pragma once
+
32#ifndef BACKEND_FPTR_H // Cython compatibility
+
33#define BACKEND_FPTR_H
+
34
+
35#include <complex>
+
36#include <map>
+
37
+
38#include <sycl/sycl.hpp>
+
39
+
40#include <dpnp_iface_fptr.hpp>
+
41
+
56typedef std::map<DPNPFuncType, DPNPFuncData_t> map_2p_t;
+
57typedef std::map<DPNPFuncType, map_2p_t> map_1p_t;
+
58typedef std::map<DPNPFuncName, map_1p_t> func_map_t;
+
59
+ + + + + + + +
70
+
74template <DPNPFuncType FuncType, typename T>
+
+ +
76{
+
77 using type = T;
+
78
+
79 static func_type_pair_t
+
80 get_pair(std::integral_constant<DPNPFuncType, FuncType>)
+
81 {
+
82 return {};
+
83 }
+
84};
+
+
85
+
90template <typename... Ps>
+
+
91struct func_type_map_factory_t : public Ps...
+
92{
+
93 using Ps::get_pair...;
+
94
+
95 template <DPNPFuncType FuncType>
+
96 using find_type = typename decltype(get_pair(
+
97 std::integral_constant<DPNPFuncType, FuncType>{}))::type;
+
98};
+
+
99
+ + + + + + + + + +
113
+
117template <DPNPFuncType FT1, DPNPFuncType FT2>
+
118static constexpr DPNPFuncType populate_func_types()
+
119{
+
120 if constexpr (FT1 == DPNPFuncType::DPNP_FT_NONE) {
+
121 throw std::runtime_error("Templated enum value of FT1 is None");
+
122 }
+
123 else if constexpr (FT2 == DPNPFuncType::DPNP_FT_NONE) {
+
124 throw std::runtime_error("Templated enum value of FT2 is None");
+
125 }
+
126 return (FT1 < FT2) ? FT2 : FT1;
+
127}
+
128
+
132template <typename Op, typename Vec, std::size_t... I>
+
133static auto dpnp_vec_cast_impl(const Vec &v, std::index_sequence<I...>)
+
134{
+
135 return Op{v[I]...};
+
136}
+
137
+
148template <typename dstT,
+
149 typename srcT,
+
150 std::size_t N,
+
151 typename Indices = std::make_index_sequence<N>>
+
152static auto dpnp_vec_cast(const sycl::vec<srcT, N> &s)
+
153{
+
154 return dpnp_vec_cast_impl<sycl::vec<dstT, N>, sycl::vec<srcT, N>>(
+
155 s, Indices{});
+
156}
+
157
+
162#define MACRO_UNPACK_TYPES(...) __VA_ARGS__
+
163
+
168template <typename T, typename... Ts>
+
+
169struct is_any : std::disjunction<std::is_same<T, Ts>...>
+
170{
+
171};
+
+
172
+
177template <typename T, typename... Ts>
+
+
178struct are_same : std::conjunction<std::is_same<T, Ts>...>
+
179{
+
180};
+
+
181
+
185template <typename T, typename... Ts>
+
186constexpr auto is_any_v = is_any<T, Ts...>::value;
+
187
+
192template <typename T1, typename T2, typename... Ts>
+
193constexpr auto both_types_are_same =
+
194 std::conjunction_v<is_any<T1, Ts...>, are_same<T1, T2>>;
+
195
+
199template <typename T1, typename T2, typename... Ts>
+
200constexpr auto both_types_are_any_of =
+
201 std::conjunction_v<is_any<T1, Ts...>, is_any<T2, Ts...>>;
+
202
+
207template <typename T1, typename T2, typename... Ts>
+
208constexpr auto none_of_both_types =
+
209 !std::disjunction_v<is_any<T1, Ts...>, is_any<T2, Ts...>>;
+
210
+
218template <typename _Tp>
+
219using dpnp_remove_cvref_t =
+
220 typename std::remove_cv_t<typename std::remove_reference_t<_Tp>>;
+
221
+
226template <typename _Tp>
+
+
227struct is_complex : public std::integral_constant<
+
228 bool,
+
229 std::is_same_v<_Tp, std::complex<float>> ||
+
230 std::is_same_v<_Tp, std::complex<double>>>
+
231{
+
232};
+
+
233
+
+ +
240{
+
241public:
+
242 template <typename _Xp, typename _Yp>
+
243 bool operator()(_Xp &&__x, _Yp &&__y) const
+
244 {
+
245 if constexpr (both_types_are_same<
+
246 dpnp_remove_cvref_t<_Xp>, dpnp_remove_cvref_t<_Yp>,
+
247 std::complex<float>, std::complex<double>>)
+
248 {
+
249 bool ret = false;
+
250 _Xp a = std::forward<_Xp>(__x);
+
251 _Yp b = std::forward<_Yp>(__y);
+
252
+
253 if (a.real() < b.real()) {
+
254 ret = (a.imag() == a.imag() || b.imag() != b.imag());
+
255 }
+
256 else if (a.real() > b.real()) {
+
257 ret = (b.imag() != b.imag() && a.imag() == a.imag());
+
258 }
+
259 else if (a.real() == b.real() ||
+
260 (a.real() != a.real() && b.real() != b.real())) {
+
261 ret = (a.imag() < b.imag() ||
+
262 (b.imag() != b.imag() && a.imag() == a.imag()));
+
263 }
+
264 else {
+
265 ret = (b.real() != b.real());
+
266 }
+
267 return ret;
+
268 }
+
269 else {
+
270 return std::forward<_Xp>(__x) < std::forward<_Yp>(__y);
+
271 }
+
272 }
+
273};
+
+
274
+
279template <typename has_fp64 = std::true_type>
+
280static constexpr DPNPFuncType get_default_floating_type()
+
281{
+
282 return has_fp64::value ? DPNPFuncType::DPNP_FT_DOUBLE
+ +
284}
+
285
+
290template <DPNPFuncType FT1,
+
291 DPNPFuncType FT2,
+
292 typename has_fp64 = std::true_type,
+
293 typename keep_int = std::false_type>
+
294static constexpr DPNPFuncType get_floating_res_type()
+
295{
+
296 constexpr auto widest_type = populate_func_types<FT1, FT2>();
+
297 constexpr auto shortes_type = (widest_type == FT1) ? FT2 : FT1;
+
298
+
299 // Return integer result type if save_int is True
+
300 if constexpr (keep_int::value) {
+
301 if constexpr (widest_type == DPNPFuncType::DPNP_FT_INT ||
+
302 widest_type == DPNPFuncType::DPNP_FT_LONG)
+
303 {
+
304 return widest_type;
+
305 }
+
306 }
+
307
+
308 // Check for double
+
309 if constexpr (widest_type == DPNPFuncType::DPNP_FT_DOUBLE) {
+
310 return widest_type;
+
311 }
+
312
+
313 // Check for float
+
314 else if constexpr (widest_type == DPNPFuncType::DPNP_FT_FLOAT) {
+
315 // Check if the shortest type is also float
+
316 if constexpr (shortes_type == DPNPFuncType::DPNP_FT_FLOAT) {
+
317 return widest_type;
+
318 }
+
319 }
+
320
+
321 // Default case
+
322 return get_default_floating_type<has_fp64>();
+
323}
+
324
+
328void func_map_init_arraycreation(func_map_t &fmap);
+
329void func_map_init_elemwise(func_map_t &fmap);
+
330void func_map_init_indexing_func(func_map_t &fmap);
+
331void func_map_init_linalg(func_map_t &fmap);
+
332void func_map_init_mathematical(func_map_t &fmap);
+
333void func_map_init_random(func_map_t &fmap);
+
334void func_map_init_reduction(func_map_t &fmap);
+
335void func_map_init_searching(func_map_t &fmap);
+
336void func_map_init_sorting(func_map_t &fmap);
+
337void func_map_init_statistics(func_map_t &fmap);
+
338
+
339#endif // BACKEND_FPTR_H
+
"<" comparison with complex types support.
+
DPNPFuncType
Template types which are used in this interface.
+ + + + + + + + + + + + + +
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__gen__1arg__1type__tbl_8hpp_source.html b/pull/2070/backend_doc/dpnp__gen__1arg__1type__tbl_8hpp_source.html new file mode 100644 index 00000000000..58e90a5eb8c --- /dev/null +++ b/pull/2070/backend_doc/dpnp__gen__1arg__1type__tbl_8hpp_source.html @@ -0,0 +1,201 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/include/dpnp_gen_1arg_1type_tbl.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_gen_1arg_1type_tbl.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#if defined(MACRO_1ARG_1TYPE_OP)
+
27
+
28/*
+
29 * This header file contains single argument element wise functions definitions
+
30 *
+
31 * Macro `MACRO_1ARG_1TYPE_OP` must be defined before usage
+
32 *
+
33 * Parameters:
+
34 * - public name of the function and kernel name
+
35 * - operation used to calculate the result
+
36 * - mkl operation used to calculate the result
+
37 *
+
38 */
+
39
+
40#ifdef _SECTION_DOCUMENTATION_GENERATION_
+
41
+
42#define MACRO_1ARG_1TYPE_OP(__name__, __operation1__, __operation2__) \
+
43 \
+
44 \
+
45 \
+
46 \
+
48 \
+
49 \
+
50 \
+
51 \
+
52 \
+
54 \
+
55 \
+
56 \
+
57 \
+
58 \
+
60 \
+
61 \
+
62 \
+
63 \
+
65 template <typename _DataType> \
+
66 DPCTLSyclEventRef __name__( \
+
67 DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, \
+
68 const size_t result_ndim, const shape_elem_type *result_shape, \
+
69 const shape_elem_type *result_strides, const void *input1_in, \
+
70 const size_t input1_size, const size_t input1_ndim, \
+
71 const shape_elem_type *input1_shape, \
+
72 const shape_elem_type *input1_strides, const size_t *where, \
+
73 const DPCTLEventVectorRef dep_event_vec_ref); \
+
74 \
+
75 template <typename _DataType> \
+
76 void __name__( \
+
77 void *result_out, const size_t result_size, const size_t result_ndim, \
+
78 const shape_elem_type *result_shape, \
+
79 const shape_elem_type *result_strides, const void *input1_in, \
+
80 const size_t input1_size, const size_t input1_ndim, \
+
81 const shape_elem_type *input1_shape, \
+
82 const shape_elem_type *input1_strides, const size_t *where);
+
83
+
84#endif // _SECTION_DOCUMENTATION_GENERATION_
+
85
+
86MACRO_1ARG_1TYPE_OP(dpnp_erf_c,
+
87 dispatch_erf_op(input_elem),
+
88 oneapi::mkl::vm::erf(q, input1_size, input1_data, result))
+
89
+
90#undef MACRO_1ARG_1TYPE_OP
+
91
+
92#else
+
93#error "MACRO_1ARG_1TYPE_OP is not defined"
+
94#endif // MACRO_1ARG_1TYPE_OP
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__gen__1arg__2type__tbl_8hpp_source.html b/pull/2070/backend_doc/dpnp__gen__1arg__2type__tbl_8hpp_source.html new file mode 100644 index 00000000000..2e911ac1c6f --- /dev/null +++ b/pull/2070/backend_doc/dpnp__gen__1arg__2type__tbl_8hpp_source.html @@ -0,0 +1,200 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/include/dpnp_gen_1arg_2type_tbl.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_gen_1arg_2type_tbl.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26/*
+
27 * This header file contains single argument element wise functions definitions
+
28 *
+
29 * Macro `MACRO_1ARG_2TYPES_OP` must be defined before usage
+
30 *
+
31 * Parameters:
+
32 * - public name of the function and kernel name
+
33 * - operation used to calculate the result
+
34 * - mkl operation used to calculate the result
+
35 *
+
36 */
+
37
+
38#ifndef MACRO_1ARG_2TYPES_OP
+
39#error "MACRO_1ARG_2TYPES_OP is not defined"
+
40#endif
+
41
+
42#ifdef _SECTION_DOCUMENTATION_GENERATION_
+
43
+
44#define MACRO_1ARG_2TYPES_OP(__name__, __operation1__, __operation2__) \
+
45 \
+
46 \
+
47 \
+
48 \
+
50 \
+
51 \
+
52 \
+
53 \
+
54 \
+
56 \
+
57 \
+
58 \
+
59 \
+
60 \
+
62 \
+
63 \
+
64 \
+
65 \
+
67 template <typename _DataType_input, typename _DataType_output> \
+
68 DPCTLSyclEventRef __name__( \
+
69 DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, \
+
70 const size_t result_ndim, const shape_elem_type *result_shape, \
+
71 const shape_elem_type *result_strides, const void *input1_in, \
+
72 const size_t input1_size, const size_t input1_ndim, \
+
73 const shape_elem_type *input1_shape, \
+
74 const shape_elem_type *input1_strides, const size_t *where, \
+
75 const DPCTLEventVectorRef dep_event_vec_ref); \
+
76 \
+
77 template <typename _DataType_input, typename _DataType_output> \
+
78 void __name__( \
+
79 void *result_out, const size_t result_size, const size_t result_ndim, \
+
80 const shape_elem_type *result_shape, \
+
81 const shape_elem_type *result_strides, const void *input1_in, \
+
82 const size_t input1_size, const size_t input1_ndim, \
+
83 const shape_elem_type *input1_shape, \
+
84 const shape_elem_type *input1_strides, const size_t *where);
+
85
+
86#endif
+
87
+
88MACRO_1ARG_2TYPES_OP(dpnp_sqrt_c,
+
89 sycl::sqrt(input_elem),
+
90 oneapi::mkl::vm::sqrt(q, input1_size, input1_data, result))
+
91
+
92#undef MACRO_1ARG_2TYPES_OP
+
DPCTLSyclEventRef dpnp_sqrt_c(DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, const size_t result_ndim, const shape_elem_type *result_shape, const shape_elem_type *result_strides, const void *input1_in, const size_t input1_size, const size_t input1_ndim, const shape_elem_type *input1_shape, const shape_elem_type *input1_strides, const size_t *where, const DPCTLEventVectorRef dep_event_vec_ref)
Per element operation function dpnp_sqrt_c
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__gen__2arg__3type__tbl_8hpp_source.html b/pull/2070/backend_doc/dpnp__gen__2arg__3type__tbl_8hpp_source.html new file mode 100644 index 00000000000..89e99a2fea9 --- /dev/null +++ b/pull/2070/backend_doc/dpnp__gen__2arg__3type__tbl_8hpp_source.html @@ -0,0 +1,228 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/include/dpnp_gen_2arg_3type_tbl.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_gen_2arg_3type_tbl.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26/*
+
27 * This header file contains single argument element wise functions definitions
+
28 *
+
29 * Macro `MACRO_2ARG_3TYPES_OP` must be defined before usage
+
30 *
+
31 * Parameters:
+
32 * - public name of the function and kernel name
+
33 * - operation used to calculate the result
+
34 * - vector operation over SYCL group used to calculate the result
+
35 * - list of types vector operation accepts
+
36 * - mkl operation used to calculate the result
+
37 * - list of types OneMKL operation accepts
+
38 *
+
39 */
+
40
+
41#ifndef MACRO_2ARG_3TYPES_OP
+
42#error "MACRO_2ARG_3TYPES_OP is not defined"
+
43#endif
+
44
+
45#ifdef _SECTION_DOCUMENTATION_GENERATION_
+
46
+
47#define MACRO_2ARG_3TYPES_OP(__name__, __operation__, __vec_operation__, \
+
48 __vec_types__, __mkl_operation__, __mkl_types__) \
+
49 \
+
50 \
+
51 \
+
52 \
+
54 \
+
55 \
+
56 \
+
57 \
+
58 \
+
60 \
+
61 \
+
62 \
+
63 \
+
64 \
+
66 \
+
67 \
+
68 \
+
69 \
+
70 \
+
72 \
+
73 \
+
74 \
+
75 \
+
77 template <typename _DataType_input1, typename _DataType_input2, \
+
78 typename _DataType_output> \
+
79 DPCTLSyclEventRef __name__( \
+
80 DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, \
+
81 const size_t result_ndim, const shape_elem_type *result_shape, \
+
82 const shape_elem_type *result_strides, const void *input1_in, \
+
83 const size_t input1_size, const size_t input1_ndim, \
+
84 const shape_elem_type *input1_shape, \
+
85 const shape_elem_type *input1_strides, const void *input2_in, \
+
86 const size_t input2_size, const size_t input2_ndim, \
+
87 const shape_elem_type *input2_shape, \
+
88 const shape_elem_type *input2_strides, const size_t *where, \
+
89 const DPCTLEventVectorRef dep_event_vec_ref); \
+
90 \
+
91 template <typename _DataType_input1, typename _DataType_input2, \
+
92 typename _DataType_output> \
+
93 void __name__( \
+
94 void *result_out, const size_t result_size, const size_t result_ndim, \
+
95 const shape_elem_type *result_shape, \
+
96 const shape_elem_type *result_strides, const void *input1_in, \
+
97 const size_t input1_size, const size_t input1_ndim, \
+
98 const shape_elem_type *input1_shape, \
+
99 const shape_elem_type *input1_strides, const void *input2_in, \
+
100 const size_t input2_size, const size_t input2_ndim, \
+
101 const shape_elem_type *input2_shape, \
+
102 const shape_elem_type *input2_strides, const size_t *where)
+
103
+
104#endif
+
105
+
106// "multiply" needs to be standalone kernel (not autogenerated) due to complex
+
107// algorithm. This is not an element wise. pytest
+
108// "tests/third_party/cupy/creation_tests/test_ranges.py::TestMgrid::test_mgrid3"
+
109// requires multiplication shape1[10] with shape2[10,1] and result expected as
+
110// shape[10,10]
+
111MACRO_2ARG_3TYPES_OP(dpnp_multiply_c,
+
112 input1_elem *input2_elem,
+
113 x1 *x2,
+
114 MACRO_UNPACK_TYPES(bool, std::int32_t, std::int64_t),
+
115 oneapi::mkl::vm::mul,
+
116 MACRO_UNPACK_TYPES(float,
+
117 double,
+
118 std::complex<float>,
+
119 std::complex<double>))
+
120
+
121#undef MACRO_2ARG_3TYPES_OP
+
DPCTLSyclEventRef dpnp_multiply_c(DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, const size_t result_ndim, const shape_elem_type *result_shape, const shape_elem_type *result_strides, const void *input1_in, const size_t input1_size, const size_t input1_ndim, const shape_elem_type *input1_shape, const shape_elem_type *input1_strides, const void *input2_in, const size_t input2_size, const size_t input2_ndim, const shape_elem_type *input2_shape, const shape_elem_type *input2_strides, const size_t *where, const DPCTLEventVectorRef dep_event_vec_ref)
Per element operation function dpnp_multiply_c
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__iface_8hpp_source.html b/pull/2070/backend_doc/dpnp__iface_8hpp_source.html new file mode 100644 index 00000000000..8fb49daad4c --- /dev/null +++ b/pull/2070/backend_doc/dpnp__iface_8hpp_source.html @@ -0,0 +1,742 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/include/dpnp_iface.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_iface.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26/*
+
27 * This header file is for interface Cython with C++.
+
28 * It should not contains any backend specific headers (like SYCL or math
+
29 * library) because all included headers will be exposed in Cython compilation
+
30 * procedure
+
31 *
+
32 * We would like to avoid backend specific things in higher level Cython
+
33 * modules. Any backend interface functions and types should be defined here.
+
34 *
+
35 * Also, this file should contains documentation on functions and types
+
36 * which are used in the interface
+
37 */
+
38
+
39#pragma once
+
40#ifndef BACKEND_IFACE_H // Cython compatibility
+
41#define BACKEND_IFACE_H
+
42
+
43#include <cstdint>
+
44#include <vector>
+
45
+
46#ifdef _WIN32
+
47#define INP_DLLEXPORT __declspec(dllexport)
+
48#else
+
49#define INP_DLLEXPORT
+
50#endif
+
51
+
52#if defined(_MSC_VER)
+
53#include <BaseTsd.h>
+
54typedef SSIZE_T ssize_t;
+
55#endif
+
56
+
57typedef ssize_t shape_elem_type;
+
58
+
59#include <dpctl_sycl_interface.h>
+
60
+
61#include "dpnp_iface_random.hpp"
+
62
+
76INP_DLLEXPORT size_t dpnp_queue_is_cpu_c();
+
77
+
89INP_DLLEXPORT char *dpnp_memory_alloc_c(DPCTLSyclQueueRef q_ref,
+
90 size_t size_in_bytes);
+
91INP_DLLEXPORT char *dpnp_memory_alloc_c(size_t size_in_bytes);
+
92
+
93INP_DLLEXPORT void dpnp_memory_free_c(DPCTLSyclQueueRef q_ref, void *ptr);
+
94INP_DLLEXPORT void dpnp_memory_free_c(void *ptr);
+
95
+
96INP_DLLEXPORT void dpnp_memory_memcpy_c(DPCTLSyclQueueRef q_ref,
+
97 void *dst,
+
98 const void *src,
+
99 size_t size_in_bytes);
+
100INP_DLLEXPORT void
+
101 dpnp_memory_memcpy_c(void *dst, const void *src, size_t size_in_bytes);
+
102
+
115template <typename _DataType>
+
116INP_DLLEXPORT DPCTLSyclEventRef
+
117 dpnp_nanvar_c(DPCTLSyclQueueRef q_ref,
+
118 void *array,
+
119 void *mask_arr,
+
120 void *result,
+
121 const size_t result_size,
+
122 size_t size,
+
123 const DPCTLEventVectorRef dep_event_vec_ref);
+
124
+
125template <typename _DataType>
+
126INP_DLLEXPORT void dpnp_nanvar_c(void *array,
+
127 void *mask_arr,
+
128 void *result,
+
129 const size_t result_size,
+
130 size_t size);
+
131
+
154template <typename _DataType_output,
+
155 typename _DataType_input1,
+
156 typename _DataType_input2>
+
157INP_DLLEXPORT DPCTLSyclEventRef
+
158 dpnp_dot_c(DPCTLSyclQueueRef q_ref,
+
159 void *result_out,
+
160 const size_t result_size,
+
161 const size_t result_ndim,
+
162 const shape_elem_type *result_shape,
+
163 const shape_elem_type *result_strides,
+
164 const void *input1_in,
+
165 const size_t input1_size,
+
166 const size_t input1_ndim,
+
167 const shape_elem_type *input1_shape,
+
168 const shape_elem_type *input1_strides,
+
169 const void *input2_in,
+
170 const size_t input2_size,
+
171 const size_t input2_ndim,
+
172 const shape_elem_type *input2_shape,
+
173 const shape_elem_type *input2_strides,
+
174 const DPCTLEventVectorRef dep_event_vec_ref);
+
175
+
176template <typename _DataType_output,
+
177 typename _DataType_input1,
+
178 typename _DataType_input2>
+
179INP_DLLEXPORT void dpnp_dot_c(void *result_out,
+
180 const size_t result_size,
+
181 const size_t result_ndim,
+
182 const shape_elem_type *result_shape,
+
183 const shape_elem_type *result_strides,
+
184 const void *input1_in,
+
185 const size_t input1_size,
+
186 const size_t input1_ndim,
+
187 const shape_elem_type *input1_shape,
+
188 const shape_elem_type *input1_strides,
+
189 const void *input2_in,
+
190 const size_t input2_size,
+
191 const size_t input2_ndim,
+
192 const shape_elem_type *input2_shape,
+
193 const shape_elem_type *input2_strides);
+
194
+
218template <typename _DataType_output, typename _DataType_input>
+
219INP_DLLEXPORT DPCTLSyclEventRef
+
220 dpnp_sum_c(DPCTLSyclQueueRef q_ref,
+
221 void *result_out,
+
222 const void *input_in,
+
223 const shape_elem_type *input_shape,
+
224 const size_t input_shape_ndim,
+
225 const shape_elem_type *axes,
+
226 const size_t axes_ndim,
+
227 const void *initial,
+
228 const long *where,
+
229 const DPCTLEventVectorRef dep_event_vec_ref);
+
230
+
231template <typename _DataType_output, typename _DataType_input>
+
232INP_DLLEXPORT void dpnp_sum_c(void *result_out,
+
233 const void *input_in,
+
234 const shape_elem_type *input_shape,
+
235 const size_t input_shape_ndim,
+
236 const shape_elem_type *axes,
+
237 const size_t axes_ndim,
+
238 const void *initial,
+
239 const long *where);
+
240
+
252template <typename _DataType_input, typename _DataType_output>
+
253INP_DLLEXPORT DPCTLSyclEventRef
+
254 dpnp_count_nonzero_c(DPCTLSyclQueueRef q_ref,
+
255 void *array1_in,
+
256 void *result1_out,
+
257 size_t size,
+
258 const DPCTLEventVectorRef dep_event_vec_ref);
+
259
+
260template <typename _DataType_input, typename _DataType_output>
+
261INP_DLLEXPORT void
+
262 dpnp_count_nonzero_c(void *array1_in, void *result1_out, size_t size);
+
263
+
277template <typename _DataType>
+
278INP_DLLEXPORT DPCTLSyclEventRef
+
279 dpnp_partition_c(DPCTLSyclQueueRef q_ref,
+
280 void *array,
+
281 void *array2,
+
282 void *result,
+
283 const size_t kth,
+
284 const shape_elem_type *shape,
+
285 const size_t ndim,
+
286 const DPCTLEventVectorRef dep_event_vec_ref);
+
287
+
288template <typename _DataType>
+
289INP_DLLEXPORT void dpnp_partition_c(void *array,
+
290 void *array2,
+
291 void *result,
+
292 const size_t kth,
+
293 const shape_elem_type *shape,
+
294 const size_t ndim);
+
295
+
319template <typename _DataType_output, typename _DataType_input>
+
320INP_DLLEXPORT DPCTLSyclEventRef
+
321 dpnp_prod_c(DPCTLSyclQueueRef q_ref,
+
322 void *result_out,
+
323 const void *input_in,
+
324 const shape_elem_type *input_shape,
+
325 const size_t input_shape_ndim,
+
326 const shape_elem_type *axes,
+
327 const size_t axes_ndim,
+
328 const void *initial,
+
329 const long *where,
+
330 const DPCTLEventVectorRef dep_event_vec_ref);
+
331
+
332template <typename _DataType_output, typename _DataType_input>
+
333INP_DLLEXPORT void dpnp_prod_c(void *result_out,
+
334 const void *input_in,
+
335 const shape_elem_type *input_shape,
+
336 const size_t input_shape_ndim,
+
337 const shape_elem_type *axes,
+
338 const size_t axes_ndim,
+
339 const void *initial,
+
340 const long *where);
+
341
+
353template <typename _DataType, typename _idx_DataType>
+
354INP_DLLEXPORT DPCTLSyclEventRef
+
355 dpnp_argsort_c(DPCTLSyclQueueRef q_ref,
+
356 void *array,
+
357 void *result,
+
358 size_t size,
+
359 const DPCTLEventVectorRef dep_event_vec_ref);
+
360
+
361template <typename _DataType, typename _idx_DataType>
+
362INP_DLLEXPORT void dpnp_argsort_c(void *array, void *result, size_t size);
+
363
+
378template <typename _DataType, typename _IndexingType>
+
379INP_DLLEXPORT DPCTLSyclEventRef
+
380 dpnp_searchsorted_c(DPCTLSyclQueueRef q_ref,
+
381 void *result,
+
382 const void *array,
+
383 const void *v,
+
384 bool side,
+
385 const size_t arr_size,
+
386 const size_t v_size,
+
387 const DPCTLEventVectorRef dep_event_vec_ref);
+
388
+
389template <typename _DataType, typename _IndexingType>
+
390INP_DLLEXPORT void dpnp_searchsorted_c(void *result,
+
391 const void *array,
+
392 const void *v,
+
393 bool side,
+
394 const size_t arr_size,
+
395 const size_t v_size);
+
396
+
407template <typename _DataType>
+
408INP_DLLEXPORT DPCTLSyclEventRef
+
409 dpnp_sort_c(DPCTLSyclQueueRef q_ref,
+
410 void *array,
+
411 void *result,
+
412 size_t size,
+
413 const DPCTLEventVectorRef dep_event_vec_ref);
+
414
+
415template <typename _DataType>
+
416INP_DLLEXPORT void dpnp_sort_c(void *array, void *result, size_t size);
+
417
+
435template <typename _DataType_output,
+
436 typename _DataType_input1,
+
437 typename _DataType_input2>
+
438INP_DLLEXPORT DPCTLSyclEventRef
+
439 dpnp_correlate_c(DPCTLSyclQueueRef q_ref,
+
440 void *result_out,
+
441 const void *input1_in,
+
442 const size_t input1_size,
+
443 const shape_elem_type *input1_shape,
+
444 const size_t input1_shape_ndim,
+
445 const void *input2_in,
+
446 const size_t input2_size,
+
447 const shape_elem_type *input2_shape,
+
448 const size_t input2_shape_ndim,
+
449 const size_t *where,
+
450 const DPCTLEventVectorRef dep_event_vec_ref);
+
451
+
452template <typename _DataType_output,
+
453 typename _DataType_input1,
+
454 typename _DataType_input2>
+
455INP_DLLEXPORT void dpnp_correlate_c(void *result_out,
+
456 const void *input1_in,
+
457 const size_t input1_size,
+
458 const shape_elem_type *input1_shape,
+
459 const size_t input1_shape_ndim,
+
460 const void *input2_in,
+
461 const size_t input2_size,
+
462 const shape_elem_type *input2_shape,
+
463 const size_t input2_shape_ndim,
+
464 const size_t *where);
+
465
+
477template <typename _DataType>
+
478INP_DLLEXPORT DPCTLSyclEventRef
+
479 dpnp_cov_c(DPCTLSyclQueueRef q_ref,
+
480 void *array1_in,
+
481 void *result1,
+
482 size_t nrows,
+
483 size_t ncols,
+
484 const DPCTLEventVectorRef dep_event_vec_ref);
+
485
+
486template <typename _DataType>
+
487INP_DLLEXPORT void
+
488 dpnp_cov_c(void *array1_in, void *result1, size_t nrows, size_t ncols);
+
489
+
504template <typename _DataType1, typename _DataType2>
+
505INP_DLLEXPORT DPCTLSyclEventRef
+
506 dpnp_choose_c(DPCTLSyclQueueRef q_ref,
+
507 void *result1,
+
508 void *array1_in,
+
509 void **choices,
+
510 size_t size,
+
511 size_t choices_size,
+
512 size_t choice_size,
+
513 const DPCTLEventVectorRef dep_event_vec_ref);
+
514
+
515template <typename _DataType1, typename _DataType2>
+
516INP_DLLEXPORT void dpnp_choose_c(void *result1,
+
517 void *array1_in,
+
518 void **choices,
+
519 size_t size,
+
520 size_t choices_size,
+
521 size_t choice_size);
+
522
+
533template <typename _DataType>
+
534INP_DLLEXPORT DPCTLSyclEventRef
+
535 dpnp_initval_c(DPCTLSyclQueueRef q_ref,
+
536 void *result1,
+
537 void *value,
+
538 size_t size,
+
539 const DPCTLEventVectorRef dep_event_vec_ref);
+
540
+
541template <typename _DataType>
+
542INP_DLLEXPORT void dpnp_initval_c(void *result1, void *value, size_t size);
+
543
+
558template <typename _DataType>
+
559INP_DLLEXPORT DPCTLSyclEventRef
+
560 dpnp_max_c(DPCTLSyclQueueRef q_ref,
+
561 void *array1_in,
+
562 void *result1,
+
563 const size_t result_size,
+
564 const shape_elem_type *shape,
+
565 size_t ndim,
+
566 const shape_elem_type *axis,
+
567 size_t naxis,
+
568 const DPCTLEventVectorRef dep_event_vec_ref);
+
569
+
570template <typename _DataType>
+
571INP_DLLEXPORT void dpnp_max_c(void *array1_in,
+
572 void *result1,
+
573 const size_t result_size,
+
574 const shape_elem_type *shape,
+
575 size_t ndim,
+
576 const shape_elem_type *axis,
+
577 size_t naxis);
+
578
+
592template <typename _DataType, typename _ResultType>
+
593INP_DLLEXPORT DPCTLSyclEventRef
+
594 dpnp_mean_c(DPCTLSyclQueueRef q_ref,
+
595 void *array,
+
596 void *result,
+
597 const shape_elem_type *shape,
+
598 size_t ndim,
+
599 const shape_elem_type *axis,
+
600 size_t naxis,
+
601 const DPCTLEventVectorRef dep_event_vec_ref);
+
602
+
603template <typename _DataType, typename _ResultType>
+
604INP_DLLEXPORT void dpnp_mean_c(void *array,
+
605 void *result,
+
606 const shape_elem_type *shape,
+
607 size_t ndim,
+
608 const shape_elem_type *axis,
+
609 size_t naxis);
+
610
+
624template <typename _DataType, typename _ResultType>
+
625INP_DLLEXPORT DPCTLSyclEventRef
+
626 dpnp_median_c(DPCTLSyclQueueRef q_ref,
+
627 void *array,
+
628 void *result,
+
629 const shape_elem_type *shape,
+
630 size_t ndim,
+
631 const shape_elem_type *axis,
+
632 size_t naxis,
+
633 const DPCTLEventVectorRef dep_event_vec_ref);
+
634
+
635template <typename _DataType, typename _ResultType>
+
636INP_DLLEXPORT void dpnp_median_c(void *array,
+
637 void *result,
+
638 const shape_elem_type *shape,
+
639 size_t ndim,
+
640 const shape_elem_type *axis,
+
641 size_t naxis);
+
642
+
657template <typename _DataType>
+
658INP_DLLEXPORT DPCTLSyclEventRef
+
659 dpnp_min_c(DPCTLSyclQueueRef q_ref,
+
660 void *array,
+
661 void *result,
+
662 const size_t result_size,
+
663 const shape_elem_type *shape,
+
664 size_t ndim,
+
665 const shape_elem_type *axis,
+
666 size_t naxis,
+
667 const DPCTLEventVectorRef dep_event_vec_ref);
+
668
+
669template <typename _DataType>
+
670INP_DLLEXPORT void dpnp_min_c(void *array,
+
671 void *result,
+
672 const size_t result_size,
+
673 const shape_elem_type *shape,
+
674 size_t ndim,
+
675 const shape_elem_type *axis,
+
676 size_t naxis);
+
677
+
688template <typename _DataType, typename _idx_DataType>
+
689INP_DLLEXPORT DPCTLSyclEventRef
+
690 dpnp_argmax_c(DPCTLSyclQueueRef q_ref,
+
691 void *array,
+
692 void *result,
+
693 size_t size,
+
694 const DPCTLEventVectorRef dep_event_vec_ref);
+
695
+
696template <typename _DataType, typename _idx_DataType>
+
697INP_DLLEXPORT void dpnp_argmax_c(void *array, void *result, size_t size);
+
698
+
709template <typename _DataType, typename _idx_DataType>
+
710INP_DLLEXPORT DPCTLSyclEventRef
+
711 dpnp_argmin_c(DPCTLSyclQueueRef q_ref,
+
712 void *array,
+
713 void *result,
+
714 size_t size,
+
715 const DPCTLEventVectorRef dep_event_vec_ref);
+
716
+
717template <typename _DataType, typename _idx_DataType>
+
718INP_DLLEXPORT void dpnp_argmin_c(void *array, void *result, size_t size);
+
719
+
734template <typename _DataType, typename _ResultType>
+
735INP_DLLEXPORT DPCTLSyclEventRef
+
736 dpnp_std_c(DPCTLSyclQueueRef q_ref,
+
737 void *array,
+
738 void *result,
+
739 const shape_elem_type *shape,
+
740 size_t ndim,
+
741 const shape_elem_type *axis,
+
742 size_t naxis,
+
743 size_t ddof,
+
744 const DPCTLEventVectorRef dep_event_vec_ref);
+
745
+
746template <typename _DataType, typename _ResultType>
+
747INP_DLLEXPORT void dpnp_std_c(void *array,
+
748 void *result,
+
749 const shape_elem_type *shape,
+
750 size_t ndim,
+
751 const shape_elem_type *axis,
+
752 size_t naxis,
+
753 size_t ddof);
+
754
+
769template <typename _DataType, typename _ResultType>
+
770INP_DLLEXPORT DPCTLSyclEventRef
+
771 dpnp_var_c(DPCTLSyclQueueRef q_ref,
+
772 void *array,
+
773 void *result,
+
774 const shape_elem_type *shape,
+
775 size_t ndim,
+
776 const shape_elem_type *axis,
+
777 size_t naxis,
+
778 size_t ddof,
+
779 const DPCTLEventVectorRef dep_event_vec_ref);
+
780
+
781template <typename _DataType, typename _ResultType>
+
782INP_DLLEXPORT void dpnp_var_c(void *array,
+
783 void *result,
+
784 const shape_elem_type *shape,
+
785 size_t ndim,
+
786 const shape_elem_type *axis,
+
787 size_t naxis,
+
788 size_t ddof);
+
789
+
790#define MACRO_1ARG_1TYPE_OP(__name__, __operation1__, __operation2__) \
+
791 template <typename _DataType> \
+
792 INP_DLLEXPORT DPCTLSyclEventRef __name__( \
+
793 DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, \
+
794 const size_t result_ndim, const shape_elem_type *result_shape, \
+
795 const shape_elem_type *result_strides, const void *input1_in, \
+
796 const size_t input1_size, const size_t input1_ndim, \
+
797 const shape_elem_type *input1_shape, \
+
798 const shape_elem_type *input1_strides, const size_t *where, \
+
799 const DPCTLEventVectorRef dep_event_vec_ref); \
+
800 \
+
801 template <typename _DataType> \
+
802 INP_DLLEXPORT void __name__( \
+
803 void *result_out, const size_t result_size, const size_t result_ndim, \
+
804 const shape_elem_type *result_shape, \
+
805 const shape_elem_type *result_strides, const void *input1_in, \
+
806 const size_t input1_size, const size_t input1_ndim, \
+
807 const shape_elem_type *input1_shape, \
+
808 const shape_elem_type *input1_strides, const size_t *where);
+
809
+
810#include <dpnp_gen_1arg_1type_tbl.hpp>
+
811
+
812#define MACRO_1ARG_2TYPES_OP(__name__, __operation1__, __operation2__) \
+
813 template <typename _DataType_input, typename _DataType_output> \
+
814 INP_DLLEXPORT DPCTLSyclEventRef __name__( \
+
815 DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, \
+
816 const size_t result_ndim, const shape_elem_type *result_shape, \
+
817 const shape_elem_type *result_strides, const void *input1_in, \
+
818 const size_t input1_size, const size_t input1_ndim, \
+
819 const shape_elem_type *input1_shape, \
+
820 const shape_elem_type *input1_strides, const size_t *where, \
+
821 const DPCTLEventVectorRef dep_event_vec_ref); \
+
822 \
+
823 template <typename _DataType_input, typename _DataType_output> \
+
824 INP_DLLEXPORT void __name__( \
+
825 void *result_out, const size_t result_size, const size_t result_ndim, \
+
826 const shape_elem_type *result_shape, \
+
827 const shape_elem_type *result_strides, const void *input1_in, \
+
828 const size_t input1_size, const size_t input1_ndim, \
+
829 const shape_elem_type *input1_shape, \
+
830 const shape_elem_type *input1_strides, const size_t *where);
+
831
+
832#include <dpnp_gen_1arg_2type_tbl.hpp>
+
833
+
834#define MACRO_2ARG_3TYPES_OP(__name__, __operation__, __vec_operation__, \
+
835 __vec_types__, __mkl_operation__, __mkl_types__) \
+
836 template <typename _DataType_output, typename _DataType_input1, \
+
837 typename _DataType_input2> \
+
838 INP_DLLEXPORT DPCTLSyclEventRef __name__( \
+
839 DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, \
+
840 const size_t result_ndim, const shape_elem_type *result_shape, \
+
841 const shape_elem_type *result_strides, const void *input1_in, \
+
842 const size_t input1_size, const size_t input1_ndim, \
+
843 const shape_elem_type *input1_shape, \
+
844 const shape_elem_type *input1_strides, const void *input2_in, \
+
845 const size_t input2_size, const size_t input2_ndim, \
+
846 const shape_elem_type *input2_shape, \
+
847 const shape_elem_type *input2_strides, const size_t *where, \
+
848 const DPCTLEventVectorRef dep_event_vec_ref); \
+
849 \
+
850 template <typename _DataType_output, typename _DataType_input1, \
+
851 typename _DataType_input2> \
+
852 INP_DLLEXPORT void __name__( \
+
853 void *result_out, const size_t result_size, const size_t result_ndim, \
+
854 const shape_elem_type *result_shape, \
+
855 const shape_elem_type *result_strides, const void *input1_in, \
+
856 const size_t input1_size, const size_t input1_ndim, \
+
857 const shape_elem_type *input1_shape, \
+
858 const shape_elem_type *input1_strides, const void *input2_in, \
+
859 const size_t input2_size, const size_t input2_ndim, \
+
860 const shape_elem_type *input2_shape, \
+
861 const shape_elem_type *input2_strides, const size_t *where);
+
862
+
863#include <dpnp_gen_2arg_3type_tbl.hpp>
+
864
+
876template <typename _DataType_input, typename _DataType_output>
+
877INP_DLLEXPORT DPCTLSyclEventRef
+
878 dpnp_modf_c(DPCTLSyclQueueRef q_ref,
+
879 void *array1_in,
+
880 void *result1_out,
+
881 void *result2_out,
+
882 size_t size,
+
883 const DPCTLEventVectorRef dep_event_vec_ref);
+
884
+
885template <typename _DataType_input, typename _DataType_output>
+
886INP_DLLEXPORT void dpnp_modf_c(void *array1_in,
+
887 void *result1_out,
+
888 void *result2_out,
+
889 size_t size);
+
890
+
900template <typename _DataType>
+
901INP_DLLEXPORT DPCTLSyclEventRef
+
902 dpnp_ones_c(DPCTLSyclQueueRef q_ref,
+
903 void *result,
+
904 size_t size,
+
905 const DPCTLEventVectorRef dep_event_vec_ref);
+
906
+
907template <typename _DataType>
+
908INP_DLLEXPORT void dpnp_ones_c(void *result, size_t size);
+
909
+
919template <typename _DataType>
+
920INP_DLLEXPORT DPCTLSyclEventRef
+
921 dpnp_ones_like_c(DPCTLSyclQueueRef q_ref,
+
922 void *result,
+
923 size_t size,
+
924 const DPCTLEventVectorRef dep_event_vec_ref);
+
925
+
926template <typename _DataType>
+
927INP_DLLEXPORT void dpnp_ones_like_c(void *result, size_t size);
+
928
+
938template <typename _DataType>
+
939INP_DLLEXPORT DPCTLSyclEventRef
+
940 dpnp_zeros_c(DPCTLSyclQueueRef q_ref,
+
941 void *result,
+
942 size_t size,
+
943 const DPCTLEventVectorRef dep_event_vec_ref);
+
944
+
945template <typename _DataType>
+
946INP_DLLEXPORT void dpnp_zeros_c(void *result, size_t size);
+
947
+
957template <typename _DataType>
+
958INP_DLLEXPORT DPCTLSyclEventRef
+
959 dpnp_zeros_like_c(DPCTLSyclQueueRef q_ref,
+
960 void *result,
+
961 size_t size,
+
962 const DPCTLEventVectorRef dep_event_vec_ref);
+
963
+
964template <typename _DataType>
+
965INP_DLLEXPORT void dpnp_zeros_like_c(void *result, size_t size);
+
966
+
967#endif // BACKEND_IFACE_H
+
DPCTLSyclEventRef dpnp_searchsorted_c(DPCTLSyclQueueRef q_ref, void *result, const void *array, const void *v, bool side, const size_t arr_size, const size_t v_size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of searchsorted function
+
DPCTLSyclEventRef dpnp_nanvar_c(DPCTLSyclQueueRef q_ref, void *array, void *mask_arr, void *result, const size_t result_size, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
Compute the variance along the specified axis, while ignoring NaNs.
+
DPCTLSyclEventRef dpnp_argmax_c(DPCTLSyclQueueRef q_ref, void *array, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of argmax function
+
DPCTLSyclEventRef dpnp_median_c(DPCTLSyclQueueRef q_ref, void *array, void *result, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of median function
+
DPCTLSyclEventRef dpnp_sort_c(DPCTLSyclQueueRef q_ref, void *array, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of sort function
+
DPCTLSyclEventRef dpnp_initval_c(DPCTLSyclQueueRef q_ref, void *result1, void *value, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
implementation of creating filled with value array function
+
size_t dpnp_queue_is_cpu_c()
SYCL queue device status.
+
DPCTLSyclEventRef dpnp_std_c(DPCTLSyclQueueRef q_ref, void *array, void *result, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, size_t ddof, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of std function
+
DPCTLSyclEventRef dpnp_cov_c(DPCTLSyclQueueRef q_ref, void *array1_in, void *result1, size_t nrows, size_t ncols, const DPCTLEventVectorRef dep_event_vec_ref)
Custom implementation of cov function with math library and PSTL.
+
DPCTLSyclEventRef dpnp_prod_c(DPCTLSyclQueueRef q_ref, void *result_out, const void *input_in, const shape_elem_type *input_shape, const size_t input_shape_ndim, const shape_elem_type *axes, const size_t axes_ndim, const void *initial, const long *where, const DPCTLEventVectorRef dep_event_vec_ref)
Compute Product of input array elements.
+
DPCTLSyclEventRef dpnp_zeros_like_c(DPCTLSyclQueueRef q_ref, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
Implementation of zeros_like function.
+
DPCTLSyclEventRef dpnp_ones_c(DPCTLSyclQueueRef q_ref, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
Implementation of ones function.
+
DPCTLSyclEventRef dpnp_count_nonzero_c(DPCTLSyclQueueRef q_ref, void *array1_in, void *result1_out, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
Custom implementation of count_nonzero function.
+
DPCTLSyclEventRef dpnp_max_c(DPCTLSyclQueueRef q_ref, void *array1_in, void *result1, const size_t result_size, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of max function
+
DPCTLSyclEventRef dpnp_var_c(DPCTLSyclQueueRef q_ref, void *array, void *result, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, size_t ddof, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of var function
+
DPCTLSyclEventRef dpnp_mean_c(DPCTLSyclQueueRef q_ref, void *array, void *result, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of mean function
+
DPCTLSyclEventRef dpnp_ones_like_c(DPCTLSyclQueueRef q_ref, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
Implementation of ones_like function.
+
char * dpnp_memory_alloc_c(DPCTLSyclQueueRef q_ref, size_t size_in_bytes)
SYCL queue memory allocation.
+
DPCTLSyclEventRef dpnp_modf_c(DPCTLSyclQueueRef q_ref, void *array1_in, void *result1_out, void *result2_out, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
modf function.
+
DPCTLSyclEventRef dpnp_argmin_c(DPCTLSyclQueueRef q_ref, void *array, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of argmin function
+
DPCTLSyclEventRef dpnp_sum_c(DPCTLSyclQueueRef q_ref, void *result_out, const void *input_in, const shape_elem_type *input_shape, const size_t input_shape_ndim, const shape_elem_type *axes, const size_t axes_ndim, const void *initial, const long *where, const DPCTLEventVectorRef dep_event_vec_ref)
Compute summary of input array elements.
+
DPCTLSyclEventRef dpnp_correlate_c(DPCTLSyclQueueRef q_ref, void *result_out, const void *input1_in, const size_t input1_size, const shape_elem_type *input1_shape, const size_t input1_shape_ndim, const void *input2_in, const size_t input2_size, const shape_elem_type *input2_shape, const size_t input2_shape_ndim, const size_t *where, const DPCTLEventVectorRef dep_event_vec_ref)
correlate function
+
DPCTLSyclEventRef dpnp_zeros_c(DPCTLSyclQueueRef q_ref, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
Implementation of zeros function.
+
DPCTLSyclEventRef dpnp_partition_c(DPCTLSyclQueueRef q_ref, void *array, void *array2, void *result, const size_t kth, const shape_elem_type *shape, const size_t ndim, const DPCTLEventVectorRef dep_event_vec_ref)
Return a partitioned copy of an array.
+
DPCTLSyclEventRef dpnp_argsort_c(DPCTLSyclQueueRef q_ref, void *array, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of argsort function
+
DPCTLSyclEventRef dpnp_dot_c(DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, const size_t result_ndim, const shape_elem_type *result_shape, const shape_elem_type *result_strides, const void *input1_in, const size_t input1_size, const size_t input1_ndim, const shape_elem_type *input1_shape, const shape_elem_type *input1_strides, const void *input2_in, const size_t input2_size, const size_t input2_ndim, const shape_elem_type *input2_shape, const shape_elem_type *input2_strides, const DPCTLEventVectorRef dep_event_vec_ref)
Custom implementation of dot function.
+
DPCTLSyclEventRef dpnp_choose_c(DPCTLSyclQueueRef q_ref, void *result1, void *array1_in, void **choices, size_t size, size_t choices_size, size_t choice_size, const DPCTLEventVectorRef dep_event_vec_ref)
Construct an array from an index array and a list of arrays to choose from.
+
DPCTLSyclEventRef dpnp_min_c(DPCTLSyclQueueRef q_ref, void *array, void *result, const size_t result_size, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of min function
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__iface__fptr_8hpp_source.html b/pull/2070/backend_doc/dpnp__iface__fptr_8hpp_source.html new file mode 100644 index 00000000000..82da07d3223 --- /dev/null +++ b/pull/2070/backend_doc/dpnp__iface__fptr_8hpp_source.html @@ -0,0 +1,452 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/include/dpnp_iface_fptr.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_iface_fptr.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26/*
+
27 * This header file is for interface Cython with C++.
+
28 * It should not contains any backend specific headers (like SYCL or math
+
29 * library) because all included headers will be exposed in Cython compilation
+
30 * procedure
+
31 *
+
32 * We would like to avoid backend specific things in higher level Cython
+
33 * modules. Any backend interface functions and types should be defined here.
+
34 *
+
35 * Also, this file should contains documentation on functions and types
+
36 * which are used in the interface
+
37 */
+
38
+
39#pragma once
+
40#ifndef BACKEND_IFACE_FPTR_H // Cython compatibility
+
41#define BACKEND_IFACE_FPTR_H
+
42
+
43#include <dpnp_iface.hpp>
+
44
+
+
59enum class DPNPFuncName : size_t
+
60{
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
227};
+
+
228
+
+
236enum class DPNPFuncType : size_t
+
237{
+ + + + + + + + +
246};
+
+
247
+
253INP_DLLEXPORT
+
254size_t operator-(DPNPFuncType lhs, DPNPFuncType rhs);
+
255
+
+
263typedef struct DPNPFuncData
+
264{
+
265 DPNPFuncData(const DPNPFuncType gen_type,
+
266 void *gen_ptr,
+
267 const DPNPFuncType type_no_fp64,
+
268 void *ptr_no_fp64)
+
269 : return_type(gen_type), ptr(gen_ptr),
+ +
271 {
+
272 }
+
273 DPNPFuncData(const DPNPFuncType gen_type, void *gen_ptr)
+
274 : DPNPFuncData(gen_type, gen_ptr, DPNPFuncType::DPNP_FT_NONE, nullptr)
+
275 {
+
276 }
+ +
278
+ +
281 void *ptr;
+ + + +
+
287
+
302INP_DLLEXPORT
+ +
304 DPNPFuncName name,
+
305 DPNPFuncType first_type,
+ +
307
+
323INP_DLLEXPORT
+ +
325 DPNPFuncType &result_type,
+
326 DPNPFuncName name,
+
327 DPNPFuncType first_type,
+ +
329
+
330#endif // BACKEND_IFACE_FPTR_H
+
INP_DLLEXPORT DPNPFuncData_t get_dpnp_function_ptr(DPNPFuncName name, DPNPFuncType first_type, DPNPFuncType second_type=DPNPFuncType::DPNP_FT_NONE)
get runtime pointer to selected function
+
INP_DLLEXPORT void * get_dpnp_function_ptr1(DPNPFuncType &result_type, DPNPFuncName name, DPNPFuncType first_type, DPNPFuncType second_type=DPNPFuncType::DPNP_FT_NONE)
get runtime pointer to selected function
+
struct DPNPFuncData DPNPFuncData_t
Contains information about the C++ backend function.
+
DPNPFuncName
Function names to request via this interface.
+
DPNPFuncType
Template types which are used in this interface.
+
@ DPNP_FN_RNG_MULTIVARIATE_NORMAL
+ + + + + +
@ DPNP_FN_RNG_NONCENTRAL_CHISQUARE_EXT
+ + +
@ DPNP_FN_RNG_LOGISTIC_EXT
+
@ DPNP_FN_RNG_STANDARD_EXPONENTIAL
+
@ DPNP_FN_RNG_STANDARD_T_EXT
+ +
@ DPNP_FN_RNG_HYPERGEOMETRIC_EXT
+
@ DPNP_FN_RNG_STANDARD_CAUCHY_EXT
+
@ DPNP_FN_RNG_STANDARD_EXPONENTIAL_EXT
+
@ DPNP_FN_RNG_WEIBULL_EXT
+
@ DPNP_FN_RNG_MULTIVARIATE_NORMAL_EXT
+
@ DPNP_FN_RNG_STANDARD_T
+ + +
@ DPNP_FN_RNG_BINOMIAL_EXT
+ + + +
@ DPNP_FN_RNG_POISSON_EXT
+ + + + +
@ DPNP_FN_RNG_MULTINOMIAL_EXT
+ + + + + + +
@ DPNP_FN_RNG_GAUSSIAN_EXT
+ + +
@ DPNP_FN_RNG_CHISQUARE_EXT
+ + + + +
@ DPNP_FN_RNG_SHUFFLE_EXT
+ + +
@ DPNP_FN_RNG_GEOMETRIC_EXT
+ + +
@ DPNP_FN_RNG_NEGATIVE_BINOMIAL_EXT
+ + +
@ DPNP_FN_RNG_EXPONENTIAL
+ + +
@ DPNP_FN_RNG_VONMISES_EXT
+ + +
@ DPNP_FN_RNG_GUMBEL_EXT
+ +
@ DPNP_FN_RNG_EXPONENTIAL_EXT
+
@ DPNP_FN_RNG_HYPERGEOMETRIC
+
@ DPNP_FN_RNG_STANDARD_GAMMA
+ + +
@ DPNP_FN_RNG_NONCENTRAL_CHISQUARE
+
@ DPNP_FN_RNG_NEGATIVE_BINOMIAL
+ + + + + + +
@ DPNP_FN_RNG_STANDARD_CAUCHY
+ + +
@ DPNP_FN_RNG_STANDARD_NORMAL
+
@ DPNP_FN_RNG_LAPLACE_EXT
+ + +
@ DPNP_FN_RNG_LOGNORMAL_EXT
+
@ DPNP_FN_RNG_RAYLEIGH_EXT
+ + + + + + +
@ DPNP_FN_RNG_TRIANGULAR
+
@ DPNP_FN_RNG_UNIFORM_EXT
+ +
@ DPNP_FN_RNG_STANDARD_GAMMA_EXT
+
@ DPNP_FN_RNG_NORMAL_EXT
+ +
@ DPNP_FN_RNG_TRIANGULAR_EXT
+
@ DPNP_FN_RNG_MULTINOMIAL
+ + + + +
@ DPNP_FN_RNG_PARETO_EXT
+ + + + + + + + + + + + + + +
Contains information about the C++ backend function.
+
DPNPFuncType return_type_no_fp64
+
DPNPFuncType return_type
+ + +
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__iface__random_8hpp_source.html b/pull/2070/backend_doc/dpnp__iface__random_8hpp_source.html new file mode 100644 index 00000000000..ca5fd18713d --- /dev/null +++ b/pull/2070/backend_doc/dpnp__iface__random_8hpp_source.html @@ -0,0 +1,665 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/include/dpnp_iface_random.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_iface_random.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26/*
+
27 * This header file is for interface Cython with C++.
+
28 * It should not contains any backend specific headers (like SYCL or math
+
29 * library) because all included headers will be exposed in Cython compilation
+
30 * procedure
+
31 *
+
32 * We would like to avoid backend specific things in higher level Cython
+
33 * modules. Any backend interface functions and types should be defined here.
+
34 *
+
35 * Also, this file should contains documentation on functions and types
+
36 * which are used in the interface
+
37 */
+
38
+
39#pragma once
+
40#ifndef BACKEND_IFACE_RANDOM_H // Cython compatibility
+
41#define BACKEND_IFACE_RANDOM_H
+
42
+
62template <typename _DataType>
+
63INP_DLLEXPORT DPCTLSyclEventRef
+
64 dpnp_rng_beta_c(DPCTLSyclQueueRef q_ref,
+
65 void *result,
+
66 const _DataType a,
+
67 const _DataType b,
+
68 const size_t size,
+
69 const DPCTLEventVectorRef dep_event_vec_ref);
+
70
+
71template <typename _DataType>
+
72INP_DLLEXPORT void dpnp_rng_beta_c(void *result,
+
73 const _DataType a,
+
74 const _DataType b,
+
75 const size_t size);
+
76
+
89template <typename _DataType>
+
90INP_DLLEXPORT DPCTLSyclEventRef
+
91 dpnp_rng_binomial_c(DPCTLSyclQueueRef q_ref,
+
92 void *result,
+
93 const int ntrial,
+
94 const double p,
+
95 const size_t size,
+
96 const DPCTLEventVectorRef dep_event_vec_ref);
+
97
+
98template <typename _DataType>
+
99INP_DLLEXPORT void dpnp_rng_binomial_c(void *result,
+
100 const int ntrial,
+
101 const double p,
+
102 const size_t size);
+
103
+
115template <typename _DataType>
+
116INP_DLLEXPORT DPCTLSyclEventRef
+
117 dpnp_rng_chisquare_c(DPCTLSyclQueueRef q_ref,
+
118 void *result,
+
119 const int df,
+
120 const size_t size,
+
121 const DPCTLEventVectorRef dep_event_vec_ref);
+
122
+
123template <typename _DataType>
+
124INP_DLLEXPORT void
+
125 dpnp_rng_chisquare_c(void *result, const int df, const size_t size);
+
126
+
138template <typename _DataType>
+
139INP_DLLEXPORT DPCTLSyclEventRef
+
140 dpnp_rng_exponential_c(DPCTLSyclQueueRef q_ref,
+
141 void *result,
+
142 const _DataType beta,
+
143 const size_t size,
+
144 const DPCTLEventVectorRef dep_event_vec_ref);
+
145
+
146template <typename _DataType>
+
147INP_DLLEXPORT void dpnp_rng_exponential_c(void *result,
+
148 const _DataType beta,
+
149 const size_t size);
+
150
+
163template <typename _DataType>
+
164INP_DLLEXPORT DPCTLSyclEventRef
+
165 dpnp_rng_f_c(DPCTLSyclQueueRef q_ref,
+
166 void *result,
+
167 const _DataType df_num,
+
168 const _DataType df_den,
+
169 const size_t size,
+
170 const DPCTLEventVectorRef dep_event_vec_ref);
+
171
+
172template <typename _DataType>
+
173INP_DLLEXPORT void dpnp_rng_f_c(void *result,
+
174 const _DataType df_num,
+
175 const _DataType df_den,
+
176 const size_t size);
+
177
+
190template <typename _DataType>
+
191INP_DLLEXPORT DPCTLSyclEventRef
+
192 dpnp_rng_gamma_c(DPCTLSyclQueueRef q_ref,
+
193 void *result,
+
194 const _DataType shape,
+
195 const _DataType scale,
+
196 const size_t size,
+
197 const DPCTLEventVectorRef dep_event_vec_ref);
+
198
+
199template <typename _DataType>
+
200INP_DLLEXPORT void dpnp_rng_gamma_c(void *result,
+
201 const _DataType shape,
+
202 const _DataType scale,
+
203 const size_t size);
+
204
+
217template <typename _DataType>
+
218INP_DLLEXPORT DPCTLSyclEventRef
+
219 dpnp_rng_gaussian_c(DPCTLSyclQueueRef q_ref,
+
220 void *result,
+
221 const _DataType mean,
+
222 const _DataType stddev,
+
223 const size_t size,
+
224 const DPCTLEventVectorRef dep_event_vec_ref);
+
225
+
226template <typename _DataType>
+
227INP_DLLEXPORT void dpnp_rng_gaussian_c(void *result,
+
228 const _DataType mean,
+
229 const _DataType stddev,
+
230 const size_t size);
+
231
+
244template <typename _DataType>
+
245INP_DLLEXPORT DPCTLSyclEventRef
+
246 dpnp_rng_geometric_c(DPCTLSyclQueueRef q_ref,
+
247 void *result,
+
248 const float p,
+
249 const size_t size,
+
250 const DPCTLEventVectorRef dep_event_vec_ref);
+
251
+
252template <typename _DataType>
+
253INP_DLLEXPORT void
+
254 dpnp_rng_geometric_c(void *result, const float p, const size_t size);
+
255
+
270template <typename _DataType>
+
271INP_DLLEXPORT DPCTLSyclEventRef
+
272 dpnp_rng_gumbel_c(DPCTLSyclQueueRef q_ref,
+
273 void *result,
+
274 const double loc,
+
275 const double scale,
+
276 const size_t size,
+
277 const DPCTLEventVectorRef dep_event_vec_ref);
+
278
+
279template <typename _DataType>
+
280INP_DLLEXPORT void dpnp_rng_gumbel_c(void *result,
+
281 const double loc,
+
282 const double scale,
+
283 const size_t size);
+
284
+
298template <typename _DataType>
+
299INP_DLLEXPORT DPCTLSyclEventRef
+
300 dpnp_rng_hypergeometric_c(DPCTLSyclQueueRef q_ref,
+
301 void *result,
+
302 const int l,
+
303 const int s,
+
304 const int m,
+
305 const size_t size,
+
306 const DPCTLEventVectorRef dep_event_vec_ref);
+
307
+
308template <typename _DataType>
+
309INP_DLLEXPORT void dpnp_rng_hypergeometric_c(void *result,
+
310 const int l,
+
311 const int s,
+
312 const int m,
+
313 const size_t size);
+
314
+
327template <typename _DataType>
+
328INP_DLLEXPORT DPCTLSyclEventRef
+
329 dpnp_rng_laplace_c(DPCTLSyclQueueRef q_ref,
+
330 void *result,
+
331 const double loc,
+
332 const double scale,
+
333 const size_t size,
+
334 const DPCTLEventVectorRef dep_event_vec_ref);
+
335
+
336template <typename _DataType>
+
337INP_DLLEXPORT void dpnp_rng_laplace_c(void *result,
+
338 const double loc,
+
339 const double scale,
+
340 const size_t size);
+
341
+
354template <typename _DataType>
+
355INP_DLLEXPORT DPCTLSyclEventRef
+
356 dpnp_rng_logistic_c(DPCTLSyclQueueRef q_ref,
+
357 void *result,
+
358 const double loc,
+
359 double const scale,
+
360 const size_t size,
+
361 const DPCTLEventVectorRef dep_event_vec_ref);
+
362
+
363template <typename _DataType>
+
364INP_DLLEXPORT void dpnp_rng_logistic_c(void *result,
+
365 const double loc,
+
366 double const scale,
+
367 const size_t size);
+
368
+
381template <typename _DataType>
+
382INP_DLLEXPORT DPCTLSyclEventRef
+
383 dpnp_rng_lognormal_c(DPCTLSyclQueueRef q_ref,
+
384 void *result,
+
385 const _DataType mean,
+
386 const _DataType stddev,
+
387 const size_t size,
+
388 const DPCTLEventVectorRef dep_event_vec_ref);
+
389
+
390template <typename _DataType>
+
391INP_DLLEXPORT void dpnp_rng_lognormal_c(void *result,
+
392 const _DataType mean,
+
393 const _DataType stddev,
+
394 const size_t size);
+
395
+
409template <typename _DataType>
+
410INP_DLLEXPORT DPCTLSyclEventRef
+
411 dpnp_rng_multinomial_c(DPCTLSyclQueueRef q_ref,
+
412 void *result,
+
413 const int ntrial,
+
414 const double *p_in,
+
415 const size_t p_size,
+
416 const size_t size,
+
417 const DPCTLEventVectorRef dep_event_vec_ref);
+
418
+
419template <typename _DataType>
+
420INP_DLLEXPORT void dpnp_rng_multinomial_c(void *result,
+
421 const int ntrial,
+
422 const double *p_in,
+
423 const size_t p_size,
+
424 const size_t size);
+
425
+
441template <typename _DataType>
+
442INP_DLLEXPORT DPCTLSyclEventRef
+
443 dpnp_rng_multivariate_normal_c(DPCTLSyclQueueRef q_ref,
+
444 void *result,
+
445 const int dimen,
+
446 const double *mean_in,
+
447 const size_t mean_size,
+
448 const double *cov_in,
+
449 const size_t cov_size,
+
450 const size_t size,
+
451 const DPCTLEventVectorRef dep_event_vec_ref);
+
452
+
453template <typename _DataType>
+
454INP_DLLEXPORT void dpnp_rng_multivariate_normal_c(void *result,
+
455 const int dimen,
+
456 const double *mean_in,
+
457 const size_t mean_size,
+
458 const double *cov_in,
+
459 const size_t cov_size,
+
460 const size_t size);
+
461
+
476template <typename _DataType>
+
477INP_DLLEXPORT DPCTLSyclEventRef
+
478 dpnp_rng_negative_binomial_c(DPCTLSyclQueueRef q_ref,
+
479 void *result,
+
480 const double a,
+
481 const double p,
+
482 const size_t size,
+
483 const DPCTLEventVectorRef dep_event_vec_ref);
+
484
+
485template <typename _DataType>
+
486INP_DLLEXPORT void dpnp_rng_negative_binomial_c(void *result,
+
487 const double a,
+
488 const double p,
+
489 const size_t size);
+
490
+
503template <typename _DataType>
+
504INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_noncentral_chisquare_c(
+
505 DPCTLSyclQueueRef q_ref,
+
506 void *result,
+
507 const _DataType df,
+
508 const _DataType nonc,
+
509 const size_t size,
+
510 const DPCTLEventVectorRef dep_event_vec_ref);
+
511
+
512template <typename _DataType>
+
513INP_DLLEXPORT void dpnp_rng_noncentral_chisquare_c(void *result,
+
514 const _DataType df,
+
515 const _DataType nonc,
+
516 const size_t size);
+
517
+
531template <typename _DataType>
+
532INP_DLLEXPORT DPCTLSyclEventRef
+
533 dpnp_rng_normal_c(DPCTLSyclQueueRef q_ref,
+
534 void *result_out,
+
535 const double mean,
+
536 const double stddev,
+
537 const int64_t size,
+
538 void *random_state_in,
+
539 const DPCTLEventVectorRef dep_event_vec_ref);
+
540
+
541template <typename _DataType>
+
542INP_DLLEXPORT void dpnp_rng_normal_c(void *result,
+
543 const _DataType mean,
+
544 const _DataType stddev,
+
545 const size_t size);
+
546
+
558template <typename _DataType>
+
559INP_DLLEXPORT DPCTLSyclEventRef
+
560 dpnp_rng_pareto_c(DPCTLSyclQueueRef q_ref,
+
561 void *result,
+
562 const double alpha,
+
563 const size_t size,
+
564 const DPCTLEventVectorRef dep_event_vec_ref);
+
565
+
566template <typename _DataType>
+
567INP_DLLEXPORT void
+
568 dpnp_rng_pareto_c(void *result, const double alpha, const size_t size);
+
569
+
581template <typename _DataType>
+
582INP_DLLEXPORT DPCTLSyclEventRef
+
583 dpnp_rng_poisson_c(DPCTLSyclQueueRef q_ref,
+
584 void *result,
+
585 const double lambda,
+
586 const size_t size,
+
587 const DPCTLEventVectorRef dep_event_vec_ref);
+
588
+
589template <typename _DataType>
+
590INP_DLLEXPORT void
+
591 dpnp_rng_poisson_c(void *result, const double lambda, const size_t size);
+
592
+
604template <typename _DataType>
+
605INP_DLLEXPORT DPCTLSyclEventRef
+
606 dpnp_rng_power_c(DPCTLSyclQueueRef q_ref,
+
607 void *result,
+
608 const double alpha,
+
609 const size_t size,
+
610 const DPCTLEventVectorRef dep_event_vec_ref);
+
611
+
612template <typename _DataType>
+
613INP_DLLEXPORT void
+
614 dpnp_rng_power_c(void *result, const double alpha, const size_t size);
+
615
+
627template <typename _DataType>
+
628INP_DLLEXPORT DPCTLSyclEventRef
+
629 dpnp_rng_rayleigh_c(DPCTLSyclQueueRef q_ref,
+
630 void *result,
+
631 const _DataType scale,
+
632 const size_t size,
+
633 const DPCTLEventVectorRef dep_event_vec_ref);
+
634
+
635template <typename _DataType>
+
636INP_DLLEXPORT void
+
637 dpnp_rng_rayleigh_c(void *result, const _DataType scale, const size_t size);
+
638
+
653template <typename _DataType>
+
654INP_DLLEXPORT DPCTLSyclEventRef
+
655 dpnp_rng_shuffle_c(DPCTLSyclQueueRef q_ref,
+
656 void *result,
+
657 const size_t itemsize,
+
658 const size_t ndim,
+
659 const size_t high_dim_size,
+
660 const size_t size,
+
661 const DPCTLEventVectorRef dep_event_vec_ref);
+
662
+
663template <typename _DataType>
+
664INP_DLLEXPORT void dpnp_rng_shuffle_c(void *result,
+
665 const size_t itemsize,
+
666 const size_t ndim,
+
667 const size_t high_dim_size,
+
668 const size_t size);
+
669
+
676INP_DLLEXPORT void dpnp_rng_srand_c(size_t seed = 1);
+
677
+
688template <typename _DataType>
+
689INP_DLLEXPORT DPCTLSyclEventRef
+
690 dpnp_rng_standard_cauchy_c(DPCTLSyclQueueRef q_ref,
+
691 void *result,
+
692 const size_t size,
+
693 const DPCTLEventVectorRef dep_event_vec_ref);
+
694
+
695template <typename _DataType>
+
696INP_DLLEXPORT void dpnp_rng_standard_cauchy_c(void *result, const size_t size);
+
697
+
708template <typename _DataType>
+
709INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_exponential_c(
+
710 DPCTLSyclQueueRef q_ref,
+
711 void *result,
+
712 const size_t size,
+
713 const DPCTLEventVectorRef dep_event_vec_ref);
+
714
+
715template <typename _DataType>
+
716INP_DLLEXPORT void dpnp_rng_standard_exponential_c(void *result,
+
717 const size_t size);
+
718
+
730template <typename _DataType>
+
731INP_DLLEXPORT DPCTLSyclEventRef
+
732 dpnp_rng_standard_gamma_c(DPCTLSyclQueueRef q_ref,
+
733 void *result,
+
734 const _DataType shape,
+
735 const size_t size,
+
736 const DPCTLEventVectorRef dep_event_vec_ref);
+
737
+
738template <typename _DataType>
+
739INP_DLLEXPORT void dpnp_rng_standard_gamma_c(void *result,
+
740 const _DataType shape,
+
741 const size_t size);
+
742
+
753template <typename _DataType>
+
754INP_DLLEXPORT void dpnp_rng_standard_normal_c(void *result, const size_t size);
+
755
+
767template <typename _DataType>
+
768INP_DLLEXPORT DPCTLSyclEventRef
+
769 dpnp_rng_standard_t_c(DPCTLSyclQueueRef q_ref,
+
770 void *result,
+
771 const _DataType df,
+
772 const size_t size,
+
773 const DPCTLEventVectorRef dep_event_vec_ref);
+
774
+
775template <typename _DataType>
+
776INP_DLLEXPORT void
+
777 dpnp_rng_standard_t_c(void *result, const _DataType df, const size_t size);
+
778
+
793template <typename _DataType>
+
794INP_DLLEXPORT DPCTLSyclEventRef
+
795 dpnp_rng_triangular_c(DPCTLSyclQueueRef q_ref,
+
796 void *result,
+
797 const _DataType x_min,
+
798 const _DataType x_mode,
+
799 const _DataType x_max,
+
800 const size_t size,
+
801 const DPCTLEventVectorRef dep_event_vec_ref);
+
802
+
803template <typename _DataType>
+
804INP_DLLEXPORT void dpnp_rng_triangular_c(void *result,
+
805 const _DataType x_min,
+
806 const _DataType x_mode,
+
807 const _DataType x_max,
+
808 const size_t size);
+
809
+
823template <typename _DataType>
+
824INP_DLLEXPORT DPCTLSyclEventRef
+
825 dpnp_rng_uniform_c(DPCTLSyclQueueRef q_ref,
+
826 void *result_out,
+
827 const double low,
+
828 const double high,
+
829 const int64_t size,
+
830 void *random_state_in,
+
831 const DPCTLEventVectorRef dep_event_vec_ref);
+
832
+
833template <typename _DataType>
+
834INP_DLLEXPORT void dpnp_rng_uniform_c(void *result,
+
835 const long low,
+
836 const long high,
+
837 const size_t size);
+
838
+
851template <typename _DataType>
+
852INP_DLLEXPORT DPCTLSyclEventRef
+
853 dpnp_rng_vonmises_c(DPCTLSyclQueueRef q_ref,
+
854 void *result,
+
855 const _DataType mu,
+
856 const _DataType kappa,
+
857 const size_t size,
+
858 const DPCTLEventVectorRef dep_event_vec_ref);
+
859
+
860template <typename _DataType>
+
861INP_DLLEXPORT void dpnp_rng_vonmises_c(void *result,
+
862 const _DataType mu,
+
863 const _DataType kappa,
+
864 const size_t size);
+
865
+
878template <typename _DataType>
+
879INP_DLLEXPORT DPCTLSyclEventRef
+
880 dpnp_rng_wald_c(DPCTLSyclQueueRef q_ref,
+
881 void *result,
+
882 const _DataType mean,
+
883 const _DataType scale,
+
884 size_t size,
+
885 const DPCTLEventVectorRef dep_event_vec_ref);
+
886
+
887template <typename _DataType>
+
888INP_DLLEXPORT void dpnp_rng_wald_c(void *result,
+
889 const _DataType mean,
+
890 const _DataType scale,
+
891 size_t size);
+
892
+
904template <typename _DataType>
+
905INP_DLLEXPORT DPCTLSyclEventRef
+
906 dpnp_rng_weibull_c(DPCTLSyclQueueRef q_ref,
+
907 void *result,
+
908 const double alpha,
+
909 const size_t size,
+
910 const DPCTLEventVectorRef dep_event_vec_ref);
+
911
+
912template <typename _DataType>
+
913INP_DLLEXPORT void
+
914 dpnp_rng_weibull_c(void *result, const double alpha, const size_t size);
+
915
+
927template <typename _DataType>
+
928INP_DLLEXPORT DPCTLSyclEventRef
+
929 dpnp_rng_zipf_c(DPCTLSyclQueueRef q_ref,
+
930 void *result,
+
931 const _DataType a,
+
932 const size_t size,
+
933 const DPCTLEventVectorRef dep_event_vec_ref);
+
934
+
935template <typename _DataType>
+
936INP_DLLEXPORT void
+
937 dpnp_rng_zipf_c(void *result, const _DataType a, const size_t size);
+
938
+
939#endif // BACKEND_IFACE_RANDOM_H
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_exponential_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType beta, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (exponential distribution)
+
INP_DLLEXPORT void dpnp_rng_standard_normal_c(void *result, const size_t size)
math library implementation of random number generator (standard normal distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_beta_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType a, const _DataType b, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (beta distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_t_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType df, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (standard Student's t distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_normal_c(DPCTLSyclQueueRef q_ref, void *result_out, const double mean, const double stddev, const int64_t size, void *random_state_in, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (normal continuous distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_rayleigh_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (rayleigh distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_laplace_c(DPCTLSyclQueueRef q_ref, void *result, const double loc, const double scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (laplace distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_cauchy_c(DPCTLSyclQueueRef q_ref, void *result, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (standard cauchy distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_pareto_c(DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Pareto distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_triangular_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType x_min, const _DataType x_mode, const _DataType x_max, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Triangular distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_uniform_c(DPCTLSyclQueueRef q_ref, void *result_out, const double low, const double high, const int64_t size, void *random_state_in, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (uniform distribution)
+
INP_DLLEXPORT void dpnp_rng_srand_c(size_t seed=1)
initializer for basic random number generator.
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_geometric_c(DPCTLSyclQueueRef q_ref, void *result, const float p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Geometric distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_binomial_c(DPCTLSyclQueueRef q_ref, void *result, const int ntrial, const double p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (binomial distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gumbel_c(DPCTLSyclQueueRef q_ref, void *result, const double loc, const double scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Gumbel distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_multinomial_c(DPCTLSyclQueueRef q_ref, void *result, const int ntrial, const double *p_in, const size_t p_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (multinomial distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_f_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType df_num, const _DataType df_den, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (F distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_weibull_c(DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (weibull distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gaussian_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType stddev, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (gaussian continuous distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_chisquare_c(DPCTLSyclQueueRef q_ref, void *result, const int df, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (chi-square distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_negative_binomial_c(DPCTLSyclQueueRef q_ref, void *result, const double a, const double p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (negative binomial distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_lognormal_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType stddev, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (lognormal distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_zipf_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType a, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Zipf distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_gamma_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType shape, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (standard gamma distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_hypergeometric_c(DPCTLSyclQueueRef q_ref, void *result, const int l, const int s, const int m, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (hypergeometric distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_power_c(DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (power distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_vonmises_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType mu, const _DataType kappa, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Vonmises distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_logistic_c(DPCTLSyclQueueRef q_ref, void *result, const double loc, double const scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (logistic distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_noncentral_chisquare_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType df, const _DataType nonc, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (noncentral chisquare distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_wald_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType scale, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Wald's distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_poisson_c(DPCTLSyclQueueRef q_ref, void *result, const double lambda, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (poisson distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gamma_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType shape, const _DataType scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (gamma distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_multivariate_normal_c(DPCTLSyclQueueRef q_ref, void *result, const int dimen, const double *mean_in, const size_t mean_size, const double *cov_in, const size_t cov_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (multivariate normal distribution)
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_shuffle_c(DPCTLSyclQueueRef q_ref, void *result, const size_t itemsize, const size_t ndim, const size_t high_dim_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random in-place shuffle.
+
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_exponential_c(DPCTLSyclQueueRef q_ref, void *result, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (standard exponential distribution)
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__iterator_8hpp_source.html b/pull/2070/backend_doc/dpnp__iterator_8hpp_source.html new file mode 100644 index 00000000000..20d5a8df8ff --- /dev/null +++ b/pull/2070/backend_doc/dpnp__iterator_8hpp_source.html @@ -0,0 +1,758 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/dpnp_iterator.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_iterator.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27#ifndef DPNP_ITERATOR_H // Cython compatibility
+
28#define DPNP_ITERATOR_H
+
29
+
30#include <algorithm>
+
31#include <cassert>
+
32#include <iostream>
+
33#include <iterator>
+
34#include <numeric>
+
35#include <vector>
+
36
+
37#include <dpnp_utils.hpp>
+
38
+
48template <typename _Tp>
+
+ +
50{
+
51public:
+
52 using value_type = _Tp;
+
53 using difference_type = std::ptrdiff_t;
+
54 using iterator_category = std::random_access_iterator_tag;
+
55 using pointer = value_type *;
+
56 using reference = value_type &;
+
57 using size_type = shape_elem_type;
+
58
+
59 DPNP_USM_iterator(pointer __base_ptr,
+
60 size_type __id,
+
61 const size_type *__shape_stride = nullptr,
+
62 const size_type *__axes_stride = nullptr,
+
63 size_type __shape_size = 0)
+
64 : base(__base_ptr), iter_id(__id), iteration_shape_size(__shape_size),
+
65 iteration_shape_strides(__shape_stride),
+
66 axes_shape_strides(__axes_stride)
+
67 {
+
68 }
+
69
+
70 DPNP_USM_iterator() = delete;
+
71
+
72 inline reference operator*() const
+
73 {
+
74 return *ptr();
+
75 }
+
76
+
77 inline pointer operator->() const
+
78 {
+
79 return ptr();
+
80 }
+
81
+
+ +
84 {
+
85 ++iter_id;
+
86
+
87 return *this;
+
88 }
+
+
89
+
+ +
92 {
+
93 DPNP_USM_iterator tmp = *this;
+
94 ++(*this); // call prefix increment
+
95
+
96 return tmp;
+
97 }
+
+
98
+
99 inline bool operator==(const DPNP_USM_iterator &__rhs) const
+
100 {
+
101 assert(base == __rhs.base); // iterators are incomparable if base
+
102 // pointers are different
+
103 return (iter_id == __rhs.iter_id);
+
104 };
+
105
+
106 inline bool operator!=(const DPNP_USM_iterator &__rhs) const
+
107 {
+
108 return !(*this == __rhs);
+
109 };
+
110
+
111 inline bool operator<(const DPNP_USM_iterator &__rhs) const
+
112 {
+
113 return iter_id < __rhs.iter_id;
+
114 };
+
115
+
116 // TODO need more operators
+
117
+
118 // Random access iterator requirements
+
119 inline reference operator[](size_type __n) const
+
120 {
+
121 return *ptr(__n);
+
122 }
+
123
+
124 inline difference_type operator-(const DPNP_USM_iterator &__rhs) const
+
125 {
+
126 difference_type diff =
+
127 difference_type(iter_id) - difference_type(__rhs.iter_id);
+
128
+
129 return diff;
+
130 }
+
131
+
+
133 friend std::ostream &operator<<(std::ostream &__out,
+
134 const DPNP_USM_iterator &__it)
+
135 {
+
136 const std::vector<size_type> it_strides(__it.iteration_shape_strides,
+
137 __it.iteration_shape_strides +
+
138 __it.iteration_shape_size);
+
139 const std::vector<size_type> it_axes_strides(
+
140 __it.axes_shape_strides,
+
141 __it.axes_shape_strides + __it.iteration_shape_size);
+
142
+
143 __out << "DPNP_USM_iterator(base=" << __it.base;
+
144 __out << ", iter_id=" << __it.iter_id;
+
145 __out << ", iteration_shape_size=" << __it.iteration_shape_size;
+
146 __out << ", iteration_shape_strides=" << it_strides;
+
147 __out << ", axes_shape_strides=" << it_axes_strides;
+
148 __out << ")";
+
149
+
150 return __out;
+
151 }
+
+
152
+
153private:
+
154 inline pointer ptr() const
+
155 {
+
156 return ptr(iter_id);
+
157 }
+
158
+
159 inline pointer ptr(size_type iteration_id) const
+
160 {
+
161 size_type offset = 0;
+
162
+
163 if (iteration_shape_size > 0) {
+
164 long reminder = iteration_id;
+
165 for (size_t it = 0; it < static_cast<size_t>(iteration_shape_size);
+
166 ++it) {
+
167 const size_type axis_val = iteration_shape_strides[it];
+
168 size_type xyz_id = reminder / axis_val;
+
169 offset += (xyz_id * axes_shape_strides[it]);
+
170
+
171 reminder = reminder % axis_val;
+
172 }
+
173 }
+
174 else {
+
175 offset = iteration_id;
+
176 }
+
177
+
178 return base + offset;
+
179 }
+
180
+
181 const pointer base = nullptr;
+
182 size_type iter_id =
+
183 size_type{};
+
184 const size_type iteration_shape_size =
+
185 size_type{};
+
187 const size_type *iteration_shape_strides = nullptr;
+
188 const size_type *axes_shape_strides = nullptr;
+
189};
+
+
190
+
199template <typename _Tp>
+
+
200class DPNPC_id final
+
201{
+
202public:
+
203 using value_type = _Tp;
+ +
205 using pointer = value_type *;
+
206 using reference = value_type &;
+
207 using size_type = shape_elem_type;
+
208
+
209 DPNPC_id(DPCTLSyclQueueRef q_ref,
+
210 pointer __ptr,
+
211 const size_type *__shape,
+
212 const size_type __shape_size)
+
213 {
+
214 queue_ref = q_ref;
+
215 std::vector<size_type> shape(__shape, __shape + __shape_size);
+
216 init_container(__ptr, shape);
+
217 }
+
218
+
219 DPNPC_id(DPCTLSyclQueueRef q_ref,
+
220 pointer __ptr,
+
221 const size_type *__shape,
+
222 const size_type *__strides,
+
223 const size_type __ndim)
+
224 {
+
225 queue_ref = q_ref;
+
226 std::vector<size_type> shape(__shape, __shape + __ndim);
+
227 std::vector<size_type> strides(__strides, __strides + __ndim);
+
228 init_container(__ptr, shape, strides);
+
229 }
+
230
+
+
246 DPNPC_id(DPCTLSyclQueueRef q_ref,
+
247 pointer __ptr,
+
248 const std::vector<size_type> &__shape)
+
249 {
+
250 queue_ref = q_ref;
+
251 init_container(__ptr, __shape);
+
252 }
+
+
253
+
+
269 DPNPC_id(pointer __ptr,
+
270 const std::vector<size_type> &__shape,
+
271 const std::vector<size_type> &__strides)
+
272 {
+
273 init_container(__ptr, __shape, __strides);
+
274 }
+
+
275
+
276 DPNPC_id() = delete;
+
277
+
278 ~DPNPC_id()
+
279 {
+
280 free_memory();
+
281 }
+
282
+
+
284 inline size_type get_output_size() const
+
285 {
+
286 return output_size;
+
287 }
+
+
288
+
289 inline void broadcast_to_shape(const size_type *__shape,
+
290 const size_type __shape_size)
+
291 {
+
292 std::vector<size_type> shape(__shape, __shape + __shape_size);
+
293 broadcast_to_shape(shape);
+
294 }
+
295
+
+
306 inline void broadcast_to_shape(const std::vector<size_type> &__shape)
+
307 {
+
308 if (axis_use) {
+
309 return;
+
310 }
+
311
+
312 if (broadcastable(input_shape, input_shape_size, __shape)) {
+
313 free_broadcast_axes_memory();
+
314 free_output_memory();
+
315
+
316 std::vector<size_type> valid_axes;
+
317 broadcast_use = true;
+
318
+
319 output_shape_size = __shape.size();
+
320 const size_type output_shape_size_in_bytes =
+
321 output_shape_size * sizeof(size_type);
+
322 output_shape = reinterpret_cast<size_type *>(
+
323 dpnp_memory_alloc_c(queue_ref, output_shape_size_in_bytes));
+
324
+
325 for (int irit = input_shape_size - 1, orit = output_shape_size - 1;
+
326 orit >= 0; --irit, --orit)
+
327 {
+
328 output_shape[orit] = __shape[orit];
+
329
+
330 // ex: input_shape = {7, 1, 5}, output_shape = {8, 7, 6, 5} =>
+
331 // valid_axes = {0, 2}
+
332 if (irit < 0 || input_shape[irit] != output_shape[orit]) {
+
333 valid_axes.insert(valid_axes.begin(), orit);
+
334 }
+
335 }
+
336
+
337 broadcast_axes_size = valid_axes.size();
+
338 const size_type broadcast_axes_size_in_bytes =
+
339 broadcast_axes_size * sizeof(size_type);
+
340 broadcast_axes = reinterpret_cast<size_type *>(
+
341 dpnp_memory_alloc_c(queue_ref, broadcast_axes_size_in_bytes));
+
342 std::copy(valid_axes.begin(), valid_axes.end(), broadcast_axes);
+
343
+
344 output_size =
+
345 std::accumulate(output_shape, output_shape + output_shape_size,
+
346 size_type(1), std::multiplies<size_type>());
+
347
+
348 output_shape_strides = reinterpret_cast<size_type *>(
+
349 dpnp_memory_alloc_c(queue_ref, output_shape_size_in_bytes));
+
350 get_shape_offsets_inkernel<size_type>(
+
351 output_shape, output_shape_size, output_shape_strides);
+
352
+
353 iteration_size = 1;
+
354 }
+
355 }
+
+
356
+
+
374 inline void set_axis(shape_elem_type __axis)
+
375 {
+
376 set_axes({__axis});
+
377 }
+
+
378
+
379 inline void set_axes(const shape_elem_type *__axes, const size_t axes_ndim)
+
380 {
+
381 const std::vector<shape_elem_type> axes_vec(__axes, __axes + axes_ndim);
+
382 set_axes(axes_vec);
+
383 }
+
384
+
+
402 inline void set_axes(const std::vector<shape_elem_type> &__axes)
+
403 {
+
404 if (broadcast_use) {
+
405 return;
+
406 }
+
407
+
408 if (!__axes.empty() && input_shape_size) {
+
409 free_axes_memory();
+
410 free_iteration_memory();
+
411 free_output_memory();
+
412
+
413 axes = get_validated_axes(__axes, input_shape_size);
+
414 axis_use = true;
+
415
+
416 output_shape_size = input_shape_size - axes.size();
+
417 const size_type output_shape_size_in_bytes =
+
418 output_shape_size * sizeof(size_type);
+
419
+
420 iteration_shape_size = axes.size();
+
421 const size_type iteration_shape_size_in_bytes =
+
422 iteration_shape_size * sizeof(size_type);
+
423 std::vector<size_type> iteration_shape;
+
424
+
425 output_shape = reinterpret_cast<size_type *>(
+
426 dpnp_memory_alloc_c(queue_ref, output_shape_size_in_bytes));
+
427 size_type *output_shape_it = output_shape;
+
428 for (size_type i = 0; i < input_shape_size; ++i) {
+
429 if (std::find(axes.begin(), axes.end(), i) == axes.end()) {
+
430 *output_shape_it = input_shape[i];
+
431 ++output_shape_it;
+
432 }
+
433 }
+
434
+
435 output_size =
+
436 std::accumulate(output_shape, output_shape + output_shape_size,
+
437 size_type(1), std::multiplies<size_type>());
+
438
+
439 output_shape_strides = reinterpret_cast<size_type *>(
+
440 dpnp_memory_alloc_c(queue_ref, output_shape_size_in_bytes));
+
441 get_shape_offsets_inkernel<size_type>(
+
442 output_shape, output_shape_size, output_shape_strides);
+
443
+
444 iteration_size = 1;
+
445 iteration_shape.reserve(iteration_shape_size);
+
446 for (const auto &axis : axes) {
+
447 const size_type axis_dim = input_shape[axis];
+
448 iteration_shape.push_back(axis_dim);
+
449 iteration_size *= axis_dim;
+
450 }
+
451
+
452 iteration_shape_strides = reinterpret_cast<size_type *>(
+
453 dpnp_memory_alloc_c(queue_ref, iteration_shape_size_in_bytes));
+
454 get_shape_offsets_inkernel<size_type>(iteration_shape.data(),
+
455 iteration_shape.size(),
+
456 iteration_shape_strides);
+
457
+
458 axes_shape_strides = reinterpret_cast<size_type *>(
+
459 dpnp_memory_alloc_c(queue_ref, iteration_shape_size_in_bytes));
+
460 for (size_t i = 0; i < static_cast<size_t>(iteration_shape_size);
+
461 ++i) {
+
462 axes_shape_strides[i] = input_shape_strides[axes[i]];
+
463 }
+
464 }
+
465 }
+
+
466
+
+
468 inline iterator begin(size_type output_global_id = 0) const
+
469 {
+
470 return iterator(data + get_input_begin_offset(output_global_id), 0,
+
471 iteration_shape_strides, axes_shape_strides,
+
472 iteration_shape_size);
+
473 }
+
+
474
+
+
476 inline iterator end(size_type output_global_id = 0) const
+
477 {
+
478 // TODO it is better to get begin() iterator as a parameter
+
479
+
480 return iterator(data + get_input_begin_offset(output_global_id),
+
481 get_iteration_size(), iteration_shape_strides,
+
482 axes_shape_strides, iteration_shape_size);
+
483 }
+
+
484
+
+
486 inline reference operator[](size_type __n) const
+
487 {
+
488 if (broadcast_use) {
+
489 return *begin(__n);
+
490 }
+
491
+
492 const iterator it = begin();
+
493 return it[__n];
+
494 }
+
+
495
+
496private:
+
497 void init_container(pointer __ptr, const std::vector<size_type> &__shape)
+
498 {
+
499 // TODO needs to address negative values in __shape with exception
+
500 if ((__ptr == nullptr) && __shape.empty()) {
+
501 return;
+
502 }
+
503
+
504 if (__ptr != nullptr) {
+
505 data = __ptr;
+
506 input_size = 1; // means scalar at this stage
+
507 output_size = 1; // if input size is not zero it means we have
+
508 // scalar as output
+
509 iteration_size = 1;
+
510 }
+
511
+
512 if (!__shape.empty()) {
+
513 input_size =
+
514 std::accumulate(__shape.begin(), __shape.end(), size_type(1),
+
515 std::multiplies<size_type>());
+
516 if (input_size == 0)
+
517 { // shape might be shape[3, 4, 0, 6]. This means no input memory
+
518 // and no output expected
+
519 output_size = 0; // depends on axes. zero at this stage only
+
520 }
+
521
+
522 input_shape_size = __shape.size();
+
523 input_shape = reinterpret_cast<size_type *>(dpnp_memory_alloc_c(
+
524 queue_ref, input_shape_size * sizeof(size_type)));
+
525 std::copy(__shape.begin(), __shape.end(), input_shape);
+
526
+
527 input_shape_strides =
+
528 reinterpret_cast<size_type *>(dpnp_memory_alloc_c(
+
529 queue_ref, input_shape_size * sizeof(size_type)));
+
530 get_shape_offsets_inkernel<size_type>(input_shape, input_shape_size,
+
531 input_shape_strides);
+
532 }
+
533 iteration_size = input_size;
+
534 }
+
535
+
536 void init_container(pointer __ptr,
+
537 const std::vector<size_type> &__shape,
+
538 const std::vector<size_type> &__strides)
+
539 {
+
540 // TODO needs to address negative values in __shape with exception
+
541 if ((__ptr == nullptr) && __shape.empty()) {
+
542 return;
+
543 }
+
544
+
545 if (__ptr != nullptr) {
+
546 data = __ptr;
+
547 input_size = 1; // means scalar at this stage
+
548 output_size = 1; // if input size is not zero it means we have
+
549 // scalar as output
+
550 iteration_size = 1;
+
551 }
+
552
+
553 if (!__shape.empty()) {
+
554 input_size =
+
555 std::accumulate(__shape.begin(), __shape.end(), size_type(1),
+
556 std::multiplies<size_type>());
+
557 if (input_size == 0)
+
558 { // shape might be shape[3, 4, 0, 6]. This means no input memory
+
559 // and no output expected
+
560 output_size = 0; // depends on axes. zero at this stage only
+
561 }
+
562
+
563 input_shape_size = __shape.size();
+
564 input_shape = reinterpret_cast<size_type *>(dpnp_memory_alloc_c(
+
565 queue_ref, input_shape_size * sizeof(size_type)));
+
566 std::copy(__shape.begin(), __shape.end(), input_shape);
+
567
+
568 input_shape_strides =
+
569 reinterpret_cast<size_type *>(dpnp_memory_alloc_c(
+
570 queue_ref, input_shape_size * sizeof(size_type)));
+
571 std::copy(__strides.begin(), __strides.end(), input_shape_strides);
+
572 }
+
573 iteration_size = input_size;
+
574 }
+
575
+
577 size_type get_input_begin_offset(size_type output_global_id) const
+
578 {
+
579 size_type input_global_id = 0;
+
580 if (axis_use) {
+
581 assert(output_global_id < output_size);
+
582
+
583 for (size_t iit = 0, oit = 0;
+
584 iit < static_cast<size_t>(input_shape_size); ++iit)
+
585 {
+
586 if (std::find(axes.begin(), axes.end(), iit) == axes.end()) {
+
587 const size_type output_xyz_id = get_xyz_id_by_id_inkernel(
+
588 output_global_id, output_shape_strides,
+
589 output_shape_size, oit);
+
590 input_global_id +=
+
591 (output_xyz_id * input_shape_strides[iit]);
+
592 ++oit;
+
593 }
+
594 }
+
595 }
+
596 else if (broadcast_use) {
+
597 assert(output_global_id < output_size);
+
598 assert(input_shape_size <= output_shape_size);
+
599
+
600 for (int irit = input_shape_size - 1, orit = output_shape_size - 1;
+
601 irit >= 0; --irit, --orit)
+
602 {
+
603 size_type *broadcast_axes_end =
+
604 broadcast_axes + broadcast_axes_size;
+
605 if (std::find(broadcast_axes, broadcast_axes_end, orit) ==
+
606 broadcast_axes_end) {
+
607 const size_type output_xyz_id = get_xyz_id_by_id_inkernel(
+
608 output_global_id, output_shape_strides,
+
609 output_shape_size, orit);
+
610 input_global_id +=
+
611 (output_xyz_id * input_shape_strides[irit]);
+
612 }
+
613 }
+
614 }
+
615
+
616 return input_global_id;
+
617 }
+
618
+
620 size_type get_iteration_size() const
+
621 {
+
622 return iteration_size;
+
623 }
+
624
+
625 void free_axes_memory()
+
626 {
+
627 axes.clear();
+
628 dpnp_memory_free_c(queue_ref, axes_shape_strides);
+
629 axes_shape_strides = nullptr;
+
630 }
+
631
+
632 void free_broadcast_axes_memory()
+
633 {
+
634 broadcast_axes_size = size_type{};
+
635 dpnp_memory_free_c(queue_ref, broadcast_axes);
+
636 broadcast_axes = nullptr;
+
637 }
+
638
+
639 void free_input_memory()
+
640 {
+
641 input_size = size_type{};
+
642 input_shape_size = size_type{};
+
643 dpnp_memory_free_c(queue_ref, input_shape);
+
644 dpnp_memory_free_c(queue_ref, input_shape_strides);
+
645 input_shape = nullptr;
+
646 input_shape_strides = nullptr;
+
647 }
+
648
+
649 void free_iteration_memory()
+
650 {
+
651 iteration_size = size_type{};
+
652 iteration_shape_size = size_type{};
+
653 dpnp_memory_free_c(queue_ref, iteration_shape_strides);
+
654 iteration_shape_strides = nullptr;
+
655 }
+
656
+
657 void free_output_memory()
+
658 {
+
659 output_size = size_type{};
+
660 output_shape_size = size_type{};
+
661 dpnp_memory_free_c(queue_ref, output_shape);
+
662 dpnp_memory_free_c(queue_ref, output_shape_strides);
+
663 output_shape = nullptr;
+
664 output_shape_strides = nullptr;
+
665 }
+
666
+
667 void free_memory()
+
668 {
+
669 free_axes_memory();
+
670 free_broadcast_axes_memory();
+
671 free_input_memory();
+
672 free_iteration_memory();
+
673 free_output_memory();
+
674 }
+
675
+
676 DPCTLSyclQueueRef queue_ref = nullptr;
+
678 pointer data = nullptr;
+
679 size_type input_size = size_type{};
+
680 size_type *input_shape = nullptr;
+
681 size_type input_shape_size = size_type{};
+
682 size_type *input_shape_strides =
+
683 nullptr;
+
685 std::vector<size_type> axes;
+
686 bool axis_use = false;
+
687
+
688 size_type *broadcast_axes = nullptr;
+
689 size_type broadcast_axes_size =
+
690 size_type{};
+
691 bool broadcast_use = false;
+
692
+
693 size_type output_size =
+
694 size_type{};
+
695 size_type *output_shape = nullptr;
+
696 size_type output_shape_size = size_type{};
+
697 size_type *output_shape_strides =
+
698 nullptr;
+
700 size_type iteration_size =
+
701 size_type{};
+
702 size_type iteration_shape_size = size_type{};
+
703 size_type *iteration_shape_strides = nullptr;
+
704 size_type *axes_shape_strides = nullptr;
+
705};
+
+
706
+
707#endif // DPNP_ITERATOR_H
+
Iterator for DPNPC_id type.
+
DPNP_USM_iterator operator++(int)
postfix increment
+
DPNP_USM_iterator & operator++()
prefix increment
+
friend std::ostream & operator<<(std::ostream &__out, const DPNP_USM_iterator &__it)
Print this container in human readable form in error reporting.
+
Type to keep USM array pointers used in kernels.
+
iterator begin(size_type output_global_id=0) const
this function is designed for SYCL environment execution
+
reference operator[](size_type __n) const
this function is designed for SYCL environment execution
+
size_type get_output_size() const
this function return number of elements in output
+
iterator end(size_type output_global_id=0) const
this function is designed for SYCL environment execution
+
char * dpnp_memory_alloc_c(DPCTLSyclQueueRef q_ref, size_t size_in_bytes)
SYCL queue memory allocation.
+
DPNPC_id(DPCTLSyclQueueRef q_ref, pointer __ptr, const std::vector< size_type > &__shape)
Main container for reduction iterator.
+
void broadcast_to_shape(const std::vector< size_type > &__shape)
Broadcast input data to specified shape.
+
void set_axes(const std::vector< shape_elem_type > &__axes)
Set axes for the data object to use in computation.
+
_DataType get_xyz_id_by_id_inkernel(size_t global_id, const _DataType *offsets, size_t offsets_size, size_t axis)
Calculate xyz id for given axis from linear index.
+
void set_axis(shape_elem_type __axis)
Set axis for the data object to use in computation.
+
DPNPC_id(pointer __ptr, const std::vector< size_type > &__shape, const std::vector< size_type > &__strides)
Main container for reduction/broadcasting iterator.
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__pstl_8hpp_source.html b/pull/2070/backend_doc/dpnp__pstl_8hpp_source.html new file mode 100644 index 00000000000..bda95aa7afd --- /dev/null +++ b/pull/2070/backend_doc/dpnp__pstl_8hpp_source.html @@ -0,0 +1,168 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/dpnp_pstl.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_pstl.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26/*
+
27 * This header file contains PSTL headers used in the project
+
28 *
+
29 * Please use this header instead directly PSTL headers inclusion
+
30 *
+
31 * Clang++ or DPCPP compilers have a lot of mistakes in these headers
+
32 * need to suppress warnings about it in our local project
+
33 *
+
34 * Need to remove warning deprecation pragmas and this file in future
+
35 */
+
36
+
37#pragma once
+
38#ifndef BACKEND_PSTL_H // Cython compatibility
+
39#define BACKEND_PSTL_H
+
40
+
41#pragma clang diagnostic push
+
42#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+
43#pragma clang diagnostic ignored "-Wreorder-ctor"
+
44#pragma clang diagnostic ignored "-Wshadow"
+
45#pragma clang diagnostic ignored "-Wsign-compare"
+
46#pragma clang diagnostic ignored "-Wunknown-pragmas"
+
47#pragma clang diagnostic ignored "-Wunused-local-typedef"
+
48#pragma clang diagnostic ignored "-Wunused-parameter"
+
49#pragma clang diagnostic ignored "-Wunused-variable"
+
50
+
51#include <oneapi/dpl/algorithm>
+
52#include <oneapi/dpl/execution>
+
53#include <oneapi/dpl/numeric>
+
54
+
55#pragma clang diagnostic pop
+
56
+
57#endif // BACKEND_PSTL_H
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__random__state_8hpp_source.html b/pull/2070/backend_doc/dpnp__random__state_8hpp_source.html new file mode 100644 index 00000000000..617078d7201 --- /dev/null +++ b/pull/2070/backend_doc/dpnp__random__state_8hpp_source.html @@ -0,0 +1,209 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/dpnp_random_state.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_random_state.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2022-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26/*
+
27 * This header file is for interface Cython with C++.
+
28 * It should not contains any backend specific headers (like SYCL or math
+
29 * library) because all included headers will be exposed in Cython compilation
+
30 * procedure
+
31 *
+
32 * We would like to avoid backend specific things in higher level Cython
+
33 * modules. Any backend interface functions and types should be defined here.
+
34 *
+
35 * Also, this file should contains documentation on functions and types
+
36 * which are used in the interface
+
37 */
+
38
+
39#pragma once
+
40#ifndef BACKEND_RANDOM_STATE_H // Cython compatibility
+
41#define BACKEND_RANDOM_STATE_H
+
42
+
43#ifdef _WIN32
+
44#define INP_DLLEXPORT __declspec(dllexport)
+
45#else
+
46#define INP_DLLEXPORT
+
47#endif
+
48
+
49#include <dpctl_sycl_interface.h>
+
50
+
51// Structure storing a base MKL engine
+
+ +
53{
+
54 void *engine;
+
55};
+
+
56
+
57// Structure storing MKL engine for MT199374x32x10 generator
+
+ +
59{
+
60};
+
+
61
+
62// Structure storing MKL engine for MCG59 generator
+
+ +
64{
+
65};
+
+
66
+
80INP_DLLEXPORT void MT19937_InitScalarSeed(mt19937_struct *mt19937,
+
81 DPCTLSyclQueueRef q_ref,
+
82 uint32_t seed = 1);
+
83
+
99INP_DLLEXPORT void MT19937_InitVectorSeed(mt19937_struct *mt19937,
+
100 DPCTLSyclQueueRef q_ref,
+
101 uint32_t *seed,
+
102 unsigned int n);
+
103
+
112INP_DLLEXPORT void MT19937_Delete(mt19937_struct *mt19937);
+
113
+
126INP_DLLEXPORT void MCG59_InitScalarSeed(mcg59_struct *mcg59,
+
127 DPCTLSyclQueueRef q_ref,
+
128 uint64_t seed);
+
129
+
138INP_DLLEXPORT void MCG59_Delete(mcg59_struct *mcg59);
+
139
+
140#endif // BACKEND_RANDOM_STATE_H
+
void MT19937_InitScalarSeed(mt19937_struct *mt19937, DPCTLSyclQueueRef q_ref, uint32_t seed=1)
Create a MKL engine from scalar seed.
+
void MT19937_InitVectorSeed(mt19937_struct *mt19937, DPCTLSyclQueueRef q_ref, uint32_t *seed, unsigned int n)
Create a MKL engine from seed vector.
+
void MCG59_InitScalarSeed(mcg59_struct *mcg59, DPCTLSyclQueueRef q_ref, uint64_t seed)
Create a MKL engine from scalar seed.
+
void MCG59_Delete(mcg59_struct *mcg59)
Release a MKL engine.
+
void MT19937_Delete(mt19937_struct *mt19937)
Release a MKL engine.
+ + + +
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__test__utils_8hpp_source.html b/pull/2070/backend_doc/dpnp__test__utils_8hpp_source.html new file mode 100644 index 00000000000..68036478c08 --- /dev/null +++ b/pull/2070/backend_doc/dpnp__test__utils_8hpp_source.html @@ -0,0 +1,147 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/tests/dpnp_test_utils.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_test_utils.hpp
+
+
+
1#include <iostream>
+
2#include <vector>
+
3
+
4#include "dpnp_iterator.hpp"
+
5
+
6using namespace std;
+ +
8using dpnpc_value_t = dpnpc_it_t::value_type;
+
9using dpnpc_index_t = dpnpc_it_t::size_type;
+
10
+
11template <typename _DataType>
+
12vector<_DataType> get_input_data(const vector<dpnpc_index_t> &shape)
+
13{
+
14 const dpnpc_index_t size =
+
15 accumulate(shape.begin(), shape.end(), dpnpc_index_t(1),
+
16 multiplies<dpnpc_index_t>());
+
17
+
18 vector<_DataType> input_data(size);
+
19 iota(input_data.begin(), input_data.end(),
+
20 1); // let's start from 1 to avoid cleaned memory comparison
+
21
+
22 return input_data;
+
23}
+
24
+
25template <typename _DataType>
+
26_DataType *get_shared_data(const vector<_DataType> &input_data)
+
27{
+
28 const size_t data_size_in_bytes = input_data.size() * sizeof(_DataType);
+
29 _DataType *shared_data =
+
30 reinterpret_cast<_DataType *>(dpnp_memory_alloc_c(data_size_in_bytes));
+
31 copy(input_data.begin(), input_data.end(), shared_data);
+
32
+
33 return shared_data;
+
34}
+
Iterator for DPNPC_id type.
+
char * dpnp_memory_alloc_c(DPCTLSyclQueueRef q_ref, size_t size_in_bytes)
SYCL queue memory allocation.
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnp__utils_8hpp_source.html b/pull/2070/backend_doc/dpnp__utils_8hpp_source.html new file mode 100644 index 00000000000..89ed39a6e10 --- /dev/null +++ b/pull/2070/backend_doc/dpnp__utils_8hpp_source.html @@ -0,0 +1,473 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/dpnp_utils.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnp_utils.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27#ifndef BACKEND_UTILS_H // Cython compatibility
+
28#define BACKEND_UTILS_H
+
29
+
30#include <algorithm>
+
31#include <cassert>
+
32#include <complex>
+
33#include <iostream>
+
34#include <iterator>
+
35
+
36#include <sycl/sycl.hpp>
+
37
+
38#include <dpnp_iface_fptr.hpp>
+
39
+
40#define LIBSYCL_VERSION_GREATER(major, minor, patch) \
+
41 (__LIBSYCL_MAJOR_VERSION > major) || \
+
42 (__LIBSYCL_MAJOR_VERSION == major and \
+
43 __LIBSYCL_MINOR_VERSION > minor) || \
+
44 (__LIBSYCL_MAJOR_VERSION == major and \
+
45 __LIBSYCL_MINOR_VERSION == minor and \
+
46 __LIBSYCL_PATCH_VERSION >= patch)
+
47
+
52#ifndef __SYCL_COMPILER_VECTOR_ABS_CHANGED
+
53#define __SYCL_COMPILER_VECTOR_ABS_CHANGED 20230503L
+
54#endif
+
55
+
61#ifndef __SYCL_COMPILER_VERSION_REQUIRED
+
62#define __SYCL_COMPILER_VERSION_REQUIRED 20221102L
+
63#endif
+
64
+
68#ifndef __INTEL_MKL_2023_0_0_VERSION_REQUIRED
+
69#define __INTEL_MKL_2023_0_0_VERSION_REQUIRED 20230000
+
70#endif
+
71
+
78#ifndef __INTEL_MKL_2023_2_0_VERSION_REQUIRED
+
79#define __INTEL_MKL_2023_2_0_VERSION_REQUIRED 20230002L
+
80#endif
+
81
+
102template <typename _DataType>
+
+
103void get_shape_offsets_inkernel(const _DataType *shape,
+
104 size_t shape_size,
+
105 _DataType *offsets)
+
106{
+
107 size_t dim_prod_input = 1;
+
108 for (size_t i = 0; i < shape_size; ++i) {
+
109 long i_reverse = shape_size - 1 - i;
+
110 offsets[i_reverse] = dim_prod_input;
+
111 dim_prod_input *= shape[i_reverse];
+
112 }
+
113
+
114 return;
+
115}
+
+
116
+
131template <typename _DataType>
+
+
132void get_xyz_by_id(size_t idx,
+
133 size_t ndim,
+
134 const _DataType *offsets,
+
135 _DataType *xyz)
+
136{
+
137 size_t quotient;
+
138 size_t remainder = idx;
+
139
+
140 for (size_t i = 0; i < ndim; ++i) {
+
141 quotient = remainder / offsets[i];
+
142 remainder = remainder - quotient * offsets[i];
+
143 xyz[i] = quotient;
+
144 }
+
145 return;
+
146}
+
+
147
+
164template <typename _DataType>
+
+
165_DataType get_xyz_id_by_id_inkernel(size_t global_id,
+
166 const _DataType *offsets,
+
167 size_t offsets_size,
+
168 size_t axis)
+
169{
+
170 /* avoid warning unused variable*/
+
171 (void)offsets_size;
+
172
+
173 assert(axis < offsets_size);
+
174
+
175 _DataType xyz_id = 0;
+
176 long reminder = global_id;
+
177 for (size_t i = 0; i < axis + 1; ++i) {
+
178 const _DataType axis_val = offsets[i];
+
179 xyz_id = reminder / axis_val;
+
180 reminder = reminder % axis_val;
+
181 }
+
182
+
183 return xyz_id;
+
184}
+
+
185
+
199template <typename _DataType>
+
+
200size_t get_id_by_xyz_inkernel(const _DataType *xyz,
+
201 size_t xyz_size,
+
202 const _DataType *offsets)
+
203{
+
204 size_t global_id = 0;
+
205
+
206 /* calculate linear index based on reconstructed [x][y][z] */
+
207 for (size_t it = 0; it < xyz_size; ++it) {
+
208 global_id += (xyz[it] * offsets[it]);
+
209 }
+
210
+
211 return global_id;
+
212}
+
+
213
+
224static inline bool
+
225 broadcastable(const std::vector<shape_elem_type> &input_shape,
+
226 const std::vector<shape_elem_type> &output_shape)
+
227{
+
228 if (input_shape.size() > output_shape.size()) {
+
229 return false;
+
230 }
+
231
+
232 std::vector<shape_elem_type>::const_reverse_iterator irit =
+
233 input_shape.rbegin();
+
234 std::vector<shape_elem_type>::const_reverse_iterator orit =
+
235 output_shape.rbegin();
+
236 for (; irit != input_shape.rend(); ++irit, ++orit) {
+
237 if (*irit != 1 && *irit != *orit) {
+
238 return false;
+
239 }
+
240 }
+
241
+
242 return true;
+
243}
+
244
+
245static inline bool
+
246 broadcastable(const shape_elem_type *input_shape,
+
247 const size_t input_shape_size,
+
248 const std::vector<shape_elem_type> &output_shape)
+
249{
+
250 const std::vector<shape_elem_type> input_shape_vec(
+
251 input_shape, input_shape + input_shape_size);
+
252 return broadcastable(input_shape_vec, output_shape);
+
253}
+
254
+
266template <typename _DataType>
+
267static inline bool array_equal(const _DataType *input1,
+
268 const size_t input1_size,
+
269 const _DataType *input2,
+
270 const size_t input2_size)
+
271{
+
272 if (input1_size != input2_size)
+
273 return false;
+
274
+
275 const std::vector<_DataType> input1_vec(input1, input1 + input1_size);
+
276 const std::vector<_DataType> input2_vec(input2, input2 + input2_size);
+
277
+
278 return std::equal(std::begin(input1_vec), std::end(input1_vec),
+
279 std::begin(input2_vec));
+
280}
+
281
+
290namespace
+
291{
+
292[[maybe_unused]] std::vector<sycl::event>
+
293 cast_event_vector(const DPCTLEventVectorRef event_vec_ref)
+
294{
+
295 const size_t event_vec_size = DPCTLEventVector_Size(event_vec_ref);
+
296
+
297 std::vector<sycl::event> event_vec;
+
298 event_vec.reserve(event_vec_size);
+
299 for (size_t i = 0; i < event_vec_size; ++i) {
+
300 DPCTLSyclEventRef event_ref = DPCTLEventVector_GetAt(event_vec_ref, i);
+
301 sycl::event event = *(reinterpret_cast<sycl::event *>(event_ref));
+
302 event_vec.push_back(event);
+
303 }
+
304 return event_vec;
+
305}
+
306} // namespace
+
307
+
325template <typename _DataType>
+
326static inline std::vector<_DataType>
+
327 get_result_shape(const _DataType *input1_shape,
+
328 const size_t input1_shape_size,
+
329 const _DataType *input2_shape,
+
330 const size_t input2_shape_size)
+
331{
+
332 const size_t result_shape_size = (input2_shape_size > input1_shape_size)
+
333 ? input2_shape_size
+
334 : input1_shape_size;
+
335 std::vector<_DataType> result_shape;
+
336 result_shape.reserve(result_shape_size);
+
337
+
338 for (int irit1 = input1_shape_size - 1, irit2 = input2_shape_size - 1;
+
339 irit1 >= 0 || irit2 >= 0; --irit1, --irit2)
+
340 {
+
341 _DataType input1_val = (irit1 >= 0) ? input1_shape[irit1] : 1;
+
342 _DataType input2_val = (irit2 >= 0) ? input2_shape[irit2] : 1;
+
343
+
344 if (input1_val == input2_val || input1_val == 1) {
+
345 result_shape.insert(result_shape.begin(), input2_val);
+
346 }
+
347 else if (input2_val == 1) {
+
348 result_shape.insert(result_shape.begin(), input1_val);
+
349 }
+
350 else {
+
351 throw std::domain_error("DPNP Error: get_common_shape() failed "
+
352 "with input shapes check");
+
353 }
+
354 }
+
355
+
356 return result_shape;
+
357}
+
358
+
378static inline std::vector<shape_elem_type>
+
379 get_validated_axes(const std::vector<shape_elem_type> &__axes,
+
380 const size_t __shape_size,
+
381 const bool __allow_duplicate = false)
+
382{
+
383 std::vector<shape_elem_type> result;
+
384
+
385 if (__axes.empty()) {
+
386 goto out;
+
387 }
+
388
+
389 if (__axes.size() > __shape_size) {
+
390 goto err;
+
391 }
+
392
+
393 result.reserve(__axes.size());
+
394 for (std::vector<shape_elem_type>::const_iterator it = __axes.cbegin();
+
395 it != __axes.cend(); ++it)
+
396 {
+
397 const shape_elem_type _axis = *it;
+
398 const shape_elem_type input_shape_size_signed =
+
399 static_cast<shape_elem_type>(__shape_size);
+
400 if (_axis >= input_shape_size_signed) { // positive axis range check
+
401 goto err;
+
402 }
+
403
+
404 if (_axis < -input_shape_size_signed) { // negative axis range check
+
405 goto err;
+
406 }
+
407
+
408 const shape_elem_type positive_axis =
+
409 _axis < 0 ? (_axis + input_shape_size_signed) : _axis;
+
410
+
411 if (!__allow_duplicate) {
+
412 if (std::find(result.begin(), result.end(), positive_axis) !=
+
413 result.end()) { // find axis duplication
+
414 goto err;
+
415 }
+
416 }
+
417
+
418 result.push_back(positive_axis);
+
419 }
+
420
+
421out:
+
422 return result;
+
423
+
424err:
+
425 // TODO exception if wrong axis? need common function for throwing
+
426 // exceptions
+
427 throw std::range_error(
+
428 "DPNP Error: validate_axes() failed with axis check");
+
429}
+
430
+
441template <typename T>
+
442static inline void validate_type_for_device(const sycl::device &d)
+
443{
+
444 if constexpr (std::is_same_v<T, double>) {
+
445 if (!d.has(sycl::aspect::fp64)) {
+
446 throw std::runtime_error("Device " +
+
447 d.get_info<sycl::info::device::name>() +
+
448 " does not support type 'double'");
+
449 }
+
450 }
+
451 else if constexpr (std::is_same_v<T, std::complex<double>>) {
+
452 if (!d.has(sycl::aspect::fp64)) {
+
453 throw std::runtime_error(
+
454 "Device " + d.get_info<sycl::info::device::name>() +
+
455 " does not support type 'complex<double>'");
+
456 }
+
457 }
+
458 else if constexpr (std::is_same_v<T, sycl::half>) {
+
459 if (!d.has(sycl::aspect::fp16)) {
+
460 throw std::runtime_error("Device " +
+
461 d.get_info<sycl::info::device::name>() +
+
462 " does not support type 'half'");
+
463 }
+
464 }
+
465}
+
466
+
477template <typename T>
+
478static inline void validate_type_for_device(const sycl::queue &q)
+
479{
+
480 validate_type_for_device<T>(q.get_device());
+
481}
+
482
+
491template <typename T>
+
+
492std::ostream &operator<<(std::ostream &out, const std::vector<T> &vec)
+
493{
+
494 std::string delimiter;
+
495 out << "{";
+
496 // std::copy(vec.begin(), vec.end(), std::ostream_iterator<T>(out, ", "));
+
497 // out << "\b\b}"; // last two 'backspaces' needs to eliminate last
+
498 // delimiter. ex: {2, 3, 4, }
+
499 for (auto &elem : vec) {
+
500 out << delimiter << elem;
+
501 if (delimiter.empty()) {
+
502 delimiter.assign(", ");
+
503 }
+
504 }
+
505 out << "}";
+
506
+
507 return out;
+
508}
+
+
509
+
519template <typename T>
+
+
520std::ostream &operator<<(std::ostream &out, DPNPFuncType elem)
+
521{
+
522 out << static_cast<size_t>(elem);
+
523
+
524 return out;
+
525}
+
+
526
+
527#endif // BACKEND_UTILS_H
+
DPNPFuncType
Template types which are used in this interface.
+
size_t get_id_by_xyz_inkernel(const _DataType *xyz, size_t xyz_size, const _DataType *offsets)
Calculate linear index from ids array.
+
std::ostream & operator<<(std::ostream &out, const std::vector< T > &vec)
print std::vector to std::ostream.
+
void get_shape_offsets_inkernel(const _DataType *shape, size_t shape_size, _DataType *offsets)
Shape offset calculation used in kernels.
+
void get_xyz_by_id(size_t idx, size_t ndim, const _DataType *offsets, _DataType *xyz)
Calculation of indices in array.
+
_DataType get_xyz_id_by_id_inkernel(size_t global_id, const _DataType *offsets, size_t offsets_size, size_t axis)
Calculate xyz id for given axis from linear index.
+
+
+ + + + diff --git a/pull/2070/backend_doc/dpnpc__memory__adapter_8hpp_source.html b/pull/2070/backend_doc/dpnpc__memory__adapter_8hpp_source.html new file mode 100644 index 00000000000..5ac10989ec4 --- /dev/null +++ b/pull/2070/backend_doc/dpnpc__memory__adapter_8hpp_source.html @@ -0,0 +1,278 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/dpnpc_memory_adapter.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dpnpc_memory_adapter.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2016-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27#ifndef DPNP_MEMORY_ADAPTER_H // Cython compatibility
+
28#define DPNP_MEMORY_ADAPTER_H
+
29
+
30#include "dpnp_utils.hpp"
+
31#include "queue_sycl.hpp"
+
32
+
44template <typename _DataType>
+
+ +
46{
+
47 DPCTLSyclQueueRef queue_ref;
+
48 sycl::queue queue;
+
49 void *aux_ptr = nullptr;
+
50 void *orig_ptr =
+
51 nullptr;
+
52 size_t size_in_bytes = 0;
+
53 bool allocated = false;
+
55 bool target_no_queue = false;
+
57 bool copy_back = false;
+
59 const bool verbose = false;
+
60 std::vector<sycl::event> deps;
+
61
+
62public:
+
63 DPNPC_ptr_adapter() = delete;
+
64
+
65 DPNPC_ptr_adapter(DPCTLSyclQueueRef q_ref,
+
66 const void *src_ptr,
+
67 const size_t size,
+
68 bool target_no_sycl = false,
+
69 bool copy_back_request = false)
+
70 {
+
71 queue_ref = q_ref;
+
72 queue = *(reinterpret_cast<sycl::queue *>(queue_ref));
+
73 target_no_queue = target_no_sycl;
+
74 copy_back = copy_back_request;
+
75 orig_ptr = const_cast<void *>(src_ptr);
+
76 size_in_bytes = size * sizeof(_DataType);
+
77 deps = std::vector<sycl::event>{};
+
78
+
79 // enum class alloc { host = 0, device = 1, shared = 2, unknown = 3 };
+
80 sycl::usm::alloc src_ptr_type = sycl::usm::alloc::unknown;
+
81 src_ptr_type = sycl::get_pointer_type(src_ptr, queue.get_context());
+
82 if (verbose) {
+
83 std::cerr << "DPNPC_ptr_converter:";
+
84 std::cerr << "\n\t target_no_queue=" << target_no_queue;
+
85 std::cerr << "\n\t copy_back=" << copy_back;
+
86 std::cerr << "\n\t pointer=" << src_ptr;
+
87 std::cerr << "\n\t size=" << size;
+
88 std::cerr << "\n\t size_in_bytes=" << size_in_bytes;
+
89 std::cerr << "\n\t pointer type=" << (long)src_ptr_type;
+
90 std::cerr << "\n\t queue inorder=" << queue.is_in_order();
+
91 std::cerr << "\n\t queue device is_cpu="
+
92 << queue.get_device().is_cpu();
+
93 std::cerr << "\n\t queue device is_gpu="
+
94 << queue.get_device().is_gpu();
+
95 std::cerr << "\n\t queue device is_accelerator="
+
96 << queue.get_device().is_accelerator();
+
97 std::cerr << std::endl;
+
98 }
+
99
+
100 if (is_memcpy_required(src_ptr_type)) {
+
101 aux_ptr = dpnp_memory_alloc_c(queue_ref, size_in_bytes);
+
102 dpnp_memory_memcpy_c(queue_ref, aux_ptr, src_ptr, size_in_bytes);
+
103 allocated = true;
+
104 if (verbose) {
+
105 std::cerr << "DPNPC_ptr_converter::alloc and copy memory"
+
106 << " from=" << src_ptr << " to=" << aux_ptr
+
107 << " size_in_bytes=" << size_in_bytes << std::endl;
+
108 }
+
109 }
+
110 else {
+
111 aux_ptr = const_cast<void *>(src_ptr);
+
112 }
+
113 }
+
114
+ +
116 {
+
117 if (allocated) {
+
118 if (verbose) {
+
119 std::cerr << "DPNPC_ptr_converter::free_memory at=" << aux_ptr
+
120 << std::endl;
+
121 }
+
122
+
123 sycl::event::wait(deps);
+
124
+
125 if (copy_back) {
+
126 copy_data_back();
+
127 }
+
128
+
129 dpnp_memory_free_c(queue_ref, aux_ptr);
+
130 }
+
131 }
+
132
+
133 bool is_memcpy_required(sycl::usm::alloc src_ptr_type)
+
134 {
+
135 if (target_no_queue || queue.get_device().is_gpu()) {
+
136 if (src_ptr_type == sycl::usm::alloc::unknown) {
+
137 return true;
+
138 }
+
139 else if (target_no_queue &&
+
140 src_ptr_type == sycl::usm::alloc::device) {
+
141 return true;
+
142 }
+
143 }
+
144
+
145 return false;
+
146 }
+
147
+
148 _DataType *get_ptr() const
+
149 {
+
150 return reinterpret_cast<_DataType *>(aux_ptr);
+
151 }
+
152
+
153 void copy_data_back() const
+
154 {
+
155 if (verbose) {
+
156 std::cerr << "DPNPC_ptr_converter::copy_data_back:"
+
157 << " from=" << aux_ptr << " to=" << orig_ptr
+
158 << " size_in_bytes=" << size_in_bytes << std::endl;
+
159 }
+
160
+
161 dpnp_memory_memcpy_c(queue_ref, orig_ptr, aux_ptr, size_in_bytes);
+
162 }
+
163
+
164 void depends_on(const std::vector<sycl::event> &new_deps)
+
165 {
+
166 assert(allocated);
+
167 deps.insert(std::end(deps), std::begin(new_deps), std::end(new_deps));
+
168 }
+
169
+
170 void depends_on(const sycl::event &new_dep)
+
171 {
+
172 assert(allocated);
+
173 deps.push_back(new_dep);
+
174 }
+
175};
+
+
176
+
177#endif // DPNP_MEMORY_ADAPTER_H
+
Adapter for the memory given by parameters in the DPNPC functions.
+
char * dpnp_memory_alloc_c(DPCTLSyclQueueRef q_ref, size_t size_in_bytes)
SYCL queue memory allocation.
+
+
+ + + + diff --git a/pull/2070/backend_doc/dynsections.js b/pull/2070/backend_doc/dynsections.js new file mode 100644 index 00000000000..9b281563f94 --- /dev/null +++ b/pull/2070/backend_doc/dynsections.js @@ -0,0 +1,199 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + var id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + var start = $(this).attr('data-start'); + var end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + var line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); +} + +/* @license-end */ +$(document).ready(function() { + $('.code,.codeRef').each(function() { + $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html()); + $.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ]; + $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true }); + }); +}); diff --git a/pull/2070/backend_doc/elementwise__functions_8hpp_source.html b/pull/2070/backend_doc/elementwise__functions_8hpp_source.html new file mode 100644 index 00000000000..c9bf12cfea4 --- /dev/null +++ b/pull/2070/backend_doc/elementwise__functions_8hpp_source.html @@ -0,0 +1,933 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/elementwise_functions/elementwise_functions.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
elementwise_functions.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30#include "dpctl4pybind11.hpp"
+
31#include <pybind11/numpy.h>
+
32#include <pybind11/pybind11.h>
+
33#include <pybind11/stl.h>
+
34
+
35#include "elementwise_functions_type_utils.hpp"
+
36#include "simplify_iteration_space.hpp"
+
37
+
38// dpctl tensor headers
+
39#include "kernels/alignment.hpp"
+
40// #include "kernels/dpctl_tensor_types.hpp"
+
41#include "utils/memory_overlap.hpp"
+
42#include "utils/offset_utils.hpp"
+
43#include "utils/output_validation.hpp"
+
44#include "utils/sycl_alloc_utils.hpp"
+
45#include "utils/type_dispatch.hpp"
+
46
+
47namespace py = pybind11;
+
48namespace td_ns = dpctl::tensor::type_dispatch;
+
49
+
50static_assert(std::is_same_v<py::ssize_t, dpctl::tensor::ssize_t>);
+
51
+
52namespace dpnp::extensions::py_internal
+
53{
+
54
+
55using dpctl::tensor::kernels::alignment_utils::is_aligned;
+
56using dpctl::tensor::kernels::alignment_utils::required_alignment;
+
57
+
59template <typename output_typesT,
+
60 typename contig_dispatchT,
+
61 typename strided_dispatchT>
+
62std::pair<sycl::event, sycl::event>
+
63 py_unary_ufunc(const dpctl::tensor::usm_ndarray &src,
+
64 const dpctl::tensor::usm_ndarray &dst,
+
65 sycl::queue &q,
+
66 const std::vector<sycl::event> &depends,
+
67 //
+
68 const output_typesT &output_type_vec,
+
69 const contig_dispatchT &contig_dispatch_vector,
+
70 const strided_dispatchT &strided_dispatch_vector)
+
71{
+
72 int src_typenum = src.get_typenum();
+
73 int dst_typenum = dst.get_typenum();
+
74
+
75 const auto &array_types = td_ns::usm_ndarray_types();
+
76 int src_typeid = array_types.typenum_to_lookup_id(src_typenum);
+
77 int dst_typeid = array_types.typenum_to_lookup_id(dst_typenum);
+
78
+
79 int func_output_typeid = output_type_vec[src_typeid];
+
80
+
81 // check that types are supported
+
82 if (dst_typeid != func_output_typeid) {
+
83 throw py::value_error(
+
84 "Destination array has unexpected elemental data type.");
+
85 }
+
86
+
87 // check that queues are compatible
+
88 if (!dpctl::utils::queues_are_compatible(q, {src, dst})) {
+
89 throw py::value_error(
+
90 "Execution queue is not compatible with allocation queues");
+
91 }
+
92
+
93 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(dst);
+
94
+
95 // check that dimensions are the same
+
96 int src_nd = src.get_ndim();
+
97 if (src_nd != dst.get_ndim()) {
+
98 throw py::value_error("Array dimensions are not the same.");
+
99 }
+
100
+
101 // check that shapes are the same
+
102 const py::ssize_t *src_shape = src.get_shape_raw();
+
103 const py::ssize_t *dst_shape = dst.get_shape_raw();
+
104 bool shapes_equal(true);
+
105 size_t src_nelems(1);
+
106
+
107 for (int i = 0; i < src_nd; ++i) {
+
108 src_nelems *= static_cast<size_t>(src_shape[i]);
+
109 shapes_equal = shapes_equal && (src_shape[i] == dst_shape[i]);
+
110 }
+
111 if (!shapes_equal) {
+
112 throw py::value_error("Array shapes are not the same.");
+
113 }
+
114
+
115 // if nelems is zero, return
+
116 if (src_nelems == 0) {
+
117 return std::make_pair(sycl::event(), sycl::event());
+
118 }
+
119
+
120 dpctl::tensor::validation::AmpleMemory::throw_if_not_ample(dst, src_nelems);
+
121
+
122 // check memory overlap
+
123 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
+
124 auto const &same_logical_tensors =
+
125 dpctl::tensor::overlap::SameLogicalTensors();
+
126 if (overlap(src, dst) && !same_logical_tensors(src, dst)) {
+
127 throw py::value_error("Arrays index overlapping segments of memory");
+
128 }
+
129
+
130 const char *src_data = src.get_data();
+
131 char *dst_data = dst.get_data();
+
132
+
133 // handle contiguous inputs
+
134 bool is_src_c_contig = src.is_c_contiguous();
+
135 bool is_src_f_contig = src.is_f_contiguous();
+
136
+
137 bool is_dst_c_contig = dst.is_c_contiguous();
+
138 bool is_dst_f_contig = dst.is_f_contiguous();
+
139
+
140 bool both_c_contig = (is_src_c_contig && is_dst_c_contig);
+
141 bool both_f_contig = (is_src_f_contig && is_dst_f_contig);
+
142
+
143 if (both_c_contig || both_f_contig) {
+
144 auto contig_fn = contig_dispatch_vector[src_typeid];
+
145
+
146 if (contig_fn == nullptr) {
+
147 throw std::runtime_error(
+
148 "Contiguous implementation is missing for src_typeid=" +
+
149 std::to_string(src_typeid));
+
150 }
+
151
+
152 auto comp_ev = contig_fn(q, src_nelems, src_data, dst_data, depends);
+
153 sycl::event ht_ev =
+
154 dpctl::utils::keep_args_alive(q, {src, dst}, {comp_ev});
+
155
+
156 return std::make_pair(ht_ev, comp_ev);
+
157 }
+
158
+
159 // simplify iteration space
+
160 // if 1d with strides 1 - input is contig
+
161 // dispatch to strided
+
162
+
163 auto const &src_strides = src.get_strides_vector();
+
164 auto const &dst_strides = dst.get_strides_vector();
+
165
+
166 using shT = std::vector<py::ssize_t>;
+
167 shT simplified_shape;
+
168 shT simplified_src_strides;
+
169 shT simplified_dst_strides;
+
170 py::ssize_t src_offset(0);
+
171 py::ssize_t dst_offset(0);
+
172
+
173 int nd = src_nd;
+
174 const py::ssize_t *shape = src_shape;
+
175
+
176 simplify_iteration_space(nd, shape, src_strides, dst_strides,
+
177 // output
+
178 simplified_shape, simplified_src_strides,
+
179 simplified_dst_strides, src_offset, dst_offset);
+
180
+
181 if (nd == 1 && simplified_src_strides[0] == 1 &&
+
182 simplified_dst_strides[0] == 1) {
+
183 // Special case of contiguous data
+
184 auto contig_fn = contig_dispatch_vector[src_typeid];
+
185
+
186 if (contig_fn == nullptr) {
+
187 throw std::runtime_error(
+
188 "Contiguous implementation is missing for src_typeid=" +
+
189 std::to_string(src_typeid));
+
190 }
+
191
+
192 int src_elem_size = src.get_elemsize();
+
193 int dst_elem_size = dst.get_elemsize();
+
194 auto comp_ev =
+
195 contig_fn(q, src_nelems, src_data + src_elem_size * src_offset,
+
196 dst_data + dst_elem_size * dst_offset, depends);
+
197
+
198 sycl::event ht_ev =
+
199 dpctl::utils::keep_args_alive(q, {src, dst}, {comp_ev});
+
200
+
201 return std::make_pair(ht_ev, comp_ev);
+
202 }
+
203
+
204 // Strided implementation
+
205 auto strided_fn = strided_dispatch_vector[src_typeid];
+
206
+
207 if (strided_fn == nullptr) {
+
208 throw std::runtime_error(
+
209 "Strided implementation is missing for src_typeid=" +
+
210 std::to_string(src_typeid));
+
211 }
+
212
+
213 using dpctl::tensor::offset_utils::device_allocate_and_pack;
+
214
+
215 std::vector<sycl::event> host_tasks{};
+
216 host_tasks.reserve(2);
+
217
+
218 const auto &ptr_size_event_triple_ = device_allocate_and_pack<py::ssize_t>(
+
219 q, host_tasks, simplified_shape, simplified_src_strides,
+
220 simplified_dst_strides);
+
221 py::ssize_t *shape_strides = std::get<0>(ptr_size_event_triple_);
+
222 const sycl::event &copy_shape_ev = std::get<2>(ptr_size_event_triple_);
+
223
+
224 if (shape_strides == nullptr) {
+
225 throw std::runtime_error("Device memory allocation failed");
+
226 }
+
227
+
228 sycl::event strided_fn_ev =
+
229 strided_fn(q, src_nelems, nd, shape_strides, src_data, src_offset,
+
230 dst_data, dst_offset, depends, {copy_shape_ev});
+
231
+
232 // async free of shape_strides temporary
+
233 auto ctx = q.get_context();
+
234 sycl::event tmp_cleanup_ev = q.submit([&](sycl::handler &cgh) {
+
235 cgh.depends_on(strided_fn_ev);
+
236 using dpctl::tensor::alloc_utils::sycl_free_noexcept;
+
237 cgh.host_task(
+
238 [ctx, shape_strides]() { sycl_free_noexcept(shape_strides, ctx); });
+
239 });
+
240 host_tasks.push_back(tmp_cleanup_ev);
+
241
+
242 return std::make_pair(
+
243 dpctl::utils::keep_args_alive(q, {src, dst}, host_tasks),
+
244 strided_fn_ev);
+
245}
+
246
+
249template <typename output_typesT>
+
250py::object py_unary_ufunc_result_type(const py::dtype &input_dtype,
+
251 const output_typesT &output_types)
+
252{
+
253 int tn = input_dtype.num(); // NumPy type numbers are the same as in dpctl
+
254 int src_typeid = -1;
+
255
+
256 auto array_types = td_ns::usm_ndarray_types();
+
257
+
258 try {
+
259 src_typeid = array_types.typenum_to_lookup_id(tn);
+
260 } catch (const std::exception &e) {
+
261 throw py::value_error(e.what());
+
262 }
+
263
+
264 using type_utils::_result_typeid;
+
265 int dst_typeid = _result_typeid(src_typeid, output_types);
+
266
+
267 if (dst_typeid < 0) {
+
268 auto res = py::none();
+
269 return py::cast<py::object>(res);
+
270 }
+
271 else {
+
272 using type_utils::_dtype_from_typenum;
+
273
+
274 auto dst_typenum_t = static_cast<td_ns::typenum_t>(dst_typeid);
+
275 auto dt = _dtype_from_typenum(dst_typenum_t);
+
276
+
277 return py::cast<py::object>(dt);
+
278 }
+
279}
+
280
+
281// ======================== Binary functions ===========================
+
282
+
283namespace
+
284{
+
285template <class Container, class T>
+
286bool isEqual(Container const &c, std::initializer_list<T> const &l)
+
287{
+
288 return std::equal(std::begin(c), std::end(c), std::begin(l), std::end(l));
+
289}
+
290} // namespace
+
291
+
294template <typename output_typesT,
+
295 typename contig_dispatchT,
+
296 typename strided_dispatchT,
+
297 typename contig_matrix_row_dispatchT,
+
298 typename contig_row_matrix_dispatchT>
+
299std::pair<sycl::event, sycl::event> py_binary_ufunc(
+
300 const dpctl::tensor::usm_ndarray &src1,
+
301 const dpctl::tensor::usm_ndarray &src2,
+
302 const dpctl::tensor::usm_ndarray &dst, // dst = op(src1, src2), elementwise
+
303 sycl::queue &exec_q,
+
304 const std::vector<sycl::event> depends,
+
305 //
+
306 const output_typesT &output_type_table,
+
307 const contig_dispatchT &contig_dispatch_table,
+
308 const strided_dispatchT &strided_dispatch_table,
+
309 const contig_matrix_row_dispatchT
+
310 &contig_matrix_row_broadcast_dispatch_table,
+
311 const contig_row_matrix_dispatchT
+
312 &contig_row_matrix_broadcast_dispatch_table)
+
313{
+
314 // check type_nums
+
315 int src1_typenum = src1.get_typenum();
+
316 int src2_typenum = src2.get_typenum();
+
317 int dst_typenum = dst.get_typenum();
+
318
+
319 auto array_types = td_ns::usm_ndarray_types();
+
320 int src1_typeid = array_types.typenum_to_lookup_id(src1_typenum);
+
321 int src2_typeid = array_types.typenum_to_lookup_id(src2_typenum);
+
322 int dst_typeid = array_types.typenum_to_lookup_id(dst_typenum);
+
323
+
324 int output_typeid = output_type_table[src1_typeid][src2_typeid];
+
325
+
326 if (output_typeid != dst_typeid) {
+
327 throw py::value_error(
+
328 "Destination array has unexpected elemental data type.");
+
329 }
+
330
+
331 // check that queues are compatible
+
332 if (!dpctl::utils::queues_are_compatible(exec_q, {src1, src2, dst})) {
+
333 throw py::value_error(
+
334 "Execution queue is not compatible with allocation queues");
+
335 }
+
336
+
337 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(dst);
+
338
+
339 // check shapes, broadcasting is assumed done by caller
+
340 // check that dimensions are the same
+
341 int dst_nd = dst.get_ndim();
+
342 if (dst_nd != src1.get_ndim() || dst_nd != src2.get_ndim()) {
+
343 throw py::value_error("Array dimensions are not the same.");
+
344 }
+
345
+
346 // check that shapes are the same
+
347 const py::ssize_t *src1_shape = src1.get_shape_raw();
+
348 const py::ssize_t *src2_shape = src2.get_shape_raw();
+
349 const py::ssize_t *dst_shape = dst.get_shape_raw();
+
350 bool shapes_equal(true);
+
351 size_t src_nelems(1);
+
352
+
353 for (int i = 0; i < dst_nd; ++i) {
+
354 src_nelems *= static_cast<size_t>(src1_shape[i]);
+
355 shapes_equal = shapes_equal && (src1_shape[i] == dst_shape[i] &&
+
356 src2_shape[i] == dst_shape[i]);
+
357 }
+
358 if (!shapes_equal) {
+
359 throw py::value_error("Array shapes are not the same.");
+
360 }
+
361
+
362 // if nelems is zero, return
+
363 if (src_nelems == 0) {
+
364 return std::make_pair(sycl::event(), sycl::event());
+
365 }
+
366
+
367 dpctl::tensor::validation::AmpleMemory::throw_if_not_ample(dst, src_nelems);
+
368
+
369 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
+
370 auto const &same_logical_tensors =
+
371 dpctl::tensor::overlap::SameLogicalTensors();
+
372 if ((overlap(src1, dst) && !same_logical_tensors(src1, dst)) ||
+
373 (overlap(src2, dst) && !same_logical_tensors(src2, dst)))
+
374 {
+
375 throw py::value_error("Arrays index overlapping segments of memory");
+
376 }
+
377 // check memory overlap
+
378 const char *src1_data = src1.get_data();
+
379 const char *src2_data = src2.get_data();
+
380 char *dst_data = dst.get_data();
+
381
+
382 // handle contiguous inputs
+
383 bool is_src1_c_contig = src1.is_c_contiguous();
+
384 bool is_src1_f_contig = src1.is_f_contiguous();
+
385
+
386 bool is_src2_c_contig = src2.is_c_contiguous();
+
387 bool is_src2_f_contig = src2.is_f_contiguous();
+
388
+
389 bool is_dst_c_contig = dst.is_c_contiguous();
+
390 bool is_dst_f_contig = dst.is_f_contiguous();
+
391
+
392 bool all_c_contig =
+
393 (is_src1_c_contig && is_src2_c_contig && is_dst_c_contig);
+
394 bool all_f_contig =
+
395 (is_src1_f_contig && is_src2_f_contig && is_dst_f_contig);
+
396
+
397 // dispatch for contiguous inputs
+
398 if (all_c_contig || all_f_contig) {
+
399 auto contig_fn = contig_dispatch_table[src1_typeid][src2_typeid];
+
400
+
401 if (contig_fn != nullptr) {
+
402 auto comp_ev = contig_fn(exec_q, src_nelems, src1_data, 0,
+
403 src2_data, 0, dst_data, 0, depends);
+
404 sycl::event ht_ev = dpctl::utils::keep_args_alive(
+
405 exec_q, {src1, src2, dst}, {comp_ev});
+
406
+
407 return std::make_pair(ht_ev, comp_ev);
+
408 }
+
409 }
+
410
+
411 // simplify strides
+
412 auto const &src1_strides = src1.get_strides_vector();
+
413 auto const &src2_strides = src2.get_strides_vector();
+
414 auto const &dst_strides = dst.get_strides_vector();
+
415
+
416 using shT = std::vector<py::ssize_t>;
+
417 shT simplified_shape;
+
418 shT simplified_src1_strides;
+
419 shT simplified_src2_strides;
+
420 shT simplified_dst_strides;
+
421 py::ssize_t src1_offset(0);
+
422 py::ssize_t src2_offset(0);
+
423 py::ssize_t dst_offset(0);
+
424
+
425 int nd = dst_nd;
+
426 const py::ssize_t *shape = src1_shape;
+
427
+
428 simplify_iteration_space_3(
+
429 nd, shape, src1_strides, src2_strides, dst_strides,
+
430 // outputs
+
431 simplified_shape, simplified_src1_strides, simplified_src2_strides,
+
432 simplified_dst_strides, src1_offset, src2_offset, dst_offset);
+
433
+
434 std::vector<sycl::event> host_tasks{};
+
435 if (nd < 3) {
+
436 static constexpr auto unit_stride =
+
437 std::initializer_list<py::ssize_t>{1};
+
438
+
439 if ((nd == 1) && isEqual(simplified_src1_strides, unit_stride) &&
+
440 isEqual(simplified_src2_strides, unit_stride) &&
+
441 isEqual(simplified_dst_strides, unit_stride))
+
442 {
+
443 auto contig_fn = contig_dispatch_table[src1_typeid][src2_typeid];
+
444
+
445 if (contig_fn != nullptr) {
+
446 auto comp_ev = contig_fn(exec_q, src_nelems, src1_data,
+
447 src1_offset, src2_data, src2_offset,
+
448 dst_data, dst_offset, depends);
+
449 sycl::event ht_ev = dpctl::utils::keep_args_alive(
+
450 exec_q, {src1, src2, dst}, {comp_ev});
+
451
+
452 return std::make_pair(ht_ev, comp_ev);
+
453 }
+
454 }
+
455 if (nd == 2) {
+
456 static constexpr auto zero_one_strides =
+
457 std::initializer_list<py::ssize_t>{0, 1};
+
458 static constexpr auto one_zero_strides =
+
459 std::initializer_list<py::ssize_t>{1, 0};
+
460 constexpr py::ssize_t one{1};
+
461 // special case of C-contiguous matrix and a row
+
462 if (isEqual(simplified_src2_strides, zero_one_strides) &&
+
463 isEqual(simplified_src1_strides, {simplified_shape[1], one}) &&
+
464 isEqual(simplified_dst_strides, {simplified_shape[1], one}))
+
465 {
+
466 auto matrix_row_broadcast_fn =
+
467 contig_matrix_row_broadcast_dispatch_table[src1_typeid]
+
468 [src2_typeid];
+
469 if (matrix_row_broadcast_fn != nullptr) {
+
470 int src1_itemsize = src1.get_elemsize();
+
471 int src2_itemsize = src2.get_elemsize();
+
472 int dst_itemsize = dst.get_elemsize();
+
473
+
474 if (is_aligned<required_alignment>(
+
475 src1_data + src1_offset * src1_itemsize) &&
+
476 is_aligned<required_alignment>(
+
477 src2_data + src2_offset * src2_itemsize) &&
+
478 is_aligned<required_alignment>(
+
479 dst_data + dst_offset * dst_itemsize))
+
480 {
+
481 size_t n0 = simplified_shape[0];
+
482 size_t n1 = simplified_shape[1];
+
483 sycl::event comp_ev = matrix_row_broadcast_fn(
+
484 exec_q, host_tasks, n0, n1, src1_data, src1_offset,
+
485 src2_data, src2_offset, dst_data, dst_offset,
+
486 depends);
+
487
+
488 return std::make_pair(
+
489 dpctl::utils::keep_args_alive(
+
490 exec_q, {src1, src2, dst}, host_tasks),
+
491 comp_ev);
+
492 }
+
493 }
+
494 }
+
495 if (isEqual(simplified_src1_strides, one_zero_strides) &&
+
496 isEqual(simplified_src2_strides, {one, simplified_shape[0]}) &&
+
497 isEqual(simplified_dst_strides, {one, simplified_shape[0]}))
+
498 {
+
499 auto row_matrix_broadcast_fn =
+
500 contig_row_matrix_broadcast_dispatch_table[src1_typeid]
+
501 [src2_typeid];
+
502 if (row_matrix_broadcast_fn != nullptr) {
+
503
+
504 int src1_itemsize = src1.get_elemsize();
+
505 int src2_itemsize = src2.get_elemsize();
+
506 int dst_itemsize = dst.get_elemsize();
+
507
+
508 if (is_aligned<required_alignment>(
+
509 src1_data + src1_offset * src1_itemsize) &&
+
510 is_aligned<required_alignment>(
+
511 src2_data + src2_offset * src2_itemsize) &&
+
512 is_aligned<required_alignment>(
+
513 dst_data + dst_offset * dst_itemsize))
+
514 {
+
515 size_t n0 = simplified_shape[1];
+
516 size_t n1 = simplified_shape[0];
+
517 sycl::event comp_ev = row_matrix_broadcast_fn(
+
518 exec_q, host_tasks, n0, n1, src1_data, src1_offset,
+
519 src2_data, src2_offset, dst_data, dst_offset,
+
520 depends);
+
521
+
522 return std::make_pair(
+
523 dpctl::utils::keep_args_alive(
+
524 exec_q, {src1, src2, dst}, host_tasks),
+
525 comp_ev);
+
526 }
+
527 }
+
528 }
+
529 }
+
530 }
+
531
+
532 // dispatch to strided code
+
533 auto strided_fn = strided_dispatch_table[src1_typeid][src2_typeid];
+
534
+
535 if (strided_fn == nullptr) {
+
536 throw std::runtime_error(
+
537 "Strided implementation is missing for src1_typeid=" +
+
538 std::to_string(src1_typeid) +
+
539 " and src2_typeid=" + std::to_string(src2_typeid));
+
540 }
+
541
+
542 using dpctl::tensor::offset_utils::device_allocate_and_pack;
+
543 const auto &ptr_sz_event_triple_ = device_allocate_and_pack<py::ssize_t>(
+
544 exec_q, host_tasks, simplified_shape, simplified_src1_strides,
+
545 simplified_src2_strides, simplified_dst_strides);
+
546
+
547 py::ssize_t *shape_strides = std::get<0>(ptr_sz_event_triple_);
+
548 const sycl::event &copy_shape_ev = std::get<2>(ptr_sz_event_triple_);
+
549
+
550 if (shape_strides == nullptr) {
+
551 throw std::runtime_error("Unable to allocate device memory");
+
552 }
+
553
+
554 sycl::event strided_fn_ev = strided_fn(
+
555 exec_q, src_nelems, nd, shape_strides, src1_data, src1_offset,
+
556 src2_data, src2_offset, dst_data, dst_offset, depends, {copy_shape_ev});
+
557
+
558 // async free of shape_strides temporary
+
559 auto ctx = exec_q.get_context();
+
560
+
561 sycl::event tmp_cleanup_ev = exec_q.submit([&](sycl::handler &cgh) {
+
562 cgh.depends_on(strided_fn_ev);
+
563 using dpctl::tensor::alloc_utils::sycl_free_noexcept;
+
564 cgh.host_task(
+
565 [ctx, shape_strides]() { sycl_free_noexcept(shape_strides, ctx); });
+
566 });
+
567
+
568 host_tasks.push_back(tmp_cleanup_ev);
+
569
+
570 return std::make_pair(
+
571 dpctl::utils::keep_args_alive(exec_q, {src1, src2, dst}, host_tasks),
+
572 strided_fn_ev);
+
573}
+
574
+
576template <typename output_typesT>
+
577py::object py_binary_ufunc_result_type(const py::dtype &input1_dtype,
+
578 const py::dtype &input2_dtype,
+
579 const output_typesT &output_types_table)
+
580{
+
581 int tn1 = input1_dtype.num(); // NumPy type numbers are the same as in dpctl
+
582 int tn2 = input2_dtype.num(); // NumPy type numbers are the same as in dpctl
+
583 int src1_typeid = -1;
+
584 int src2_typeid = -1;
+
585
+
586 auto array_types = td_ns::usm_ndarray_types();
+
587
+
588 try {
+
589 src1_typeid = array_types.typenum_to_lookup_id(tn1);
+
590 src2_typeid = array_types.typenum_to_lookup_id(tn2);
+
591 } catch (const std::exception &e) {
+
592 throw py::value_error(e.what());
+
593 }
+
594
+
595 if (src1_typeid < 0 || src1_typeid >= td_ns::num_types || src2_typeid < 0 ||
+
596 src2_typeid >= td_ns::num_types)
+
597 {
+
598 throw std::runtime_error("binary output type lookup failed");
+
599 }
+
600 int dst_typeid = output_types_table[src1_typeid][src2_typeid];
+
601
+
602 if (dst_typeid < 0) {
+
603 auto res = py::none();
+
604 return py::cast<py::object>(res);
+
605 }
+
606 else {
+
607 using type_utils::_dtype_from_typenum;
+
608
+
609 auto dst_typenum_t = static_cast<td_ns::typenum_t>(dst_typeid);
+
610 auto dt = _dtype_from_typenum(dst_typenum_t);
+
611
+
612 return py::cast<py::object>(dt);
+
613 }
+
614}
+
615
+
616// ==================== Inplace binary functions =======================
+
617
+
618template <typename output_typesT,
+
619 typename contig_dispatchT,
+
620 typename strided_dispatchT,
+
621 typename contig_row_matrix_dispatchT>
+
622std::pair<sycl::event, sycl::event>
+
623 py_binary_inplace_ufunc(const dpctl::tensor::usm_ndarray &lhs,
+
624 const dpctl::tensor::usm_ndarray &rhs,
+
625 sycl::queue &exec_q,
+
626 const std::vector<sycl::event> depends,
+
627 //
+
628 const output_typesT &output_type_table,
+
629 const contig_dispatchT &contig_dispatch_table,
+
630 const strided_dispatchT &strided_dispatch_table,
+
631 const contig_row_matrix_dispatchT
+
632 &contig_row_matrix_broadcast_dispatch_table)
+
633{
+
634 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(lhs);
+
635
+
636 // check type_nums
+
637 int rhs_typenum = rhs.get_typenum();
+
638 int lhs_typenum = lhs.get_typenum();
+
639
+
640 auto array_types = td_ns::usm_ndarray_types();
+
641 int rhs_typeid = array_types.typenum_to_lookup_id(rhs_typenum);
+
642 int lhs_typeid = array_types.typenum_to_lookup_id(lhs_typenum);
+
643
+
644 int output_typeid = output_type_table[rhs_typeid][lhs_typeid];
+
645
+
646 if (output_typeid != lhs_typeid) {
+
647 throw py::value_error(
+
648 "Left-hand side array has unexpected elemental data type.");
+
649 }
+
650
+
651 // check that queues are compatible
+
652 if (!dpctl::utils::queues_are_compatible(exec_q, {rhs, lhs})) {
+
653 throw py::value_error(
+
654 "Execution queue is not compatible with allocation queues");
+
655 }
+
656
+
657 // check shapes, broadcasting is assumed done by caller
+
658 // check that dimensions are the same
+
659 int lhs_nd = lhs.get_ndim();
+
660 if (lhs_nd != rhs.get_ndim()) {
+
661 throw py::value_error("Array dimensions are not the same.");
+
662 }
+
663
+
664 // check that shapes are the same
+
665 const py::ssize_t *rhs_shape = rhs.get_shape_raw();
+
666 const py::ssize_t *lhs_shape = lhs.get_shape_raw();
+
667 bool shapes_equal(true);
+
668 size_t rhs_nelems(1);
+
669
+
670 for (int i = 0; i < lhs_nd; ++i) {
+
671 rhs_nelems *= static_cast<size_t>(rhs_shape[i]);
+
672 shapes_equal = shapes_equal && (rhs_shape[i] == lhs_shape[i]);
+
673 }
+
674 if (!shapes_equal) {
+
675 throw py::value_error("Array shapes are not the same.");
+
676 }
+
677
+
678 // if nelems is zero, return
+
679 if (rhs_nelems == 0) {
+
680 return std::make_pair(sycl::event(), sycl::event());
+
681 }
+
682
+
683 dpctl::tensor::validation::AmpleMemory::throw_if_not_ample(lhs, rhs_nelems);
+
684
+
685 // check memory overlap
+
686 auto const &same_logical_tensors =
+
687 dpctl::tensor::overlap::SameLogicalTensors();
+
688 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
+
689 if (overlap(rhs, lhs) && !same_logical_tensors(rhs, lhs)) {
+
690 throw py::value_error("Arrays index overlapping segments of memory");
+
691 }
+
692 // check memory overlap
+
693 const char *rhs_data = rhs.get_data();
+
694 char *lhs_data = lhs.get_data();
+
695
+
696 // handle contiguous inputs
+
697 bool is_rhs_c_contig = rhs.is_c_contiguous();
+
698 bool is_rhs_f_contig = rhs.is_f_contiguous();
+
699
+
700 bool is_lhs_c_contig = lhs.is_c_contiguous();
+
701 bool is_lhs_f_contig = lhs.is_f_contiguous();
+
702
+
703 bool both_c_contig = (is_rhs_c_contig && is_lhs_c_contig);
+
704 bool both_f_contig = (is_rhs_f_contig && is_lhs_f_contig);
+
705
+
706 // dispatch for contiguous inputs
+
707 if (both_c_contig || both_f_contig) {
+
708 auto contig_fn = contig_dispatch_table[rhs_typeid][lhs_typeid];
+
709
+
710 if (contig_fn != nullptr) {
+
711 auto comp_ev = contig_fn(exec_q, rhs_nelems, rhs_data, 0, lhs_data,
+
712 0, depends);
+
713 sycl::event ht_ev =
+
714 dpctl::utils::keep_args_alive(exec_q, {rhs, lhs}, {comp_ev});
+
715
+
716 return std::make_pair(ht_ev, comp_ev);
+
717 }
+
718 }
+
719
+
720 // simplify strides
+
721 auto const &rhs_strides = rhs.get_strides_vector();
+
722 auto const &lhs_strides = lhs.get_strides_vector();
+
723
+
724 using shT = std::vector<py::ssize_t>;
+
725 shT simplified_shape;
+
726 shT simplified_rhs_strides;
+
727 shT simplified_lhs_strides;
+
728 py::ssize_t rhs_offset(0);
+
729 py::ssize_t lhs_offset(0);
+
730
+
731 int nd = lhs_nd;
+
732 const py::ssize_t *shape = rhs_shape;
+
733
+
734 simplify_iteration_space(nd, shape, rhs_strides, lhs_strides,
+
735 // outputs
+
736 simplified_shape, simplified_rhs_strides,
+
737 simplified_lhs_strides, rhs_offset, lhs_offset);
+
738
+
739 std::vector<sycl::event> host_tasks{};
+
740 if (nd < 3) {
+
741 static constexpr auto unit_stride =
+
742 std::initializer_list<py::ssize_t>{1};
+
743
+
744 if ((nd == 1) && isEqual(simplified_rhs_strides, unit_stride) &&
+
745 isEqual(simplified_lhs_strides, unit_stride))
+
746 {
+
747 auto contig_fn = contig_dispatch_table[rhs_typeid][lhs_typeid];
+
748
+
749 if (contig_fn != nullptr) {
+
750 auto comp_ev =
+
751 contig_fn(exec_q, rhs_nelems, rhs_data, rhs_offset,
+
752 lhs_data, lhs_offset, depends);
+
753 sycl::event ht_ev = dpctl::utils::keep_args_alive(
+
754 exec_q, {rhs, lhs}, {comp_ev});
+
755
+
756 return std::make_pair(ht_ev, comp_ev);
+
757 }
+
758 }
+
759 if (nd == 2) {
+
760 static constexpr auto one_zero_strides =
+
761 std::initializer_list<py::ssize_t>{1, 0};
+
762 constexpr py::ssize_t one{1};
+
763 // special case of C-contiguous matrix and a row
+
764 if (isEqual(simplified_rhs_strides, one_zero_strides) &&
+
765 isEqual(simplified_lhs_strides, {one, simplified_shape[0]}))
+
766 {
+
767 auto row_matrix_broadcast_fn =
+
768 contig_row_matrix_broadcast_dispatch_table[rhs_typeid]
+
769 [lhs_typeid];
+
770 if (row_matrix_broadcast_fn != nullptr) {
+
771 size_t n0 = simplified_shape[1];
+
772 size_t n1 = simplified_shape[0];
+
773 sycl::event comp_ev = row_matrix_broadcast_fn(
+
774 exec_q, host_tasks, n0, n1, rhs_data, rhs_offset,
+
775 lhs_data, lhs_offset, depends);
+
776
+
777 return std::make_pair(dpctl::utils::keep_args_alive(
+
778 exec_q, {lhs, rhs}, host_tasks),
+
779 comp_ev);
+
780 }
+
781 }
+
782 }
+
783 }
+
784
+
785 // dispatch to strided code
+
786 auto strided_fn = strided_dispatch_table[rhs_typeid][lhs_typeid];
+
787
+
788 if (strided_fn == nullptr) {
+
789 throw std::runtime_error(
+
790 "Strided implementation is missing for rhs_typeid=" +
+
791 std::to_string(rhs_typeid) +
+
792 " and lhs_typeid=" + std::to_string(lhs_typeid));
+
793 }
+
794
+
795 using dpctl::tensor::offset_utils::device_allocate_and_pack;
+
796 const auto &ptr_sz_event_triple_ = device_allocate_and_pack<py::ssize_t>(
+
797 exec_q, host_tasks, simplified_shape, simplified_rhs_strides,
+
798 simplified_lhs_strides);
+
799
+
800 py::ssize_t *shape_strides = std::get<0>(ptr_sz_event_triple_);
+
801 const sycl::event &copy_shape_ev = std::get<2>(ptr_sz_event_triple_);
+
802
+
803 if (shape_strides == nullptr) {
+
804 throw std::runtime_error("Unable to allocate device memory");
+
805 }
+
806
+
807 sycl::event strided_fn_ev =
+
808 strided_fn(exec_q, rhs_nelems, nd, shape_strides, rhs_data, rhs_offset,
+
809 lhs_data, lhs_offset, depends, {copy_shape_ev});
+
810
+
811 // async free of shape_strides temporary
+
812 auto ctx = exec_q.get_context();
+
813
+
814 sycl::event tmp_cleanup_ev = exec_q.submit([&](sycl::handler &cgh) {
+
815 cgh.depends_on(strided_fn_ev);
+
816 using dpctl::tensor::alloc_utils::sycl_free_noexcept;
+
817 cgh.host_task(
+
818 [ctx, shape_strides]() { sycl_free_noexcept(shape_strides, ctx); });
+
819 });
+
820
+
821 host_tasks.push_back(tmp_cleanup_ev);
+
822
+
823 return std::make_pair(
+
824 dpctl::utils::keep_args_alive(exec_q, {rhs, lhs}, host_tasks),
+
825 strided_fn_ev);
+
826}
+
827
+
828} // namespace dpnp::extensions::py_internal
+
+
+ + + + diff --git a/pull/2070/backend_doc/elementwise__functions__type__utils_8hpp_source.html b/pull/2070/backend_doc/elementwise__functions__type__utils_8hpp_source.html new file mode 100644 index 00000000000..d88ae28f8f7 --- /dev/null +++ b/pull/2070/backend_doc/elementwise__functions__type__utils_8hpp_source.html @@ -0,0 +1,155 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/elementwise_functions/elementwise_functions_type_utils.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
elementwise_functions_type_utils.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include "dpctl4pybind11.hpp"
+
29#include <pybind11/numpy.h>
+
30#include <pybind11/pybind11.h>
+
31#include <pybind11/stl.h>
+
32
+
33// dpctl tensor headers
+
34#include "utils/type_dispatch.hpp"
+
35
+
36namespace py = pybind11;
+
37namespace td_ns = dpctl::tensor::type_dispatch;
+
38
+
39namespace dpnp::extensions::py_internal::type_utils
+
40{
+
42extern py::dtype _dtype_from_typenum(td_ns::typenum_t);
+
43
+
46extern int _result_typeid(int, const int *);
+
47} // namespace dpnp::extensions::py_internal::type_utils
+
+
+ + + + diff --git a/pull/2070/backend_doc/evd__batch__common_8hpp_source.html b/pull/2070/backend_doc/evd__batch__common_8hpp_source.html new file mode 100644 index 00000000000..9f34479e51e --- /dev/null +++ b/pull/2070/backend_doc/evd__batch__common_8hpp_source.html @@ -0,0 +1,233 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/evd_batch_common.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
evd_batch_common.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <pybind11/pybind11.h>
+
30
+
31// dpctl tensor headers
+
32#include "utils/type_dispatch.hpp"
+
33
+
34#include "common_helpers.hpp"
+
35#include "evd_common_utils.hpp"
+
36#include "types_matrix.hpp"
+
37
+
38namespace dpnp::extensions::lapack::evd
+
39{
+
40typedef sycl::event (*evd_batch_impl_fn_ptr_t)(
+
41 sycl::queue &,
+
42 const oneapi::mkl::job,
+
43 const oneapi::mkl::uplo,
+
44 const std::int64_t,
+
45 const std::int64_t,
+
46 char *,
+
47 char *,
+
48 const std::vector<sycl::event> &);
+
49
+
50namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
+
51namespace py = pybind11;
+
52
+
53template <typename dispatchT>
+
54std::pair<sycl::event, sycl::event>
+
55 evd_batch_func(sycl::queue &exec_q,
+
56 const std::int8_t jobz,
+
57 const std::int8_t upper_lower,
+
58 const dpctl::tensor::usm_ndarray &eig_vecs,
+
59 const dpctl::tensor::usm_ndarray &eig_vals,
+
60 const std::vector<sycl::event> &depends,
+
61 const dispatchT &evd_batch_dispatch_table)
+
62{
+
63 const int eig_vecs_nd = eig_vecs.get_ndim();
+
64
+
65 const py::ssize_t *eig_vecs_shape = eig_vecs.get_shape_raw();
+
66 const py::ssize_t *eig_vals_shape = eig_vals.get_shape_raw();
+
67
+
68 constexpr int expected_eig_vecs_nd = 3;
+
69 constexpr int expected_eig_vals_nd = 2;
+
70
+
71 common_evd_checks(exec_q, eig_vecs, eig_vals, eig_vecs_shape,
+
72 expected_eig_vecs_nd, expected_eig_vals_nd);
+
73
+
74 if (eig_vecs_shape[2] != eig_vals_shape[0] ||
+
75 eig_vecs_shape[0] != eig_vals_shape[1])
+
76 {
+
77 throw py::value_error(
+
78 "The shape of 'eig_vals' must be (batch_size, n), "
+
79 "where batch_size = " +
+
80 std::to_string(eig_vecs_shape[0]) +
+
81 " and n = " + std::to_string(eig_vecs_shape[1]));
+
82 }
+
83
+
84 // Ensure `batch_size` and `n` are non-zero, otherwise return empty events
+
85 if (helper::check_zeros_shape(eig_vecs_nd, eig_vecs_shape)) {
+
86 // nothing to do
+
87 return std::make_pair(sycl::event(), sycl::event());
+
88 }
+
89
+
90 auto array_types = dpctl_td_ns::usm_ndarray_types();
+
91 const int eig_vecs_type_id =
+
92 array_types.typenum_to_lookup_id(eig_vecs.get_typenum());
+
93 const int eig_vals_type_id =
+
94 array_types.typenum_to_lookup_id(eig_vals.get_typenum());
+
95
+
96 evd_batch_impl_fn_ptr_t evd_batch_fn =
+
97 evd_batch_dispatch_table[eig_vecs_type_id][eig_vals_type_id];
+
98 if (evd_batch_fn == nullptr) {
+
99 throw py::value_error(
+
100 "Types of input vectors and result array are mismatched.");
+
101 }
+
102
+
103 char *eig_vecs_data = eig_vecs.get_data();
+
104 char *eig_vals_data = eig_vals.get_data();
+
105
+
106 const std::int64_t batch_size = eig_vecs_shape[2];
+
107 const std::int64_t n = eig_vecs_shape[1];
+
108
+
109 const oneapi::mkl::job jobz_val = static_cast<oneapi::mkl::job>(jobz);
+
110 const oneapi::mkl::uplo uplo_val =
+
111 static_cast<oneapi::mkl::uplo>(upper_lower);
+
112
+
113 sycl::event evd_batch_ev =
+
114 evd_batch_fn(exec_q, jobz_val, uplo_val, batch_size, n, eig_vecs_data,
+
115 eig_vals_data, depends);
+
116
+
117 sycl::event ht_ev = dpctl::utils::keep_args_alive(
+
118 exec_q, {eig_vecs, eig_vals}, {evd_batch_ev});
+
119
+
120 return std::make_pair(ht_ev, evd_batch_ev);
+
121}
+
122} // namespace dpnp::extensions::lapack::evd
+
+
+ + + + diff --git a/pull/2070/backend_doc/evd__common_8hpp_source.html b/pull/2070/backend_doc/evd__common_8hpp_source.html new file mode 100644 index 00000000000..1d3de846af2 --- /dev/null +++ b/pull/2070/backend_doc/evd__common_8hpp_source.html @@ -0,0 +1,224 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/evd_common.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
evd_common.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <pybind11/pybind11.h>
+
30
+
31// dpctl tensor headers
+
32#include "utils/type_dispatch.hpp"
+
33
+
34#include "common_helpers.hpp"
+
35#include "evd_common_utils.hpp"
+
36#include "types_matrix.hpp"
+
37
+
38namespace dpnp::extensions::lapack::evd
+
39{
+
40using dpnp::extensions::lapack::helper::check_zeros_shape;
+
41
+
42typedef sycl::event (*evd_impl_fn_ptr_t)(sycl::queue &,
+
43 const oneapi::mkl::job,
+
44 const oneapi::mkl::uplo,
+
45 const std::int64_t,
+
46 char *,
+
47 char *,
+
48 const std::vector<sycl::event> &);
+
49
+
50namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
+
51namespace py = pybind11;
+
52
+
53template <typename dispatchT>
+
54std::pair<sycl::event, sycl::event>
+
55 evd_func(sycl::queue &exec_q,
+
56 const std::int8_t jobz,
+
57 const std::int8_t upper_lower,
+
58 const dpctl::tensor::usm_ndarray &eig_vecs,
+
59 const dpctl::tensor::usm_ndarray &eig_vals,
+
60 const std::vector<sycl::event> &depends,
+
61 const dispatchT &evd_dispatch_table)
+
62{
+
63 const int eig_vecs_nd = eig_vecs.get_ndim();
+
64
+
65 const py::ssize_t *eig_vecs_shape = eig_vecs.get_shape_raw();
+
66 const py::ssize_t *eig_vals_shape = eig_vals.get_shape_raw();
+
67
+
68 constexpr int expected_eig_vecs_nd = 2;
+
69 constexpr int expected_eig_vals_nd = 1;
+
70
+
71 common_evd_checks(exec_q, eig_vecs, eig_vals, eig_vecs_shape,
+
72 expected_eig_vecs_nd, expected_eig_vals_nd);
+
73
+
74 if (eig_vecs_shape[0] != eig_vals_shape[0]) {
+
75 throw py::value_error(
+
76 "Eigenvectors and eigenvalues have different shapes");
+
77 }
+
78
+
79 if (check_zeros_shape(eig_vecs_nd, eig_vecs_shape)) {
+
80 // nothing to do
+
81 return std::make_pair(sycl::event(), sycl::event());
+
82 }
+
83
+
84 auto array_types = dpctl_td_ns::usm_ndarray_types();
+
85 const int eig_vecs_type_id =
+
86 array_types.typenum_to_lookup_id(eig_vecs.get_typenum());
+
87 const int eig_vals_type_id =
+
88 array_types.typenum_to_lookup_id(eig_vals.get_typenum());
+
89
+
90 evd_impl_fn_ptr_t evd_fn =
+
91 evd_dispatch_table[eig_vecs_type_id][eig_vals_type_id];
+
92 if (evd_fn == nullptr) {
+
93 throw py::value_error(
+
94 "Types of input vectors and result array are mismatched.");
+
95 }
+
96
+
97 char *eig_vecs_data = eig_vecs.get_data();
+
98 char *eig_vals_data = eig_vals.get_data();
+
99
+
100 const std::int64_t n = eig_vecs_shape[0];
+
101 const oneapi::mkl::job jobz_val = static_cast<oneapi::mkl::job>(jobz);
+
102 const oneapi::mkl::uplo uplo_val =
+
103 static_cast<oneapi::mkl::uplo>(upper_lower);
+
104
+
105 sycl::event evd_ev = evd_fn(exec_q, jobz_val, uplo_val, n, eig_vecs_data,
+
106 eig_vals_data, depends);
+
107
+
108 sycl::event ht_ev =
+
109 dpctl::utils::keep_args_alive(exec_q, {eig_vecs, eig_vals}, {evd_ev});
+
110
+
111 return std::make_pair(ht_ev, evd_ev);
+
112}
+
113} // namespace dpnp::extensions::lapack::evd
+
+
+ + + + diff --git a/pull/2070/backend_doc/evd__common__utils_8hpp_source.html b/pull/2070/backend_doc/evd__common__utils_8hpp_source.html new file mode 100644 index 00000000000..6aede481c91 --- /dev/null +++ b/pull/2070/backend_doc/evd__common__utils_8hpp_source.html @@ -0,0 +1,217 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/evd_common_utils.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
evd_common_utils.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30// dpctl tensor headers
+
31#include "utils/memory_overlap.hpp"
+
32#include "utils/output_validation.hpp"
+
33#include "utils/type_dispatch.hpp"
+
34
+
35namespace dpnp::extensions::lapack::evd
+
36{
+
37namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
+
38namespace py = pybind11;
+
39
+
40template <typename dispatchT,
+
41 template <typename fnT, typename T, typename RealT>
+
42 typename factoryT>
+
43void init_evd_dispatch_table(
+
44 dispatchT evd_dispatch_table[][dpctl_td_ns::num_types])
+
45{
+
46 dpctl_td_ns::DispatchTableBuilder<dispatchT, factoryT,
+
47 dpctl_td_ns::num_types>
+
48 contig;
+
49 contig.populate_dispatch_table(evd_dispatch_table);
+
50}
+
51
+
52inline void common_evd_checks(sycl::queue &exec_q,
+
53 const dpctl::tensor::usm_ndarray &eig_vecs,
+
54 const dpctl::tensor::usm_ndarray &eig_vals,
+
55 const py::ssize_t *eig_vecs_shape,
+
56 const int expected_eig_vecs_nd,
+
57 const int expected_eig_vals_nd)
+
58{
+
59 const int eig_vecs_nd = eig_vecs.get_ndim();
+
60 const int eig_vals_nd = eig_vals.get_ndim();
+
61
+
62 if (eig_vecs_nd != expected_eig_vecs_nd) {
+
63 throw py::value_error("The output eigenvectors array has ndim=" +
+
64 std::to_string(eig_vecs_nd) + ", but a " +
+
65 std::to_string(expected_eig_vecs_nd) +
+
66 "-dimensional array is expected.");
+
67 }
+
68 else if (eig_vals_nd != expected_eig_vals_nd) {
+
69 throw py::value_error("The output eigenvalues array has ndim=" +
+
70 std::to_string(eig_vals_nd) + ", but a " +
+
71 std::to_string(expected_eig_vals_nd) +
+
72 "-dimensional array is expected.");
+
73 }
+
74
+
75 if (eig_vecs_shape[0] != eig_vecs_shape[1]) {
+
76 throw py::value_error("Output array with eigenvectors must be square");
+
77 }
+
78
+
79 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(eig_vecs);
+
80 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(eig_vals);
+
81
+
82 // check compatibility of execution queue and allocation queue
+
83 if (!dpctl::utils::queues_are_compatible(exec_q, {eig_vecs, eig_vals})) {
+
84 throw py::value_error(
+
85 "Execution queue is not compatible with allocation queues");
+
86 }
+
87
+
88 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
+
89 if (overlap(eig_vecs, eig_vals)) {
+
90 throw py::value_error("Arrays with eigenvectors and eigenvalues are "
+
91 "overlapping segments of memory");
+
92 }
+
93
+
94 const bool is_eig_vecs_f_contig = eig_vecs.is_f_contiguous();
+
95 const bool is_eig_vals_c_contig = eig_vals.is_c_contiguous();
+
96 if (!is_eig_vecs_f_contig) {
+
97 throw py::value_error(
+
98 "An array with input matrix / output eigenvectors "
+
99 "must be F-contiguous");
+
100 }
+
101 else if (!is_eig_vals_c_contig) {
+
102 throw py::value_error(
+
103 "An array with output eigenvalues must be C-contiguous");
+
104 }
+
105}
+
106} // namespace dpnp::extensions::lapack::evd
+
+
+ + + + diff --git a/pull/2070/backend_doc/exp2_8hpp_source.html b/pull/2070/backend_doc/exp2_8hpp_source.html new file mode 100644 index 00000000000..dedb57b2806 --- /dev/null +++ b/pull/2070/backend_doc/exp2_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/exp2.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
exp2.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_exp2(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/exp_8hpp_source.html b/pull/2070/backend_doc/exp_8hpp_source.html new file mode 100644 index 00000000000..690b6608ae1 --- /dev/null +++ b/pull/2070/backend_doc/exp_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/exp.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
exp.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_exp(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/expm1_8hpp_source.html b/pull/2070/backend_doc/expm1_8hpp_source.html new file mode 100644 index 00000000000..cc18c99a078 --- /dev/null +++ b/pull/2070/backend_doc/expm1_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/expm1.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
expm1.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_expm1(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2degrees_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2degrees_8hpp_source.html new file mode 100644 index 00000000000..d7d300bbdbf --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2degrees_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/degrees.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
degrees.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_degrees(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fabs_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fabs_8hpp_source.html new file mode 100644 index 00000000000..92ae42a60a1 --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fabs_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/fabs.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fabs.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_fabs(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fix_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fix_8hpp_source.html new file mode 100644 index 00000000000..b1f88267fff --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fix_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/fix.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fix.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_fix(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmax_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmax_8hpp_source.html new file mode 100644 index 00000000000..24e5d71c922 --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmax_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/fmax.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmax.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_fmax(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmin_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmin_8hpp_source.html new file mode 100644 index 00000000000..b7d68b17b62 --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmin_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/fmin.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmin.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_fmin(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmod_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmod_8hpp_source.html new file mode 100644 index 00000000000..a803686ae2d --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2fmod_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/fmod.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmod.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_fmod(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2heaviside_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2heaviside_8hpp_source.html new file mode 100644 index 00000000000..67014723a79 --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2heaviside_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/heaviside.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
heaviside.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_heaviside(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2logaddexp2_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2logaddexp2_8hpp_source.html new file mode 100644 index 00000000000..4ce0e5d556a --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2logaddexp2_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/logaddexp2.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
logaddexp2.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_logaddexp2(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2radians_8hpp_source.html b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2radians_8hpp_source.html new file mode 100644 index 00000000000..1358ed0c3e0 --- /dev/null +++ b/pull/2070/backend_doc/extensions_2ufunc_2elementwise__functions_2radians_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/radians.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
radians.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_radians(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2vm_2fmax_8hpp_source.html b/pull/2070/backend_doc/extensions_2vm_2fmax_8hpp_source.html new file mode 100644 index 00000000000..8ca0d3db4fd --- /dev/null +++ b/pull/2070/backend_doc/extensions_2vm_2fmax_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/fmax.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmax.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_fmax(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2vm_2fmin_8hpp_source.html b/pull/2070/backend_doc/extensions_2vm_2fmin_8hpp_source.html new file mode 100644 index 00000000000..95d1fca0b4b --- /dev/null +++ b/pull/2070/backend_doc/extensions_2vm_2fmin_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/fmin.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmin.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_fmin(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/extensions_2vm_2fmod_8hpp_source.html b/pull/2070/backend_doc/extensions_2vm_2fmod_8hpp_source.html new file mode 100644 index 00000000000..6546da3acc4 --- /dev/null +++ b/pull/2070/backend_doc/extensions_2vm_2fmod_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/fmod.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmod.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_fmod(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/fft_2common_8hpp_source.html b/pull/2070/backend_doc/fft_2common_8hpp_source.html new file mode 100644 index 00000000000..6328e3c827a --- /dev/null +++ b/pull/2070/backend_doc/fft_2common_8hpp_source.html @@ -0,0 +1,377 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/fft/common.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
common.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <pybind11/pybind11.h>
+
30#include <sycl/sycl.hpp>
+
31
+
32namespace dpnp::extensions::fft
+
33{
+
34namespace mkl_dft = oneapi::mkl::dft;
+
35namespace py = pybind11;
+
36
+
37template <mkl_dft::precision prec, mkl_dft::domain dom>
+
+ +
39{
+
40public:
+
41 using descr_type = mkl_dft::descriptor<prec, dom>;
+
42
+
43 DescriptorWrapper(std::int64_t n) : descr_(n), queue_ptr_{} {}
+
44 DescriptorWrapper(std::vector<std::int64_t> dimensions)
+
45 : descr_(dimensions), queue_ptr_{}
+
46 {
+
47 }
+ +
49
+
50 void commit(sycl::queue &q)
+
51 {
+
52 mkl_dft::precision fft_prec = get_precision();
+
53 if (fft_prec == mkl_dft::precision::DOUBLE &&
+
54 !q.get_device().has(sycl::aspect::fp64))
+
55 {
+
56 throw py::value_error("Descriptor is double precision but the "
+
57 "device does not support double precision.");
+
58 }
+
59
+
60 descr_.commit(q);
+
61 queue_ptr_ = std::make_unique<sycl::queue>(q);
+
62 }
+
63
+
64 descr_type &get_descriptor()
+
65 {
+
66 return descr_;
+
67 }
+
68
+
69 const sycl::queue &get_queue() const
+
70 {
+
71 if (queue_ptr_) {
+
72 return *queue_ptr_;
+
73 }
+
74 else {
+
75 throw std::runtime_error(
+
76 "Attempt to get queue when it is not yet set");
+
77 }
+
78 }
+
79
+
80 // config_param::DIMENSION
+
81 template <typename valT = std::int64_t>
+
82 const valT get_dim()
+
83 {
+
84 valT dim = -1;
+
85 descr_.get_value(mkl_dft::config_param::DIMENSION, &dim);
+
86
+
87 return dim;
+
88 }
+
89
+
90 // config_param::NUMBER_OF_TRANSFORMS
+
91 template <typename valT = std::int64_t>
+
92 const valT get_number_of_transforms()
+
93 {
+
94 valT transforms_count{};
+
95
+
96 descr_.get_value(mkl_dft::config_param::NUMBER_OF_TRANSFORMS,
+
97 &transforms_count);
+
98 return transforms_count;
+
99 }
+
100
+
101 template <typename valT = std::int64_t>
+
102 void set_number_of_transforms(const valT &num)
+
103 {
+
104 descr_.set_value(mkl_dft::config_param::NUMBER_OF_TRANSFORMS, num);
+
105 }
+
106
+
107 // config_param::FWD_STRIDES
+
108 template <typename valT = std::vector<std::int64_t>>
+
109 const valT get_fwd_strides()
+
110 {
+
111 const typename valT::value_type dim = get_dim();
+
112
+
113 valT fwd_strides(dim + 1);
+
114#if INTEL_MKL_VERSION >= 20250000
+
115 descr_.get_value(mkl_dft::config_param::FWD_STRIDES, &fwd_strides);
+
116#else
+
117 descr_.get_value(mkl_dft::config_param::FWD_STRIDES,
+
118 fwd_strides.data());
+
119#endif // INTEL_MKL_VERSION
+
120 return fwd_strides;
+
121 }
+
122
+
123 template <typename valT = std::vector<std::int64_t>>
+
124 void set_fwd_strides(const valT &strides)
+
125 {
+
126 const typename valT::value_type dim = get_dim();
+
127
+
128 if (static_cast<size_t>(dim + 1) != strides.size()) {
+
129 throw py::value_error(
+
130 "Strides length does not match descriptor's dimension");
+
131 }
+
132#if INTEL_MKL_VERSION >= 20250000
+
133 descr_.set_value(mkl_dft::config_param::FWD_STRIDES, strides);
+
134#else
+
135 descr_.set_value(mkl_dft::config_param::FWD_STRIDES, strides.data());
+
136#endif // INTEL_MKL_VERSION
+
137 }
+
138
+
139 // config_param::BWD_STRIDES
+
140 template <typename valT = std::vector<std::int64_t>>
+
141 const valT get_bwd_strides()
+
142 {
+
143 const typename valT::value_type dim = get_dim();
+
144
+
145 valT bwd_strides(dim + 1);
+
146#if INTEL_MKL_VERSION >= 20250000
+
147 descr_.get_value(mkl_dft::config_param::BWD_STRIDES, &bwd_strides);
+
148#else
+
149 descr_.get_value(mkl_dft::config_param::BWD_STRIDES,
+
150 bwd_strides.data());
+
151#endif // INTEL_MKL_VERSION
+
152 return bwd_strides;
+
153 }
+
154
+
155 template <typename valT = std::vector<std::int64_t>>
+
156 void set_bwd_strides(const valT &strides)
+
157 {
+
158 const typename valT::value_type dim = get_dim();
+
159
+
160 if (static_cast<size_t>(dim + 1) != strides.size()) {
+
161 throw py::value_error(
+
162 "Strides length does not match descriptor's dimension");
+
163 }
+
164#if INTEL_MKL_VERSION >= 20250000
+
165 descr_.set_value(mkl_dft::config_param::BWD_STRIDES, strides);
+
166#else
+
167 descr_.set_value(mkl_dft::config_param::BWD_STRIDES, strides.data());
+
168#endif // INTEL_MKL_VERSION
+
169 }
+
170
+
171 // config_param::FWD_DISTANCE
+
172 template <typename valT = std::int64_t>
+
173 const valT get_fwd_distance()
+
174 {
+
175 valT dist = 0;
+
176
+
177 descr_.get_value(mkl_dft::config_param::FWD_DISTANCE, &dist);
+
178 return dist;
+
179 }
+
180
+
181 template <typename valT = std::int64_t>
+
182 void set_fwd_distance(const valT &dist)
+
183 {
+
184 descr_.set_value(mkl_dft::config_param::FWD_DISTANCE, dist);
+
185 }
+
186
+
187 // config_param::BWD_DISTANCE
+
188 template <typename valT = std::int64_t>
+
189 const valT get_bwd_distance()
+
190 {
+
191 valT dist = 0;
+
192
+
193 descr_.get_value(mkl_dft::config_param::BWD_DISTANCE, &dist);
+
194 return dist;
+
195 }
+
196
+
197 template <typename valT = std::int64_t>
+
198 void set_bwd_distance(const valT &dist)
+
199 {
+
200 descr_.set_value(mkl_dft::config_param::BWD_DISTANCE, dist);
+
201 }
+
202
+
203 // config_param::PLACEMENT
+
204 bool get_in_place()
+
205 {
+
206#if defined(USE_ONEMKL_INTERFACES) || INTEL_MKL_VERSION >= 20250000
+
207 mkl_dft::config_value placement;
+
208 descr_.get_value(mkl_dft::config_param::PLACEMENT, &placement);
+
209 return (placement == mkl_dft::config_value::INPLACE);
+
210#else
+
211 // TODO: remove branch when MKLD-10506 is implemented
+
212 DFTI_CONFIG_VALUE placement;
+
213 descr_.get_value(mkl_dft::config_param::PLACEMENT, &placement);
+
214 return (placement == DFTI_CONFIG_VALUE::DFTI_INPLACE);
+
215#endif // USE_ONEMKL_INTERFACES or INTEL_MKL_VERSION
+
216 }
+
217
+
218 void set_in_place(const bool &in_place_request)
+
219 {
+
220#if defined(USE_ONEMKL_INTERFACES) || INTEL_MKL_VERSION >= 20250000
+
221 descr_.set_value(mkl_dft::config_param::PLACEMENT,
+
222 (in_place_request)
+
223 ? mkl_dft::config_value::INPLACE
+
224 : mkl_dft::config_value::NOT_INPLACE);
+
225#else
+
226 // TODO: remove branch when MKLD-10506 is implemented
+
227 descr_.set_value(mkl_dft::config_param::PLACEMENT,
+
228 (in_place_request)
+
229 ? DFTI_CONFIG_VALUE::DFTI_INPLACE
+
230 : DFTI_CONFIG_VALUE::DFTI_NOT_INPLACE);
+
231#endif // USE_ONEMKL_INTERFACES or INTEL_MKL_VERSION
+
232 }
+
233
+
234 // config_param::PRECISION
+
235 mkl_dft::precision get_precision()
+
236 {
+
237 mkl_dft::precision fft_prec;
+
238
+
239 descr_.get_value(mkl_dft::config_param::PRECISION, &fft_prec);
+
240 return fft_prec;
+
241 }
+
242
+
243 // config_param::COMMIT_STATUS
+
244 bool is_committed()
+
245 {
+
246#if defined(USE_ONEMKL_INTERFACES) || INTEL_MKL_VERSION >= 20250000
+
247 mkl_dft::config_value committed;
+
248 descr_.get_value(mkl_dft::config_param::COMMIT_STATUS, &committed);
+
249 return (committed == mkl_dft::config_value::COMMITTED);
+
250#else
+
251 // TODO: remove branch when MKLD-10506 is implemented
+
252 DFTI_CONFIG_VALUE committed;
+
253 descr_.get_value(mkl_dft::config_param::COMMIT_STATUS, &committed);
+
254 return (committed == DFTI_CONFIG_VALUE::DFTI_COMMITTED);
+
255#endif // USE_ONEMKL_INTERFACES or INTEL_MKL_VERSION
+
256 }
+
257
+
258private:
+
259 mkl_dft::descriptor<prec, dom> descr_;
+
260 std::unique_ptr<sycl::queue> queue_ptr_;
+
261};
+
+
262
+
263} // namespace dpnp::extensions::fft
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/fft__utils_8hpp_source.html b/pull/2070/backend_doc/fft__utils_8hpp_source.html new file mode 100644 index 00000000000..d130be1f570 --- /dev/null +++ b/pull/2070/backend_doc/fft__utils_8hpp_source.html @@ -0,0 +1,213 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/fft/fft_utils.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fft_utils.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29
+
30namespace dpnp::extensions::fft
+
31{
+
32namespace mkl_dft = oneapi::mkl::dft;
+
33
+
34// Structure to map MKL precision to float/double types
+
35template <mkl_dft::precision prec>
+ +
37
+
38template <>
+
+
39struct PrecisionType<mkl_dft::precision::SINGLE>
+
40{
+
41 using type = float;
+
42};
+
+
43
+
44template <>
+
+
45struct PrecisionType<mkl_dft::precision::DOUBLE>
+
46{
+
47 using type = double;
+
48};
+
+
49
+
50// Structure to map combination of precision, domain, and is_forward flag to
+
51// in/out types
+
52template <mkl_dft::precision prec, mkl_dft::domain dom, bool is_forward>
+
+ +
54{
+
55 using type_in = void;
+
56 using type_out = void;
+
57};
+
+
58
+
59// for r2c FFT, type_in is real and type_out is complex
+
60// is_forward is true
+
61template <mkl_dft::precision prec>
+
+
62struct ScaleType<prec, mkl_dft::domain::REAL, true>
+
63{
+
64 using prec_type = typename PrecisionType<prec>::type;
+
65 using type_in = prec_type;
+
66 using type_out = std::complex<prec_type>;
+
67};
+
+
68
+
69// for c2r FFT, type_in is complex and type_out is real
+
70// is_forward is false
+
71template <mkl_dft::precision prec>
+
+
72struct ScaleType<prec, mkl_dft::domain::REAL, false>
+
73{
+
74 using prec_type = typename PrecisionType<prec>::type;
+
75 using type_in = std::complex<prec_type>;
+
76 using type_out = prec_type;
+
77};
+
+
78
+
79// for c2c FFT, both type_in and type_out are complex
+
80// regardless of is_fwd
+
81template <mkl_dft::precision prec, bool is_fwd>
+
+
82struct ScaleType<prec, mkl_dft::domain::COMPLEX, is_fwd>
+
83{
+
84 using prec_type = typename PrecisionType<prec>::type;
+
85 using type_in = std::complex<prec_type>;
+
86 using type_out = std::complex<prec_type>;
+
87};
+
+
88} // namespace dpnp::extensions::fft
+ + +
+
+ + + + diff --git a/pull/2070/backend_doc/files.html b/pull/2070/backend_doc/files.html new file mode 100644 index 00000000000..9720cca9412 --- /dev/null +++ b/pull/2070/backend_doc/files.html @@ -0,0 +1,234 @@ + + + + + + + +DPNP C++ backend kernel library: File List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  extensions
  blas
  elementwise_functions
  fft
  lapack
  ufunc
  vm
  include
 dpnp_gen_1arg_1type_tbl.hpp
 dpnp_gen_1arg_2type_tbl.hpp
 dpnp_gen_2arg_3type_tbl.hpp
 dpnp_iface.hpp
 dpnp_iface_fptr.hpp
 dpnp_iface_random.hpp
  kernels
  elementwise_functions
  src
 constants.hpp
 dpnp_fptr.hpp
 dpnp_iterator.hpp
 dpnp_pstl.hpp
 dpnp_random_state.hpp
 dpnp_utils.hpp
 dpnpc_memory_adapter.hpp
 queue_sycl.hpp
 verbose.hpp
  tests
 dpnp_test_utils.hpp
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/files_dup.js b/pull/2070/backend_doc/files_dup.js new file mode 100644 index 00000000000..3aabbcf32d0 --- /dev/null +++ b/pull/2070/backend_doc/files_dup.js @@ -0,0 +1,8 @@ +var files_dup = +[ + [ "extensions", "dir_445263fafd9544f9ee19804b2b65121e.html", "dir_445263fafd9544f9ee19804b2b65121e" ], + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ], + [ "kernels", "dir_d3fd84b2e4114076d2551689812cf799.html", "dir_d3fd84b2e4114076d2551689812cf799" ], + [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ], + [ "tests", "dir_59425e443f801f1f2fd8bbe4959a3ccf.html", "dir_59425e443f801f1f2fd8bbe4959a3ccf" ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/float__power_8hpp_source.html b/pull/2070/backend_doc/float__power_8hpp_source.html new file mode 100644 index 00000000000..26d0dc9b83b --- /dev/null +++ b/pull/2070/backend_doc/float__power_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/float_power.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
float_power.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::ufunc
+
33{
+
34void init_float_power(py::module_ m);
+
35} // namespace dpnp::extensions::ufunc
+
+
+ + + + diff --git a/pull/2070/backend_doc/floor_8hpp_source.html b/pull/2070/backend_doc/floor_8hpp_source.html new file mode 100644 index 00000000000..742f771a0b5 --- /dev/null +++ b/pull/2070/backend_doc/floor_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/floor.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
floor.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_floor(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/folderclosed.svg b/pull/2070/backend_doc/folderclosed.svg new file mode 100644 index 00000000000..b04bed2e723 --- /dev/null +++ b/pull/2070/backend_doc/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/pull/2070/backend_doc/folderclosedd.svg b/pull/2070/backend_doc/folderclosedd.svg new file mode 100644 index 00000000000..52f0166a23e --- /dev/null +++ b/pull/2070/backend_doc/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/pull/2070/backend_doc/folderopen.svg b/pull/2070/backend_doc/folderopen.svg new file mode 100644 index 00000000000..f6896dd254b --- /dev/null +++ b/pull/2070/backend_doc/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/pull/2070/backend_doc/folderopend.svg b/pull/2070/backend_doc/folderopend.svg new file mode 100644 index 00000000000..2d1f06e7bc6 --- /dev/null +++ b/pull/2070/backend_doc/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/pull/2070/backend_doc/functions.html b/pull/2070/backend_doc/functions.html new file mode 100644 index 00000000000..a5d39d1b5e7 --- /dev/null +++ b/pull/2070/backend_doc/functions.html @@ -0,0 +1,120 @@ + + + + + + + +DPNP C++ backend kernel library: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+
+
+ + + + diff --git a/pull/2070/backend_doc/functions_func.html b/pull/2070/backend_doc/functions_func.html new file mode 100644 index 00000000000..ffc2841e05e --- /dev/null +++ b/pull/2070/backend_doc/functions_func.html @@ -0,0 +1,113 @@ + + + + + + + +DPNP C++ backend kernel library: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions with links to the class documentation for each member:
+
+
+ + + + diff --git a/pull/2070/backend_doc/functions_rela.html b/pull/2070/backend_doc/functions_rela.html new file mode 100644 index 00000000000..4006a33af9a --- /dev/null +++ b/pull/2070/backend_doc/functions_rela.html @@ -0,0 +1,105 @@ + + + + + + + +DPNP C++ backend kernel library: Class Members - Related Symbols + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented related symbols with links to the class documentation for each member:
+
+
+ + + + diff --git a/pull/2070/backend_doc/functions_vars.html b/pull/2070/backend_doc/functions_vars.html new file mode 100644 index 00000000000..0bcad813671 --- /dev/null +++ b/pull/2070/backend_doc/functions_vars.html @@ -0,0 +1,110 @@ + + + + + + + +DPNP C++ backend kernel library: Class Members - Variables + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented variables with links to the class documentation for each member:
+
+
+ + + + diff --git a/pull/2070/backend_doc/gemm_8hpp_source.html b/pull/2070/backend_doc/gemm_8hpp_source.html new file mode 100644 index 00000000000..eee326b0ed7 --- /dev/null +++ b/pull/2070/backend_doc/gemm_8hpp_source.html @@ -0,0 +1,162 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/blas/gemm.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
gemm.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::blas
+
34{
+
35extern std::tuple<sycl::event, sycl::event, bool>
+
36 gemm(sycl::queue &exec_q,
+
37 const dpctl::tensor::usm_ndarray &matrixA,
+
38 const dpctl::tensor::usm_ndarray &matrixB,
+
39 const dpctl::tensor::usm_ndarray &resultC,
+
40 const std::vector<sycl::event> &depends);
+
41
+
42extern std::tuple<sycl::event, sycl::event, bool>
+
43 gemm_batch(sycl::queue &exec_q,
+
44 const dpctl::tensor::usm_ndarray &matrixA,
+
45 const dpctl::tensor::usm_ndarray &matrixB,
+
46 const dpctl::tensor::usm_ndarray &resultC,
+
47 const std::vector<sycl::event> &depends);
+
48
+
49extern void init_gemm_dispatch_table(void);
+
50extern void init_gemm_batch_dispatch_table(void);
+
51} // namespace dpnp::extensions::blas
+
+
+ + + + diff --git a/pull/2070/backend_doc/gemv_8hpp_source.html b/pull/2070/backend_doc/gemv_8hpp_source.html new file mode 100644 index 00000000000..d33aa6e8e41 --- /dev/null +++ b/pull/2070/backend_doc/gemv_8hpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/blas/gemv.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
gemv.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::blas
+
34{
+
35extern std::pair<sycl::event, sycl::event>
+
36 gemv(sycl::queue &exec_q,
+
37 const dpctl::tensor::usm_ndarray &matrixA,
+
38 const dpctl::tensor::usm_ndarray &vectorX,
+
39 const dpctl::tensor::usm_ndarray &vectorY,
+
40 const bool transpose,
+
41 const std::vector<sycl::event> &depends);
+
42
+
43extern void init_gemv_dispatch_vector(void);
+
44extern void init_gemv_batch_dispatch_vector(void);
+
45} // namespace dpnp::extensions::blas
+
+
+ + + + diff --git a/pull/2070/backend_doc/geqrf_8hpp_source.html b/pull/2070/backend_doc/geqrf_8hpp_source.html new file mode 100644 index 00000000000..bc1a4177722 --- /dev/null +++ b/pull/2070/backend_doc/geqrf_8hpp_source.html @@ -0,0 +1,165 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/geqrf.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
geqrf.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::lapack
+
34{
+
35extern std::pair<sycl::event, sycl::event>
+
36 geqrf(sycl::queue &exec_q,
+
37 const dpctl::tensor::usm_ndarray &a_array,
+
38 const dpctl::tensor::usm_ndarray &tau_array,
+
39 const std::vector<sycl::event> &depends = {});
+
40
+
41extern std::pair<sycl::event, sycl::event>
+
42 geqrf_batch(sycl::queue &exec_q,
+
43 const dpctl::tensor::usm_ndarray &a_array,
+
44 const dpctl::tensor::usm_ndarray &tau_array,
+
45 std::int64_t m,
+
46 std::int64_t n,
+
47 std::int64_t stride_a,
+
48 std::int64_t stride_tau,
+
49 std::int64_t batch_size,
+
50 const std::vector<sycl::event> &depends = {});
+
51
+
52extern void init_geqrf_batch_dispatch_vector(void);
+
53extern void init_geqrf_dispatch_vector(void);
+
54} // namespace dpnp::extensions::lapack
+
+
+ + + + diff --git a/pull/2070/backend_doc/gesv_8hpp_source.html b/pull/2070/backend_doc/gesv_8hpp_source.html new file mode 100644 index 00000000000..d9c6cdbd3c7 --- /dev/null +++ b/pull/2070/backend_doc/gesv_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/gesv.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
gesv.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::lapack
+
34{
+
35extern std::pair<sycl::event, sycl::event>
+
36 gesv(sycl::queue &exec_q,
+
37 const dpctl::tensor::usm_ndarray &coeff_matrix,
+
38 const dpctl::tensor::usm_ndarray &dependent_vals,
+
39 const std::vector<sycl::event> &depends);
+
40
+
41extern std::pair<sycl::event, sycl::event>
+
42 gesv_batch(sycl::queue &exec_q,
+
43 const dpctl::tensor::usm_ndarray &coeff_matrix,
+
44 const dpctl::tensor::usm_ndarray &dependent_vals,
+
45 const std::vector<sycl::event> &depends);
+
46
+
47extern void common_gesv_checks(sycl::queue &exec_q,
+
48 const dpctl::tensor::usm_ndarray &coeff_matrix,
+
49 const dpctl::tensor::usm_ndarray &dependent_vals,
+
50 const py::ssize_t *coeff_matrix_shape,
+
51 const py::ssize_t *dependent_vals_shape,
+
52 const int expected_coeff_matrix_ndim,
+
53 const int min_dependent_vals_ndim,
+
54 const int max_dependent_vals_ndim);
+
55
+
56extern void init_gesv_dispatch_vector(void);
+
57extern void init_gesv_batch_dispatch_vector(void);
+
58} // namespace dpnp::extensions::lapack
+
+
+ + + + diff --git a/pull/2070/backend_doc/gesv__common__utils_8hpp_source.html b/pull/2070/backend_doc/gesv__common__utils_8hpp_source.html new file mode 100644 index 00000000000..757d60b8572 --- /dev/null +++ b/pull/2070/backend_doc/gesv__common__utils_8hpp_source.html @@ -0,0 +1,294 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/gesv_common_utils.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
gesv_common_utils.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30// dpctl tensor headers
+
31#include "utils/memory_overlap.hpp"
+
32#include "utils/output_validation.hpp"
+
33#include "utils/sycl_alloc_utils.hpp"
+
34#include "utils/type_dispatch.hpp"
+
35
+
36#include "common_helpers.hpp"
+
37#include "linalg_exceptions.hpp"
+
38
+
39namespace dpnp::extensions::lapack::gesv_utils
+
40{
+
41namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
+
42namespace py = pybind11;
+
43
+
44inline void common_gesv_checks(sycl::queue &exec_q,
+
45 const dpctl::tensor::usm_ndarray &coeff_matrix,
+
46 const dpctl::tensor::usm_ndarray &dependent_vals,
+
47 const py::ssize_t *coeff_matrix_shape,
+
48 const py::ssize_t *dependent_vals_shape,
+
49 const int expected_coeff_matrix_ndim,
+
50 const int min_dependent_vals_ndim,
+
51 const int max_dependent_vals_ndim)
+
52{
+
53 const int coeff_matrix_nd = coeff_matrix.get_ndim();
+
54 const int dependent_vals_nd = dependent_vals.get_ndim();
+
55
+
56 if (coeff_matrix_nd != expected_coeff_matrix_ndim) {
+
57 throw py::value_error("The coefficient matrix has ndim=" +
+
58 std::to_string(coeff_matrix_nd) + ", but a " +
+
59 std::to_string(expected_coeff_matrix_ndim) +
+
60 "-dimensional array is expected.");
+
61 }
+
62
+
63 if (dependent_vals_nd < min_dependent_vals_ndim ||
+
64 dependent_vals_nd > max_dependent_vals_ndim)
+
65 {
+
66 throw py::value_error("The dependent values array has ndim=" +
+
67 std::to_string(dependent_vals_nd) + ", but a " +
+
68 std::to_string(min_dependent_vals_ndim) +
+
69 "-dimensional or a " +
+
70 std::to_string(max_dependent_vals_ndim) +
+
71 "-dimensional array is expected.");
+
72 }
+
73
+
74 // The coeff_matrix and dependent_vals arrays must be F-contiguous arrays
+
75 // for gesv
+
76 // with the shapes (n, n) and (n, nrhs) or (n, ) respectively;
+
77 // for gesv_batch
+
78 // with the shapes (n, n, batch_size) and (n, nrhs, batch_size) or
+
79 // (n, batch_size) respectively
+
80 if (coeff_matrix_shape[0] != coeff_matrix_shape[1]) {
+
81 throw py::value_error("The coefficient matrix must be square,"
+
82 " but got a shape of (" +
+
83 std::to_string(coeff_matrix_shape[0]) + ", " +
+
84 std::to_string(coeff_matrix_shape[1]) + ").");
+
85 }
+
86 if (coeff_matrix_shape[0] != dependent_vals_shape[0]) {
+
87 throw py::value_error("The first dimension (n) of coeff_matrix and"
+
88 " dependent_vals must be the same, but got " +
+
89 std::to_string(coeff_matrix_shape[0]) + " and " +
+
90 std::to_string(dependent_vals_shape[0]) + ".");
+
91 }
+
92
+
93 // check compatibility of execution queue and allocation queue
+
94 if (!dpctl::utils::queues_are_compatible(exec_q,
+
95 {coeff_matrix, dependent_vals}))
+
96 {
+
97 throw py::value_error(
+
98 "Execution queue is not compatible with allocation queues.");
+
99 }
+
100
+
101 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
+
102 if (overlap(coeff_matrix, dependent_vals)) {
+
103 throw py::value_error(
+
104 "The arrays of coefficients and dependent variables "
+
105 "are overlapping segments of memory.");
+
106 }
+
107
+
108 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(
+
109 dependent_vals);
+
110
+
111 const bool is_coeff_matrix_f_contig = coeff_matrix.is_f_contiguous();
+
112 if (!is_coeff_matrix_f_contig) {
+
113 throw py::value_error("The coefficient matrix "
+
114 "must be F-contiguous.");
+
115 }
+
116
+
117 const bool is_dependent_vals_f_contig = dependent_vals.is_f_contiguous();
+
118 if (!is_dependent_vals_f_contig) {
+
119 throw py::value_error("The array of dependent variables "
+
120 "must be F-contiguous.");
+
121 }
+
122
+
123 auto array_types = dpctl_td_ns::usm_ndarray_types();
+
124 const int coeff_matrix_type_id =
+
125 array_types.typenum_to_lookup_id(coeff_matrix.get_typenum());
+
126 const int dependent_vals_type_id =
+
127 array_types.typenum_to_lookup_id(dependent_vals.get_typenum());
+
128
+
129 if (coeff_matrix_type_id != dependent_vals_type_id) {
+
130 throw py::value_error("The types of the coefficient matrix and "
+
131 "dependent variables are mismatched.");
+
132 }
+
133}
+
134
+
135template <typename T>
+
136inline void handle_lapack_exc(sycl::queue &exec_q,
+
137 const std::int64_t lda,
+
138 T *a,
+
139 std::int64_t scratchpad_size,
+
140 T *scratchpad,
+
141 std::int64_t *ipiv,
+
142 const oneapi::mkl::lapack::exception &e,
+
143 std::stringstream &error_msg)
+
144{
+
145 std::int64_t info = e.info();
+
146 if (info < 0) {
+
147 error_msg << "Parameter number " << -info << " had an illegal value.";
+
148 }
+
149 else if (info == scratchpad_size && e.detail() != 0) {
+
150 error_msg << "Insufficient scratchpad size. Required size is at least "
+
151 << e.detail();
+
152 }
+
153 else if (info > 0) {
+
154 T host_U;
+
155 exec_q.memcpy(&host_U, &a[(info - 1) * lda + info - 1], sizeof(T))
+
156 .wait();
+
157
+
158 using ThresholdType = typename helper::value_type_of<T>::type;
+
159
+
160 const auto threshold =
+
161 std::numeric_limits<ThresholdType>::epsilon() * 100;
+
162 if (std::abs(host_U) < threshold) {
+
163 using dpctl::tensor::alloc_utils::sycl_free_noexcept;
+
164
+
165 if (scratchpad != nullptr)
+
166 sycl_free_noexcept(scratchpad, exec_q);
+
167 if (ipiv != nullptr)
+
168 sycl_free_noexcept(ipiv, exec_q);
+
169 throw LinAlgError("The input coefficient matrix is singular.");
+
170 }
+
171 else {
+
172 error_msg << "Unexpected MKL exception caught during gesv() "
+
173 "call:\nreason: "
+
174 << e.what() << "\ninfo: " << e.info();
+
175 }
+
176 }
+
177 else {
+
178 error_msg
+
179 << "Unexpected MKL exception caught during gesv() call:\nreason: "
+
180 << e.what() << "\ninfo: " << e.info();
+
181 }
+
182}
+
183} // namespace dpnp::extensions::lapack::gesv_utils
+
+
+ + + + diff --git a/pull/2070/backend_doc/gesvd_8hpp_source.html b/pull/2070/backend_doc/gesvd_8hpp_source.html new file mode 100644 index 00000000000..55779053b3a --- /dev/null +++ b/pull/2070/backend_doc/gesvd_8hpp_source.html @@ -0,0 +1,168 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/gesvd.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
gesvd.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::lapack
+
34{
+
35extern std::pair<sycl::event, sycl::event>
+
36 gesvd(sycl::queue &exec_q,
+
37 const std::int8_t jobu_val,
+
38 const std::int8_t jobvt_val,
+
39 const dpctl::tensor::usm_ndarray &a_array,
+
40 const dpctl::tensor::usm_ndarray &out_s,
+
41 const dpctl::tensor::usm_ndarray &out_u,
+
42 const dpctl::tensor::usm_ndarray &out_vt,
+
43 const std::vector<sycl::event> &depends);
+
44
+
45extern std::pair<sycl::event, sycl::event>
+
46 gesvd_batch(sycl::queue &exec_q,
+
47 const std::int8_t jobu_val,
+
48 const std::int8_t jobvt_val,
+
49 const dpctl::tensor::usm_ndarray &a_array,
+
50 const dpctl::tensor::usm_ndarray &out_s,
+
51 const dpctl::tensor::usm_ndarray &out_u,
+
52 const dpctl::tensor::usm_ndarray &out_vt,
+
53 const std::vector<sycl::event> &depends);
+
54
+
55extern void init_gesvd_dispatch_table(void);
+
56extern void init_gesvd_batch_dispatch_table(void);
+
57} // namespace dpnp::extensions::lapack
+
+
+ + + + diff --git a/pull/2070/backend_doc/gesvd__common__utils_8hpp_source.html b/pull/2070/backend_doc/gesvd__common__utils_8hpp_source.html new file mode 100644 index 00000000000..561a55ec4c4 --- /dev/null +++ b/pull/2070/backend_doc/gesvd__common__utils_8hpp_source.html @@ -0,0 +1,346 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/gesvd_common_utils.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
gesvd_common_utils.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27#include <oneapi/mkl.hpp>
+
28#include <pybind11/pybind11.h>
+
29
+
30// dpctl tensor headers
+
31#include "utils/memory_overlap.hpp"
+
32#include "utils/output_validation.hpp"
+
33#include "utils/type_dispatch.hpp"
+
34
+
35#include "common_helpers.hpp"
+
36
+
37namespace dpnp::extensions::lapack::gesvd_utils
+
38{
+
39namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
+
40namespace py = pybind11;
+
41
+
42// Converts a given character code (ord) to the corresponding
+
43// oneapi::mkl::jobsvd enumeration value
+
44inline oneapi::mkl::jobsvd process_job(const std::int8_t job_val)
+
45{
+
46 switch (job_val) {
+
47 case 'A':
+
48 return oneapi::mkl::jobsvd::vectors;
+
49 case 'S':
+
50 return oneapi::mkl::jobsvd::somevec;
+
51 case 'O':
+
52 return oneapi::mkl::jobsvd::vectorsina;
+
53 case 'N':
+
54 return oneapi::mkl::jobsvd::novec;
+
55 default:
+
56 throw std::invalid_argument("Unknown value for job");
+
57 }
+
58}
+
59
+
60inline void common_gesvd_checks(sycl::queue &exec_q,
+
61 const dpctl::tensor::usm_ndarray &a_array,
+
62 const dpctl::tensor::usm_ndarray &out_s,
+
63 const dpctl::tensor::usm_ndarray &out_u,
+
64 const dpctl::tensor::usm_ndarray &out_vt,
+
65 const std::int8_t jobu_val,
+
66 const std::int8_t jobvt_val,
+
67 const int expected_a_u_vt_ndim,
+
68 const int expected_s_ndim)
+
69{
+
70 const int a_array_nd = a_array.get_ndim();
+
71 const int out_u_array_nd = out_u.get_ndim();
+
72 const int out_s_array_nd = out_s.get_ndim();
+
73 const int out_vt_array_nd = out_vt.get_ndim();
+
74
+
75 if (a_array_nd != expected_a_u_vt_ndim) {
+
76 throw py::value_error(
+
77 "The input array has ndim=" + std::to_string(a_array_nd) +
+
78 ", but a " + std::to_string(expected_a_u_vt_ndim) +
+
79 "-dimensional array is expected.");
+
80 }
+
81
+
82 if (out_s_array_nd != expected_s_ndim) {
+
83 throw py::value_error("The output array of singular values has ndim=" +
+
84 std::to_string(out_s_array_nd) + ", but a " +
+
85 std::to_string(expected_s_ndim) +
+
86 "-dimensional array is expected.");
+
87 }
+
88
+
89 if (jobu_val == 'N' && jobvt_val == 'N') {
+
90 if (out_u_array_nd != 0) {
+
91 throw py::value_error(
+
92 "The output array of the left singular vectors has ndim=" +
+
93 std::to_string(out_u_array_nd) +
+
94 ", but it is not used and should have ndim=0.");
+
95 }
+
96 if (out_vt_array_nd != 0) {
+
97 throw py::value_error(
+
98 "The output array of the right singular vectors has ndim=" +
+
99 std::to_string(out_vt_array_nd) +
+
100 ", but it is not used and should have ndim=0.");
+
101 }
+
102 }
+
103 else {
+
104 if (out_u_array_nd != expected_a_u_vt_ndim) {
+
105 throw py::value_error(
+
106 "The output array of the left singular vectors has ndim=" +
+
107 std::to_string(out_u_array_nd) + ", but a " +
+
108 std::to_string(expected_a_u_vt_ndim) +
+
109 "-dimensional array is expected.");
+
110 }
+
111 if (out_vt_array_nd != expected_a_u_vt_ndim) {
+
112 throw py::value_error(
+
113 "The output array of the right singular vectors has ndim=" +
+
114 std::to_string(out_vt_array_nd) + ", but a " +
+
115 std::to_string(expected_a_u_vt_ndim) +
+
116 "-dimensional array is expected.");
+
117 }
+
118 }
+
119
+
120 // check compatibility of execution queue and allocation queue
+
121 if (!dpctl::utils::queues_are_compatible(exec_q,
+
122 {a_array, out_s, out_u, out_vt}))
+
123 {
+
124 throw py::value_error(
+
125 "Execution queue is not compatible with allocation queues.");
+
126 }
+
127
+
128 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
+
129 if (overlap(a_array, out_s) || overlap(a_array, out_u) ||
+
130 overlap(a_array, out_vt) || overlap(out_s, out_u) ||
+
131 overlap(out_s, out_vt) || overlap(out_u, out_vt))
+
132 {
+
133 throw py::value_error("Arrays have overlapping segments of memory");
+
134 }
+
135
+
136 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(a_array);
+
137 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(out_s);
+
138 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(out_u);
+
139 dpctl::tensor::validation::CheckWritable::throw_if_not_writable(out_vt);
+
140
+
141 const bool is_a_array_f_contig = a_array.is_f_contiguous();
+
142 if (!is_a_array_f_contig) {
+
143 throw py::value_error("The input array must be F-contiguous");
+
144 }
+
145
+
146 const bool is_out_u_array_f_contig = out_u.is_f_contiguous();
+
147 const bool is_out_vt_array_f_contig = out_vt.is_f_contiguous();
+
148
+
149 if (!is_out_u_array_f_contig || !is_out_vt_array_f_contig) {
+
150 throw py::value_error("The output arrays of the left and right "
+
151 "singular vectors must be F-contiguous");
+
152 }
+
153
+
154 const bool is_out_s_array_c_contig = out_s.is_c_contiguous();
+
155
+
156 if (!is_out_s_array_c_contig) {
+
157 throw py::value_error("The output array of singular values "
+
158 "must be C-contiguous");
+
159 }
+
160
+
161 auto array_types = dpctl_td_ns::usm_ndarray_types();
+
162 const int a_array_type_id =
+
163 array_types.typenum_to_lookup_id(a_array.get_typenum());
+
164 const int out_u_type_id =
+
165 array_types.typenum_to_lookup_id(out_u.get_typenum());
+
166 const int out_vt_type_id =
+
167 array_types.typenum_to_lookup_id(out_vt.get_typenum());
+
168
+
169 if (a_array_type_id != out_u_type_id || a_array_type_id != out_vt_type_id) {
+
170 throw py::type_error(
+
171 "Input array, output left singular vectors array, "
+
172 "and outpuy right singular vectors array must have "
+
173 "the same data type");
+
174 }
+
175}
+
176
+
177// Check if the shape of input arrays for gesvd has any non-zero dimension.
+
178inline bool check_zeros_shape_gesvd(const dpctl::tensor::usm_ndarray &a_array,
+
179 const dpctl::tensor::usm_ndarray &out_s,
+
180 const dpctl::tensor::usm_ndarray &out_u,
+
181 const dpctl::tensor::usm_ndarray &out_vt,
+
182 const std::int8_t jobu_val,
+
183 const std::int8_t jobvt_val)
+
184{
+
185
+
186 const int a_array_nd = a_array.get_ndim();
+
187 const int out_u_array_nd = out_u.get_ndim();
+
188 const int out_s_array_nd = out_s.get_ndim();
+
189 const int out_vt_array_nd = out_vt.get_ndim();
+
190
+
191 const py::ssize_t *a_array_shape = a_array.get_shape_raw();
+
192 const py::ssize_t *s_out_shape = out_s.get_shape_raw();
+
193 const py::ssize_t *u_out_shape = out_u.get_shape_raw();
+
194 const py::ssize_t *vt_out_shape = out_vt.get_shape_raw();
+
195
+
196 bool is_zeros_shape = helper::check_zeros_shape(a_array_nd, a_array_shape);
+
197 if (jobu_val == 'N' && jobvt_val == 'N') {
+
198 is_zeros_shape = is_zeros_shape || helper::check_zeros_shape(
+
199 out_vt_array_nd, vt_out_shape);
+
200 }
+
201 else {
+
202 is_zeros_shape =
+
203 is_zeros_shape ||
+
204 helper::check_zeros_shape(out_u_array_nd, u_out_shape) ||
+
205 helper::check_zeros_shape(out_s_array_nd, s_out_shape) ||
+
206 helper::check_zeros_shape(out_vt_array_nd, vt_out_shape);
+
207 }
+
208
+
209 return is_zeros_shape;
+
210}
+
211
+
212inline void handle_lapack_exc(const std::int64_t scratchpad_size,
+
213 const oneapi::mkl::lapack::exception &e,
+
214 std::stringstream &error_msg)
+
215{
+
216 const std::int64_t info = e.info();
+
217 if (info < 0) {
+
218 error_msg << "Parameter number " << -info << " had an illegal value.";
+
219 }
+
220 else if (info == scratchpad_size && e.detail() != 0) {
+
221 error_msg << "Insufficient scratchpad size. Required size is at least "
+
222 << e.detail();
+
223 }
+
224 else if (info > 0) {
+
225 error_msg << "The algorithm computing SVD failed to converge; " << info
+
226 << " off-diagonal elements of an intermediate "
+
227 << "bidiagonal form did not converge to zero.\n";
+
228 }
+
229 else {
+
230 error_msg
+
231 << "Unexpected MKL exception caught during gesv() call:\nreason: "
+
232 << e.what() << "\ninfo: " << e.info();
+
233 }
+
234}
+
235} // namespace dpnp::extensions::lapack::gesvd_utils
+
+
+ + + + diff --git a/pull/2070/backend_doc/getrf_8hpp_source.html b/pull/2070/backend_doc/getrf_8hpp_source.html new file mode 100644 index 00000000000..a7187d4bca2 --- /dev/null +++ b/pull/2070/backend_doc/getrf_8hpp_source.html @@ -0,0 +1,166 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/getrf.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
getrf.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::lapack
+
34{
+
35extern std::pair<sycl::event, sycl::event>
+
36 getrf(sycl::queue &exec_q,
+
37 const dpctl::tensor::usm_ndarray &a_array,
+
38 const dpctl::tensor::usm_ndarray &ipiv_array,
+
39 py::list dev_info,
+
40 const std::vector<sycl::event> &depends = {});
+
41
+
42extern std::pair<sycl::event, sycl::event>
+
43 getrf_batch(sycl::queue &exec_q,
+
44 const dpctl::tensor::usm_ndarray &a_array,
+
45 const dpctl::tensor::usm_ndarray &ipiv_array,
+
46 py::list dev_info,
+
47 std::int64_t n,
+
48 std::int64_t stride_a,
+
49 std::int64_t stride_ipiv,
+
50 std::int64_t batch_size,
+
51 const std::vector<sycl::event> &depends = {});
+
52
+
53extern void init_getrf_dispatch_vector(void);
+
54extern void init_getrf_batch_dispatch_vector(void);
+
55} // namespace dpnp::extensions::lapack
+
+
+ + + + diff --git a/pull/2070/backend_doc/getri_8hpp_source.html b/pull/2070/backend_doc/getri_8hpp_source.html new file mode 100644 index 00000000000..c5122d79384 --- /dev/null +++ b/pull/2070/backend_doc/getri_8hpp_source.html @@ -0,0 +1,158 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/getri.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
getri.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::lapack
+
34{
+
35extern std::pair<sycl::event, sycl::event>
+
36 getri_batch(sycl::queue &exec_q,
+
37 const dpctl::tensor::usm_ndarray &a_array,
+
38 const dpctl::tensor::usm_ndarray &ipiv_array,
+
39 py::list dev_info,
+
40 std::int64_t n,
+
41 std::int64_t stride_a,
+
42 std::int64_t stride_ipiv,
+
43 std::int64_t batch_size,
+
44 const std::vector<sycl::event> &depends = {});
+
45
+
46extern void init_getri_batch_dispatch_vector(void);
+
47} // namespace dpnp::extensions::lapack
+
+
+ + + + diff --git a/pull/2070/backend_doc/getrs_8hpp_source.html b/pull/2070/backend_doc/getrs_8hpp_source.html new file mode 100644 index 00000000000..7d1a91d941a --- /dev/null +++ b/pull/2070/backend_doc/getrs_8hpp_source.html @@ -0,0 +1,154 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/getrs.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
getrs.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::lapack
+
34{
+
35extern std::pair<sycl::event, sycl::event>
+
36 getrs(sycl::queue &exec_q,
+
37 const dpctl::tensor::usm_ndarray &a_array,
+
38 const dpctl::tensor::usm_ndarray &ipiv_array,
+
39 const dpctl::tensor::usm_ndarray &b_array,
+
40 const std::vector<sycl::event> &depends = {});
+
41
+
42extern void init_getrs_dispatch_vector(void);
+
43} // namespace dpnp::extensions::lapack
+
+
+ + + + diff --git a/pull/2070/backend_doc/graph_legend.html b/pull/2070/backend_doc/graph_legend.html new file mode 100644 index 00000000000..289d6fc47f6 --- /dev/null +++ b/pull/2070/backend_doc/graph_legend.html @@ -0,0 +1,165 @@ + + + + + + + +DPNP C++ backend kernel library: Graph Legend + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/pull/2070/backend_doc/graph_legend.md5 b/pull/2070/backend_doc/graph_legend.md5 new file mode 100644 index 00000000000..da515da9d29 --- /dev/null +++ b/pull/2070/backend_doc/graph_legend.md5 @@ -0,0 +1 @@ +f74606a252eb303675caf37987d0b7af \ No newline at end of file diff --git a/pull/2070/backend_doc/graph_legend.png b/pull/2070/backend_doc/graph_legend.png new file mode 100644 index 00000000000..9fd8831bcec Binary files /dev/null and b/pull/2070/backend_doc/graph_legend.png differ diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i.html b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i.html new file mode 100644 index 00000000000..5442bbfc8b9 --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i.html @@ -0,0 +1,2924 @@ + + + + + + + +DPNP C++ backend kernel library: Backend C++ library interface API + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Backend C++ library interface API
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename _DataType_input , typename _DataType_output >
DPCTLSyclEventRef dpnp_sqrt_c (DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, const size_t result_ndim, const shape_elem_type *result_shape, const shape_elem_type *result_strides, const void *input1_in, const size_t input1_size, const size_t input1_ndim, const shape_elem_type *input1_shape, const shape_elem_type *input1_strides, const size_t *where, const DPCTLEventVectorRef dep_event_vec_ref)
 Per element operation function dpnp_sqrt_c
+
 
template<typename _DataType_input1 , typename _DataType_input2 , typename _DataType_output >
DPCTLSyclEventRef dpnp_multiply_c (DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, const size_t result_ndim, const shape_elem_type *result_shape, const shape_elem_type *result_strides, const void *input1_in, const size_t input1_size, const size_t input1_ndim, const shape_elem_type *input1_shape, const shape_elem_type *input1_strides, const void *input2_in, const size_t input2_size, const size_t input2_ndim, const shape_elem_type *input2_shape, const shape_elem_type *input2_strides, const size_t *where, const DPCTLEventVectorRef dep_event_vec_ref)
 Per element operation function dpnp_multiply_c
+
 
size_t dpnp_queue_is_cpu_c ()
 SYCL queue device status.
 
char * dpnp_memory_alloc_c (DPCTLSyclQueueRef q_ref, size_t size_in_bytes)
 SYCL queue memory allocation.
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_nanvar_c (DPCTLSyclQueueRef q_ref, void *array, void *mask_arr, void *result, const size_t result_size, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 Compute the variance along the specified axis, while ignoring NaNs.
 
template<typename _DataType_output , typename _DataType_input1 , typename _DataType_input2 >
DPCTLSyclEventRef dpnp_dot_c (DPCTLSyclQueueRef q_ref, void *result_out, const size_t result_size, const size_t result_ndim, const shape_elem_type *result_shape, const shape_elem_type *result_strides, const void *input1_in, const size_t input1_size, const size_t input1_ndim, const shape_elem_type *input1_shape, const shape_elem_type *input1_strides, const void *input2_in, const size_t input2_size, const size_t input2_ndim, const shape_elem_type *input2_shape, const shape_elem_type *input2_strides, const DPCTLEventVectorRef dep_event_vec_ref)
 Custom implementation of dot function.
 
template<typename _DataType_output , typename _DataType_input >
DPCTLSyclEventRef dpnp_sum_c (DPCTLSyclQueueRef q_ref, void *result_out, const void *input_in, const shape_elem_type *input_shape, const size_t input_shape_ndim, const shape_elem_type *axes, const size_t axes_ndim, const void *initial, const long *where, const DPCTLEventVectorRef dep_event_vec_ref)
 Compute summary of input array elements.
 
template<typename _DataType_input , typename _DataType_output >
DPCTLSyclEventRef dpnp_count_nonzero_c (DPCTLSyclQueueRef q_ref, void *array1_in, void *result1_out, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 Custom implementation of count_nonzero function.
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_partition_c (DPCTLSyclQueueRef q_ref, void *array, void *array2, void *result, const size_t kth, const shape_elem_type *shape, const size_t ndim, const DPCTLEventVectorRef dep_event_vec_ref)
 Return a partitioned copy of an array.
 
template<typename _DataType_output , typename _DataType_input >
DPCTLSyclEventRef dpnp_prod_c (DPCTLSyclQueueRef q_ref, void *result_out, const void *input_in, const shape_elem_type *input_shape, const size_t input_shape_ndim, const shape_elem_type *axes, const size_t axes_ndim, const void *initial, const long *where, const DPCTLEventVectorRef dep_event_vec_ref)
 Compute Product of input array elements.
 
template<typename _DataType , typename _idx_DataType >
DPCTLSyclEventRef dpnp_argsort_c (DPCTLSyclQueueRef q_ref, void *array, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of argsort function
 
template<typename _DataType , typename _IndexingType >
DPCTLSyclEventRef dpnp_searchsorted_c (DPCTLSyclQueueRef q_ref, void *result, const void *array, const void *v, bool side, const size_t arr_size, const size_t v_size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of searchsorted function
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_sort_c (DPCTLSyclQueueRef q_ref, void *array, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of sort function
 
template<typename _DataType_output , typename _DataType_input1 , typename _DataType_input2 >
DPCTLSyclEventRef dpnp_correlate_c (DPCTLSyclQueueRef q_ref, void *result_out, const void *input1_in, const size_t input1_size, const shape_elem_type *input1_shape, const size_t input1_shape_ndim, const void *input2_in, const size_t input2_size, const shape_elem_type *input2_shape, const size_t input2_shape_ndim, const size_t *where, const DPCTLEventVectorRef dep_event_vec_ref)
 correlate function
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_cov_c (DPCTLSyclQueueRef q_ref, void *array1_in, void *result1, size_t nrows, size_t ncols, const DPCTLEventVectorRef dep_event_vec_ref)
 Custom implementation of cov function with math library and PSTL.
 
template<typename _DataType1 , typename _DataType2 >
DPCTLSyclEventRef dpnp_choose_c (DPCTLSyclQueueRef q_ref, void *result1, void *array1_in, void **choices, size_t size, size_t choices_size, size_t choice_size, const DPCTLEventVectorRef dep_event_vec_ref)
 Construct an array from an index array and a list of arrays to choose from.
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_initval_c (DPCTLSyclQueueRef q_ref, void *result1, void *value, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 implementation of creating filled with value array function
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_max_c (DPCTLSyclQueueRef q_ref, void *array1_in, void *result1, const size_t result_size, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of max function
 
template<typename _DataType , typename _ResultType >
DPCTLSyclEventRef dpnp_mean_c (DPCTLSyclQueueRef q_ref, void *array, void *result, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of mean function
 
template<typename _DataType , typename _ResultType >
DPCTLSyclEventRef dpnp_median_c (DPCTLSyclQueueRef q_ref, void *array, void *result, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of median function
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_min_c (DPCTLSyclQueueRef q_ref, void *array, void *result, const size_t result_size, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of min function
 
template<typename _DataType , typename _idx_DataType >
DPCTLSyclEventRef dpnp_argmax_c (DPCTLSyclQueueRef q_ref, void *array, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of argmax function
 
template<typename _DataType , typename _idx_DataType >
DPCTLSyclEventRef dpnp_argmin_c (DPCTLSyclQueueRef q_ref, void *array, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of argmin function
 
template<typename _DataType , typename _ResultType >
DPCTLSyclEventRef dpnp_std_c (DPCTLSyclQueueRef q_ref, void *array, void *result, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, size_t ddof, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of std function
 
template<typename _DataType , typename _ResultType >
DPCTLSyclEventRef dpnp_var_c (DPCTLSyclQueueRef q_ref, void *array, void *result, const shape_elem_type *shape, size_t ndim, const shape_elem_type *axis, size_t naxis, size_t ddof, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of var function
 
template<typename _DataType_input , typename _DataType_output >
DPCTLSyclEventRef dpnp_modf_c (DPCTLSyclQueueRef q_ref, void *array1_in, void *result1_out, void *result2_out, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 modf function.
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_ones_c (DPCTLSyclQueueRef q_ref, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 Implementation of ones function.
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_ones_like_c (DPCTLSyclQueueRef q_ref, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 Implementation of ones_like function.
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_zeros_c (DPCTLSyclQueueRef q_ref, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 Implementation of zeros function.
 
template<typename _DataType >
DPCTLSyclEventRef dpnp_zeros_like_c (DPCTLSyclQueueRef q_ref, void *result, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 Implementation of zeros_like function.
 
INP_DLLEXPORT DPNPFuncData_t get_dpnp_function_ptr (DPNPFuncName name, DPNPFuncType first_type, DPNPFuncType second_type=DPNPFuncType::DPNP_FT_NONE)
 get runtime pointer to selected function
 
INP_DLLEXPORT void * get_dpnp_function_ptr1 (DPNPFuncType &result_type, DPNPFuncName name, DPNPFuncType first_type, DPNPFuncType second_type=DPNPFuncType::DPNP_FT_NONE)
 get runtime pointer to selected function
 
INP_DLLEXPORT void dpnp_python_constants_initialize_c (void *py_none, void *py_nan)
 Python constants initialization in the backend.
 
void MT19937_InitScalarSeed (mt19937_struct *mt19937, DPCTLSyclQueueRef q_ref, uint32_t seed=1)
 Create a MKL engine from scalar seed.
 
void MT19937_InitVectorSeed (mt19937_struct *mt19937, DPCTLSyclQueueRef q_ref, uint32_t *seed, unsigned int n)
 Create a MKL engine from seed vector.
 
void MT19937_Delete (mt19937_struct *mt19937)
 Release a MKL engine.
 
void MCG59_InitScalarSeed (mcg59_struct *mcg59, DPCTLSyclQueueRef q_ref, uint64_t seed)
 Create a MKL engine from scalar seed.
 
void MCG59_Delete (mcg59_struct *mcg59)
 Release a MKL engine.
 
+

Detailed Description

+

This section describes Backend API.

+

Function Documentation

+ +

◆ dpnp_argmax_c()

+ +
+
+
+template<typename _DataType , typename _idx_DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_argmax_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of argmax function

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array with indices.
[in]sizeNumber of elements in input array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_argmin_c()

+ +
+
+
+template<typename _DataType , typename _idx_DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_argmin_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of argmin function

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array with indices.
[in]sizeNumber of elements in input array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_argsort_c()

+ +
+
+
+template<typename _DataType , typename _idx_DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_argsort_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of argsort function

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array with indices.
[in]sizeNumber of elements in input arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_choose_c()

+ +
+
+
+template<typename _DataType1 , typename _DataType2 >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_choose_c (DPCTLSyclQueueRef q_ref,
void * result1,
void * array1_in,
void ** choices,
size_t size,
size_t choices_size,
size_t choice_size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Construct an array from an index array and a list of arrays to choose from.

+
Parameters
+ + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result1Output array.
[in]array1_inInput array with data.
[in]choicesChoice arrays.
[in]sizeInput array size.
[in]choices_sizeChoices size.
[in]choice_sizeChoice size.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_correlate_c()

+ +
+
+
+template<typename _DataType_output , typename _DataType_input1 , typename _DataType_input2 >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_correlate_c (DPCTLSyclQueueRef q_ref,
void * result_out,
const void * input1_in,
const size_t input1_size,
const shape_elem_type * input1_shape,
const size_t input1_shape_ndim,
const void * input2_in,
const size_t input2_size,
const shape_elem_type * input2_shape,
const size_t input2_shape_ndim,
const size_t * where,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

correlate function

+
Parameters
+ + + + + + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array.
[in]input1_inFirst input array.
[in]input1_sizeSize of first input array.
[in]input1_shapeShape of first input array.
[in]input1_shape_ndimNumber of first array dimensions.
[in]input2_inSecond input array.
[in]input2_sizeShape of second input array.
[in]input2_shapeShape of first input array.
[in]input2_shape_ndimNumber of second array dimensions.
[in]whereMask array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_count_nonzero_c()

+ +
+
+
+template<typename _DataType_input , typename _DataType_output >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_count_nonzero_c (DPCTLSyclQueueRef q_ref,
void * array1_in,
void * result1_out,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Custom implementation of count_nonzero function.

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[in]array1_inInput array.
[out]result1_outOutput array.
[in]sizeNumber of elements in input arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_cov_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_cov_c (DPCTLSyclQueueRef q_ref,
void * array1_in,
void * result1,
size_t nrows,
size_t ncols,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Custom implementation of cov function with math library and PSTL.

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array.
[out]resultOutput array.
[in]nrowsNumber of rows in input array.
[in]ncolsNumber of columns in input array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_dot_c()

+ +
+
+
+template<typename _DataType_output , typename _DataType_input1 , typename _DataType_input2 >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_dot_c (DPCTLSyclQueueRef q_ref,
void * result_out,
const size_t result_size,
const size_t result_ndim,
const shape_elem_type * result_shape,
const shape_elem_type * result_strides,
const void * input1_in,
const size_t input1_size,
const size_t input1_ndim,
const shape_elem_type * input1_shape,
const shape_elem_type * input1_strides,
const void * input2_in,
const size_t input2_size,
const size_t input2_ndim,
const shape_elem_type * input2_shape,
const shape_elem_type * input2_strides,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Custom implementation of dot function.

+
Parameters
+ + + + + + + + + + + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array.
[in]result_sizeSize of output array.
[in]result_ndimNumber of output array dimensions.
[in]result_shapeShape of output array.
[in]result_stridesStrides of output array.
[in]input1_inFirst input array.
[in]input1_sizeSize of first input array.
[in]input1_ndimNumber of first input array dimensions.
[in]input1_shapeShape of first input array.
[in]input1_stridesStrides of first input array.
[in]input2_inSecond input array.
[in]input2_sizeSize of second input array.
[in]input2_ndimNumber of second input array dimensions.
[in]input2_shapeShape of second input array.
[in]input2_stridesStrides of second input array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_initval_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_initval_c (DPCTLSyclQueueRef q_ref,
void * result1,
void * value,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

implementation of creating filled with value array function

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]result1Output array.
[in]valueValue in array.
[in]sizeNumber of elements in array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_max_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_max_c (DPCTLSyclQueueRef q_ref,
void * array1_in,
void * result1,
const size_t result_size,
const shape_elem_type * shape,
size_t ndim,
const shape_elem_type * axis,
size_t naxis,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of max function

+
Parameters
+ + + + + + + + + + +
[in]q_refReference to SYCL queue.
[in]array1_inInput array with data.
[out]result1Output array.
[in]result_sizeOutput array size.
[in]shapeShape of input array.
[in]ndimNumber of elements in shape.
[in]axisAxis.
[in]naxisNumber of elements in axis.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_mean_c()

+ +
+
+
+template<typename _DataType , typename _ResultType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_mean_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
const shape_elem_type * shape,
size_t ndim,
const shape_elem_type * axis,
size_t naxis,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of mean function

+
Parameters
+ + + + + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array.
[in]shapeShape of input array.
[in]ndimNumber of elements in shape.
[in]axisAxis.
[in]naxisNumber of elements in axis.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_median_c()

+ +
+
+
+template<typename _DataType , typename _ResultType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_median_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
const shape_elem_type * shape,
size_t ndim,
const shape_elem_type * axis,
size_t naxis,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of median function

+
Parameters
+ + + + + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array.
[in]shapeShape of input array.
[in]ndimNumber of elements in shape.
[in]axisAxis.
[in]naxisNumber of elements in axis.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_memory_alloc_c()

+ +
+
+ + + + + + + + + + + + + + + + + + +
char * dpnp_memory_alloc_c (DPCTLSyclQueueRef q_ref,
size_t size_in_bytes 
)
+
+ +

SYCL queue memory allocation.

+

Memory allocation on the SYCL backend.

+
Parameters
+ + + +
[in]size_in_bytesNumber of bytes for requested memory allocation.
[in]q_refReference to SYCL queue.
+
+
+
Returns
A pointer to newly created memory on SYCL device.
+
+Here is the caller graph for this function:
+
+
+ + + + + + + +
+ +
+
+ +

◆ dpnp_min_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_min_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
const size_t result_size,
const shape_elem_type * shape,
size_t ndim,
const shape_elem_type * axis,
size_t naxis,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of min function

+
Parameters
+ + + + + + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array.
[in]result_sizeOutput array size.
[in]shapeShape of input array.
[in]ndimNumber of elements in shape.
[in]axisAxis.
[in]naxisNumber of elements in axis.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_modf_c()

+ +
+
+
+template<typename _DataType_input , typename _DataType_output >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_modf_c (DPCTLSyclQueueRef q_ref,
void * array1_in,
void * result1_out,
void * result2_out,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

modf function.

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[in]array1_inInput array.
[out]result1_outOutput array 1.
[out]result2_outOutput array 2.
[in]sizeNumber of elements in input arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_multiply_c()

+ +
+
+
+template<typename _DataType_input1 , typename _DataType_input2 , typename _DataType_output >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_multiply_c (DPCTLSyclQueueRef q_ref,
void * result_out,
const size_t result_size,
const size_t result_ndim,
const shape_elem_type * result_shape,
const shape_elem_type * result_strides,
const void * input1_in,
const size_t input1_size,
const size_t input1_ndim,
const shape_elem_type * input1_shape,
const shape_elem_type * input1_strides,
const void * input2_in,
const size_t input2_size,
const size_t input2_ndim,
const shape_elem_type * input2_shape,
const shape_elem_type * input2_strides,
const size_t * where,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Per element operation function dpnp_multiply_c
+

+

Function "dpnp_multiply_c" executes operator "input1_elem *input2_elem" over * corresponding elements of input arrays
+

Parameters
+ + + + + + + + + + + + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array.
[in]result_sizeOutput array size.
[in]result_ndimNumber of output array dimensions.
+
[in]result_shapeOutput array shape.
[in]result_stridesOutput array strides.
[in]input1_inInput array 1.
[in]input1_sizeInput array 1 size.
[in]input1_ndimNumber of input array 1 dimensions.
+
[in]input1_shapeInput array 1 shape.
[in]input1_stridesInput array 1 strides.
[in]input2_inInput array 2.
[in]input2_sizeInput array 2 size.
[in]input2_ndimNumber of input array 2 dimensions.
+
[in]input2_shapeInput array 2 shape.
[in]input2_stridesInput array 2 strides.
[in]whereWhere condition.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+
+ +
+
+ +

◆ dpnp_nanvar_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_nanvar_c (DPCTLSyclQueueRef q_ref,
void * array,
void * mask_arr,
void * result,
const size_t result_size,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Compute the variance along the specified axis, while ignoring NaNs.

+
Parameters
+ + + + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array.
[in]mask_arrInput mask array when elem is nan.
[out]resultOutput array.
[in]result_sizeOutput array size.
[in]sizeNumber of elements in input arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_ones_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_ones_c (DPCTLSyclQueueRef q_ref,
void * result,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Implementation of ones function.

+
Parameters
+ + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]sizeNumber of elements in the output array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_ones_like_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_ones_like_c (DPCTLSyclQueueRef q_ref,
void * result,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Implementation of ones_like function.

+
Parameters
+ + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]sizeNumber of elements in the output array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_partition_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_partition_c (DPCTLSyclQueueRef q_ref,
void * array,
void * array2,
void * result,
const size_t kth,
const shape_elem_type * shape,
const size_t ndim,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Return a partitioned copy of an array.

+
Parameters
+ + + + + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array.
[in]array2Copy input array.
[out]resultResult array.
[in]kthElement index to partition by.
[in]shapeShape of input array.
[in]ndimNumber of elements in shape.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_prod_c()

+ +
+
+
+template<typename _DataType_output , typename _DataType_input >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_prod_c (DPCTLSyclQueueRef q_ref,
void * result_out,
const void * input_in,
const shape_elem_type * input_shape,
const size_t input_shape_ndim,
const shape_elem_type * axes,
const size_t axes_ndim,
const void * initial,
const long * where,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Compute Product of input array elements.

+

Input array is expected as _DataType_input type and assume result as _DataType_output type. The function creates no memory.

+

Empty input_shape means scalar.

+
Parameters
+ + + + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array pointer. _DataType_output type is expected
[in]input_inInput array pointer. _DataType_input type is expected
[in]input_shapeShape of input_in
[in]input_shape_ndimNumber of elements in input_shape
[in]axesArray of axes to apply to input_shape
[in]axes_ndimNumber of elements in axes
[in]initialPointer to initial value for the algorithm. _DataType_input is expected
[in]wheremask array
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_python_constants_initialize_c()

+ +
+
+ + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT void dpnp_python_constants_initialize_c (void * py_none,
void * py_nan 
)
+
+ +

Python constants initialization in the backend.

+

Global values from Python to use in algorithms.

+
Parameters
+ + + +
[in]py_nonePython NONE representation
[in]py_nanPython NAN representation
+
+
+ +
+
+ +

◆ dpnp_queue_is_cpu_c()

+ +
+
+ + + + + + + +
size_t dpnp_queue_is_cpu_c ()
+
+ +

SYCL queue device status.

+

Return 1 if current queue is related to cpu device. return 0 otherwise.

+ +
+
+ +

◆ dpnp_searchsorted_c()

+ +
+
+
+template<typename _DataType , typename _IndexingType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_searchsorted_c (DPCTLSyclQueueRef q_ref,
void * result,
const void * array,
const void * v,
bool side,
const size_t arr_size,
const size_t v_size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of searchsorted function

+
Parameters
+ + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]arrayInput array with data.
[in]vInput values to insert into array.
[in]sideParam for choosing a case of searching for elements.
[in]arr_sizeNumber of elements in input arrays.
[in]v_sizeNumber of elements in input values arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_sort_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_sort_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of sort function

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array with indices.
[in]sizeNumber of elements in input arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_sqrt_c()

+ +
+
+
+template<typename _DataType_input , typename _DataType_output >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_sqrt_c (DPCTLSyclQueueRef q_ref,
void * result_out,
const size_t result_size,
const size_t result_ndim,
const shape_elem_type * result_shape,
const shape_elem_type * result_strides,
const void * input1_in,
const size_t input1_size,
const size_t input1_ndim,
const shape_elem_type * input1_shape,
const shape_elem_type * input1_strides,
const size_t * where,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Per element operation function dpnp_sqrt_c
+

+

Function "dpnp_sqrt_c" executes operator "sycl::sqrt(input_elem)" over each * element of the array
+

Parameters
+ + + + + + + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array.
[in]result_sizeOutput array size.
[in]result_ndimNumber of output array dimensions.
+
[in]result_shapeOutput array shape.
[in]result_stridesOutput array strides.
[in]input1_inInput array 1.
[in]input1_sizeInput array 1 size.
[in]input1_ndimNumber of input array 1 dimensions.
+
[in]input1_shapeInput array 1 shape.
[in]input1_stridesInput array 1 strides.
[in]whereWhere condition.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+
+ +
+
+ +

◆ dpnp_std_c()

+ +
+
+
+template<typename _DataType , typename _ResultType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_std_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
const shape_elem_type * shape,
size_t ndim,
const shape_elem_type * axis,
size_t naxis,
size_t ddof,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of std function

+
Parameters
+ + + + + + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array with indices.
[in]shapeShape of input array.
[in]ndimNumber of elements in shape.
[in]axisAxis.
[in]naxisNumber of elements in axis.
[in]ddofDelta degrees of freedom.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_sum_c()

+ +
+
+
+template<typename _DataType_output , typename _DataType_input >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_sum_c (DPCTLSyclQueueRef q_ref,
void * result_out,
const void * input_in,
const shape_elem_type * input_shape,
const size_t input_shape_ndim,
const shape_elem_type * axes,
const size_t axes_ndim,
const void * initial,
const long * where,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Compute summary of input array elements.

+

Input array is expected as _DataType_input type and assume result as _DataType_output type. The function creates no memory.

+

Empty input_shape means scalar.

+
Parameters
+ + + + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array pointer. _DataType_output type is expected
[in]input_inInput array pointer. _DataType_input type is expected
[in]input_shapeShape of input_in
[in]input_shape_ndimNumber of elements in input_shape
[in]axesArray of axes to apply to input_shape
[in]axes_ndimNumber of elements in axes
[in]initialPointer to initial value for the algorithm. _DataType_input is expected
[in]wheremask array
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_var_c()

+ +
+
+
+template<typename _DataType , typename _ResultType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_var_c (DPCTLSyclQueueRef q_ref,
void * array,
void * result,
const shape_elem_type * shape,
size_t ndim,
const shape_elem_type * axis,
size_t naxis,
size_t ddof,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of var function

+
Parameters
+ + + + + + + + + + +
[in]q_refReference to SYCL queue.
[in]arrayInput array with data.
[out]resultOutput array with indices.
[in]shapeShape of input array.
[in]ndimNumber of elements in shape.
[in]axisAxis.
[in]naxisNumber of elements in axis.
[in]ddofDelta degrees of freedom.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_zeros_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_zeros_c (DPCTLSyclQueueRef q_ref,
void * result,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Implementation of zeros function.

+
Parameters
+ + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]sizeNumber of elements in the output array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_zeros_like_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DPCTLSyclEventRef dpnp_zeros_like_c (DPCTLSyclQueueRef q_ref,
void * result,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

Implementation of zeros_like function.

+
Parameters
+ + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]sizeNumber of elements in the output array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ get_dpnp_function_ptr()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPNPFuncData_t get_dpnp_function_ptr (DPNPFuncName name,
DPNPFuncType first_type,
DPNPFuncType second_type = DPNPFuncType::DPNP_FT_NONE 
)
+
+ +

get runtime pointer to selected function

+

Runtime pointer to the backend API function from storage map<name, map<first_type, map<second_type, DPNPFuncData_t>>>

+
Parameters
+ + + + +
[in]nameName of the function in storage
[in]first_typeFirst type of the storage
[in]second_typeSecond type of the storage
+
+
+
Returns
Struct DPNPFuncData_t with information about the backend API function.
+ +
+
+ +

◆ get_dpnp_function_ptr1()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT void * get_dpnp_function_ptr1 (DPNPFuncTyperesult_type,
DPNPFuncName name,
DPNPFuncType first_type,
DPNPFuncType second_type = DPNPFuncType::DPNP_FT_NONE 
)
+
+ +

get runtime pointer to selected function

+

Same interface function as get_dpnp_function_ptr with a bit different interface

+
Parameters
+ + + + + +
[out]result_typeType of the result provided by the backend API function
[in]nameName of the function in storage
[in]first_typeFirst type of the storage
[in]second_typeSecond type of the storage
+
+
+
Returns
pointer to the backend API function.
+ +
+
+ +

◆ MCG59_Delete()

+ +
+
+ + + + + + + + +
void MCG59_Delete (mcg59_structmcg59)
+
+ +

Release a MKL engine.

+

Release all resource required for storing of the MKL engine.

+
Parameters
+ + +
[in]mcg59A structure with the MKL engine.
+
+
+ +
+
+ +

◆ MCG59_InitScalarSeed()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void MCG59_InitScalarSeed (mcg59_structmcg59,
DPCTLSyclQueueRef q_ref,
uint64_t seed 
)
+
+ +

Create a MKL engine from scalar seed.

+

Invoke a common seed initialization of the engine for MCG59 algorithm.

+
Parameters
+ + + + +
[in]mcg59A structure with MKL engine which will be filled with generated value by MKL.
[in]q_refA reference on SYCL queue which will be used to obtain random numbers.
[in]seedAn initial condition of the generator state.
+
+
+ +
+
+ +

◆ MT19937_Delete()

+ +
+
+ + + + + + + + +
void MT19937_Delete (mt19937_structmt19937)
+
+ +

Release a MKL engine.

+

Release all resource required for storing of the MKL engine.

+
Parameters
+ + +
[in]mt19937A structure with the MKL engine.
+
+
+ +
+
+ +

◆ MT19937_InitScalarSeed()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void MT19937_InitScalarSeed (mt19937_structmt19937,
DPCTLSyclQueueRef q_ref,
uint32_t seed = 1 
)
+
+ +

Create a MKL engine from scalar seed.

+

Invoke a common seed initialization of the engine for MT199374x32x10 algorithm.

+
Parameters
+ + + + +
[in]mt19937A structure with MKL engine which will be filled with generated value by MKL.
[in]q_refA reference on SYCL queue which will be used to obtain random numbers.
[in]seedAn initial condition of the generator state.
+
+
+ +
+
+ +

◆ MT19937_InitVectorSeed()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void MT19937_InitVectorSeed (mt19937_structmt19937,
DPCTLSyclQueueRef q_ref,
uint32_t * seed,
unsigned int n 
)
+
+ +

Create a MKL engine from seed vector.

+

Invoke an extended seed initialization of the engine for MT199374x32x10 algorithm..

+
Parameters
+ + + + + +
[in]mt19937A structure with MKL engine which will be filled with generated value by MKL.
[in]q_refA reference on SYCL queue which will be used to obtain random numbers.
[in]seedA vector with the initial conditions of the generator state.
[in]nLength of the vector.
+
+
+ +
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i.js b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i.js new file mode 100644 index 00000000000..2ebe4e7a5ba --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i.js @@ -0,0 +1,41 @@ +var group___b_a_c_k_e_n_d___a_p_i = +[ + [ "dpnp_argmax_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga0c91dcb81f3a0de00cf1c7326e8feb9c", null ], + [ "dpnp_argmin_c", "group___b_a_c_k_e_n_d___a_p_i.html#gab9df32dd9f7107c691c5972a86351d35", null ], + [ "dpnp_argsort_c", "group___b_a_c_k_e_n_d___a_p_i.html#gad7ba17bf5aab9a319b59429718622322", null ], + [ "dpnp_choose_c", "group___b_a_c_k_e_n_d___a_p_i.html#gade43dedf9297ae8a75c812cf1e59d2c1", null ], + [ "dpnp_correlate_c", "group___b_a_c_k_e_n_d___a_p_i.html#gac8a963ba01536cad42b8a42d8250314b", null ], + [ "dpnp_count_nonzero_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga720e05039ce0f0784c8a2e04f7f1c682", null ], + [ "dpnp_cov_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga49f8dd90da75b44e6b733e944c6e7b33", null ], + [ "dpnp_dot_c", "group___b_a_c_k_e_n_d___a_p_i.html#gaddbabf7c091b81ba8ce90ebc54cdffc8", null ], + [ "dpnp_initval_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga2c1f63f22354673088112c4f248c98a2", null ], + [ "dpnp_max_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga82436cd570953d8e730b2f963db327de", null ], + [ "dpnp_mean_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga9ffb57d8d58fc2d3bc4c76fce7dd4fb4", null ], + [ "dpnp_median_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga1aec65af16a011e7ac26fb1cd2daf1eb", null ], + [ "dpnp_memory_alloc_c", "group___b_a_c_k_e_n_d___a_p_i.html#gab577c1444f9e878b90162013bf2c4591", null ], + [ "dpnp_min_c", "group___b_a_c_k_e_n_d___a_p_i.html#gae183e59a05697d37ecfb659ef783224a", null ], + [ "dpnp_modf_c", "group___b_a_c_k_e_n_d___a_p_i.html#gab66364798efa3d954afdc1659383ee54", null ], + [ "dpnp_multiply_c", "group___b_a_c_k_e_n_d___a_p_i.html#gac9fb583c42b950288b305efde244646e", null ], + [ "dpnp_nanvar_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga09e5c5f507183e0dcd9153acdf970d61", null ], + [ "dpnp_ones_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga709d9a7ac1174112ecc6d807e0c0a1e4", null ], + [ "dpnp_ones_like_c", "group___b_a_c_k_e_n_d___a_p_i.html#gab27ed0161e18e2ff77dae7482fc67ceb", null ], + [ "dpnp_partition_c", "group___b_a_c_k_e_n_d___a_p_i.html#gad6b710733eb11c4f51e92cab7e34dcb5", null ], + [ "dpnp_prod_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga6610de7cc5611443e025d9cd7d08b74c", null ], + [ "dpnp_python_constants_initialize_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga96eabd32a2b65f49e715ccdbc33c45d4", null ], + [ "dpnp_queue_is_cpu_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga2df766b3642aa4e94c8cef7927d6022d", null ], + [ "dpnp_searchsorted_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga066e660d9841964898e1051cdd66f713", null ], + [ "dpnp_sort_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga26e5f6303907fe4b4496fb2cc0685407", null ], + [ "dpnp_sqrt_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga2e8ccd7745314eb662b47c41324076b0", null ], + [ "dpnp_std_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga41839ae42b40874e5405889e50e13358", null ], + [ "dpnp_sum_c", "group___b_a_c_k_e_n_d___a_p_i.html#gaba1f836500ed61109153fb4afef55c89", null ], + [ "dpnp_var_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga91baef74014e4e8b8ce22013cc361a66", null ], + [ "dpnp_zeros_c", "group___b_a_c_k_e_n_d___a_p_i.html#gacd17ba5828ba92fae45ab9c3b82419ae", null ], + [ "dpnp_zeros_like_c", "group___b_a_c_k_e_n_d___a_p_i.html#ga701ba350a76dc444f53a7e7d59c7a143", null ], + [ "get_dpnp_function_ptr", "group___b_a_c_k_e_n_d___a_p_i.html#ga5d37203d4448c22f7b046710d639fd4e", null ], + [ "get_dpnp_function_ptr1", "group___b_a_c_k_e_n_d___a_p_i.html#ga77f60af228fba6ec73c66217bd7a4ee7", null ], + [ "MCG59_Delete", "group___b_a_c_k_e_n_d___a_p_i.html#gad658fb513fc4ab24115573d8bdbf38df", null ], + [ "MCG59_InitScalarSeed", "group___b_a_c_k_e_n_d___a_p_i.html#ga8d41fc0affbac587992402c23ff9b930", null ], + [ "MT19937_Delete", "group___b_a_c_k_e_n_d___a_p_i.html#gaff33ecfcdcc418196d3361d37c53f5f0", null ], + [ "MT19937_InitScalarSeed", "group___b_a_c_k_e_n_d___a_p_i.html#ga27e7a066bbe9e7bb42ea0bb4aa80fa5a", null ], + [ "MT19937_InitVectorSeed", "group___b_a_c_k_e_n_d___a_p_i.html#ga5aa43f73b2b057034fd5f29cd86ea246", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.map b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.map new file mode 100644 index 00000000000..b7835529e6c --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.md5 b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.md5 new file mode 100644 index 00000000000..ba69439fceb --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.md5 @@ -0,0 +1 @@ +ed9b6fbe095e9e611913605770a3a018 \ No newline at end of file diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.png b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.png new file mode 100644 index 00000000000..c5f0f5b6335 Binary files /dev/null and b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___a_p_i_gab577c1444f9e878b90162013bf2c4591_icgraph.png differ diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html new file mode 100644 index 00000000000..2e32d9d15de --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html @@ -0,0 +1,654 @@ + + + + + + + +DPNP C++ backend kernel library: Backend C++ library runtime interface API + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Backend C++ library runtime interface API
+
+
+ + + + + +

+Classes

struct  DPNPFuncData
 Contains information about the C++ backend function. More...
 
+ + + + +

+Typedefs

typedef struct DPNPFuncData DPNPFuncData_t
 Contains information about the C++ backend function.
 
+ + + + + + + +

+Enumerations

enum class  DPNPFuncName : size_t {
+  DPNPFuncName::DPNP_FN_NONE +, DPNPFuncName::DPNP_FN_ARGMAX +, DPNPFuncName::DPNP_FN_ARGMIN +, DPNPFuncName::DPNP_FN_ARGSORT +,
+  DPNPFuncName::DPNP_FN_CHOOSE +, DPNPFuncName::DPNP_FN_CHOOSE_EXT +, DPNPFuncName::DPNP_FN_CORRELATE +, DPNPFuncName::DPNP_FN_CORRELATE_EXT +,
+  DPNPFuncName::DPNP_FN_COUNT_NONZERO +, DPNPFuncName::DPNP_FN_COV +, DPNPFuncName::DPNP_FN_DOT +, DPNPFuncName::DPNP_FN_DOT_EXT +,
+  DPNPFuncName::DPNP_FN_ERF +, DPNPFuncName::DPNP_FN_ERF_EXT +, DPNPFuncName::DPNP_FN_INITVAL +, DPNPFuncName::DPNP_FN_INITVAL_EXT +,
+  DPNPFuncName::DPNP_FN_MAX +, DPNPFuncName::DPNP_FN_MEAN +, DPNPFuncName::DPNP_FN_MEDIAN +, DPNPFuncName::DPNP_FN_MEDIAN_EXT +,
+  DPNPFuncName::DPNP_FN_MIN +, DPNPFuncName::DPNP_FN_MODF +, DPNPFuncName::DPNP_FN_MODF_EXT +, DPNPFuncName::DPNP_FN_MULTIPLY +,
+  DPNPFuncName::DPNP_FN_NANVAR +, DPNPFuncName::DPNP_FN_ONES +, DPNPFuncName::DPNP_FN_ONES_LIKE +, DPNPFuncName::DPNP_FN_PARTITION +,
+  DPNPFuncName::DPNP_FN_PARTITION_EXT +, DPNPFuncName::DPNP_FN_PROD +, DPNPFuncName::DPNP_FN_RNG_BETA +, DPNPFuncName::DPNP_FN_RNG_BETA_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_BINOMIAL +, DPNPFuncName::DPNP_FN_RNG_BINOMIAL_EXT +, DPNPFuncName::DPNP_FN_RNG_CHISQUARE +, DPNPFuncName::DPNP_FN_RNG_CHISQUARE_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_EXPONENTIAL +, DPNPFuncName::DPNP_FN_RNG_EXPONENTIAL_EXT +, DPNPFuncName::DPNP_FN_RNG_F +, DPNPFuncName::DPNP_FN_RNG_F_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_GAMMA +, DPNPFuncName::DPNP_FN_RNG_GAMMA_EXT +, DPNPFuncName::DPNP_FN_RNG_GAUSSIAN +, DPNPFuncName::DPNP_FN_RNG_GAUSSIAN_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_GEOMETRIC +, DPNPFuncName::DPNP_FN_RNG_GEOMETRIC_EXT +, DPNPFuncName::DPNP_FN_RNG_GUMBEL +, DPNPFuncName::DPNP_FN_RNG_GUMBEL_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_HYPERGEOMETRIC +, DPNPFuncName::DPNP_FN_RNG_HYPERGEOMETRIC_EXT +, DPNPFuncName::DPNP_FN_RNG_LAPLACE +, DPNPFuncName::DPNP_FN_RNG_LAPLACE_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_LOGISTIC +, DPNPFuncName::DPNP_FN_RNG_LOGISTIC_EXT +, DPNPFuncName::DPNP_FN_RNG_LOGNORMAL +, DPNPFuncName::DPNP_FN_RNG_LOGNORMAL_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_MULTINOMIAL +, DPNPFuncName::DPNP_FN_RNG_MULTINOMIAL_EXT +, DPNPFuncName::DPNP_FN_RNG_MULTIVARIATE_NORMAL +, DPNPFuncName::DPNP_FN_RNG_MULTIVARIATE_NORMAL_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_NEGATIVE_BINOMIAL +, DPNPFuncName::DPNP_FN_RNG_NEGATIVE_BINOMIAL_EXT +, DPNPFuncName::DPNP_FN_RNG_NONCENTRAL_CHISQUARE +, DPNPFuncName::DPNP_FN_RNG_NONCENTRAL_CHISQUARE_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_NORMAL +, DPNPFuncName::DPNP_FN_RNG_NORMAL_EXT +, DPNPFuncName::DPNP_FN_RNG_PARETO +, DPNPFuncName::DPNP_FN_RNG_PARETO_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_POISSON +, DPNPFuncName::DPNP_FN_RNG_POISSON_EXT +, DPNPFuncName::DPNP_FN_RNG_POWER +, DPNPFuncName::DPNP_FN_RNG_POWER_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_RAYLEIGH +, DPNPFuncName::DPNP_FN_RNG_RAYLEIGH_EXT +, DPNPFuncName::DPNP_FN_RNG_SRAND +, DPNPFuncName::DPNP_FN_RNG_SRAND_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_SHUFFLE +, DPNPFuncName::DPNP_FN_RNG_SHUFFLE_EXT +, DPNPFuncName::DPNP_FN_RNG_STANDARD_CAUCHY +, DPNPFuncName::DPNP_FN_RNG_STANDARD_CAUCHY_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_STANDARD_EXPONENTIAL +, DPNPFuncName::DPNP_FN_RNG_STANDARD_EXPONENTIAL_EXT +, DPNPFuncName::DPNP_FN_RNG_STANDARD_GAMMA +, DPNPFuncName::DPNP_FN_RNG_STANDARD_GAMMA_EXT +,
+  DPNPFuncName::DPNP_FN_RNG_STANDARD_NORMAL +, DPNPFuncName::DPNP_FN_RNG_STANDARD_T +, DPNPFuncName::DPNP_FN_RNG_STANDARD_T_EXT +, DPNPFuncName::DPNP_FN_RNG_TRIANGULAR +,
+  DPNPFuncName::DPNP_FN_RNG_TRIANGULAR_EXT +, DPNPFuncName::DPNP_FN_RNG_UNIFORM +, DPNPFuncName::DPNP_FN_RNG_UNIFORM_EXT +, DPNPFuncName::DPNP_FN_RNG_VONMISES +,
+  DPNPFuncName::DPNP_FN_RNG_VONMISES_EXT +, DPNPFuncName::DPNP_FN_RNG_WALD +, DPNPFuncName::DPNP_FN_RNG_WALD_EXT +, DPNPFuncName::DPNP_FN_RNG_WEIBULL +,
+  DPNPFuncName::DPNP_FN_RNG_WEIBULL_EXT +, DPNPFuncName::DPNP_FN_RNG_ZIPF +, DPNPFuncName::DPNP_FN_RNG_ZIPF_EXT +, DPNPFuncName::DPNP_FN_SEARCHSORTED +,
+  DPNPFuncName::DPNP_FN_SORT +, DPNPFuncName::DPNP_FN_SQRT +, DPNPFuncName::DPNP_FN_SQRT_EXT +, DPNPFuncName::DPNP_FN_STD +,
+  DPNPFuncName::DPNP_FN_SUM +, DPNPFuncName::DPNP_FN_VAR +, DPNPFuncName::DPNP_FN_ZEROS +, DPNPFuncName::DPNP_FN_ZEROS_LIKE +,
+  DPNPFuncName::DPNP_FN_LAST +
+ }
 Function names to request via this interface. More...
 
enum class  DPNPFuncType : size_t {
+  DPNPFuncType::DPNP_FT_NONE +, DPNPFuncType::DPNP_FT_BOOL +, DPNPFuncType::DPNP_FT_INT +, DPNPFuncType::DPNP_FT_LONG +,
+  DPNPFuncType::DPNP_FT_FLOAT +, DPNPFuncType::DPNP_FT_DOUBLE +, DPNPFuncType::DPNP_FT_CMPLX64 +, DPNPFuncType::DPNP_FT_CMPLX128 +
+ }
 Template types which are used in this interface. More...
 
+

Detailed Description

+

This section describes Backend API for runtime function pointers

+

Typedef Documentation

+ +

◆ DPNPFuncData_t

+ +
+
+ + + + +
typedef struct DPNPFuncData DPNPFuncData_t
+
+ +

Contains information about the C++ backend function.

+

The structure defines the types that are used by get_dpnp_function_ptr.

+ +
+
+

Enumeration Type Documentation

+ +

◆ DPNPFuncName

+ +
+
+ + + + + +
+ + + + +
enum class DPNPFuncName : size_t
+
+strong
+
+ +

Function names to request via this interface.

+

The structure defines the parameters that are used by get_dpnp_function_ptr.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Enumerator
DPNP_FN_NONE 

Very first element of the enumeration

+
DPNP_FN_ARGMAX 

Used in numpy.argmax() impl
+

+
DPNP_FN_ARGMIN 

Used in numpy.argmin() impl
+

+
DPNP_FN_ARGSORT 

Used in numpy.argsort() impl
+

+
DPNP_FN_CHOOSE 

Used in numpy.choose() impl
+

+
DPNP_FN_CHOOSE_EXT 

Used in numpy.choose() impl, requires extra parameters

+
DPNP_FN_CORRELATE 

Used in numpy.correlate() impl
+

+
DPNP_FN_CORRELATE_EXT 

Used in numpy.correlate() impl, requires extra parameters

+
DPNP_FN_COUNT_NONZERO 

Used in numpy.count_nonzero() impl
+

+
DPNP_FN_COV 

Used in numpy.cov() impl
+

+
DPNP_FN_DOT 

Used in numpy.dot() impl
+

+
DPNP_FN_DOT_EXT 

Used in numpy.dot() impl, requires extra parameters

+
DPNP_FN_ERF 

Used in scipy.special.erf impl
+

+
DPNP_FN_ERF_EXT 

Used in scipy.special.erf impl, requires extra parameters

+
DPNP_FN_INITVAL 

Used in numpy ones, ones_like, zeros, zeros_like impls

+
DPNP_FN_INITVAL_EXT 

Used in numpy ones, ones_like, zeros, zeros_like impls
+

+
DPNP_FN_MAX 

Used in numpy.max() impl
+

+
DPNP_FN_MEAN 

Used in numpy.mean() impl
+

+
DPNP_FN_MEDIAN 

Used in numpy.median() impl
+

+
DPNP_FN_MEDIAN_EXT 

Used in numpy.median() impl, requires extra parameters

+
DPNP_FN_MIN 

Used in numpy.min() impl
+

+
DPNP_FN_MODF 

Used in numpy.modf() impl
+

+
DPNP_FN_MODF_EXT 

Used in numpy.modf() impl, requires extra parameters

+
DPNP_FN_MULTIPLY 

Used in numpy.multiply() impl
+

+
DPNP_FN_NANVAR 

Used in numpy.nanvar() impl
+

+
DPNP_FN_ONES 

Used in numpy.ones() impl

+
DPNP_FN_ONES_LIKE 

Used in numpy.ones_like() impl

+
DPNP_FN_PARTITION 

Used in numpy.partition() impl

+
DPNP_FN_PARTITION_EXT 

Used in numpy.partition() impl, requires extra parameters

+
DPNP_FN_PROD 

Used in numpy.prod() impl
+

+
DPNP_FN_RNG_BETA 

Used in numpy.random.beta() impl
+

+
DPNP_FN_RNG_BETA_EXT 

Used in numpy.random.beta() impl, requires extra parameters

+
DPNP_FN_RNG_BINOMIAL 

Used in numpy.random.binomial() impl
+

+
DPNP_FN_RNG_BINOMIAL_EXT 

Used in numpy.random.binomial() impl, requires extra parameters

+
DPNP_FN_RNG_CHISQUARE 

Used in numpy.random.chisquare() impl
+

+
DPNP_FN_RNG_CHISQUARE_EXT 

Used in numpy.random.chisquare() impl, requires extra parameters

+
DPNP_FN_RNG_EXPONENTIAL 

Used in numpy.random.exponential() impl
+

+
DPNP_FN_RNG_EXPONENTIAL_EXT 

Used in numpy.random.exponential() impl, requires extra parameters

+
DPNP_FN_RNG_F 

Used in numpy.random.f() impl
+

+
DPNP_FN_RNG_F_EXT 

Used in numpy.random.f() impl, requires extra parameters

+
DPNP_FN_RNG_GAMMA 

Used in numpy.random.gamma() impl
+

+
DPNP_FN_RNG_GAMMA_EXT 

Used in numpy.random.gamma() impl, requires extra parameters

+
DPNP_FN_RNG_GAUSSIAN 

Used in numpy.random.randn() impl
+

+
DPNP_FN_RNG_GAUSSIAN_EXT 

Used in numpy.random.randn() impl, requires extra parameters

+
DPNP_FN_RNG_GEOMETRIC 

Used in numpy.random.geometric() impl
+

+
DPNP_FN_RNG_GEOMETRIC_EXT 

Used in numpy.random.geometric() impl, requires extra parameters

+
DPNP_FN_RNG_GUMBEL 

Used in numpy.random.gumbel() impl
+

+
DPNP_FN_RNG_GUMBEL_EXT 

Used in numpy.random.gumbel() impl, requires extra parameters

+
DPNP_FN_RNG_HYPERGEOMETRIC 

Used in numpy.random.hypergeometric() impl

+
DPNP_FN_RNG_HYPERGEOMETRIC_EXT 

Used in numpy.random.hypergeometric() impl, requires extra parameters

+
DPNP_FN_RNG_LAPLACE 

Used in numpy.random.laplace() impl
+

+
DPNP_FN_RNG_LAPLACE_EXT 

Used in numpy.random.laplace() impl
+

+
DPNP_FN_RNG_LOGISTIC 

Used in numpy.random.logistic() impl
+

+
DPNP_FN_RNG_LOGISTIC_EXT 

Used in numpy.random.logistic() impl, requires extra parameters

+
DPNP_FN_RNG_LOGNORMAL 

Used in numpy.random.lognormal() impl
+

+
DPNP_FN_RNG_LOGNORMAL_EXT 

Used in numpy.random.lognormal() impl, requires extra parameters

+
DPNP_FN_RNG_MULTINOMIAL 

Used in numpy.random.multinomial() impl
+

+
DPNP_FN_RNG_MULTINOMIAL_EXT 

Used in numpy.random.multinomial() impl, requires extra parameters

+
DPNP_FN_RNG_MULTIVARIATE_NORMAL 

Used in numpy.random.multivariate_normal() impl

+
DPNP_FN_RNG_MULTIVARIATE_NORMAL_EXT 

Used in numpy.random.multivariate_normal() impl
+

+
DPNP_FN_RNG_NEGATIVE_BINOMIAL 

Used in numpy.random.negative_binomial() impl
+

+
DPNP_FN_RNG_NEGATIVE_BINOMIAL_EXT 

Used in numpy.random.negative_binomial() impl

+
DPNP_FN_RNG_NONCENTRAL_CHISQUARE 

Used in numpy.random.noncentral_chisquare() impl
+

+
DPNP_FN_RNG_NONCENTRAL_CHISQUARE_EXT 

Used in numpy.random.noncentral_chisquare() impl
+

+
DPNP_FN_RNG_NORMAL 

Used in numpy.random.normal() impl
+

+
DPNP_FN_RNG_NORMAL_EXT 

Used in numpy.random.normal() impl, requires extra parameters

+
DPNP_FN_RNG_PARETO 

Used in numpy.random.pareto() impl
+

+
DPNP_FN_RNG_PARETO_EXT 

Used in numpy.random.pareto() impl, requires extra parameters

+
DPNP_FN_RNG_POISSON 

Used in numpy.random.poisson() impl
+

+
DPNP_FN_RNG_POISSON_EXT 

Used in numpy.random.poisson() impl, requires extra parameters

+
DPNP_FN_RNG_POWER 

Used in numpy.random.power() impl
+

+
DPNP_FN_RNG_POWER_EXT 

Used in numpy.random.power() impl, requires extra parameters

+
DPNP_FN_RNG_RAYLEIGH 

Used in numpy.random.rayleigh() impl
+

+
DPNP_FN_RNG_RAYLEIGH_EXT 

Used in numpy.random.rayleigh() impl, requires extra parameters

+
DPNP_FN_RNG_SRAND 

Used in numpy.random.seed() impl
+

+
DPNP_FN_RNG_SRAND_EXT 

Used in numpy.random.seed() impl, requires extra parameters

+
DPNP_FN_RNG_SHUFFLE 

Used in numpy.random.shuffle() impl
+

+
DPNP_FN_RNG_SHUFFLE_EXT 

Used in numpy.random.shuffle() impl, requires extra parameters

+
DPNP_FN_RNG_STANDARD_CAUCHY 

Used in numpy.random.standard_cauchy() impl
+

+
DPNP_FN_RNG_STANDARD_CAUCHY_EXT 

Used in numpy.random.standard_cauchy() impl
+

+
DPNP_FN_RNG_STANDARD_EXPONENTIAL 

Used in numpy.random.standard_exponential() impl
+

+
DPNP_FN_RNG_STANDARD_EXPONENTIAL_EXT 

Used in numpy.random.standard_exponential() impl
+

+
DPNP_FN_RNG_STANDARD_GAMMA 

Used in numpy.random.standard_gamma() impl

+
DPNP_FN_RNG_STANDARD_GAMMA_EXT 

Used in numpy.random.standard_gamma() impl, requires extra parameters

+
DPNP_FN_RNG_STANDARD_NORMAL 

Used in numpy.random.standard_normal() impl
+

+
DPNP_FN_RNG_STANDARD_T 

Used in numpy.random.standard_t() impl
+

+
DPNP_FN_RNG_STANDARD_T_EXT 

Used in numpy.random.standard_t() impl, requires extra parameters

+
DPNP_FN_RNG_TRIANGULAR 

Used in numpy.random.triangular() impl
+

+
DPNP_FN_RNG_TRIANGULAR_EXT 

Used in numpy.random.triangular() impl, requires extra parameters

+
DPNP_FN_RNG_UNIFORM 

Used in numpy.random.uniform() impl
+

+
DPNP_FN_RNG_UNIFORM_EXT 

Used in numpy.random.uniform() impl, requires extra parameters

+
DPNP_FN_RNG_VONMISES 

Used in numpy.random.vonmises() impl
+

+
DPNP_FN_RNG_VONMISES_EXT 

Used in numpy.random.vonmises() impl, requires extra parameters

+
DPNP_FN_RNG_WALD 

Used in numpy.random.wald() impl
+

+
DPNP_FN_RNG_WALD_EXT 

Used in numpy.random.wald() impl, requires extra parameters

+
DPNP_FN_RNG_WEIBULL 

Used in numpy.random.weibull() impl
+

+
DPNP_FN_RNG_WEIBULL_EXT 

Used in numpy.random.weibull() impl, requires extra parameters

+
DPNP_FN_RNG_ZIPF 

Used in numpy.random.zipf() impl
+

+
DPNP_FN_RNG_ZIPF_EXT 

Used in numpy.random.zipf() impl, requires extra parameters

+
DPNP_FN_SEARCHSORTED 

Used in numpy.searchsorted() impl
+

+
DPNP_FN_SORT 

Used in numpy.sort() impl
+

+
DPNP_FN_SQRT 

Used in numpy.sqrt() impl
+

+
DPNP_FN_SQRT_EXT 

Used in numpy.sqrt() impl, requires extra parameters

+
DPNP_FN_STD 

Used in numpy.std() impl
+

+
DPNP_FN_SUM 

Used in numpy.sum() impl
+

+
DPNP_FN_VAR 

Used in numpy.var() impl
+

+
DPNP_FN_ZEROS 

Used in numpy.zeros() impl

+
DPNP_FN_ZEROS_LIKE 

Used in numpy.zeros_like() impl

+
DPNP_FN_LAST 

The latest element of the enumeration

+
+ +

Definition at line 59 of file dpnp_iface_fptr.hpp.

+ +
+
+ +

◆ DPNPFuncType

+ +
+
+ + + + + +
+ + + + +
enum class DPNPFuncType : size_t
+
+strong
+
+ +

Template types which are used in this interface.

+

The structure defines the types that are used by get_dpnp_function_ptr.

+ + + + + + + + + +
Enumerator
DPNP_FT_NONE 

Very first element of the enumeration

+
DPNP_FT_BOOL 

analog of numpy.bool_ or bool

+
DPNP_FT_INT 

analog of numpy.int32 or int

+
DPNP_FT_LONG 

analog of numpy.int64 or long

+
DPNP_FT_FLOAT 

analog of numpy.float32 or float

+
DPNP_FT_DOUBLE 

analog of numpy.float32 or double

+
DPNP_FT_CMPLX64 

analog of numpy.complex64 or std::complex<float>

+
DPNP_FT_CMPLX128 

analog of numpy.complex128 or std::complex<double>

+
+ +

Definition at line 236 of file dpnp_iface_fptr.hpp.

+ +
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.js b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.js new file mode 100644 index 00000000000..b4b46fae9cd --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.js @@ -0,0 +1,131 @@ +var group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i = +[ + [ "DPNPFuncData", "struct_d_p_n_p_func_data.html", [ + [ "ptr", "struct_d_p_n_p_func_data.html#af40fd22f5954384788121f817fb02f0d", null ], + [ "ptr_no_fp64", "struct_d_p_n_p_func_data.html#aa88f90ce507ebffe7462bba4d2df6c76", null ], + [ "return_type", "struct_d_p_n_p_func_data.html#a59c07232bc3830e89d5abe5447a24816", null ], + [ "return_type_no_fp64", "struct_d_p_n_p_func_data.html#a591831d25d776b9ce6ef0a328bda9ddc", null ] + ] ], + [ "DPNPFuncData_t", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ga52f631e01afd73cc5573f9e8f61bd78f", null ], + [ "DPNPFuncName", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ga8b20590525bff7c7ce4f728d2021b558", [ + [ "DPNPFuncName::DPNP_FN_NONE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a01897799d4a0cba291db28a27e33cc24", null ], + [ "DPNPFuncName::DPNP_FN_ARGMAX", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad7a30d5f1ef5f03e82d0ec4a06b2cfd3", null ], + [ "DPNPFuncName::DPNP_FN_ARGMIN", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a563f719d139a7d794b600213dccef1de", null ], + [ "DPNPFuncName::DPNP_FN_ARGSORT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a33a515ed4d5cd48b8e755dc4d5525643", null ], + [ "DPNPFuncName::DPNP_FN_CHOOSE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a753a922dac7c8d4151b2f1c65b95f80f", null ], + [ "DPNPFuncName::DPNP_FN_CHOOSE_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a78256afce49f190fe5699d5c3be57176", null ], + [ "DPNPFuncName::DPNP_FN_CORRELATE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3849a9470b35f70f8aee6528db759b86", null ], + [ "DPNPFuncName::DPNP_FN_CORRELATE_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9bc9a51cda7b0d6ddb0ce5412c747a1e", null ], + [ "DPNPFuncName::DPNP_FN_COUNT_NONZERO", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a4a4d73cc14f7681dd49a449c3bd10144", null ], + [ "DPNPFuncName::DPNP_FN_COV", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a4e3c9946978c0627bf39906da7804b3b", null ], + [ "DPNPFuncName::DPNP_FN_DOT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5333d3eb859da5bba7770ae8194ca5d2", null ], + [ "DPNPFuncName::DPNP_FN_DOT_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a62f2665bbd701478639f3701b16a6cf1", null ], + [ "DPNPFuncName::DPNP_FN_ERF", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa8e5f8f3b90944e05d9c8e4183c23706", null ], + [ "DPNPFuncName::DPNP_FN_ERF_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af72fefd6d9811fc2e819650a5d592b60", null ], + [ "DPNPFuncName::DPNP_FN_INITVAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa3e8a4061dcef64562a635d8a9870611", null ], + [ "DPNPFuncName::DPNP_FN_INITVAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558adddd48eebbd0f2d9af89499617eebe64", null ], + [ "DPNPFuncName::DPNP_FN_MAX", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a7fdc6b2053d31144e2c19dd861ede010", null ], + [ "DPNPFuncName::DPNP_FN_MEAN", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af905d2372a52b6fb1b7a22b76010b6dd", null ], + [ "DPNPFuncName::DPNP_FN_MEDIAN", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a44ceec4f99af1bc08e8f5543b386180e", null ], + [ "DPNPFuncName::DPNP_FN_MEDIAN_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a512afdcfc770a0be3097a6b8f09d82d1", null ], + [ "DPNPFuncName::DPNP_FN_MIN", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9efe7aa7ce951e7a44180b3160bcfd01", null ], + [ "DPNPFuncName::DPNP_FN_MODF", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558addd017f3f6c6753bc796a1ee5e9e4dcb", null ], + [ "DPNPFuncName::DPNP_FN_MODF_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a125c30f857787e9bd19648b0beae9f5b", null ], + [ "DPNPFuncName::DPNP_FN_MULTIPLY", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a051aaed58a292f8a66357f883923973b", null ], + [ "DPNPFuncName::DPNP_FN_NANVAR", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a10e8c2f3d4b98e84040ba9793462c1d9", null ], + [ "DPNPFuncName::DPNP_FN_ONES", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ada4b07c03838ec240fe821748c44601d", null ], + [ "DPNPFuncName::DPNP_FN_ONES_LIKE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1b52092777d3af8b5929d28756be4461", null ], + [ "DPNPFuncName::DPNP_FN_PARTITION", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aca4a111afa2773a5dbac2f1f879d2029", null ], + [ "DPNPFuncName::DPNP_FN_PARTITION_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558affc2163c69279951e165fb38fb98bb41", null ], + [ "DPNPFuncName::DPNP_FN_PROD", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a72a62985c0bb7a38d58d9a8ab34ab19c", null ], + [ "DPNPFuncName::DPNP_FN_RNG_BETA", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0668a283409d746cfa94256b7cdb850e", null ], + [ "DPNPFuncName::DPNP_FN_RNG_BETA_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5021a4aeca89c89bf577dce589e760c5", null ], + [ "DPNPFuncName::DPNP_FN_RNG_BINOMIAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa07058cd0653319a5c14d660b0840c1d", null ], + [ "DPNPFuncName::DPNP_FN_RNG_BINOMIAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a2834d0a5ad758b989d781ddf55b50265", null ], + [ "DPNPFuncName::DPNP_FN_RNG_CHISQUARE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6ba83001ce89ae9bea48277c027d0b64", null ], + [ "DPNPFuncName::DPNP_FN_RNG_CHISQUARE_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a532b9c7944f9d6c4290d03bcb75d6fb8", null ], + [ "DPNPFuncName::DPNP_FN_RNG_EXPONENTIAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6d9d980b8da13bdb0b5300fc4024cc90", null ], + [ "DPNPFuncName::DPNP_FN_RNG_EXPONENTIAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8c4218eb8e22d1868c0ac0165dac4f8e", null ], + [ "DPNPFuncName::DPNP_FN_RNG_F", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a56d7153c972b0be7b98a638b3e2bc953", null ], + [ "DPNPFuncName::DPNP_FN_RNG_F_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a30133f517664ed53ec5be1d7fc176b08", null ], + [ "DPNPFuncName::DPNP_FN_RNG_GAMMA", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac988c55f9d110ee7ce575a59803dfe0d", null ], + [ "DPNPFuncName::DPNP_FN_RNG_GAMMA_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a384557e466eb25ae484b32c1db45eb02", null ], + [ "DPNPFuncName::DPNP_FN_RNG_GAUSSIAN", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9ac4119c5429b52649c38e290305a3bc", null ], + [ "DPNPFuncName::DPNP_FN_RNG_GAUSSIAN_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a513c3a4f4042cb6d5bbf4d77c6bc6d87", null ], + [ "DPNPFuncName::DPNP_FN_RNG_GEOMETRIC", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0ba43c2e5702dd405cd40d405fe3ad46", null ], + [ "DPNPFuncName::DPNP_FN_RNG_GEOMETRIC_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a622d2445e61c9e3bbb48103f11a6ee9a", null ], + [ "DPNPFuncName::DPNP_FN_RNG_GUMBEL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a264ea5dbc7125d301af8b67aa6381ddb", null ], + [ "DPNPFuncName::DPNP_FN_RNG_GUMBEL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a7ec41e2f35f7e27424ce99a9d850a399", null ], + [ "DPNPFuncName::DPNP_FN_RNG_HYPERGEOMETRIC", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8de6f56949b2201f0c99e3b34fd3760f", null ], + [ "DPNPFuncName::DPNP_FN_RNG_HYPERGEOMETRIC_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1beebad63439e4d24242fad6185d1ffd", null ], + [ "DPNPFuncName::DPNP_FN_RNG_LAPLACE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a52addc8e50547e5ed5829ec8cfb96b0b", null ], + [ "DPNPFuncName::DPNP_FN_RNG_LAPLACE_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa766585227c8613f083d62da1eb0d5f1", null ], + [ "DPNPFuncName::DPNP_FN_RNG_LOGISTIC", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3613e366d1d7a4f1d0a9029a5fab229f", null ], + [ "DPNPFuncName::DPNP_FN_RNG_LOGISTIC_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a189c3bcc88dc1ab0c6b43911146d51fd", null ], + [ "DPNPFuncName::DPNP_FN_RNG_LOGNORMAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a71e9d9eae39bfc079094c1244fb8bfbd", null ], + [ "DPNPFuncName::DPNP_FN_RNG_LOGNORMAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ab03609e63992ac5aea8933f7310dae0f", null ], + [ "DPNPFuncName::DPNP_FN_RNG_MULTINOMIAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558add99122eaef926420c899b5509219aac", null ], + [ "DPNPFuncName::DPNP_FN_RNG_MULTINOMIAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a428a630017c0a128deb4642470f20efb", null ], + [ "DPNPFuncName::DPNP_FN_RNG_MULTIVARIATE_NORMAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0064886d269433e4c5e54bf3ffb6eb71", null ], + [ "DPNPFuncName::DPNP_FN_RNG_MULTIVARIATE_NORMAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a220baac0d954f5e2d3a6c89c8f4bc2ad", null ], + [ "DPNPFuncName::DPNP_FN_RNG_NEGATIVE_BINOMIAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9a2fb54e875d4c304e60e8747164df9e", null ], + [ "DPNPFuncName::DPNP_FN_RNG_NEGATIVE_BINOMIAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6416887970ce60bfa9d8fc88b03e71d7", null ], + [ "DPNPFuncName::DPNP_FN_RNG_NONCENTRAL_CHISQUARE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9a0b6b12ba1ee21d8561087ec15cf9b6", null ], + [ "DPNPFuncName::DPNP_FN_RNG_NONCENTRAL_CHISQUARE_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a11734477d3b7ad5b6905bad5417b454d", null ], + [ "DPNPFuncName::DPNP_FN_RNG_NORMAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3fd78fcac1e00c5c8ae1ba0eed23122d", null ], + [ "DPNPFuncName::DPNP_FN_RNG_NORMAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ada145b083ebd5704d9eb39ffb58387b1", null ], + [ "DPNPFuncName::DPNP_FN_RNG_PARETO", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a51b643c02f16bd79ce230d5da9411ed1", null ], + [ "DPNPFuncName::DPNP_FN_RNG_PARETO_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae7cdf66fd8b623050ba1a0d26e12d1bd", null ], + [ "DPNPFuncName::DPNP_FN_RNG_POISSON", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac932383a1104d78d3c137a8688de68a0", null ], + [ "DPNPFuncName::DPNP_FN_RNG_POISSON_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a37bbbe3a9ed0f5af607ad31cb08946b3", null ], + [ "DPNPFuncName::DPNP_FN_RNG_POWER", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a7b6208bb084ce808682c6f1ef54387", null ], + [ "DPNPFuncName::DPNP_FN_RNG_POWER_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a278cb0efcc0a1b7e85af3f2c60b8a80d", null ], + [ "DPNPFuncName::DPNP_FN_RNG_RAYLEIGH", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558acc272cc4ecbe0b0e5705041af58249c6", null ], + [ "DPNPFuncName::DPNP_FN_RNG_RAYLEIGH_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558abcd6c3b24ddbbe69a1e776705b276dba", null ], + [ "DPNPFuncName::DPNP_FN_RNG_SRAND", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9fdb85aaf89a9a23ade5fc73a6a60b4b", null ], + [ "DPNPFuncName::DPNP_FN_RNG_SRAND_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae0cf8c82c5a808c57953a90659c234b1", null ], + [ "DPNPFuncName::DPNP_FN_RNG_SHUFFLE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae57add61435f1fe27df7af416aacd162", null ], + [ "DPNPFuncName::DPNP_FN_RNG_SHUFFLE_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a05795744d8cfd0c99c3607540dc236", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_CAUCHY", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa14ca7c1b83bc295bebb629e28e80dfc", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_CAUCHY_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1d29beee5d3424e6aca222ed56e3f707", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_EXPONENTIAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1989558074799d28289de9919eb55c48", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_EXPONENTIAL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1f02e752405381ab74767a4b0b42cbaa", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_GAMMA", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8f9b10a503f1c853fc633ce370e252d1", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_GAMMA_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad962b47912f922a4ec72f1aefe81fe64", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_NORMAL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa47904a3ff27ca35a2c69d09d897c29d", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_T", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a23ba5ff2630c0a58ea0839afd5909f76", null ], + [ "DPNPFuncName::DPNP_FN_RNG_STANDARD_T_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1afb7e3342019b75330aba6e1a4abfca", null ], + [ "DPNPFuncName::DPNP_FN_RNG_TRIANGULAR", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad2fb09fb4c0e41d29a76dffdf992c134", null ], + [ "DPNPFuncName::DPNP_FN_RNG_TRIANGULAR_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558add30724342e9da4b6f49d4139c21a41e", null ], + [ "DPNPFuncName::DPNP_FN_RNG_UNIFORM", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa43c5be689c64f6e058fee732c71d549", null ], + [ "DPNPFuncName::DPNP_FN_RNG_UNIFORM_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad5025dde08abd334429a67bddc1f864f", null ], + [ "DPNPFuncName::DPNP_FN_RNG_VONMISES", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a62eedd89940f85f26c37b97cc4f80bc6", null ], + [ "DPNPFuncName::DPNP_FN_RNG_VONMISES_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a74c732efc8cea46d451c573b018e522d", null ], + [ "DPNPFuncName::DPNP_FN_RNG_WALD", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9b2be3e8c111f7d37813476b1bdb7e91", null ], + [ "DPNPFuncName::DPNP_FN_RNG_WALD_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a96bdde1b80a9acff45e11ede77ece529", null ], + [ "DPNPFuncName::DPNP_FN_RNG_WEIBULL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a390dd8fed5f213b251eb2c92af0211c6", null ], + [ "DPNPFuncName::DPNP_FN_RNG_WEIBULL_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1fbafdcfb58875a7dd9b26f3acdf6600", null ], + [ "DPNPFuncName::DPNP_FN_RNG_ZIPF", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a59f893fd340c0937b52941bf138d5b19", null ], + [ "DPNPFuncName::DPNP_FN_RNG_ZIPF_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558afca9175f1ea7f71a0cf585421ea66a27", null ], + [ "DPNPFuncName::DPNP_FN_SEARCHSORTED", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a673b312ec7e9a40fa18483ed02d3649d", null ], + [ "DPNPFuncName::DPNP_FN_SORT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a99dd510a742f3c15b48092cef64f8aa3", null ], + [ "DPNPFuncName::DPNP_FN_SQRT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af8187e64cd7661fbf4bf2fd04f339e5c", null ], + [ "DPNPFuncName::DPNP_FN_SQRT_EXT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aece0d851a884f3b66f3d1e6c1f67a540", null ], + [ "DPNPFuncName::DPNP_FN_STD", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac0d3143bc0fd7a8f43501a3a8784a148", null ], + [ "DPNPFuncName::DPNP_FN_SUM", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a5f78154de3845f234e34f22d870448", null ], + [ "DPNPFuncName::DPNP_FN_VAR", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a17750205304e246fad783e631614cf48", null ], + [ "DPNPFuncName::DPNP_FN_ZEROS", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a51216d8cda7e009964d71ddd8c7fbb1d", null ], + [ "DPNPFuncName::DPNP_FN_ZEROS_LIKE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad22026553dca7a3084662acf657bba0d", null ], + [ "DPNPFuncName::DPNP_FN_LAST", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aadc54195a4c41ac24ed1aa10f8e6f6a4", null ] + ] ], + [ "DPNPFuncType", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gaec54569b58e937e84099479f078bce15", [ + [ "DPNPFuncType::DPNP_FT_NONE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a4dd2e447249c9f1ed5b4a01263bd8d06", null ], + [ "DPNPFuncType::DPNP_FT_BOOL", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a1d41c2373d33a46bb47a6791a876c103", null ], + [ "DPNPFuncType::DPNP_FT_INT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a2ca75eef4ff62b379b29390b6efe736f", null ], + [ "DPNPFuncType::DPNP_FT_LONG", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a8160fd9c1c7bd64515ffa60b8140f208", null ], + [ "DPNPFuncType::DPNP_FT_FLOAT", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15aea1ca4f8f623afaaf6072b0b6eb56c76", null ], + [ "DPNPFuncType::DPNP_FT_DOUBLE", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15ac84f19e1412dd40492153e4cb0e27739", null ], + [ "DPNPFuncType::DPNP_FT_CMPLX64", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15af186d251dc2c1d64ce7c7c03a7c6e2d5", null ], + [ "DPNPFuncType::DPNP_FT_CMPLX128", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a599b693823273a797188b9beb8018052", null ] + ] ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html new file mode 100644 index 00000000000..ed8cedd2b95 --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html @@ -0,0 +1,2489 @@ + + + + + + + +DPNP C++ backend kernel library: Backend C++ library interface RANDOM API + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Backend C++ library interface RANDOM API
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_beta_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType a, const _DataType b, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (beta distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_binomial_c (DPCTLSyclQueueRef q_ref, void *result, const int ntrial, const double p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (binomial distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_chisquare_c (DPCTLSyclQueueRef q_ref, void *result, const int df, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (chi-square distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_exponential_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType beta, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (exponential distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_f_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType df_num, const _DataType df_den, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (F distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gamma_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType shape, const _DataType scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (gamma distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gaussian_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType stddev, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (gaussian continuous distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_geometric_c (DPCTLSyclQueueRef q_ref, void *result, const float p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (Geometric distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gumbel_c (DPCTLSyclQueueRef q_ref, void *result, const double loc, const double scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (Gumbel distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_hypergeometric_c (DPCTLSyclQueueRef q_ref, void *result, const int l, const int s, const int m, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (hypergeometric distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_laplace_c (DPCTLSyclQueueRef q_ref, void *result, const double loc, const double scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (laplace distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_logistic_c (DPCTLSyclQueueRef q_ref, void *result, const double loc, double const scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (logistic distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_lognormal_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType stddev, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (lognormal distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_multinomial_c (DPCTLSyclQueueRef q_ref, void *result, const int ntrial, const double *p_in, const size_t p_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (multinomial distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_multivariate_normal_c (DPCTLSyclQueueRef q_ref, void *result, const int dimen, const double *mean_in, const size_t mean_size, const double *cov_in, const size_t cov_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (multivariate normal distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_negative_binomial_c (DPCTLSyclQueueRef q_ref, void *result, const double a, const double p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (negative binomial distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_noncentral_chisquare_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType df, const _DataType nonc, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (noncentral chisquare distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_normal_c (DPCTLSyclQueueRef q_ref, void *result_out, const double mean, const double stddev, const int64_t size, void *random_state_in, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (normal continuous distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_pareto_c (DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (Pareto distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_poisson_c (DPCTLSyclQueueRef q_ref, void *result, const double lambda, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (poisson distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_power_c (DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (power distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_rayleigh_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (rayleigh distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_shuffle_c (DPCTLSyclQueueRef q_ref, void *result, const size_t itemsize, const size_t ndim, const size_t high_dim_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random in-place shuffle.
 
INP_DLLEXPORT void dpnp_rng_srand_c (size_t seed=1)
 initializer for basic random number generator.
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_cauchy_c (DPCTLSyclQueueRef q_ref, void *result, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (standard cauchy distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_exponential_c (DPCTLSyclQueueRef q_ref, void *result, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (standard exponential distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_gamma_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType shape, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (standard gamma distribution)
 
template<typename _DataType >
INP_DLLEXPORT void dpnp_rng_standard_normal_c (void *result, const size_t size)
 math library implementation of random number generator (standard normal distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_t_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType df, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (standard Student's t distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_triangular_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType x_min, const _DataType x_mode, const _DataType x_max, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (Triangular distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_uniform_c (DPCTLSyclQueueRef q_ref, void *result_out, const double low, const double high, const int64_t size, void *random_state_in, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (uniform distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_vonmises_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType mu, const _DataType kappa, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (Vonmises distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_wald_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType scale, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (Wald's distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_weibull_c (DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (weibull distribution)
 
template<typename _DataType >
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_zipf_c (DPCTLSyclQueueRef q_ref, void *result, const _DataType a, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
 math library implementation of random number generator (Zipf distribution)
 
+

Detailed Description

+

This section describes Backend API for RANDOM NUMBER GENERATION (RNG) part.

+

Function Documentation

+ +

◆ dpnp_rng_beta_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_beta_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType a,
const _DataType b,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (beta distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]aAlpha, shape param.
[in]bBeta, scalefactor.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_binomial_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_binomial_c (DPCTLSyclQueueRef q_ref,
void * result,
const int ntrial,
const double p,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (binomial distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]ntrialNumber of independent trials.
[in]pSuccess probability p of a single trial.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_chisquare_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_chisquare_c (DPCTLSyclQueueRef q_ref,
void * result,
const int df,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (chi-square distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]dfDegrees of freedom.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_exponential_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_exponential_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType beta,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (exponential distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]betaBeta, scalefactor.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_f_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_f_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType df_num,
const _DataType df_den,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (F distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]df_numDegrees of freedom in numerator.
[in]df_denDegrees of freedom in denominator.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_gamma_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gamma_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType shape,
const _DataType scale,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (gamma distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]shapeThe shape of the gamma distribution.
[in]scaleThe scale of the gamma distribution.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_gaussian_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gaussian_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType mean,
const _DataType stddev,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (gaussian continuous distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]meanMean value.
[in]stddevStandard deviation.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_geometric_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_geometric_c (DPCTLSyclQueueRef q_ref,
void * result,
const float p,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (Geometric distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]pThe probability of success of an individual trial.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_gumbel_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gumbel_c (DPCTLSyclQueueRef q_ref,
void * result,
const double loc,
const double scale,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (Gumbel distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]locThe location of the mode of the distribution.
[in]scaleThe scale parameter of the distribution. Default is 1.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_hypergeometric_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_hypergeometric_c (DPCTLSyclQueueRef q_ref,
void * result,
const int l,
const int s,
const int m,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (hypergeometric distribution)

+
Parameters
+ + + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]lLot size of l.
[in]sSize of sampling without replacement.
[in]mNumber of marked elements m.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_laplace_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_laplace_c (DPCTLSyclQueueRef q_ref,
void * result,
const double loc,
const double scale,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (laplace distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]locThe position of the distribution peak.
[in]scaleThe exponential decay.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_logistic_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_logistic_c (DPCTLSyclQueueRef q_ref,
void * result,
const double loc,
double const scale,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (logistic distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]locThe position of the distribution peak.
[in]scaleThe exponential decay.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_lognormal_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_lognormal_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType mean,
const _DataType stddev,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (lognormal distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]meanMean value.
[in]stddevStandard deviation.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_multinomial_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_multinomial_c (DPCTLSyclQueueRef q_ref,
void * result,
const int ntrial,
const double * p_in,
const size_t p_size,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (multinomial distribution)

+
Parameters
+ + + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]ntrialNumber of independent trials.
[in]p_inProbability of possible outcomes (k length).
[in]p_sizeLength of p_in.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_multivariate_normal_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_multivariate_normal_c (DPCTLSyclQueueRef q_ref,
void * result,
const int dimen,
const double * mean_in,
const size_t mean_size,
const double * cov_in,
const size_t cov_size,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (multivariate normal distribution)

+
Parameters
+ + + + + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]dimenDimension of output random vectors.
[in]mean_inMean array of dimension.
[in]mean_sizeLength of mean_in.
[in]covVariance-covariance matrix.
[in]cov_sizeLength of cov_in.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_negative_binomial_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_negative_binomial_c (DPCTLSyclQueueRef q_ref,
void * result,
const double a,
const double p,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (negative binomial distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]aThe first distribution parameter a, > 0.
[in]pThe second distribution parameter p, >= 0 and <=1.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_noncentral_chisquare_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_noncentral_chisquare_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType df,
const _DataType nonc,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (noncentral chisquare distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]dfDegrees of freedom.
[in]noncNon-centrality param.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_normal_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_normal_c (DPCTLSyclQueueRef q_ref,
void * result_out,
const double mean,
const double stddev,
const int64_t size,
void * random_state_in,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (normal continuous distribution)

+
Parameters
+ + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array.
[in]meanMean value.
[in]stddevStandard deviation.
[in]sizeNumber of elements in result arrays.
[in]random_state_inPointer on random state.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_pareto_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_pareto_c (DPCTLSyclQueueRef q_ref,
void * result,
const double alpha,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (Pareto distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]alphaShape of the distribution, alpha.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_poisson_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_poisson_c (DPCTLSyclQueueRef q_ref,
void * result,
const double lambda,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (poisson distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]lambdaDistribution parameter lambda.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_power_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_power_c (DPCTLSyclQueueRef q_ref,
void * result,
const double alpha,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (power distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]alphaShape of the distribution, alpha.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_rayleigh_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_rayleigh_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType scale,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (rayleigh distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]scaleDistribution parameter, scalefactor.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_shuffle_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_shuffle_c (DPCTLSyclQueueRef q_ref,
void * result,
const size_t itemsize,
const size_t ndim,
const size_t high_dim_size,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random in-place shuffle.

+
Parameters
+ + + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultInput/output array.
[in]itemsizeLength of result array element in bytes.
[in]ndimNumber of array dimensions in result arrays.
[in]high_dim_sizeNumber of elements in result arrays higher dimension, or len(result).
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_srand_c()

+ +
+
+ + + + + + + + +
INP_DLLEXPORT void dpnp_rng_srand_c (size_t seed = 1)
+
+ +

initializer for basic random number generator.

+
Parameters
+ + +
[in]seedThe seed value.
+
+
+ +
+
+ +

◆ dpnp_rng_standard_cauchy_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_cauchy_c (DPCTLSyclQueueRef q_ref,
void * result,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (standard cauchy distribution)

+
Parameters
+ + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_standard_exponential_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_exponential_c (DPCTLSyclQueueRef q_ref,
void * result,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (standard exponential distribution)

+
Parameters
+ + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_standard_gamma_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_gamma_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType shape,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (standard gamma distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]shapeShape value.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_standard_normal_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT void dpnp_rng_standard_normal_c (void * result,
const size_t size 
)
+
+ +

math library implementation of random number generator (standard normal distribution)

+
Parameters
+ + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_standard_t_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_t_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType df,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (standard Student's t distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]dfDegrees of freedom.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_triangular_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_triangular_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType x_min,
const _DataType x_mode,
const _DataType x_max,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (Triangular distribution)

+
Parameters
+ + + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]x_minLower limit.
[in]x_modeThe value where the peak of the distribution occurs.
[in]x_maxUpper limit.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_uniform_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_uniform_c (DPCTLSyclQueueRef q_ref,
void * result_out,
const double low,
const double high,
const int64_t size,
void * random_state_in,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (uniform distribution)

+
Parameters
+ + + + + + + + +
[in]q_refReference to SYCL queue.
[out]result_outOutput array.
[in]lowLeft bound of array values.
[in]highRight bound of array values.
[in]sizeNumber of elements in result array.
[in]random_state_inPointer on random state.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_vonmises_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_vonmises_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType mu,
const _DataType kappa,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (Vonmises distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]muMode of the distribution.
[in]kappaDispersion of the distribution.
[in]sizeNumber of elements in result array.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_wald_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_wald_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType mean,
const _DataType scale,
size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (Wald's distribution)

+
Parameters
+ + + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]meanMean value.
[in]scaleThe scale of the distribution.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_weibull_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_weibull_c (DPCTLSyclQueueRef q_ref,
void * result,
const double alpha,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (weibull distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]alphaShape parameter of the distribution, alpha.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+ +

◆ dpnp_rng_zipf_c()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_zipf_c (DPCTLSyclQueueRef q_ref,
void * result,
const _DataType a,
const size_t size,
const DPCTLEventVectorRef dep_event_vec_ref 
)
+
+ +

math library implementation of random number generator (Zipf distribution)

+
Parameters
+ + + + + + +
[in]q_refReference to SYCL queue.
[out]resultOutput array.
[in]aDistribution parameter.
[in]sizeNumber of elements in result arrays.
[in]dep_event_vec_refReference to vector of SYCL events.
+
+
+ +
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.js b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.js new file mode 100644 index 00000000000..821f8103b4b --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.js @@ -0,0 +1,38 @@ +var group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i = +[ + [ "dpnp_rng_beta_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga16bad12795c72adc5de076e129890a83", null ], + [ "dpnp_rng_binomial_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga51221588325d576caf0f235739ef0718", null ], + [ "dpnp_rng_chisquare_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga97a25a9105c5332d83aae862e6d29d9f", null ], + [ "dpnp_rng_exponential_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga026b7f9552a6cb89e816071c41c43f26", null ], + [ "dpnp_rng_f_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga841854c7f53246b62719074088bd0b5b", null ], + [ "dpnp_rng_gamma_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gad54d6118580ab6b1b2c4ff2ba6ef36ca", null ], + [ "dpnp_rng_gaussian_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga94731fce32598fffe43cb617a684c83a", null ], + [ "dpnp_rng_geometric_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga430f99caa9b1ce1497c0f6b26ebb4e85", null ], + [ "dpnp_rng_gumbel_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga78ffe853157e336c03a2773b0713eaa7", null ], + [ "dpnp_rng_hypergeometric_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gab67b8c98406fcacc0fddbb2407ef7755", null ], + [ "dpnp_rng_laplace_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga31adf1930f42170d8f40d1bd25779e66", null ], + [ "dpnp_rng_logistic_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac68d320b745cf0b7f008fc27ad29e38c", null ], + [ "dpnp_rng_lognormal_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaa66de7492a2987bc5f61c87cbb1312c4", null ], + [ "dpnp_rng_multinomial_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga80937d0842dd407149ff8a21e5754c2c", null ], + [ "dpnp_rng_multivariate_normal_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gad8bd0801def7866f56f24a03cdff0ce7", null ], + [ "dpnp_rng_negative_binomial_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga9ba783072be992cc228c281c9c5ce3f9", null ], + [ "dpnp_rng_noncentral_chisquare_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gacad7ceee454319a21e31e985855a60f3", null ], + [ "dpnp_rng_normal_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga225ae916386ae4ef6091b089b0dd1fe1", null ], + [ "dpnp_rng_pareto_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga3335ff85936d6ecb6273eac430c73a4e", null ], + [ "dpnp_rng_poisson_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaccbd86d29e501bdbac9f3b0bb6560d74", null ], + [ "dpnp_rng_power_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac0b6211cd01634db4bbb4aca3ab88977", null ], + [ "dpnp_rng_rayleigh_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga2ce225aadf9b75ce024eb984e035ab4f", null ], + [ "dpnp_rng_shuffle_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaeff910810c83051069c6929555429ed9", null ], + [ "dpnp_rng_srand_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga41dd03c85f901c2dee88e709170ee1a1", null ], + [ "dpnp_rng_standard_cauchy_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga3234f956d618f70bdbbc95e62085891d", null ], + [ "dpnp_rng_standard_exponential_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gafe6bbfe559a0b307f07add47ba1dfa0d", null ], + [ "dpnp_rng_standard_gamma_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gab43bb4c4352d161a1ff20fb79eed1494", null ], + [ "dpnp_rng_standard_normal_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga125082596bf7b57ccca5f245923e81a1", null ], + [ "dpnp_rng_standard_t_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga1c20a0068cb5334be486b11dbbec3697", null ], + [ "dpnp_rng_triangular_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga35b32eec8a073d2d96551a8256bbcde7", null ], + [ "dpnp_rng_uniform_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga37e231ebdeec9fef8a56743a28770183", null ], + [ "dpnp_rng_vonmises_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac1c75311828e64769fda7f49ba212232", null ], + [ "dpnp_rng_wald_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gacbdc26ae5f2e1a404d9ce2011613bd16", null ], + [ "dpnp_rng_weibull_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga8d3046514e4bccb6d869f1052c4f4406", null ], + [ "dpnp_rng_zipf_c", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaa681bf7b3ffc6fdd431f1ec2f4dd6d64", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s.html b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s.html new file mode 100644 index 00000000000..a9055303419 --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s.html @@ -0,0 +1,717 @@ + + + + + + + +DPNP C++ backend kernel library: Backend C++ library utilities + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Backend C++ library utilities
+
+
+ + + + + + + + + + + +

+Classes

class  DPNP_USM_iterator< _Tp >
 Iterator for DPNPC_id type. More...
 
class  DPNPC_id< _Tp >
 Type to keep USM array pointers used in kernels. More...
 
class  DPNPC_ptr_adapter< _DataType >
 Adapter for the memory given by parameters in the DPNPC functions. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

 DPNPC_id< _Tp >::DPNPC_id (DPCTLSyclQueueRef q_ref, pointer __ptr, const std::vector< size_type > &__shape)
 Main container for reduction iterator.
 
 DPNPC_id< _Tp >::DPNPC_id (pointer __ptr, const std::vector< size_type > &__shape, const std::vector< size_type > &__strides)
 Main container for reduction/broadcasting iterator.
 
void DPNPC_id< _Tp >::broadcast_to_shape (const std::vector< size_type > &__shape)
 Broadcast input data to specified shape.
 
void DPNPC_id< _Tp >::set_axis (shape_elem_type __axis)
 Set axis for the data object to use in computation.
 
void DPNPC_id< _Tp >::set_axes (const std::vector< shape_elem_type > &__axes)
 Set axes for the data object to use in computation.
 
template<typename _DataType >
void get_shape_offsets_inkernel (const _DataType *shape, size_t shape_size, _DataType *offsets)
 Shape offset calculation used in kernels.
 
template<typename _DataType >
void get_xyz_by_id (size_t idx, size_t ndim, const _DataType *offsets, _DataType *xyz)
 Calculation of indices in array.
 
template<typename _DataType >
_DataType get_xyz_id_by_id_inkernel (size_t global_id, const _DataType *offsets, size_t offsets_size, size_t axis)
 Calculate xyz id for given axis from linear index.
 
template<typename _DataType >
size_t get_id_by_xyz_inkernel (const _DataType *xyz, size_t xyz_size, const _DataType *offsets)
 Calculate linear index from ids array.
 
template<typename T >
std::ostream & operator<< (std::ostream &out, const std::vector< T > &vec)
 print std::vector to std::ostream.
 
template<typename T >
std::ostream & operator<< (std::ostream &out, DPNPFuncType elem)
 print DPNPFuncType to std::ostream.
 
+

Detailed Description

+

This section describes utilities used in Backend API.

+

Function Documentation

+ +

◆ broadcast_to_shape()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
void DPNPC_id< _Tp >::broadcast_to_shape (const std::vector< size_type > & __shape)
+
+inline
+
+ +

Broadcast input data to specified shape.

+

Set output shape to use in computation of input index by output index.

+
Note
this function is designed for non-SYCL environment execution
+
Parameters
+ + +
[in]__shapeOutput shape.
+
+
+ +

Definition at line 306 of file dpnp_iterator.hpp.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ DPNPC_id() [1/2]

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
DPNPC_id< _Tp >::DPNPC_id (DPCTLSyclQueueRef q_ref,
pointer __ptr,
const std::vector< size_type > & __shape 
)
+
+inline
+
+ +

Main container for reduction iterator.

+

Construct object to hold __ptr data with shape __shape. It is needed to provide reduction iterator over the data.

+
Note
this function is designed for non-SYCL environment execution
+
Parameters
+ + + + +
[in]q_refReference to SYCL queue.
[in]__ptrPointer to input data. Used to get values only.
[in]__shapeShape of data provided by __ptr. Empty container means scalar value pointed by __ptr.
+
+
+ +

Definition at line 246 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ DPNPC_id() [2/2]

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
DPNPC_id< _Tp >::DPNPC_id (pointer __ptr,
const std::vector< size_type > & __shape,
const std::vector< size_type > & __strides 
)
+
+inline
+
+ +

Main container for reduction/broadcasting iterator.

+

Construct object to hold __ptr data with shape __shape and strides __strides.

+
Note
this function is designed for non-SYCL environment execution
+
Parameters
+ + + + +
[in]__ptrPointer to input data. Used to get values only.
[in]__shapeShape of data provided by __ptr. Empty container means scalar value pointed by __ptr.
[in]__stridesStrides of data provided by __ptr.
+
+
+ +

Definition at line 269 of file dpnp_iterator.hpp.

+ +
+
+ +

◆ get_id_by_xyz_inkernel()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + +
size_t get_id_by_xyz_inkernel (const _DataType * xyz,
size_t xyz_size,
const _DataType * offsets 
)
+
+ +

Calculate linear index from ids array.

+

Calculates linear index from ids array by given offsets. This is reverse operation of get_xyz_by_id_inkernel for example: xyz array ids should be [0, 1, 0] input_array_shape_offsets[20, 5, 1] global_id == 5

+
Parameters
+ + + + +
[in]xyzarray with array indexes.
[in]xyz_sizearray size for xyz parameter.
[in]offsetsarray with input offsets.
+
+
+
Returns
linear index id of the element in multy-D array.
+ +

Definition at line 200 of file dpnp_utils.hpp.

+ +
+
+ +

◆ get_shape_offsets_inkernel()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void get_shape_offsets_inkernel (const _DataType * shape,
size_t shape_size,
_DataType * offsets 
)
+
+ +

Shape offset calculation used in kernels.

+

Calculates offsets of the array with given shape for example: input_array_shape[3, 4, 5] offsets should be [20, 5, 1]

+
Parameters
+ + + + +
[in]shapearray with input shape.
[in]shape_sizearray size for shape parameter.
[out]offsetsResult array with shape_size size.
+
+
+ +

Definition at line 103 of file dpnp_utils.hpp.

+ +
+
+ +

◆ get_xyz_by_id()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void get_xyz_by_id (size_t idx,
size_t ndim,
const _DataType * offsets,
_DataType * xyz 
)
+
+ +

Calculation of indices in array.

+

Calculates indices of element in array with given linear position for example: idx = 5, shape = (2, 3), ndim = 2, indices xyz should be [1, 1]

+
Parameters
+ + + + + +
[in]idxlinear index of the element in multy-D array.
[in]ndimnumber of dimensions.
[in]shapeoffsets of array.
[out]xyzindices.
+
+
+ +

Definition at line 132 of file dpnp_utils.hpp.

+ +
+
+ +

◆ get_xyz_id_by_id_inkernel()

+ +
+
+
+template<typename _DataType >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_DataType get_xyz_id_by_id_inkernel (size_t global_id,
const _DataType * offsets,
size_t offsets_size,
size_t axis 
)
+
+ +

Calculate xyz id for given axis from linear index.

+

Calculates xyz id of the array with given shape. for example: input_array_shape_offsets[20, 5, 1] global_id == 5 axis == 1 xyz_id should be 1

+
Parameters
+ + + + + +
[in]global_idlinear index of the element in multy-D array.
[in]offsetsarray with input offsets.
[in]offsets_sizearray size for offsets parameter.
[in]axisaxis.
+
+
+ +

Definition at line 165 of file dpnp_utils.hpp.

+ +
+
+ +

◆ operator<<() [1/2]

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
std::ostream & operator<< (std::ostream & out,
const std::vector< T > & vec 
)
+
+ +

print std::vector to std::ostream.

+

To print std::vector with POD types to std::out.

+
Parameters
+ + +
[in]vecstd::vector with types with ability to be printed.
+
+
+ +

Definition at line 492 of file dpnp_utils.hpp.

+ +
+
+ +

◆ operator<<() [2/2]

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
std::ostream & operator<< (std::ostream & out,
DPNPFuncType elem 
)
+
+ +

print DPNPFuncType to std::ostream.

+

To print DPNPFuncType type to std::out. TODO implement string representation of the enum

+
Parameters
+ + +
[in]elemDPNPFuncType value to be printed.
+
+
+ +

Definition at line 520 of file dpnp_utils.hpp.

+ +
+
+ +

◆ set_axes()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
void DPNPC_id< _Tp >::set_axes (const std::vector< shape_elem_type > & __axes)
+
+inline
+
+ +

Set axes for the data object to use in computation.

+

Set axes of the shape of input array to use in iteration. Axes might be negative to indicate axes as reverse iterator

+

Indexing goes from left to right. Reduction example: Input shape A[2, 3, 4, 5] set_axes({1, 2}) // same as {-3, -2} output shape will be C[2, 5]

+
Note
this function is designed for non-SYCL environment execution
+
Parameters
+ + +
[in]__axesVector of axes of a shape of input array.
+
+
+ +

Definition at line 402 of file dpnp_iterator.hpp.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ set_axis()

+ +
+
+
+template<typename _Tp >
+ + + + + +
+ + + + + + + + +
void DPNPC_id< _Tp >::set_axis (shape_elem_type __axis)
+
+inline
+
+ +

Set axis for the data object to use in computation.

+

Set axis of the shape of input array to use in iteration. Axis might be negative to indicate right to left axes indexing in a shape

+

Indexing goes from left to right. Reduction example: Input shape A[6, 7, 8, 9] set_axis(1) // same as -3 in this example output shape will be C[6, 8, 9]

+
Note
this function is designed for non-SYCL environment execution
+
Parameters
+ + +
[in]__axisAxis in a shape of input array.
+
+
+ +

Definition at line 374 of file dpnp_iterator.hpp.

+ +
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s.js b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s.js new file mode 100644 index 00000000000..bbbeca4987c --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s.js @@ -0,0 +1,31 @@ +var group___b_a_c_k_e_n_d___u_t_i_l_s = +[ + [ "DPNP_USM_iterator< _Tp >", "class_d_p_n_p___u_s_m__iterator.html", [ + [ "operator++", "class_d_p_n_p___u_s_m__iterator.html#a995480447406ffd7421ddbd4006637be", null ], + [ "operator++", "class_d_p_n_p___u_s_m__iterator.html#a8f31f980fbfb90d1e9367438a7351e26", null ], + [ "operator<<", "class_d_p_n_p___u_s_m__iterator.html#ad8717a8073f17dc82cbfc74a9fbcc777", null ] + ] ], + [ "DPNPC_id< _Tp >", "class_d_p_n_p_c__id.html", [ + [ "DPNPC_id", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga1e1d9e72e8f1a92a6e25d7f563562b11", null ], + [ "DPNPC_id", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae67edf544bf0edce8e1cd74d68d8dc76", null ], + [ "begin", "class_d_p_n_p_c__id.html#a1e1427181e175dacfb37d3a042d4876f", null ], + [ "broadcast_to_shape", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga5f47f787627aa8dbd02301760482d7d6", null ], + [ "end", "class_d_p_n_p_c__id.html#aa70a960886549f3d75137ac573a4c828", null ], + [ "get_output_size", "class_d_p_n_p_c__id.html#a79168b2adbe07a8099747374bba2c483", null ], + [ "operator[]", "class_d_p_n_p_c__id.html#a2e98849be3b71da7efdfbccdcb26c010", null ], + [ "set_axes", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga87a0b53a5ae1b69762f201cd6521e210", null ], + [ "set_axis", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae4294907d97ba7d7a630d5097b435d0a", null ] + ] ], + [ "DPNPC_ptr_adapter< _DataType >", "class_d_p_n_p_c__ptr__adapter.html", null ], + [ "DPNPC_id::broadcast_to_shape", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga5f47f787627aa8dbd02301760482d7d6", null ], + [ "DPNPC_id::DPNPC_id", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga1e1d9e72e8f1a92a6e25d7f563562b11", null ], + [ "DPNPC_id::DPNPC_id", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae67edf544bf0edce8e1cd74d68d8dc76", null ], + [ "get_id_by_xyz_inkernel", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga064c245ca5bae67e4c986442e22d484e", null ], + [ "get_shape_offsets_inkernel", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga4706968b8ce210d69309a0cae330cea5", null ], + [ "get_xyz_by_id", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga81df4307ea53001fc552b6cd76c0ebf8", null ], + [ "get_xyz_id_by_id_inkernel", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#gad37eb9ce0ad29590cc931a9b6cd538e2", null ], + [ "operator<<", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga2d677a923f4dc4c31e302b0c3bb692f0", null ], + [ "operator<<", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga632dede9569431596d7423005389a147", null ], + [ "DPNPC_id::set_axes", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga87a0b53a5ae1b69762f201cd6521e210", null ], + [ "DPNPC_id::set_axis", "group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae4294907d97ba7d7a630d5097b435d0a", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.map b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.map new file mode 100644 index 00000000000..211494a1f54 --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.md5 b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.md5 new file mode 100644 index 00000000000..c8f3daf0f9c --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.md5 @@ -0,0 +1 @@ +eaa5ec17821ade5c1ecf5b0c5e855f44 \ No newline at end of file diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.png b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.png new file mode 100644 index 00000000000..155f78cb0bf Binary files /dev/null and b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga5f47f787627aa8dbd02301760482d7d6_cgraph.png differ diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.map b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.map new file mode 100644 index 00000000000..be8129aa628 --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.md5 b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.md5 new file mode 100644 index 00000000000..392fbd84b65 --- /dev/null +++ b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.md5 @@ -0,0 +1 @@ +caf68675e1d094a482881b944cbf92d4 \ No newline at end of file diff --git a/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.png b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.png new file mode 100644 index 00000000000..92474cf77cf Binary files /dev/null and b/pull/2070/backend_doc/group___b_a_c_k_e_n_d___u_t_i_l_s_ga87a0b53a5ae1b69762f201cd6521e210_cgraph.png differ diff --git a/pull/2070/backend_doc/heevd_8hpp_source.html b/pull/2070/backend_doc/heevd_8hpp_source.html new file mode 100644 index 00000000000..59f50829627 --- /dev/null +++ b/pull/2070/backend_doc/heevd_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/heevd.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
heevd.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::lapack
+
33{
+
34void init_heevd(py::module_ m);
+
35} // namespace dpnp::extensions::lapack
+
+
+ + + + diff --git a/pull/2070/backend_doc/heevd__batch_8hpp_source.html b/pull/2070/backend_doc/heevd__batch_8hpp_source.html new file mode 100644 index 00000000000..1ecb84eb1cb --- /dev/null +++ b/pull/2070/backend_doc/heevd__batch_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/heevd_batch.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
heevd_batch.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::lapack
+
33{
+
34void init_heevd_batch(py::module_ m);
+
35} // namespace dpnp::extensions::lapack
+
+
+ + + + diff --git a/pull/2070/backend_doc/hierarchy.html b/pull/2070/backend_doc/hierarchy.html new file mode 100644 index 00000000000..faeea38921a --- /dev/null +++ b/pull/2070/backend_doc/hierarchy.html @@ -0,0 +1,176 @@ + + + + + + + +DPNP C++ backend kernel library: Class Hierarchy + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
+

Go to the graphical class hierarchy

+This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Cbackend_sycl
 Cstd::conjunction
 Care_same< T, Ts >
 Cdpnp::kernels::degrees::DegreesFunctor< argT, resT >
 Cdpnp::extensions::fft::DescriptorWrapper< prec, dom >
 Cstd::disjunction
 Cis_any< T, Ts >
 Cdpnp::extensions::blas::DotcContigFactory< fnT, varT >
 Cdpnp::extensions::blas::DotContigFactory< fnT, varT >
 Cdpnp::extensions::blas::types::DotcTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dotc<T> function
 Cdpnp::extensions::blas::types::DotTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dot<T> function
 Cdpnp::extensions::blas::DotuContigFactory< fnT, varT >
 Cdpnp::extensions::blas::types::DotuTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dotu<T> function
 Cdpnp_less_comp"<" comparison with complex types support
 CDPNP_USM_iterator< _Tp >Iterator for DPNPC_id type
 CDPNPC_id< _Tp >Type to keep USM array pointers used in kernels
 CDPNPC_ptr_adapter< _DataType >Adapter for the memory given by parameters in the DPNPC functions
 CDPNPFuncDataContains information about the C++ backend function
 Cengine_struct
 Cmcg59_struct
 Cmt19937_struct
 Cstd::exception
 Cdpnp::extensions::lapack::LinAlgError
 Cdpnp::kernels::fabs::FabsFunctor< argT, resT >
 Cdpnp::kernels::fix::FixFunctor< argT, resT >
 Cdpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >
 Cdpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >
 Cdpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >
 Cfunc_type_pair_t< FuncType, T >
 Cdpnp::extensions::blas::types::GemmBatchTypePairSupportFactory< Tab, Tc >A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemm_batch<Tab, Tc> function
 Cdpnp::extensions::blas::types::GemmTypePairSupportFactory< Tab, Tc >A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemm<Tab, Tc> function
 Cdpnp::extensions::blas::types::GemvTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemv<T> function
 Cdpnp::extensions::lapack::types::GeqrfBatchTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::geqrf_batch<T> function
 Cdpnp::extensions::lapack::types::GeqrfTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::geqrf<T> function
 Cdpnp::extensions::lapack::types::GesvdTypePairSupportFactory< T, RealT >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::gesvd<T, RealT> function
 Cdpnp::extensions::lapack::types::GesvTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::gesv<T> function
 Cdpnp::extensions::lapack::types::GetrfBatchTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrf_batch<T> function
 Cdpnp::extensions::lapack::types::GetrfTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrf<T> function
 Cdpnp::extensions::lapack::types::GetriBatchTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getri_batch<T> function
 Cdpnp::extensions::lapack::types::GetrsTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrs<T> function
 Cdpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT >
 Cdpnp::extensions::lapack::types::HeevdTypePairSupportFactory< T, RealT >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::heevd<T, RealT> function
 Cstd::integral_constant
 Cis_complex< _Tp >
 Cdpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT >
 Cdpnp::extensions::lapack::types::OrgqrBatchTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::orgqr_batch<T> function
 Cdpnp::extensions::lapack::types::OrgqrTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::orgqr<T> function
 Cdpnp::extensions::lapack::types::PotrfBatchTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::potrf<T> function
 Cdpnp::extensions::lapack::types::PotrfTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::potrf<T> function
 Cdpnp::extensions::fft::PrecisionType< prec >
 Cdpnp::extensions::fft::PrecisionType< mkl_dft::precision::DOUBLE >
 Cdpnp::extensions::fft::PrecisionType< mkl_dft::precision::SINGLE >
 Cpython_constants
 Cdpnp::kernels::radians::RadiansFunctor< argT, resT >
 Cdpnp::extensions::fft::ScaleType< prec, dom, is_forward >
 Cdpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >
 Cdpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false >
 Cdpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true >
 Cdpnp::extensions::lapack::types::SyevdTypePairSupportFactory< T, RealT >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::syevd<T> function
 Cdpnp::extensions::lapack::types::UngqrBatchTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::ungqr_batch<T> function
 Cdpnp::extensions::lapack::types::UngqrTypePairSupportFactory< T >A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::ungqr<T> function
 Cdpnp::extensions::lapack::helper::value_type_of< T >
 Cdpnp::extensions::lapack::helper::value_type_of< std::complex< T > >
 CPs
 Cfunc_type_map_factory_t< Ps >
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/hierarchy.js b/pull/2070/backend_doc/hierarchy.js new file mode 100644 index 00000000000..76ddc38c16b --- /dev/null +++ b/pull/2070/backend_doc/hierarchy.js @@ -0,0 +1,74 @@ +var hierarchy = +[ + [ "backend_sycl", "classbackend__sycl.html", null ], + [ "std::conjunction", null, [ + [ "are_same< T, Ts >", "structare__same.html", null ] + ] ], + [ "dpnp::kernels::degrees::DegreesFunctor< argT, resT >", "structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor.html", null ], + [ "dpnp::extensions::fft::DescriptorWrapper< prec, dom >", "classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper.html", null ], + [ "std::disjunction", null, [ + [ "is_any< T, Ts >", "structis__any.html", null ] + ] ], + [ "dpnp::extensions::blas::DotcContigFactory< fnT, varT >", "structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory.html", null ], + [ "dpnp::extensions::blas::DotContigFactory< fnT, varT >", "structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory.html", null ], + [ "dpnp::extensions::blas::types::DotcTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory.html", null ], + [ "dpnp::extensions::blas::types::DotTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory.html", null ], + [ "dpnp::extensions::blas::DotuContigFactory< fnT, varT >", "structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory.html", null ], + [ "dpnp::extensions::blas::types::DotuTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory.html", null ], + [ "dpnp_less_comp", "classdpnp__less__comp.html", null ], + [ "DPNP_USM_iterator< _Tp >", "class_d_p_n_p___u_s_m__iterator.html", null ], + [ "DPNPC_id< _Tp >", "class_d_p_n_p_c__id.html", null ], + [ "DPNPC_ptr_adapter< _DataType >", "class_d_p_n_p_c__ptr__adapter.html", null ], + [ "DPNPFuncData", "struct_d_p_n_p_func_data.html", null ], + [ "engine_struct", "structengine__struct.html", [ + [ "mcg59_struct", "structmcg59__struct.html", null ], + [ "mt19937_struct", "structmt19937__struct.html", null ] + ] ], + [ "std::exception", null, [ + [ "dpnp::extensions::lapack::LinAlgError", "classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error.html", null ] + ] ], + [ "dpnp::kernels::fabs::FabsFunctor< argT, resT >", "structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor.html", null ], + [ "dpnp::kernels::fix::FixFunctor< argT, resT >", "structdpnp_1_1kernels_1_1fix_1_1_fix_functor.html", null ], + [ "dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >", "structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor.html", null ], + [ "dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >", "structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor.html", null ], + [ "dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >", "structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor.html", null ], + [ "func_type_pair_t< FuncType, T >", "structfunc__type__pair__t.html", null ], + [ "dpnp::extensions::blas::types::GemmBatchTypePairSupportFactory< Tab, Tc >", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory.html", null ], + [ "dpnp::extensions::blas::types::GemmTypePairSupportFactory< Tab, Tc >", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory.html", null ], + [ "dpnp::extensions::blas::types::GemvTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::GeqrfBatchTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::GeqrfTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::GesvdTypePairSupportFactory< T, RealT >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::GesvTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::GetrfBatchTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::GetrfTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::GetriBatchTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::GetrsTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory.html", null ], + [ "dpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT >", "structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor.html", null ], + [ "dpnp::extensions::lapack::types::HeevdTypePairSupportFactory< T, RealT >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory.html", null ], + [ "std::integral_constant", null, [ + [ "is_complex< _Tp >", "structis__complex.html", null ] + ] ], + [ "dpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT >", "structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor.html", null ], + [ "dpnp::extensions::lapack::types::OrgqrBatchTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::OrgqrTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::PotrfBatchTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::PotrfTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory.html", null ], + [ "dpnp::extensions::fft::PrecisionType< prec >", "structdpnp_1_1extensions_1_1fft_1_1_precision_type.html", null ], + [ "dpnp::extensions::fft::PrecisionType< mkl_dft::precision::DOUBLE >", "structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4.html", null ], + [ "dpnp::extensions::fft::PrecisionType< mkl_dft::precision::SINGLE >", "structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4.html", null ], + [ "python_constants", "structpython__constants.html", null ], + [ "dpnp::kernels::radians::RadiansFunctor< argT, resT >", "structdpnp_1_1kernels_1_1radians_1_1_radians_functor.html", null ], + [ "dpnp::extensions::fft::ScaleType< prec, dom, is_forward >", "structdpnp_1_1extensions_1_1fft_1_1_scale_type.html", null ], + [ "dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >", "structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4.html", null ], + [ "dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false >", "structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4.html", null ], + [ "dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true >", "structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4.html", null ], + [ "dpnp::extensions::lapack::types::SyevdTypePairSupportFactory< T, RealT >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::UngqrBatchTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::types::UngqrTypePairSupportFactory< T >", "structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory.html", null ], + [ "dpnp::extensions::lapack::helper::value_type_of< T >", "structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of.html", null ], + [ "dpnp::extensions::lapack::helper::value_type_of< std::complex< T > >", "structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4.html", null ], + [ "Ps", null, [ + [ "func_type_map_factory_t< Ps >", "structfunc__type__map__factory__t.html", null ] + ] ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/hypot_8hpp_source.html b/pull/2070/backend_doc/hypot_8hpp_source.html new file mode 100644 index 00000000000..4fcd9d90514 --- /dev/null +++ b/pull/2070/backend_doc/hypot_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/hypot.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
hypot.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_hypot(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/in__place_8hpp_source.html b/pull/2070/backend_doc/in__place_8hpp_source.html new file mode 100644 index 00000000000..ee7a9a851de --- /dev/null +++ b/pull/2070/backend_doc/in__place_8hpp_source.html @@ -0,0 +1,155 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/fft/in_place.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
in_place.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <oneapi/mkl.hpp>
+
29#include <sycl/sycl.hpp>
+
30
+
31#include <dpctl4pybind11.hpp>
+
32
+
33namespace dpnp::extensions::fft
+
34{
+
35namespace mkl_dft = oneapi::mkl::dft;
+
36
+
37template <mkl_dft::precision prec, mkl_dft::domain dom>
+
38std::pair<sycl::event, sycl::event>
+
39 compute_fft_in_place(DescriptorWrapper<prec, dom> &descr,
+
40 const dpctl::tensor::usm_ndarray &in_out,
+
41 const bool is_forward,
+
42 const std::vector<sycl::event> &depends);
+
43
+
44} // namespace dpnp::extensions::fft
+
+
+ + + + diff --git a/pull/2070/backend_doc/index.html b/pull/2070/backend_doc/index.html new file mode 100644 index 00000000000..cdf1d7133bb --- /dev/null +++ b/pull/2070/backend_doc/index.html @@ -0,0 +1,105 @@ + + + + + + + +DPNP C++ backend kernel library: Main Page + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DPNP C++ backend kernel library Documentation
+
+
+
+
+ + + + diff --git a/pull/2070/backend_doc/inherit_graph_0.map b/pull/2070/backend_doc/inherit_graph_0.map new file mode 100644 index 00000000000..be077c8d0d3 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_0.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_0.md5 b/pull/2070/backend_doc/inherit_graph_0.md5 new file mode 100644 index 00000000000..c47486499ec --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_0.md5 @@ -0,0 +1 @@ +5deb1e0452e197cc9e6b64bca9123f1a \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_0.png b/pull/2070/backend_doc/inherit_graph_0.png new file mode 100644 index 00000000000..23c344a38ac Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_0.png differ diff --git a/pull/2070/backend_doc/inherit_graph_1.map b/pull/2070/backend_doc/inherit_graph_1.map new file mode 100644 index 00000000000..f05daa22645 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_1.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_1.md5 b/pull/2070/backend_doc/inherit_graph_1.md5 new file mode 100644 index 00000000000..cd0dc38091e --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_1.md5 @@ -0,0 +1 @@ +48d52123b054611c822dd26396194b93 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_1.png b/pull/2070/backend_doc/inherit_graph_1.png new file mode 100644 index 00000000000..2cd3a693528 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_1.png differ diff --git a/pull/2070/backend_doc/inherit_graph_10.map b/pull/2070/backend_doc/inherit_graph_10.map new file mode 100644 index 00000000000..d5d07d438a0 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_10.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_10.md5 b/pull/2070/backend_doc/inherit_graph_10.md5 new file mode 100644 index 00000000000..fe63bd35eeb --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_10.md5 @@ -0,0 +1 @@ +eb523a9619862db79e6cbea061a601d4 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_10.png b/pull/2070/backend_doc/inherit_graph_10.png new file mode 100644 index 00000000000..1c338067b84 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_10.png differ diff --git a/pull/2070/backend_doc/inherit_graph_11.map b/pull/2070/backend_doc/inherit_graph_11.map new file mode 100644 index 00000000000..38878e263e7 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_11.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_11.md5 b/pull/2070/backend_doc/inherit_graph_11.md5 new file mode 100644 index 00000000000..a4642f3e5fe --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_11.md5 @@ -0,0 +1 @@ +d87aaf65e07cda90da87b3de4037d207 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_11.png b/pull/2070/backend_doc/inherit_graph_11.png new file mode 100644 index 00000000000..c9970f89245 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_11.png differ diff --git a/pull/2070/backend_doc/inherit_graph_12.map b/pull/2070/backend_doc/inherit_graph_12.map new file mode 100644 index 00000000000..97d3e8f5c65 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_12.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_12.md5 b/pull/2070/backend_doc/inherit_graph_12.md5 new file mode 100644 index 00000000000..bbdf273f149 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_12.md5 @@ -0,0 +1 @@ +d1a9525673faf9ff6138f6e7e28ddeb0 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_12.png b/pull/2070/backend_doc/inherit_graph_12.png new file mode 100644 index 00000000000..9da7e6c1472 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_12.png differ diff --git a/pull/2070/backend_doc/inherit_graph_13.map b/pull/2070/backend_doc/inherit_graph_13.map new file mode 100644 index 00000000000..d73f5da17f4 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_13.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_13.md5 b/pull/2070/backend_doc/inherit_graph_13.md5 new file mode 100644 index 00000000000..6e3d2c093f3 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_13.md5 @@ -0,0 +1 @@ +379543a196cc44a54ba9c98bcde2a07d \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_13.png b/pull/2070/backend_doc/inherit_graph_13.png new file mode 100644 index 00000000000..12c39efd530 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_13.png differ diff --git a/pull/2070/backend_doc/inherit_graph_14.map b/pull/2070/backend_doc/inherit_graph_14.map new file mode 100644 index 00000000000..2d4300f24f2 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_14.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_14.md5 b/pull/2070/backend_doc/inherit_graph_14.md5 new file mode 100644 index 00000000000..fc61efd0fc5 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_14.md5 @@ -0,0 +1 @@ +576d587d247254f55f9276c6fafe92b6 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_14.png b/pull/2070/backend_doc/inherit_graph_14.png new file mode 100644 index 00000000000..29915a21529 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_14.png differ diff --git a/pull/2070/backend_doc/inherit_graph_15.map b/pull/2070/backend_doc/inherit_graph_15.map new file mode 100644 index 00000000000..3d1196275d9 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_15.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_15.md5 b/pull/2070/backend_doc/inherit_graph_15.md5 new file mode 100644 index 00000000000..6040c12e18d --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_15.md5 @@ -0,0 +1 @@ +8f59fce8c4b19c703378727a8f41263b \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_15.png b/pull/2070/backend_doc/inherit_graph_15.png new file mode 100644 index 00000000000..42baea4887b Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_15.png differ diff --git a/pull/2070/backend_doc/inherit_graph_16.map b/pull/2070/backend_doc/inherit_graph_16.map new file mode 100644 index 00000000000..44ecb8b40ae --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_16.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_16.md5 b/pull/2070/backend_doc/inherit_graph_16.md5 new file mode 100644 index 00000000000..c45504743ce --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_16.md5 @@ -0,0 +1 @@ +422993095bf3610abef181b85bfbd53d \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_16.png b/pull/2070/backend_doc/inherit_graph_16.png new file mode 100644 index 00000000000..39e5cba2df1 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_16.png differ diff --git a/pull/2070/backend_doc/inherit_graph_17.map b/pull/2070/backend_doc/inherit_graph_17.map new file mode 100644 index 00000000000..3ed844a0c60 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_17.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_17.md5 b/pull/2070/backend_doc/inherit_graph_17.md5 new file mode 100644 index 00000000000..4f5dc4696ff --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_17.md5 @@ -0,0 +1 @@ +87fc8b3999930fb78683bca3bbe9e806 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_17.png b/pull/2070/backend_doc/inherit_graph_17.png new file mode 100644 index 00000000000..51fdba68743 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_17.png differ diff --git a/pull/2070/backend_doc/inherit_graph_18.map b/pull/2070/backend_doc/inherit_graph_18.map new file mode 100644 index 00000000000..e4625a7ff23 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_18.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_18.md5 b/pull/2070/backend_doc/inherit_graph_18.md5 new file mode 100644 index 00000000000..d1673b82465 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_18.md5 @@ -0,0 +1 @@ +72b799ca342e62821fd522914f933824 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_18.png b/pull/2070/backend_doc/inherit_graph_18.png new file mode 100644 index 00000000000..f3ab292b172 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_18.png differ diff --git a/pull/2070/backend_doc/inherit_graph_19.map b/pull/2070/backend_doc/inherit_graph_19.map new file mode 100644 index 00000000000..7af276a12d5 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_19.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_19.md5 b/pull/2070/backend_doc/inherit_graph_19.md5 new file mode 100644 index 00000000000..8f18b17c3c5 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_19.md5 @@ -0,0 +1 @@ +685b05d885439db1b14915a8e49a1d33 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_19.png b/pull/2070/backend_doc/inherit_graph_19.png new file mode 100644 index 00000000000..e6d17179b78 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_19.png differ diff --git a/pull/2070/backend_doc/inherit_graph_2.map b/pull/2070/backend_doc/inherit_graph_2.map new file mode 100644 index 00000000000..bd9ec21b927 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_2.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_2.md5 b/pull/2070/backend_doc/inherit_graph_2.md5 new file mode 100644 index 00000000000..cd99ee23b9b --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_2.md5 @@ -0,0 +1 @@ +11c202f103608f18e29e00644f5ac56f \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_2.png b/pull/2070/backend_doc/inherit_graph_2.png new file mode 100644 index 00000000000..503a26c2575 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_2.png differ diff --git a/pull/2070/backend_doc/inherit_graph_20.map b/pull/2070/backend_doc/inherit_graph_20.map new file mode 100644 index 00000000000..42f14ce5748 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_20.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_20.md5 b/pull/2070/backend_doc/inherit_graph_20.md5 new file mode 100644 index 00000000000..f22a2e611ea --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_20.md5 @@ -0,0 +1 @@ +3a1d65b8393b44ec6200189569ac00b9 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_20.png b/pull/2070/backend_doc/inherit_graph_20.png new file mode 100644 index 00000000000..251aed6d3fd Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_20.png differ diff --git a/pull/2070/backend_doc/inherit_graph_21.map b/pull/2070/backend_doc/inherit_graph_21.map new file mode 100644 index 00000000000..a91986cf612 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_21.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_21.md5 b/pull/2070/backend_doc/inherit_graph_21.md5 new file mode 100644 index 00000000000..d8781e6f336 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_21.md5 @@ -0,0 +1 @@ +67e93dc568c96c3a039226d6d9ba6a61 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_21.png b/pull/2070/backend_doc/inherit_graph_21.png new file mode 100644 index 00000000000..48da8a1bfcb Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_21.png differ diff --git a/pull/2070/backend_doc/inherit_graph_22.map b/pull/2070/backend_doc/inherit_graph_22.map new file mode 100644 index 00000000000..6b5d555c6f5 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_22.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_22.md5 b/pull/2070/backend_doc/inherit_graph_22.md5 new file mode 100644 index 00000000000..fd6508fda9e --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_22.md5 @@ -0,0 +1 @@ +78f307297dda9589d269a95ea3717633 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_22.png b/pull/2070/backend_doc/inherit_graph_22.png new file mode 100644 index 00000000000..50f0626ddfe Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_22.png differ diff --git a/pull/2070/backend_doc/inherit_graph_23.map b/pull/2070/backend_doc/inherit_graph_23.map new file mode 100644 index 00000000000..c605735d953 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_23.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_23.md5 b/pull/2070/backend_doc/inherit_graph_23.md5 new file mode 100644 index 00000000000..a36ab771414 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_23.md5 @@ -0,0 +1 @@ +3e118bcabc383b61389f95cc4e23e4c1 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_23.png b/pull/2070/backend_doc/inherit_graph_23.png new file mode 100644 index 00000000000..c0abacbf648 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_23.png differ diff --git a/pull/2070/backend_doc/inherit_graph_24.map b/pull/2070/backend_doc/inherit_graph_24.map new file mode 100644 index 00000000000..86dc515a965 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_24.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_24.md5 b/pull/2070/backend_doc/inherit_graph_24.md5 new file mode 100644 index 00000000000..4f43200ddfe --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_24.md5 @@ -0,0 +1 @@ +b1fb92814200ea075c0500429a8f3a61 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_24.png b/pull/2070/backend_doc/inherit_graph_24.png new file mode 100644 index 00000000000..668f6db46da Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_24.png differ diff --git a/pull/2070/backend_doc/inherit_graph_25.map b/pull/2070/backend_doc/inherit_graph_25.map new file mode 100644 index 00000000000..af91a7601e6 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_25.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_25.md5 b/pull/2070/backend_doc/inherit_graph_25.md5 new file mode 100644 index 00000000000..951bb5bcd51 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_25.md5 @@ -0,0 +1 @@ +cc0850a700fa3072c035d330c38dd242 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_25.png b/pull/2070/backend_doc/inherit_graph_25.png new file mode 100644 index 00000000000..cb4908ca311 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_25.png differ diff --git a/pull/2070/backend_doc/inherit_graph_26.map b/pull/2070/backend_doc/inherit_graph_26.map new file mode 100644 index 00000000000..01b86f66a11 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_26.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_26.md5 b/pull/2070/backend_doc/inherit_graph_26.md5 new file mode 100644 index 00000000000..21d425ac655 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_26.md5 @@ -0,0 +1 @@ +0be643b162f044c3d05f779d861a3be0 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_26.png b/pull/2070/backend_doc/inherit_graph_26.png new file mode 100644 index 00000000000..5fa0555a9a1 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_26.png differ diff --git a/pull/2070/backend_doc/inherit_graph_27.map b/pull/2070/backend_doc/inherit_graph_27.map new file mode 100644 index 00000000000..f466bf44e5a --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_27.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_27.md5 b/pull/2070/backend_doc/inherit_graph_27.md5 new file mode 100644 index 00000000000..d6f08064c73 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_27.md5 @@ -0,0 +1 @@ +b0cde46158886128ca7af81ca89ca25a \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_27.png b/pull/2070/backend_doc/inherit_graph_27.png new file mode 100644 index 00000000000..388b44fc772 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_27.png differ diff --git a/pull/2070/backend_doc/inherit_graph_28.map b/pull/2070/backend_doc/inherit_graph_28.map new file mode 100644 index 00000000000..d6c29c0f504 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_28.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_28.md5 b/pull/2070/backend_doc/inherit_graph_28.md5 new file mode 100644 index 00000000000..e4f853307ac --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_28.md5 @@ -0,0 +1 @@ +050a5b3923e515cb31aeaf3b75f56ef2 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_28.png b/pull/2070/backend_doc/inherit_graph_28.png new file mode 100644 index 00000000000..39738173e26 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_28.png differ diff --git a/pull/2070/backend_doc/inherit_graph_29.map b/pull/2070/backend_doc/inherit_graph_29.map new file mode 100644 index 00000000000..348ce202e56 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_29.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_29.md5 b/pull/2070/backend_doc/inherit_graph_29.md5 new file mode 100644 index 00000000000..6713d641871 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_29.md5 @@ -0,0 +1 @@ +000f79af46a78bdba75bdc550a1e8260 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_29.png b/pull/2070/backend_doc/inherit_graph_29.png new file mode 100644 index 00000000000..b66ca5c64fb Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_29.png differ diff --git a/pull/2070/backend_doc/inherit_graph_3.map b/pull/2070/backend_doc/inherit_graph_3.map new file mode 100644 index 00000000000..0a52c2aa1b1 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_3.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_3.md5 b/pull/2070/backend_doc/inherit_graph_3.md5 new file mode 100644 index 00000000000..286edc5a7fd --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_3.md5 @@ -0,0 +1 @@ +56c18ab906c02dcdfee5b5e0804a856b \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_3.png b/pull/2070/backend_doc/inherit_graph_3.png new file mode 100644 index 00000000000..b3eeddf5a74 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_3.png differ diff --git a/pull/2070/backend_doc/inherit_graph_30.map b/pull/2070/backend_doc/inherit_graph_30.map new file mode 100644 index 00000000000..422b2d46f06 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_30.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_30.md5 b/pull/2070/backend_doc/inherit_graph_30.md5 new file mode 100644 index 00000000000..dcb88e85153 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_30.md5 @@ -0,0 +1 @@ +673cd40efbef2127c2ac2bb504bcd045 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_30.png b/pull/2070/backend_doc/inherit_graph_30.png new file mode 100644 index 00000000000..bff312a1456 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_30.png differ diff --git a/pull/2070/backend_doc/inherit_graph_31.map b/pull/2070/backend_doc/inherit_graph_31.map new file mode 100644 index 00000000000..e7f8c1070dd --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_31.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_31.md5 b/pull/2070/backend_doc/inherit_graph_31.md5 new file mode 100644 index 00000000000..686c621fdce --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_31.md5 @@ -0,0 +1 @@ +5a774ae5abfe996a015a7218bf0325c9 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_31.png b/pull/2070/backend_doc/inherit_graph_31.png new file mode 100644 index 00000000000..647606e39b5 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_31.png differ diff --git a/pull/2070/backend_doc/inherit_graph_32.map b/pull/2070/backend_doc/inherit_graph_32.map new file mode 100644 index 00000000000..1809496ad03 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_32.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_32.md5 b/pull/2070/backend_doc/inherit_graph_32.md5 new file mode 100644 index 00000000000..adaf7a48c7b --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_32.md5 @@ -0,0 +1 @@ +db065ff0971a15b76ccd6d15e8022d7f \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_32.png b/pull/2070/backend_doc/inherit_graph_32.png new file mode 100644 index 00000000000..e666346f055 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_32.png differ diff --git a/pull/2070/backend_doc/inherit_graph_33.map b/pull/2070/backend_doc/inherit_graph_33.map new file mode 100644 index 00000000000..e8d0b02de60 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_33.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_33.md5 b/pull/2070/backend_doc/inherit_graph_33.md5 new file mode 100644 index 00000000000..286b6a7b471 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_33.md5 @@ -0,0 +1 @@ +53a8fa6a4d21ac27523d5a5210afa0d3 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_33.png b/pull/2070/backend_doc/inherit_graph_33.png new file mode 100644 index 00000000000..796c9e81848 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_33.png differ diff --git a/pull/2070/backend_doc/inherit_graph_34.map b/pull/2070/backend_doc/inherit_graph_34.map new file mode 100644 index 00000000000..3d8476dc96f --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_34.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_34.md5 b/pull/2070/backend_doc/inherit_graph_34.md5 new file mode 100644 index 00000000000..9d2874d4ab1 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_34.md5 @@ -0,0 +1 @@ +b66d85b5ec402bec3e5bef9ed8ff7254 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_34.png b/pull/2070/backend_doc/inherit_graph_34.png new file mode 100644 index 00000000000..86c3e1fa575 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_34.png differ diff --git a/pull/2070/backend_doc/inherit_graph_35.map b/pull/2070/backend_doc/inherit_graph_35.map new file mode 100644 index 00000000000..62c724c84a4 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_35.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_35.md5 b/pull/2070/backend_doc/inherit_graph_35.md5 new file mode 100644 index 00000000000..9bf1fd4d90c --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_35.md5 @@ -0,0 +1 @@ +1638fe47e73c00343c1ed52fe0845c40 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_35.png b/pull/2070/backend_doc/inherit_graph_35.png new file mode 100644 index 00000000000..b5b88d95012 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_35.png differ diff --git a/pull/2070/backend_doc/inherit_graph_36.map b/pull/2070/backend_doc/inherit_graph_36.map new file mode 100644 index 00000000000..77b0d651813 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_36.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_36.md5 b/pull/2070/backend_doc/inherit_graph_36.md5 new file mode 100644 index 00000000000..4df637f3f3d --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_36.md5 @@ -0,0 +1 @@ +97f84c90ba9f7ff9617df66377dda4a6 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_36.png b/pull/2070/backend_doc/inherit_graph_36.png new file mode 100644 index 00000000000..507ea8f499c Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_36.png differ diff --git a/pull/2070/backend_doc/inherit_graph_37.map b/pull/2070/backend_doc/inherit_graph_37.map new file mode 100644 index 00000000000..e876ebb8fe0 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_37.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_37.md5 b/pull/2070/backend_doc/inherit_graph_37.md5 new file mode 100644 index 00000000000..b1f30f11b86 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_37.md5 @@ -0,0 +1 @@ +3bf85aa0dbd0ee9f6a0577c31039ef5c \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_37.png b/pull/2070/backend_doc/inherit_graph_37.png new file mode 100644 index 00000000000..ea578ea6665 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_37.png differ diff --git a/pull/2070/backend_doc/inherit_graph_38.map b/pull/2070/backend_doc/inherit_graph_38.map new file mode 100644 index 00000000000..418c2d5b99b --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_38.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_38.md5 b/pull/2070/backend_doc/inherit_graph_38.md5 new file mode 100644 index 00000000000..2962cea1814 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_38.md5 @@ -0,0 +1 @@ +7d44026220ad5d10bb2bbe22a010aa05 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_38.png b/pull/2070/backend_doc/inherit_graph_38.png new file mode 100644 index 00000000000..9e1d7de8392 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_38.png differ diff --git a/pull/2070/backend_doc/inherit_graph_39.map b/pull/2070/backend_doc/inherit_graph_39.map new file mode 100644 index 00000000000..f84e1fb348f --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_39.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_39.md5 b/pull/2070/backend_doc/inherit_graph_39.md5 new file mode 100644 index 00000000000..b7dcd080397 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_39.md5 @@ -0,0 +1 @@ +d3edcf2639999105953f9f90ec697aa6 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_39.png b/pull/2070/backend_doc/inherit_graph_39.png new file mode 100644 index 00000000000..5f5b0f9e729 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_39.png differ diff --git a/pull/2070/backend_doc/inherit_graph_4.map b/pull/2070/backend_doc/inherit_graph_4.map new file mode 100644 index 00000000000..13b1c716dd9 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_4.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_4.md5 b/pull/2070/backend_doc/inherit_graph_4.md5 new file mode 100644 index 00000000000..01868e47e7c --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_4.md5 @@ -0,0 +1 @@ +74f5fb5286ce8baecf94269b3aca30f9 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_4.png b/pull/2070/backend_doc/inherit_graph_4.png new file mode 100644 index 00000000000..b4c9f398697 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_4.png differ diff --git a/pull/2070/backend_doc/inherit_graph_40.map b/pull/2070/backend_doc/inherit_graph_40.map new file mode 100644 index 00000000000..df5d8dde38b --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_40.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_40.md5 b/pull/2070/backend_doc/inherit_graph_40.md5 new file mode 100644 index 00000000000..068a7e4c390 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_40.md5 @@ -0,0 +1 @@ +a81c4c55b27d6ddea99e75887083e70d \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_40.png b/pull/2070/backend_doc/inherit_graph_40.png new file mode 100644 index 00000000000..ec1cc76b3e0 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_40.png differ diff --git a/pull/2070/backend_doc/inherit_graph_41.map b/pull/2070/backend_doc/inherit_graph_41.map new file mode 100644 index 00000000000..130b9ed2bdd --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_41.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_41.md5 b/pull/2070/backend_doc/inherit_graph_41.md5 new file mode 100644 index 00000000000..9f4403407b8 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_41.md5 @@ -0,0 +1 @@ +344af4cd6ef9f948a436569d37c1cb66 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_41.png b/pull/2070/backend_doc/inherit_graph_41.png new file mode 100644 index 00000000000..ef84406606b Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_41.png differ diff --git a/pull/2070/backend_doc/inherit_graph_42.map b/pull/2070/backend_doc/inherit_graph_42.map new file mode 100644 index 00000000000..d2647941208 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_42.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_42.md5 b/pull/2070/backend_doc/inherit_graph_42.md5 new file mode 100644 index 00000000000..3aaf06f6ebc --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_42.md5 @@ -0,0 +1 @@ +f9063800076da769cd574eb592fdd966 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_42.png b/pull/2070/backend_doc/inherit_graph_42.png new file mode 100644 index 00000000000..9ce087a6756 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_42.png differ diff --git a/pull/2070/backend_doc/inherit_graph_43.map b/pull/2070/backend_doc/inherit_graph_43.map new file mode 100644 index 00000000000..8bd7ad7d750 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_43.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_43.md5 b/pull/2070/backend_doc/inherit_graph_43.md5 new file mode 100644 index 00000000000..045eb9fc496 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_43.md5 @@ -0,0 +1 @@ +e95cf5e58b7895e9717c8be3e3900a7a \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_43.png b/pull/2070/backend_doc/inherit_graph_43.png new file mode 100644 index 00000000000..4761dc9e80d Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_43.png differ diff --git a/pull/2070/backend_doc/inherit_graph_44.map b/pull/2070/backend_doc/inherit_graph_44.map new file mode 100644 index 00000000000..e2ca8e6ca99 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_44.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_44.md5 b/pull/2070/backend_doc/inherit_graph_44.md5 new file mode 100644 index 00000000000..a3c622744ea --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_44.md5 @@ -0,0 +1 @@ +d90913ac54ebce65fba3c51d3effc2b9 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_44.png b/pull/2070/backend_doc/inherit_graph_44.png new file mode 100644 index 00000000000..7877d7063ee Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_44.png differ diff --git a/pull/2070/backend_doc/inherit_graph_45.map b/pull/2070/backend_doc/inherit_graph_45.map new file mode 100644 index 00000000000..88cd1b77cab --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_45.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_45.md5 b/pull/2070/backend_doc/inherit_graph_45.md5 new file mode 100644 index 00000000000..2049e467d1a --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_45.md5 @@ -0,0 +1 @@ +e47d8c32223b152679c3a10a3b186482 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_45.png b/pull/2070/backend_doc/inherit_graph_45.png new file mode 100644 index 00000000000..3885e2d7cb4 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_45.png differ diff --git a/pull/2070/backend_doc/inherit_graph_46.map b/pull/2070/backend_doc/inherit_graph_46.map new file mode 100644 index 00000000000..448d9ac5922 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_46.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_46.md5 b/pull/2070/backend_doc/inherit_graph_46.md5 new file mode 100644 index 00000000000..3a3f816f0a9 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_46.md5 @@ -0,0 +1 @@ +84bd7920a7639e33236f7eff9107e7b8 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_46.png b/pull/2070/backend_doc/inherit_graph_46.png new file mode 100644 index 00000000000..d2caa820521 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_46.png differ diff --git a/pull/2070/backend_doc/inherit_graph_47.map b/pull/2070/backend_doc/inherit_graph_47.map new file mode 100644 index 00000000000..62e5b7688f8 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_47.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_47.md5 b/pull/2070/backend_doc/inherit_graph_47.md5 new file mode 100644 index 00000000000..b4e15c20a11 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_47.md5 @@ -0,0 +1 @@ +f0862c54addbe7f1ebd6fc56b89cd065 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_47.png b/pull/2070/backend_doc/inherit_graph_47.png new file mode 100644 index 00000000000..f2816f44adf Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_47.png differ diff --git a/pull/2070/backend_doc/inherit_graph_48.map b/pull/2070/backend_doc/inherit_graph_48.map new file mode 100644 index 00000000000..dc70ee3528d --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_48.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_48.md5 b/pull/2070/backend_doc/inherit_graph_48.md5 new file mode 100644 index 00000000000..685f5e21f6f --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_48.md5 @@ -0,0 +1 @@ +9b273eb68ad298544e0e6850069b3b7d \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_48.png b/pull/2070/backend_doc/inherit_graph_48.png new file mode 100644 index 00000000000..2aebffd29bc Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_48.png differ diff --git a/pull/2070/backend_doc/inherit_graph_49.map b/pull/2070/backend_doc/inherit_graph_49.map new file mode 100644 index 00000000000..52b73440f10 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_49.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_49.md5 b/pull/2070/backend_doc/inherit_graph_49.md5 new file mode 100644 index 00000000000..151022b5252 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_49.md5 @@ -0,0 +1 @@ +3e2845d3fc7e351bcc585410f48dab41 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_49.png b/pull/2070/backend_doc/inherit_graph_49.png new file mode 100644 index 00000000000..4cde3bfdc92 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_49.png differ diff --git a/pull/2070/backend_doc/inherit_graph_5.map b/pull/2070/backend_doc/inherit_graph_5.map new file mode 100644 index 00000000000..18cf42a87f3 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_5.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_5.md5 b/pull/2070/backend_doc/inherit_graph_5.md5 new file mode 100644 index 00000000000..d1cc24ef06a --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_5.md5 @@ -0,0 +1 @@ +5914c602b8bfb00cf2deae7e484b3f27 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_5.png b/pull/2070/backend_doc/inherit_graph_5.png new file mode 100644 index 00000000000..f526e44a08a Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_5.png differ diff --git a/pull/2070/backend_doc/inherit_graph_50.map b/pull/2070/backend_doc/inherit_graph_50.map new file mode 100644 index 00000000000..b43b8de83b2 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_50.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/pull/2070/backend_doc/inherit_graph_50.md5 b/pull/2070/backend_doc/inherit_graph_50.md5 new file mode 100644 index 00000000000..db166ee6bb3 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_50.md5 @@ -0,0 +1 @@ +5180db2059a941810d106ebeb20bbd05 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_50.png b/pull/2070/backend_doc/inherit_graph_50.png new file mode 100644 index 00000000000..e6b52cfa611 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_50.png differ diff --git a/pull/2070/backend_doc/inherit_graph_51.map b/pull/2070/backend_doc/inherit_graph_51.map new file mode 100644 index 00000000000..968daefbb50 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_51.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_51.md5 b/pull/2070/backend_doc/inherit_graph_51.md5 new file mode 100644 index 00000000000..d3849905719 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_51.md5 @@ -0,0 +1 @@ +9a0f5e3a20a1216837329157b6b4ef2a \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_51.png b/pull/2070/backend_doc/inherit_graph_51.png new file mode 100644 index 00000000000..74033f10c5c Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_51.png differ diff --git a/pull/2070/backend_doc/inherit_graph_52.map b/pull/2070/backend_doc/inherit_graph_52.map new file mode 100644 index 00000000000..e828ef5d63b --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_52.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/inherit_graph_52.md5 b/pull/2070/backend_doc/inherit_graph_52.md5 new file mode 100644 index 00000000000..e61d7d16309 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_52.md5 @@ -0,0 +1 @@ +4977d7c8e25c55e1e8ca248db6b400f3 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_52.png b/pull/2070/backend_doc/inherit_graph_52.png new file mode 100644 index 00000000000..1a0e6ea92e5 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_52.png differ diff --git a/pull/2070/backend_doc/inherit_graph_53.map b/pull/2070/backend_doc/inherit_graph_53.map new file mode 100644 index 00000000000..10caaf27ab6 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_53.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_53.md5 b/pull/2070/backend_doc/inherit_graph_53.md5 new file mode 100644 index 00000000000..8772c89d7e3 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_53.md5 @@ -0,0 +1 @@ +20c2a1896d7138636245ce543950a791 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_53.png b/pull/2070/backend_doc/inherit_graph_53.png new file mode 100644 index 00000000000..3e107e13e95 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_53.png differ diff --git a/pull/2070/backend_doc/inherit_graph_54.map b/pull/2070/backend_doc/inherit_graph_54.map new file mode 100644 index 00000000000..3a7bf4fdb44 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_54.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/inherit_graph_54.md5 b/pull/2070/backend_doc/inherit_graph_54.md5 new file mode 100644 index 00000000000..279994a60e4 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_54.md5 @@ -0,0 +1 @@ +c6c6ad0a66bf54b731819efd6fb7623a \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_54.png b/pull/2070/backend_doc/inherit_graph_54.png new file mode 100644 index 00000000000..df89af053df Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_54.png differ diff --git a/pull/2070/backend_doc/inherit_graph_55.map b/pull/2070/backend_doc/inherit_graph_55.map new file mode 100644 index 00000000000..bbe8ebd6a00 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_55.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/inherit_graph_55.md5 b/pull/2070/backend_doc/inherit_graph_55.md5 new file mode 100644 index 00000000000..9ebc2dd95f2 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_55.md5 @@ -0,0 +1 @@ +7b124f7ea71898abe0765bfefbb8e1c1 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_55.png b/pull/2070/backend_doc/inherit_graph_55.png new file mode 100644 index 00000000000..da23fdeee9d Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_55.png differ diff --git a/pull/2070/backend_doc/inherit_graph_56.map b/pull/2070/backend_doc/inherit_graph_56.map new file mode 100644 index 00000000000..36d404e7e4a --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_56.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/inherit_graph_56.md5 b/pull/2070/backend_doc/inherit_graph_56.md5 new file mode 100644 index 00000000000..f18d7091eda --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_56.md5 @@ -0,0 +1 @@ +7d308acfbd41138fdecf4225641f4268 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_56.png b/pull/2070/backend_doc/inherit_graph_56.png new file mode 100644 index 00000000000..3819c8b54a6 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_56.png differ diff --git a/pull/2070/backend_doc/inherit_graph_57.map b/pull/2070/backend_doc/inherit_graph_57.map new file mode 100644 index 00000000000..a772bd46fe3 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_57.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/inherit_graph_57.md5 b/pull/2070/backend_doc/inherit_graph_57.md5 new file mode 100644 index 00000000000..d6bd982ce69 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_57.md5 @@ -0,0 +1 @@ +b53c8c8c866047c9c5c9014ad68107d8 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_57.png b/pull/2070/backend_doc/inherit_graph_57.png new file mode 100644 index 00000000000..999fd2e14e8 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_57.png differ diff --git a/pull/2070/backend_doc/inherit_graph_6.map b/pull/2070/backend_doc/inherit_graph_6.map new file mode 100644 index 00000000000..e0649de18a8 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_6.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_6.md5 b/pull/2070/backend_doc/inherit_graph_6.md5 new file mode 100644 index 00000000000..f457ce33179 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_6.md5 @@ -0,0 +1 @@ +40bc17b8c15c4f3775896b4e66ae9273 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_6.png b/pull/2070/backend_doc/inherit_graph_6.png new file mode 100644 index 00000000000..55f3a23a661 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_6.png differ diff --git a/pull/2070/backend_doc/inherit_graph_7.map b/pull/2070/backend_doc/inherit_graph_7.map new file mode 100644 index 00000000000..4fc96eb5d4f --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_7.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_7.md5 b/pull/2070/backend_doc/inherit_graph_7.md5 new file mode 100644 index 00000000000..53911d0bfa3 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_7.md5 @@ -0,0 +1 @@ +1b1eb9ea8e0a93c15fa80c7094b81075 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_7.png b/pull/2070/backend_doc/inherit_graph_7.png new file mode 100644 index 00000000000..3258fd09dbf Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_7.png differ diff --git a/pull/2070/backend_doc/inherit_graph_8.map b/pull/2070/backend_doc/inherit_graph_8.map new file mode 100644 index 00000000000..1cf2da64f47 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_8.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_8.md5 b/pull/2070/backend_doc/inherit_graph_8.md5 new file mode 100644 index 00000000000..7a48d272afb --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_8.md5 @@ -0,0 +1 @@ +b30bda76b5e12c0dacb0267d616a9ec5 \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_8.png b/pull/2070/backend_doc/inherit_graph_8.png new file mode 100644 index 00000000000..dd7db50fbee Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_8.png differ diff --git a/pull/2070/backend_doc/inherit_graph_9.map b/pull/2070/backend_doc/inherit_graph_9.map new file mode 100644 index 00000000000..61b88d4591f --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_9.map @@ -0,0 +1,3 @@ + + + diff --git a/pull/2070/backend_doc/inherit_graph_9.md5 b/pull/2070/backend_doc/inherit_graph_9.md5 new file mode 100644 index 00000000000..47575e1e336 --- /dev/null +++ b/pull/2070/backend_doc/inherit_graph_9.md5 @@ -0,0 +1 @@ +e9bf73023dd1af710f65257e694a977a \ No newline at end of file diff --git a/pull/2070/backend_doc/inherit_graph_9.png b/pull/2070/backend_doc/inherit_graph_9.png new file mode 100644 index 00000000000..bbad4b23e57 Binary files /dev/null and b/pull/2070/backend_doc/inherit_graph_9.png differ diff --git a/pull/2070/backend_doc/inherits.html b/pull/2070/backend_doc/inherits.html new file mode 100644 index 00000000000..fcf9f7e4f88 --- /dev/null +++ b/pull/2070/backend_doc/inherits.html @@ -0,0 +1,413 @@ + + + + + + + +DPNP C++ backend kernel library: Class Hierarchy + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+
+
+ + + + diff --git a/pull/2070/backend_doc/jquery.js b/pull/2070/backend_doc/jquery.js new file mode 100644 index 00000000000..1dffb65b58c --- /dev/null +++ b/pull/2070/backend_doc/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2degrees_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2degrees_8hpp_source.html new file mode 100644 index 00000000000..ad4005e81f0 --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2degrees_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/degrees.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
degrees.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30namespace dpnp::kernels::degrees
+
31{
+
32template <typename argT, typename resT>
+
+ +
34{
+
35 // is function constant for given argT
+
36 using is_constant = typename std::false_type;
+
37 // constant value, if constant
+
38 // constexpr resT constant_value = resT{};
+
39 // is function defined for sycl::vec
+
40 using supports_vec = typename std::true_type;
+
41 // do both argT and resT support subgroup store/load operation
+
42 using supports_sg_loadstore = typename std::true_type;
+
43
+
44 resT operator()(const argT &x) const
+
45 {
+
46 return sycl::degrees(x);
+
47 }
+
48
+
49 template <int vec_sz>
+
50 sycl::vec<resT, vec_sz> operator()(const sycl::vec<argT, vec_sz> &x) const
+
51 {
+
52 return sycl::degrees(x);
+
53 }
+
54};
+
+
55} // namespace dpnp::kernels::degrees
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2fabs_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2fabs_8hpp_source.html new file mode 100644 index 00000000000..1e2594af5b0 --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2fabs_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/fabs.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fabs.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30namespace dpnp::kernels::fabs
+
31{
+
32template <typename argT, typename resT>
+
+ +
34{
+
35 // is function constant for given argT
+
36 using is_constant = typename std::false_type;
+
37 // constant value, if constant
+
38 // constexpr resT constant_value = resT{};
+
39 // is function defined for sycl::vec
+
40 using supports_vec = typename std::false_type;
+
41 // do both argT and resT support subgroup store/load operation
+
42 using supports_sg_loadstore = typename std::true_type;
+
43
+
44 resT operator()(const argT &x) const
+
45 {
+
46 return sycl::fabs(x);
+
47 }
+
48};
+
+
49} // namespace dpnp::kernels::fabs
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2fix_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2fix_8hpp_source.html new file mode 100644 index 00000000000..eec73565970 --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2fix_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/fix.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fix.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30namespace dpnp::kernels::fix
+
31{
+
32template <typename argT, typename resT>
+
+ +
34{
+
35 // is function constant for given argT
+
36 using is_constant = typename std::false_type;
+
37 // constant value, if constant
+
38 // constexpr resT constant_value = resT{};
+
39 // is function defined for sycl::vec
+
40 using supports_vec = typename std::false_type;
+
41 // do both argT and resT support subgroup store/load operation
+
42 using supports_sg_loadstore = typename std::true_type;
+
43
+
44 resT operator()(const argT &x) const
+
45 {
+
46 return (x >= 0.0) ? sycl::floor(x) : sycl::ceil(x);
+
47 }
+
48};
+
+
49} // namespace dpnp::kernels::fix
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2fmax_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2fmax_8hpp_source.html new file mode 100644 index 00000000000..0179d2c3ad0 --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2fmax_8hpp_source.html @@ -0,0 +1,197 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/fmax.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmax.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30// dpctl tensor headers
+
31#include "utils/math_utils.hpp"
+
32#include "utils/type_utils.hpp"
+
33
+
34namespace dpnp::kernels::fmax
+
35{
+
36namespace mu_ns = dpctl::tensor::math_utils;
+
37namespace tu_ns = dpctl::tensor::type_utils;
+
38
+
39template <typename argT1, typename argT2, typename resT>
+
+ +
41{
+
42 using supports_sg_loadstore = std::negation<
+
43 std::disjunction<tu_ns::is_complex<argT1>, tu_ns::is_complex<argT2>>>;
+
44 using supports_vec =
+
45 std::conjunction<std::is_same<argT1, argT2>,
+
46 std::disjunction<std::is_floating_point<argT1>,
+
47 std::is_same<argT1, sycl::half>>>;
+
48
+
49 resT operator()(const argT1 &in1, const argT2 &in2) const
+
50 {
+
51 if constexpr (std::is_integral_v<argT1> && std::is_integral_v<argT2>) {
+
52 return in1 >= in2 ? in1 : in2;
+
53 }
+
54 else if constexpr (tu_ns::is_complex<argT1>::value &&
+
55 tu_ns::is_complex<argT2>::value)
+
56 {
+
57 static_assert(std::is_same_v<argT1, argT2>);
+
58
+
59 using realT = typename argT1::value_type;
+
60 const realT in2r = std::real(in2);
+
61 const realT in2i = std::imag(in2);
+
62
+
63 if (sycl::isnan(in2r) || sycl::isnan(in2i) ||
+
64 mu_ns::greater_equal_complex<argT1>(in1, in2))
+
65 {
+
66 return in1;
+
67 }
+
68 return in2;
+
69 }
+
70 else {
+
71 return sycl::fmax(in1, in2);
+
72 }
+
73 }
+
74
+
75 template <int vec_sz>
+
76 sycl::vec<resT, vec_sz>
+
77 operator()(const sycl::vec<argT1, vec_sz> &in1,
+
78 const sycl::vec<argT2, vec_sz> &in2) const
+
79 {
+
80 return sycl::fmax(in1, in2);
+
81 }
+
82};
+
+
83} // namespace dpnp::kernels::fmax
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2fmin_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2fmin_8hpp_source.html new file mode 100644 index 00000000000..1c1de7fd23f --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2fmin_8hpp_source.html @@ -0,0 +1,197 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/fmin.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmin.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30// dpctl tensor headers
+
31#include "utils/math_utils.hpp"
+
32#include "utils/type_utils.hpp"
+
33
+
34namespace dpnp::kernels::fmin
+
35{
+
36namespace mu_ns = dpctl::tensor::math_utils;
+
37namespace tu_ns = dpctl::tensor::type_utils;
+
38
+
39template <typename argT1, typename argT2, typename resT>
+
+ +
41{
+
42 using supports_sg_loadstore = std::negation<
+
43 std::disjunction<tu_ns::is_complex<argT1>, tu_ns::is_complex<argT2>>>;
+
44 using supports_vec =
+
45 std::conjunction<std::is_same<argT1, argT2>,
+
46 std::disjunction<std::is_floating_point<argT1>,
+
47 std::is_same<argT1, sycl::half>>>;
+
48
+
49 resT operator()(const argT1 &in1, const argT2 &in2) const
+
50 {
+
51 if constexpr (std::is_integral_v<argT1> && std::is_integral_v<argT2>) {
+
52 return in1 <= in2 ? in1 : in2;
+
53 }
+
54 else if constexpr (tu_ns::is_complex<argT1>::value &&
+
55 tu_ns::is_complex<argT2>::value)
+
56 {
+
57 static_assert(std::is_same_v<argT1, argT2>);
+
58
+
59 using realT = typename argT1::value_type;
+
60 const realT in2r = std::real(in2);
+
61 const realT in2i = std::imag(in2);
+
62
+
63 if (sycl::isnan(in2r) || sycl::isnan(in2i) ||
+
64 mu_ns::less_equal_complex<argT1>(in1, in2))
+
65 {
+
66 return in1;
+
67 }
+
68 return in2;
+
69 }
+
70 else {
+
71 return sycl::fmin(in1, in2);
+
72 }
+
73 }
+
74
+
75 template <int vec_sz>
+
76 sycl::vec<resT, vec_sz>
+
77 operator()(const sycl::vec<argT1, vec_sz> &in1,
+
78 const sycl::vec<argT2, vec_sz> &in2) const
+
79 {
+
80 return sycl::fmin(in1, in2);
+
81 }
+
82};
+
+
83} // namespace dpnp::kernels::fmin
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2fmod_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2fmod_8hpp_source.html new file mode 100644 index 00000000000..b48f6d4863b --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2fmod_8hpp_source.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/fmod.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fmod.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30namespace dpnp::kernels::fmod
+
31{
+
32template <typename argT1, typename argT2, typename resT>
+
+ +
34{
+
35 using supports_sg_loadstore = typename std::true_type;
+
36 using supports_vec = std::negation<
+
37 std::conjunction<std::is_integral<argT1>, std::is_integral<argT2>>>;
+
38
+
39 resT operator()(const argT1 &in1, const argT2 &in2) const
+
40 {
+
41 if constexpr (std::is_integral_v<argT1> && std::is_integral_v<argT2>) {
+
42 if (in2 == argT2(0)) {
+
43 return resT(0);
+
44 }
+
45 return in1 % in2;
+
46 }
+
47 else {
+
48 return sycl::fmod(in1, in2);
+
49 }
+
50 }
+
51
+
52 template <int vec_sz>
+
53 sycl::vec<resT, vec_sz>
+
54 operator()(const sycl::vec<argT1, vec_sz> &in1,
+
55 const sycl::vec<argT2, vec_sz> &in2) const
+
56 {
+
57 return sycl::fmod(in1, in2);
+
58 }
+
59};
+
+
60} // namespace dpnp::kernels::fmod
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2heaviside_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2heaviside_8hpp_source.html new file mode 100644 index 00000000000..7dc2545330e --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2heaviside_8hpp_source.html @@ -0,0 +1,171 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/heaviside.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
heaviside.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30// dpctl tensor headers
+
31#include "utils/math_utils.hpp"
+
32#include "utils/type_utils.hpp"
+
33
+
34namespace dpnp::kernels::heaviside
+
35{
+
36namespace mu_ns = dpctl::tensor::math_utils;
+
37namespace tu_ns = dpctl::tensor::type_utils;
+
38
+
39template <typename argT1, typename argT2, typename resT>
+
+ +
41{
+
42 using supports_sg_loadstore = std::negation<
+
43 std::disjunction<tu_ns::is_complex<argT1>, tu_ns::is_complex<argT2>>>;
+
44 using supports_vec = typename std::false_type;
+
45
+
46 resT operator()(const argT1 &in1, const argT2 &in2) const
+
47 {
+
48 if (std::isnan(in1)) {
+
49 return in1;
+
50 }
+
51 else if (in1 == 0) {
+
52 return in2;
+
53 }
+
54 return resT(in1 > 0);
+
55 }
+
56};
+
+
57} // namespace dpnp::kernels::heaviside
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2logaddexp2_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2logaddexp2_8hpp_source.html new file mode 100644 index 00000000000..e084dc23781 --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2logaddexp2_8hpp_source.html @@ -0,0 +1,184 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/logaddexp2.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
logaddexp2.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <cmath>
+
29#include <sycl/sycl.hpp>
+
30
+
31namespace dpnp::kernels::logaddexp2
+
32{
+
33constexpr double log2e = 1.442695040888963407359924681001892137;
+
34
+
35template <typename T>
+
36inline T log2_1p(T x)
+
37{
+
38 return T(log2e) * sycl::log1p(x);
+
39}
+
40
+
41template <typename T>
+
42inline T logaddexp2(T x, T y)
+
43{
+
44 if (x == y) {
+
45 // handles infinities of the same sign
+
46 return x + 1;
+
47 }
+
48
+
49 const T tmp = x - y;
+
50 if (tmp > 0) {
+
51 return x + log2_1p(sycl::exp2(-tmp));
+
52 }
+
53 else if (tmp <= 0) {
+
54 return y + log2_1p(sycl::exp2(tmp));
+
55 }
+
56 return std::numeric_limits<T>::quiet_NaN();
+
57}
+
58
+
59template <typename argT1, typename argT2, typename resT>
+
+ +
61{
+
62 using supports_sg_loadstore = std::true_type;
+
63 using supports_vec = std::false_type;
+
64
+
65 resT operator()(const argT1 &in1, const argT2 &in2) const
+
66 {
+
67 return logaddexp2<resT>(in1, in2);
+
68 }
+
69};
+
+
70} // namespace dpnp::kernels::logaddexp2
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/kernels_2elementwise__functions_2radians_8hpp_source.html b/pull/2070/backend_doc/kernels_2elementwise__functions_2radians_8hpp_source.html new file mode 100644 index 00000000000..bad97c9369d --- /dev/null +++ b/pull/2070/backend_doc/kernels_2elementwise__functions_2radians_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/kernels/elementwise_functions/radians.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
radians.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <sycl/sycl.hpp>
+
29
+
30namespace dpnp::kernels::radians
+
31{
+
32template <typename argT, typename resT>
+
+ +
34{
+
35 // is function constant for given argT
+
36 using is_constant = typename std::false_type;
+
37 // constant value, if constant
+
38 // constexpr resT constant_value = resT{};
+
39 // is function defined for sycl::vec
+
40 using supports_vec = typename std::true_type;
+
41 // do both argT and resT support subgroup store/load operation
+
42 using supports_sg_loadstore = typename std::true_type;
+
43
+
44 resT operator()(const argT &x) const
+
45 {
+
46 return sycl::radians(x);
+
47 }
+
48
+
49 template <int vec_sz>
+
50 sycl::vec<resT, vec_sz> operator()(const sycl::vec<argT, vec_sz> &x) const
+
51 {
+
52 return sycl::radians(x);
+
53 }
+
54};
+
+
55} // namespace dpnp::kernels::radians
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/lapack_2types__matrix_8hpp_source.html b/pull/2070/backend_doc/lapack_2types__matrix_8hpp_source.html new file mode 100644 index 00000000000..19cbdd81984 --- /dev/null +++ b/pull/2070/backend_doc/lapack_2types__matrix_8hpp_source.html @@ -0,0 +1,444 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/types_matrix.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
types_matrix.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <type_traits>
+
29
+
30// dpctl tensor headers
+
31#include "utils/type_dispatch.hpp"
+
32
+
33// dpctl namespace for operations with types
+
34namespace dpctl_td_ns = dpctl::tensor::type_dispatch;
+
35
+
36namespace dpnp::extensions::lapack::types
+
37{
+
48template <typename T>
+
+ +
50{
+
51 static constexpr bool is_defined = std::disjunction<
+
52 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
53 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
54 dpctl_td_ns::TypePairDefinedEntry<T,
+
55 std::complex<float>,
+
56 T,
+
57 std::complex<float>>,
+
58 dpctl_td_ns::TypePairDefinedEntry<T,
+
59 std::complex<double>,
+
60 T,
+
61 std::complex<double>>,
+
62 // fall-through
+
63 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
64};
+
+
65
+
75template <typename T>
+
+ +
77{
+
78 static constexpr bool is_defined = std::disjunction<
+
79 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
80 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
81 dpctl_td_ns::TypePairDefinedEntry<T,
+
82 std::complex<float>,
+
83 T,
+
84 std::complex<float>>,
+
85 dpctl_td_ns::TypePairDefinedEntry<T,
+
86 std::complex<double>,
+
87 T,
+
88 std::complex<double>>,
+
89 // fall-through
+
90 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
91};
+
+
92
+
102template <typename T>
+
+ +
104{
+
105 static constexpr bool is_defined = std::disjunction<
+
106 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
107 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
108 dpctl_td_ns::TypePairDefinedEntry<T,
+
109 std::complex<float>,
+
110 T,
+
111 std::complex<float>>,
+
112 dpctl_td_ns::TypePairDefinedEntry<T,
+
113 std::complex<double>,
+
114 T,
+
115 std::complex<double>>,
+
116 // fall-through
+
117 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
118};
+
+
119
+
129template <typename T, typename RealT>
+
+ +
131{
+
132 static constexpr bool is_defined = std::disjunction<
+
133 dpctl_td_ns::TypePairDefinedEntry<T, float, RealT, float>,
+
134 dpctl_td_ns::TypePairDefinedEntry<T, double, RealT, double>,
+
135 dpctl_td_ns::TypePairDefinedEntry<T, std::complex<float>, RealT, float>,
+
136 dpctl_td_ns::
+
137 TypePairDefinedEntry<T, std::complex<double>, RealT, double>,
+
138 // fall-through
+
139 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
140};
+
+
141
+
150template <typename T>
+
+ +
152{
+
153 static constexpr bool is_defined = std::disjunction<
+
154 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
155 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
156 dpctl_td_ns::TypePairDefinedEntry<T,
+
157 std::complex<float>,
+
158 T,
+
159 std::complex<float>>,
+
160 dpctl_td_ns::TypePairDefinedEntry<T,
+
161 std::complex<double>,
+
162 T,
+
163 std::complex<double>>,
+
164 // fall-through
+
165 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
166};
+
+
167
+
176template <typename T>
+
+ +
178{
+
179 static constexpr bool is_defined = std::disjunction<
+
180 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
181 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
182 dpctl_td_ns::TypePairDefinedEntry<T,
+
183 std::complex<float>,
+
184 T,
+
185 std::complex<float>>,
+
186 dpctl_td_ns::TypePairDefinedEntry<T,
+
187 std::complex<double>,
+
188 T,
+
189 std::complex<double>>,
+
190 // fall-through
+
191 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
192};
+
+
193
+
202template <typename T>
+
+ +
204{
+
205 static constexpr bool is_defined = std::disjunction<
+
206 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
207 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
208 dpctl_td_ns::TypePairDefinedEntry<T,
+
209 std::complex<float>,
+
210 T,
+
211 std::complex<float>>,
+
212 dpctl_td_ns::TypePairDefinedEntry<T,
+
213 std::complex<double>,
+
214 T,
+
215 std::complex<double>>,
+
216 // fall-through
+
217 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
218};
+
+
219
+
230template <typename T>
+
+ +
232{
+
233 static constexpr bool is_defined = std::disjunction<
+
234 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
235 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
236 dpctl_td_ns::TypePairDefinedEntry<T,
+
237 std::complex<float>,
+
238 T,
+
239 std::complex<float>>,
+
240 dpctl_td_ns::TypePairDefinedEntry<T,
+
241 std::complex<double>,
+
242 T,
+
243 std::complex<double>>,
+
244 // fall-through
+
245 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
246};
+
+
247
+
257template <typename T, typename RealT>
+
+ +
259{
+
260 static constexpr bool is_defined = std::disjunction<
+
261 dpctl_td_ns::
+
262 TypePairDefinedEntry<T, std::complex<double>, RealT, double>,
+
263 dpctl_td_ns::TypePairDefinedEntry<T, std::complex<float>, RealT, float>,
+
264 // fall-through
+
265 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
266};
+
+
267
+
279template <typename T>
+
+ +
281{
+
282 static constexpr bool is_defined = std::disjunction<
+
283 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
284 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
285 // fall-through
+
286 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
287};
+
+
288
+
298template <typename T>
+
+ +
300{
+
301 static constexpr bool is_defined = std::disjunction<
+
302 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
303 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
304 // fall-through
+
305 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
306};
+
+
307
+
316template <typename T>
+
+ +
318{
+
319 static constexpr bool is_defined = std::disjunction<
+
320 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
321 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
322 dpctl_td_ns::TypePairDefinedEntry<T,
+
323 std::complex<float>,
+
324 T,
+
325 std::complex<float>>,
+
326 dpctl_td_ns::TypePairDefinedEntry<T,
+
327 std::complex<double>,
+
328 T,
+
329 std::complex<double>>,
+
330 // fall-through
+
331 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
332};
+
+
333
+
342template <typename T>
+
+ +
344{
+
345 static constexpr bool is_defined = std::disjunction<
+
346 dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
+
347 dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
+
348 dpctl_td_ns::TypePairDefinedEntry<T,
+
349 std::complex<float>,
+
350 T,
+
351 std::complex<float>>,
+
352 dpctl_td_ns::TypePairDefinedEntry<T,
+
353 std::complex<double>,
+
354 T,
+
355 std::complex<double>>,
+
356 // fall-through
+
357 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
358};
+
+
359
+
368template <typename T, typename RealT>
+
+ +
370{
+
371 static constexpr bool is_defined = std::disjunction<
+
372 dpctl_td_ns::TypePairDefinedEntry<T, double, RealT, double>,
+
373 dpctl_td_ns::TypePairDefinedEntry<T, float, RealT, float>,
+
374 // fall-through
+
375 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
376};
+
+
377
+
389template <typename T>
+
+ +
391{
+
392 static constexpr bool is_defined = std::disjunction<
+
393 dpctl_td_ns::TypePairDefinedEntry<T,
+
394 std::complex<float>,
+
395 T,
+
396 std::complex<float>>,
+
397 dpctl_td_ns::TypePairDefinedEntry<T,
+
398 std::complex<double>,
+
399 T,
+
400 std::complex<double>>,
+
401 // fall-through
+
402 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
403};
+
+
404
+
414template <typename T>
+
+ +
416{
+
417 static constexpr bool is_defined = std::disjunction<
+
418 dpctl_td_ns::TypePairDefinedEntry<T,
+
419 std::complex<float>,
+
420 T,
+
421 std::complex<float>>,
+
422 dpctl_td_ns::TypePairDefinedEntry<T,
+
423 std::complex<double>,
+
424 T,
+
425 std::complex<double>>,
+
426 // fall-through
+
427 dpctl_td_ns::NotDefinedEntry>::is_defined;
+
428};
+
+
429} // namespace dpnp::extensions::lapack::types
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi:...
+
+
+ + + + diff --git a/pull/2070/backend_doc/linalg__exceptions_8hpp_source.html b/pull/2070/backend_doc/linalg__exceptions_8hpp_source.html new file mode 100644 index 00000000000..f254246c8bf --- /dev/null +++ b/pull/2070/backend_doc/linalg__exceptions_8hpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/linalg_exceptions.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
linalg_exceptions.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27#include <cstring>
+
28#include <stdexcept>
+
29
+
30namespace dpnp::extensions::lapack
+
31{
+
+
32class LinAlgError : public std::exception
+
33{
+
34public:
+
35 explicit LinAlgError(const char *message) : msg_(message) {}
+
36
+
37 const char *what() const noexcept override
+
38 {
+
39 return msg_.c_str();
+
40 }
+
41
+
42private:
+
43 std::string msg_;
+
44};
+
+
45} // namespace dpnp::extensions::lapack
+ +
+
+ + + + diff --git a/pull/2070/backend_doc/ln_8hpp_source.html b/pull/2070/backend_doc/ln_8hpp_source.html new file mode 100644 index 00000000000..62ab27083e6 --- /dev/null +++ b/pull/2070/backend_doc/ln_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/ln.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ln.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_ln(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/log10_8hpp_source.html b/pull/2070/backend_doc/log10_8hpp_source.html new file mode 100644 index 00000000000..ec8666c434a --- /dev/null +++ b/pull/2070/backend_doc/log10_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/log10.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
log10.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_log10(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/log1p_8hpp_source.html b/pull/2070/backend_doc/log1p_8hpp_source.html new file mode 100644 index 00000000000..55cafff7a14 --- /dev/null +++ b/pull/2070/backend_doc/log1p_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/log1p.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
log1p.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_log1p(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/log2_8hpp_source.html b/pull/2070/backend_doc/log2_8hpp_source.html new file mode 100644 index 00000000000..7b2e85b7f83 --- /dev/null +++ b/pull/2070/backend_doc/log2_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/log2.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DPNP C++ backend kernel library 0.16.0dev1 +
+
Data Parallel Extension for NumPy*
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
log2.hpp
+
+
+
1//*****************************************************************************
+
2// Copyright (c) 2023-2024, Intel Corporation
+
3// All rights reserved.
+
4//
+
5// Redistribution and use in source and binary forms, with or without
+
6// modification, are permitted provided that the following conditions are met:
+
7// - Redistributions of source code must retain the above copyright notice,
+
8// this list of conditions and the following disclaimer.
+
9// - Redistributions in binary form must reproduce the above copyright notice,
+
10// this list of conditions and the following disclaimer in the documentation
+
11// and/or other materials provided with the distribution.
+
12//
+
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+
17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
23// THE POSSIBILITY OF SUCH DAMAGE.
+
24//*****************************************************************************
+
25
+
26#pragma once
+
27
+
28#include <pybind11/pybind11.h>
+
29
+
30namespace py = pybind11;
+
31
+
32namespace dpnp::extensions::vm
+
33{
+
34void init_log2(py::module_ m);
+
35} // namespace dpnp::extensions::vm
+
+
+ + + + diff --git a/pull/2070/backend_doc/menu.js b/pull/2070/backend_doc/menu.js new file mode 100644 index 00000000000..b0b26936a0d --- /dev/null +++ b/pull/2070/backend_doc/menu.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+='
    '; + for (var i in data.children) { + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/pull/2070/backend_doc/menudata.js b/pull/2070/backend_doc/menudata.js new file mode 100644 index 00000000000..620c51b7ccd --- /dev/null +++ b/pull/2070/backend_doc/menudata.js @@ -0,0 +1,38 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Topics",url:"topics.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html"}, +{text:"Functions",url:"functions_func.html"}, +{text:"Variables",url:"functions_vars.html"}, +{text:"Related Symbols",url:"functions_rela.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/pull/2070/backend_doc/minus.svg b/pull/2070/backend_doc/minus.svg new file mode 100644 index 00000000000..f70d0c1a183 --- /dev/null +++ b/pull/2070/backend_doc/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/pull/2070/backend_doc/minusd.svg b/pull/2070/backend_doc/minusd.svg new file mode 100644 index 00000000000..5f8e879628d --- /dev/null +++ b/pull/2070/backend_doc/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/pull/2070/backend_doc/mul_8hpp_source.html b/pull/2070/backend_doc/mul_8hpp_source.html new file mode 100644 index 00000000000..e42c2794983 --- /dev/null +++ b/pull/2070/backend_doc/mul_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/mul.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    mul.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_mul(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/nav_f.png b/pull/2070/backend_doc/nav_f.png new file mode 100644 index 00000000000..72a58a529ed Binary files /dev/null and b/pull/2070/backend_doc/nav_f.png differ diff --git a/pull/2070/backend_doc/nav_fd.png b/pull/2070/backend_doc/nav_fd.png new file mode 100644 index 00000000000..032fbdd4c54 Binary files /dev/null and b/pull/2070/backend_doc/nav_fd.png differ diff --git a/pull/2070/backend_doc/nav_g.png b/pull/2070/backend_doc/nav_g.png new file mode 100644 index 00000000000..2093a237a94 Binary files /dev/null and b/pull/2070/backend_doc/nav_g.png differ diff --git a/pull/2070/backend_doc/nav_h.png b/pull/2070/backend_doc/nav_h.png new file mode 100644 index 00000000000..33389b101d9 Binary files /dev/null and b/pull/2070/backend_doc/nav_h.png differ diff --git a/pull/2070/backend_doc/nav_hd.png b/pull/2070/backend_doc/nav_hd.png new file mode 100644 index 00000000000..de80f18ad64 Binary files /dev/null and b/pull/2070/backend_doc/nav_hd.png differ diff --git a/pull/2070/backend_doc/navtree.css b/pull/2070/backend_doc/navtree.css new file mode 100644 index 00000000000..69211d4a78a --- /dev/null +++ b/pull/2070/backend_doc/navtree.css @@ -0,0 +1,149 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/pull/2070/backend_doc/navtree.js b/pull/2070/backend_doc/navtree.js new file mode 100644 index 00000000000..93dd3d46217 --- /dev/null +++ b/pull/2070/backend_doc/navtree.js @@ -0,0 +1,559 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, true); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, setFocus) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + var topOffset=5; + if (typeof page_layout!=='undefined' && page_layout==1) { + topOffset+=$('#top').outerHeight(); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/nextafter.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    nextafter.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_nextafter(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/open.png b/pull/2070/backend_doc/open.png new file mode 100644 index 00000000000..30f75c7efe2 Binary files /dev/null and b/pull/2070/backend_doc/open.png differ diff --git a/pull/2070/backend_doc/orgqr_8hpp_source.html b/pull/2070/backend_doc/orgqr_8hpp_source.html new file mode 100644 index 00000000000..edb8cdb4c3d --- /dev/null +++ b/pull/2070/backend_doc/orgqr_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/orgqr.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    orgqr.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <oneapi/mkl.hpp>
    +
    29#include <sycl/sycl.hpp>
    +
    30
    +
    31#include <dpctl4pybind11.hpp>
    +
    32
    +
    33namespace dpnp::extensions::lapack
    +
    34{
    +
    35extern std::pair<sycl::event, sycl::event>
    +
    36 orgqr(sycl::queue &exec_q,
    +
    37 const std::int64_t m,
    +
    38 const std::int64_t n,
    +
    39 const std::int64_t k,
    +
    40 const dpctl::tensor::usm_ndarray &a_array,
    +
    41 const dpctl::tensor::usm_ndarray &tau_array,
    +
    42 const std::vector<sycl::event> &depends = {});
    +
    43
    +
    44extern std::pair<sycl::event, sycl::event>
    +
    45 orgqr_batch(sycl::queue &exec_q,
    +
    46 const dpctl::tensor::usm_ndarray &a_array,
    +
    47 const dpctl::tensor::usm_ndarray &tau_array,
    +
    48 std::int64_t m,
    +
    49 std::int64_t n,
    +
    50 std::int64_t k,
    +
    51 std::int64_t stride_a,
    +
    52 std::int64_t stride_tau,
    +
    53 std::int64_t batch_size,
    +
    54 const std::vector<sycl::event> &depends = {});
    +
    55
    +
    56extern void init_orgqr_batch_dispatch_vector(void);
    +
    57extern void init_orgqr_dispatch_vector(void);
    +
    58} // namespace dpnp::extensions::lapack
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/out__of__place_8hpp_source.html b/pull/2070/backend_doc/out__of__place_8hpp_source.html new file mode 100644 index 00000000000..9311d2b5d57 --- /dev/null +++ b/pull/2070/backend_doc/out__of__place_8hpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/fft/out_of_place.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    out_of_place.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <oneapi/mkl.hpp>
    +
    29#include <sycl/sycl.hpp>
    +
    30
    +
    31#include <dpctl4pybind11.hpp>
    +
    32
    +
    33namespace dpnp::extensions::fft
    +
    34{
    +
    35namespace mkl_dft = oneapi::mkl::dft;
    +
    36
    +
    37template <mkl_dft::precision prec, mkl_dft::domain dom>
    +
    38std::pair<sycl::event, sycl::event>
    +
    39 compute_fft_out_of_place(DescriptorWrapper<prec, dom> &descr,
    +
    40 const dpctl::tensor::usm_ndarray &in,
    +
    41 const dpctl::tensor::usm_ndarray &out,
    +
    42 const bool is_forward,
    +
    43 const std::vector<sycl::event> &depends);
    +
    44
    +
    45} // namespace dpnp::extensions::fft
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/plus.svg b/pull/2070/backend_doc/plus.svg new file mode 100644 index 00000000000..07520165535 --- /dev/null +++ b/pull/2070/backend_doc/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/pull/2070/backend_doc/plusd.svg b/pull/2070/backend_doc/plusd.svg new file mode 100644 index 00000000000..0c65bfe946d --- /dev/null +++ b/pull/2070/backend_doc/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/pull/2070/backend_doc/populate_8hpp_source.html b/pull/2070/backend_doc/populate_8hpp_source.html new file mode 100644 index 00000000000..ab6be4cc9a1 --- /dev/null +++ b/pull/2070/backend_doc/populate_8hpp_source.html @@ -0,0 +1,333 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/populate.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    populate.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    32#define MACRO_POPULATE_DISPATCH_VECTORS(__name__) \
    +
    33 template <typename T1, typename T2, unsigned int vec_sz, \
    +
    34 unsigned int n_vecs> \
    +
    35 class __name__##_contig_kernel; \
    +
    36 \
    +
    37 template <typename argTy> \
    +
    38 sycl::event __name__##_contig_impl( \
    +
    39 sycl::queue &exec_q, size_t nelems, const char *arg_p, char *res_p, \
    +
    40 const std::vector<sycl::event> &depends = {}) \
    +
    41 { \
    +
    42 return ew_cmn_ns::unary_contig_impl<argTy, OutputType, ContigFunctor, \
    +
    43 __name__##_contig_kernel>( \
    +
    44 exec_q, nelems, arg_p, res_p, depends); \
    +
    45 } \
    +
    46 \
    +
    47 template <typename fnT, typename T> \
    +
    48 struct ContigFactory \
    +
    49 { \
    +
    50 fnT get() \
    +
    51 { \
    +
    52 if constexpr (std::is_same_v<typename OutputType<T>::value_type, \
    +
    53 void>) { \
    +
    54 fnT fn = nullptr; \
    +
    55 return fn; \
    +
    56 } \
    +
    57 else { \
    +
    58 fnT fn = __name__##_contig_impl<T>; \
    +
    59 return fn; \
    +
    60 } \
    +
    61 } \
    +
    62 }; \
    +
    63 \
    +
    64 template <typename fnT, typename T> \
    +
    65 struct TypeMapFactory \
    +
    66 { \
    +
    67 std::enable_if_t<std::is_same<fnT, int>::value, int> get() \
    +
    68 { \
    +
    69 using rT = typename OutputType<T>::value_type; \
    +
    70 return td_ns::GetTypeid<rT>{}.get(); \
    +
    71 } \
    +
    72 }; \
    +
    73 \
    +
    74 template <typename T1, typename T2, typename T3> \
    +
    75 class __name__##_strided_kernel; \
    +
    76 \
    +
    77 template <typename argTy> \
    +
    78 sycl::event __name__##_strided_impl( \
    +
    79 sycl::queue &exec_q, size_t nelems, int nd, \
    +
    80 const py::ssize_t *shape_and_strides, const char *arg_p, \
    +
    81 py::ssize_t arg_offset, char *res_p, py::ssize_t res_offset, \
    +
    82 const std::vector<sycl::event> &depends, \
    +
    83 const std::vector<sycl::event> &additional_depends) \
    +
    84 { \
    +
    85 return ew_cmn_ns::unary_strided_impl< \
    +
    86 argTy, OutputType, StridedFunctor, __name__##_strided_kernel>( \
    +
    87 exec_q, nelems, nd, shape_and_strides, arg_p, arg_offset, res_p, \
    +
    88 res_offset, depends, additional_depends); \
    +
    89 } \
    +
    90 \
    +
    91 template <typename fnT, typename T> \
    +
    92 struct StridedFactory \
    +
    93 { \
    +
    94 fnT get() \
    +
    95 { \
    +
    96 if constexpr (std::is_same_v<typename OutputType<T>::value_type, \
    +
    97 void>) { \
    +
    98 fnT fn = nullptr; \
    +
    99 return fn; \
    +
    100 } \
    +
    101 else { \
    +
    102 fnT fn = __name__##_strided_impl<T>; \
    +
    103 return fn; \
    +
    104 } \
    +
    105 } \
    +
    106 }; \
    +
    107 \
    +
    108 void populate_##__name__##_dispatch_vectors(void) \
    +
    109 { \
    +
    110 td_ns::DispatchVectorBuilder<unary_contig_impl_fn_ptr_t, \
    +
    111 ContigFactory, td_ns::num_types> \
    +
    112 dvb1; \
    +
    113 dvb1.populate_dispatch_vector(__name__##_contig_dispatch_vector); \
    +
    114 \
    +
    115 td_ns::DispatchVectorBuilder<unary_strided_impl_fn_ptr_t, \
    +
    116 StridedFactory, td_ns::num_types> \
    +
    117 dvb2; \
    +
    118 dvb2.populate_dispatch_vector(__name__##_strided_dispatch_vector); \
    +
    119 \
    +
    120 td_ns::DispatchVectorBuilder<int, TypeMapFactory, td_ns::num_types> \
    +
    121 dvb3; \
    +
    122 dvb3.populate_dispatch_vector(__name__##_output_typeid_vector); \
    +
    123 };
    +
    124
    +
    129#define MACRO_POPULATE_DISPATCH_TABLES(__name__) \
    +
    130 template <typename argT1, typename argT2, typename resT, \
    +
    131 unsigned int vec_sz, unsigned int n_vecs> \
    +
    132 class __name__##_contig_kernel; \
    +
    133 \
    +
    134 template <typename argTy1, typename argTy2> \
    +
    135 sycl::event __name__##_contig_impl( \
    +
    136 sycl::queue &exec_q, size_t nelems, const char *arg1_p, \
    +
    137 py::ssize_t arg1_offset, const char *arg2_p, py::ssize_t arg2_offset, \
    +
    138 char *res_p, py::ssize_t res_offset, \
    +
    139 const std::vector<sycl::event> &depends = {}) \
    +
    140 { \
    +
    141 return ew_cmn_ns::binary_contig_impl<argTy1, argTy2, OutputType, \
    +
    142 ContigFunctor, \
    +
    143 __name__##_contig_kernel>( \
    +
    144 exec_q, nelems, arg1_p, arg1_offset, arg2_p, arg2_offset, res_p, \
    +
    145 res_offset, depends); \
    +
    146 } \
    +
    147 \
    +
    148 template <typename fnT, typename T1, typename T2> \
    +
    149 struct ContigFactory \
    +
    150 { \
    +
    151 fnT get() \
    +
    152 { \
    +
    153 if constexpr (std::is_same_v< \
    +
    154 typename OutputType<T1, T2>::value_type, void>) \
    +
    155 { \
    +
    156 \
    +
    157 fnT fn = nullptr; \
    +
    158 return fn; \
    +
    159 } \
    +
    160 else { \
    +
    161 fnT fn = __name__##_contig_impl<T1, T2>; \
    +
    162 return fn; \
    +
    163 } \
    +
    164 } \
    +
    165 }; \
    +
    166 \
    +
    167 template <typename fnT, typename T1, typename T2> \
    +
    168 struct TypeMapFactory \
    +
    169 { \
    +
    170 std::enable_if_t<std::is_same<fnT, int>::value, int> get() \
    +
    171 { \
    +
    172 using rT = typename OutputType<T1, T2>::value_type; \
    +
    173 return td_ns::GetTypeid<rT>{}.get(); \
    +
    174 } \
    +
    175 }; \
    +
    176 \
    +
    177 template <typename T1, typename T2, typename resT, typename IndexerT> \
    +
    178 class __name__##_strided_kernel; \
    +
    179 \
    +
    180 template <typename argTy1, typename argTy2> \
    +
    181 sycl::event __name__##_strided_impl( \
    +
    182 sycl::queue &exec_q, size_t nelems, int nd, \
    +
    183 const py::ssize_t *shape_and_strides, const char *arg1_p, \
    +
    184 py::ssize_t arg1_offset, const char *arg2_p, py::ssize_t arg2_offset, \
    +
    185 char *res_p, py::ssize_t res_offset, \
    +
    186 const std::vector<sycl::event> &depends, \
    +
    187 const std::vector<sycl::event> &additional_depends) \
    +
    188 { \
    +
    189 return ew_cmn_ns::binary_strided_impl<argTy1, argTy2, OutputType, \
    +
    190 StridedFunctor, \
    +
    191 __name__##_strided_kernel>( \
    +
    192 exec_q, nelems, nd, shape_and_strides, arg1_p, arg1_offset, \
    +
    193 arg2_p, arg2_offset, res_p, res_offset, depends, \
    +
    194 additional_depends); \
    +
    195 } \
    +
    196 \
    +
    197 template <typename fnT, typename T1, typename T2> \
    +
    198 struct StridedFactory \
    +
    199 { \
    +
    200 fnT get() \
    +
    201 { \
    +
    202 if constexpr (std::is_same_v< \
    +
    203 typename OutputType<T1, T2>::value_type, void>) \
    +
    204 { \
    +
    205 fnT fn = nullptr; \
    +
    206 return fn; \
    +
    207 } \
    +
    208 else { \
    +
    209 fnT fn = __name__##_strided_impl<T1, T2>; \
    +
    210 return fn; \
    +
    211 } \
    +
    212 } \
    +
    213 }; \
    +
    214 \
    +
    215 void populate_##__name__##_dispatch_tables(void) \
    +
    216 { \
    +
    217 td_ns::DispatchTableBuilder<binary_contig_impl_fn_ptr_t, \
    +
    218 ContigFactory, td_ns::num_types> \
    +
    219 dvb1; \
    +
    220 dvb1.populate_dispatch_table(__name__##_contig_dispatch_table); \
    +
    221 \
    +
    222 td_ns::DispatchTableBuilder<binary_strided_impl_fn_ptr_t, \
    +
    223 StridedFactory, td_ns::num_types> \
    +
    224 dvb2; \
    +
    225 dvb2.populate_dispatch_table(__name__##_strided_dispatch_table); \
    +
    226 \
    +
    227 td_ns::DispatchTableBuilder<int, TypeMapFactory, td_ns::num_types> \
    +
    228 dvb3; \
    +
    229 dvb3.populate_dispatch_table(__name__##_output_typeid_table); \
    +
    230 };
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/potrf_8hpp_source.html b/pull/2070/backend_doc/potrf_8hpp_source.html new file mode 100644 index 00000000000..57394359f6d --- /dev/null +++ b/pull/2070/backend_doc/potrf_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/potrf.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    potrf.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <oneapi/mkl.hpp>
    +
    29#include <sycl/sycl.hpp>
    +
    30
    +
    31#include <dpctl4pybind11.hpp>
    +
    32
    +
    33namespace dpnp::extensions::lapack
    +
    34{
    +
    35extern std::pair<sycl::event, sycl::event>
    +
    36 potrf(sycl::queue &exec_q,
    +
    37 const dpctl::tensor::usm_ndarray &a_array,
    +
    38 const std::int8_t upper_lower,
    +
    39 const std::vector<sycl::event> &depends = {});
    +
    40
    +
    41extern std::pair<sycl::event, sycl::event>
    +
    42 potrf_batch(sycl::queue &exec_q,
    +
    43 const dpctl::tensor::usm_ndarray &a_array,
    +
    44 const std::int8_t upper_lower,
    +
    45 const std::int64_t n,
    +
    46 const std::int64_t stride_a,
    +
    47 const std::int64_t batch_size,
    +
    48 const std::vector<sycl::event> &depends = {});
    +
    49
    +
    50extern void init_potrf_dispatch_vector(void);
    +
    51extern void init_potrf_batch_dispatch_vector(void);
    +
    52} // namespace dpnp::extensions::lapack
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/pow_8hpp_source.html b/pull/2070/backend_doc/pow_8hpp_source.html new file mode 100644 index 00000000000..75de00ae168 --- /dev/null +++ b/pull/2070/backend_doc/pow_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/pow.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    pow.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_pow(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/queue__sycl_8hpp_source.html b/pull/2070/backend_doc/queue__sycl_8hpp_source.html new file mode 100644 index 00000000000..16cc680bfd2 --- /dev/null +++ b/pull/2070/backend_doc/queue__sycl_8hpp_source.html @@ -0,0 +1,236 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/queue_sycl.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    queue_sycl.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2016-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27#ifndef QUEUE_SYCL_H // Cython compatibility
    +
    28#define QUEUE_SYCL_H
    +
    29
    +
    30//#pragma clang diagnostic push
    +
    31//#pragma clang diagnostic ignored "-Wpass-failed"
    +
    32#include <sycl/sycl.hpp>
    +
    33//#pragma clang diagnostic pop
    +
    34
    +
    35#pragma clang diagnostic push
    +
    36#pragma clang diagnostic ignored "-Wunused-parameter"
    +
    37#pragma clang diagnostic ignored "-Wreorder-ctor"
    +
    38#include <oneapi/mkl.hpp>
    +
    39#pragma clang diagnostic pop
    +
    40
    +
    41#include <utility>
    +
    42
    +
    43#include "dpnp_pstl.hpp" // this header must be included after <mkl.hpp>
    +
    44
    +
    45#include "verbose.hpp"
    +
    46
    +
    47namespace mkl_rng = oneapi::mkl::rng;
    +
    48
    +
    49#define DPNP_QUEUE backend_sycl::get_queue()
    +
    50#define DPNP_RNG_ENGINE backend_sycl::get_rng_engine()
    +
    51#define DPNP_RNG_MCG59_ENGINE backend_sycl::get_rng_mcg59_engine()
    +
    52
    +
    + +
    61{
    +
    62public:
    +
    63 ~backend_sycl() {}
    +
    64
    +
    65 static backend_sycl &get()
    +
    66 {
    +
    67 static backend_sycl backend{};
    +
    68 return backend;
    +
    69 }
    +
    70
    +
    71 static sycl::queue &get_queue()
    +
    72 {
    +
    73 auto &be = backend_sycl::get();
    +
    74 return be.queue_;
    +
    75 }
    +
    76
    +
    77 static mkl_rng::mt19937 &get_rng_engine()
    +
    78 {
    +
    79 auto &be = backend_sycl::get();
    +
    80 return be.rng_mt19937_engine_;
    +
    81 }
    +
    82
    +
    83 static mkl_rng::mcg59 &get_rng_mcg59_engine()
    +
    84 {
    +
    85 auto &be = backend_sycl::get();
    +
    86 return be.rng_mcg59_engine_;
    +
    87 }
    +
    88
    +
    89 template <typename SeedT>
    +
    90 void set_rng_engines_seed(const SeedT &seed)
    +
    91 {
    +
    92 mkl_rng::mt19937 rng_eng_mt19937(queue_, seed);
    +
    93 mkl_rng::mcg59 rng_eng_mcg59(queue_, seed);
    +
    94
    +
    95 // now that instances are created, let's move them
    +
    96 rng_mt19937_engine_ = std::move(rng_eng_mt19937);
    +
    97 rng_mcg59_engine_ = std::move(rng_eng_mcg59);
    +
    98 }
    +
    99
    +
    100 bool backend_sycl_is_cpu() const
    +
    101 {
    +
    102 const auto &dev = queue_.get_device();
    +
    103 return dev.is_cpu();
    +
    104 }
    +
    105
    +
    106private:
    +
    107 static constexpr std::size_t default_seed = 1;
    +
    108
    + +
    110 : queue_{sycl::default_selector_v,
    +
    111 (is_verbose_mode())
    +
    112 ? sycl::property_list{sycl::property::queue::
    +
    113 enable_profiling()}
    +
    114 : sycl::property_list{}},
    +
    115 rng_mt19937_engine_{queue_, default_seed}, rng_mcg59_engine_{
    +
    116 queue_, default_seed}
    +
    117 {
    +
    118 }
    +
    119
    +
    120 backend_sycl(backend_sycl const &) = default;
    +
    121 backend_sycl &operator=(backend_sycl const &) = default;
    +
    122 backend_sycl &operator=(backend_sycl &&) = default;
    +
    123
    +
    124 sycl::queue queue_;
    +
    125 mkl_rng::mt19937 rng_mt19937_engine_;
    +
    126 mkl_rng::mcg59 rng_mcg59_engine_;
    +
    127};
    +
    +
    128
    +
    129#endif // QUEUE_SYCL_H
    + +
    +
    + + + + diff --git a/pull/2070/backend_doc/resize.js b/pull/2070/backend_doc/resize.js new file mode 100644 index 00000000000..aaeb6fc0a4f --- /dev/null +++ b/pull/2070/backend_doc/resize.js @@ -0,0 +1,155 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var once=1; +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; + + function readSetting(cookie) + { + if (window.chrome) { + var val = localStorage.getItem(cookie_namespace+'_width'); + if (val) return val; + } else { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + } + return 250; + } + + function writeSetting(cookie, val) + { + if (window.chrome) { + localStorage.setItem(cookie_namespace+"_width",val); + } else { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; + } + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + writeSetting('width',sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height(); + var contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() + { + var newWidth; + if (sidenav.width()>0) { + newWidth=0; + } + else { + var width = readSetting('width'); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + var sidenavWidth = $(sidenav).outerWidth(); + writeSetting('width',sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readSetting('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + if (once) { + $(".ui-resizable-handle").dblclick(collapseExpand); + once=0 + } + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/pull/2070/backend_doc/rint_8hpp_source.html b/pull/2070/backend_doc/rint_8hpp_source.html new file mode 100644 index 00000000000..5103968d79b --- /dev/null +++ b/pull/2070/backend_doc/rint_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/rint.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    rint.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_rint(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/search/all_0.js b/pull/2070/backend_doc/search/all_0.js new file mode 100644 index 00000000000..634c2e04d1b --- /dev/null +++ b/pull/2070/backend_doc/search/all_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['api_0',['api',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'Backend C++ library interface API'],['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'Backend C++ library interface RANDOM API'],['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'Backend C++ library runtime interface API']]], + ['are_5fsame_1',['are_same',['../structare__same.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/all_1.js b/pull/2070/backend_doc/search/all_1.js new file mode 100644 index 00000000000..013f4e86ac5 --- /dev/null +++ b/pull/2070/backend_doc/search/all_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['backend_20c_20library_20interface_20api_0',['Backend C++ library interface API',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'']]], + ['backend_20c_20library_20interface_20random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['backend_20c_20library_20runtime_20interface_20api_2',['Backend C++ library runtime interface API',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'']]], + ['backend_20c_20library_20utilities_3',['Backend C++ library utilities',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html',1,'']]], + ['backend_5fsycl_4',['backend_sycl',['../classbackend__sycl.html',1,'']]], + ['begin_5',['begin',['../class_d_p_n_p_c__id.html#a1e1427181e175dacfb37d3a042d4876f',1,'DPNPC_id']]], + ['broadcast_5fto_5fshape_6',['broadcast_to_shape',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga5f47f787627aa8dbd02301760482d7d6',1,'DPNPC_id']]] +]; diff --git a/pull/2070/backend_doc/search/all_10.js b/pull/2070/backend_doc/search/all_10.js new file mode 100644 index 00000000000..75813c0956b --- /dev/null +++ b/pull/2070/backend_doc/search/all_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['value_5ftype_5fof_0',['value_type_of',['../structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of.html',1,'dpnp::extensions::lapack::helper']]], + ['value_5ftype_5fof_3c_20std_3a_3acomplex_3c_20t_20_3e_20_3e_1',['value_type_of< std::complex< T > >',['../structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4.html',1,'dpnp::extensions::lapack::helper']]] +]; diff --git a/pull/2070/backend_doc/search/all_2.js b/pull/2070/backend_doc/search/all_2.js new file mode 100644 index 00000000000..a3131a59166 --- /dev/null +++ b/pull/2070/backend_doc/search/all_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['c_20library_20interface_20api_0',['Backend C++ library interface API',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'']]], + ['c_20library_20interface_20random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['c_20library_20runtime_20interface_20api_2',['Backend C++ library runtime interface API',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'']]], + ['c_20library_20utilities_3',['Backend C++ library utilities',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/all_3.js b/pull/2070/backend_doc/search/all_3.js new file mode 100644 index 00000000000..3356b993989 --- /dev/null +++ b/pull/2070/backend_doc/search/all_3.js @@ -0,0 +1,202 @@ +var searchData= +[ + ['degreesfunctor_0',['DegreesFunctor',['../structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor.html',1,'dpnp::kernels::degrees']]], + ['descriptorwrapper_1',['DescriptorWrapper',['../classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper.html',1,'dpnp::extensions::fft']]], + ['dotccontigfactory_2',['DotcContigFactory',['../structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory.html',1,'dpnp::extensions::blas']]], + ['dotcontigfactory_3',['DotContigFactory',['../structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory.html',1,'dpnp::extensions::blas']]], + ['dotctypepairsupportfactory_4',['DotcTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['dottypepairsupportfactory_5',['DotTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['dotucontigfactory_6',['DotuContigFactory',['../structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory.html',1,'dpnp::extensions::blas']]], + ['dotutypepairsupportfactory_7',['DotuTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['dpnp_5fargmax_5fc_8',['dpnp_argmax_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga0c91dcb81f3a0de00cf1c7326e8feb9c',1,'dpnp_iface.hpp']]], + ['dpnp_5fargmin_5fc_9',['dpnp_argmin_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gab9df32dd9f7107c691c5972a86351d35',1,'dpnp_iface.hpp']]], + ['dpnp_5fargsort_5fc_10',['dpnp_argsort_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gad7ba17bf5aab9a319b59429718622322',1,'dpnp_iface.hpp']]], + ['dpnp_5fchoose_5fc_11',['dpnp_choose_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gade43dedf9297ae8a75c812cf1e59d2c1',1,'dpnp_iface.hpp']]], + ['dpnp_5fcorrelate_5fc_12',['dpnp_correlate_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gac8a963ba01536cad42b8a42d8250314b',1,'dpnp_iface.hpp']]], + ['dpnp_5fcount_5fnonzero_5fc_13',['dpnp_count_nonzero_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga720e05039ce0f0784c8a2e04f7f1c682',1,'dpnp_iface.hpp']]], + ['dpnp_5fcov_5fc_14',['dpnp_cov_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga49f8dd90da75b44e6b733e944c6e7b33',1,'dpnp_iface.hpp']]], + ['dpnp_5fdot_5fc_15',['dpnp_dot_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gaddbabf7c091b81ba8ce90ebc54cdffc8',1,'dpnp_iface.hpp']]], + ['dpnp_5ffn_5fargmax_16',['DPNP_FN_ARGMAX',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad7a30d5f1ef5f03e82d0ec4a06b2cfd3',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fargmin_17',['DPNP_FN_ARGMIN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a563f719d139a7d794b600213dccef1de',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fargsort_18',['DPNP_FN_ARGSORT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a33a515ed4d5cd48b8e755dc4d5525643',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fchoose_19',['DPNP_FN_CHOOSE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a753a922dac7c8d4151b2f1c65b95f80f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fchoose_5fext_20',['DPNP_FN_CHOOSE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a78256afce49f190fe5699d5c3be57176',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fcorrelate_21',['DPNP_FN_CORRELATE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3849a9470b35f70f8aee6528db759b86',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fcorrelate_5fext_22',['DPNP_FN_CORRELATE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9bc9a51cda7b0d6ddb0ce5412c747a1e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fcount_5fnonzero_23',['DPNP_FN_COUNT_NONZERO',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a4a4d73cc14f7681dd49a449c3bd10144',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fcov_24',['DPNP_FN_COV',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a4e3c9946978c0627bf39906da7804b3b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fdot_25',['DPNP_FN_DOT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5333d3eb859da5bba7770ae8194ca5d2',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fdot_5fext_26',['DPNP_FN_DOT_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a62f2665bbd701478639f3701b16a6cf1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5ferf_27',['DPNP_FN_ERF',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa8e5f8f3b90944e05d9c8e4183c23706',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5ferf_5fext_28',['DPNP_FN_ERF_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af72fefd6d9811fc2e819650a5d592b60',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5finitval_29',['DPNP_FN_INITVAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa3e8a4061dcef64562a635d8a9870611',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5finitval_5fext_30',['DPNP_FN_INITVAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558adddd48eebbd0f2d9af89499617eebe64',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5flast_31',['DPNP_FN_LAST',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aadc54195a4c41ac24ed1aa10f8e6f6a4',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmax_32',['DPNP_FN_MAX',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a7fdc6b2053d31144e2c19dd861ede010',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmean_33',['DPNP_FN_MEAN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af905d2372a52b6fb1b7a22b76010b6dd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmedian_34',['DPNP_FN_MEDIAN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a44ceec4f99af1bc08e8f5543b386180e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmedian_5fext_35',['DPNP_FN_MEDIAN_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a512afdcfc770a0be3097a6b8f09d82d1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmin_36',['DPNP_FN_MIN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9efe7aa7ce951e7a44180b3160bcfd01',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmodf_37',['DPNP_FN_MODF',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558addd017f3f6c6753bc796a1ee5e9e4dcb',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmodf_5fext_38',['DPNP_FN_MODF_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a125c30f857787e9bd19648b0beae9f5b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmultiply_39',['DPNP_FN_MULTIPLY',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a051aaed58a292f8a66357f883923973b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fnanvar_40',['DPNP_FN_NANVAR',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a10e8c2f3d4b98e84040ba9793462c1d9',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fnone_41',['DPNP_FN_NONE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a01897799d4a0cba291db28a27e33cc24',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fones_42',['DPNP_FN_ONES',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ada4b07c03838ec240fe821748c44601d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fones_5flike_43',['DPNP_FN_ONES_LIKE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1b52092777d3af8b5929d28756be4461',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fpartition_44',['DPNP_FN_PARTITION',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aca4a111afa2773a5dbac2f1f879d2029',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fpartition_5fext_45',['DPNP_FN_PARTITION_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558affc2163c69279951e165fb38fb98bb41',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fprod_46',['DPNP_FN_PROD',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a72a62985c0bb7a38d58d9a8ab34ab19c',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fbeta_47',['DPNP_FN_RNG_BETA',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0668a283409d746cfa94256b7cdb850e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fbeta_5fext_48',['DPNP_FN_RNG_BETA_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5021a4aeca89c89bf577dce589e760c5',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fbinomial_49',['DPNP_FN_RNG_BINOMIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa07058cd0653319a5c14d660b0840c1d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fbinomial_5fext_50',['DPNP_FN_RNG_BINOMIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a2834d0a5ad758b989d781ddf55b50265',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fchisquare_51',['DPNP_FN_RNG_CHISQUARE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6ba83001ce89ae9bea48277c027d0b64',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fchisquare_5fext_52',['DPNP_FN_RNG_CHISQUARE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a532b9c7944f9d6c4290d03bcb75d6fb8',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fexponential_53',['DPNP_FN_RNG_EXPONENTIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6d9d980b8da13bdb0b5300fc4024cc90',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fexponential_5fext_54',['DPNP_FN_RNG_EXPONENTIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8c4218eb8e22d1868c0ac0165dac4f8e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5ff_55',['DPNP_FN_RNG_F',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a56d7153c972b0be7b98a638b3e2bc953',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5ff_5fext_56',['DPNP_FN_RNG_F_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a30133f517664ed53ec5be1d7fc176b08',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgamma_57',['DPNP_FN_RNG_GAMMA',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac988c55f9d110ee7ce575a59803dfe0d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgamma_5fext_58',['DPNP_FN_RNG_GAMMA_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a384557e466eb25ae484b32c1db45eb02',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgaussian_59',['DPNP_FN_RNG_GAUSSIAN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9ac4119c5429b52649c38e290305a3bc',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgaussian_5fext_60',['DPNP_FN_RNG_GAUSSIAN_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a513c3a4f4042cb6d5bbf4d77c6bc6d87',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgeometric_61',['DPNP_FN_RNG_GEOMETRIC',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0ba43c2e5702dd405cd40d405fe3ad46',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgeometric_5fext_62',['DPNP_FN_RNG_GEOMETRIC_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a622d2445e61c9e3bbb48103f11a6ee9a',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgumbel_63',['DPNP_FN_RNG_GUMBEL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a264ea5dbc7125d301af8b67aa6381ddb',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgumbel_5fext_64',['DPNP_FN_RNG_GUMBEL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a7ec41e2f35f7e27424ce99a9d850a399',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fhypergeometric_65',['DPNP_FN_RNG_HYPERGEOMETRIC',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8de6f56949b2201f0c99e3b34fd3760f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fhypergeometric_5fext_66',['DPNP_FN_RNG_HYPERGEOMETRIC_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1beebad63439e4d24242fad6185d1ffd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flaplace_67',['DPNP_FN_RNG_LAPLACE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a52addc8e50547e5ed5829ec8cfb96b0b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flaplace_5fext_68',['DPNP_FN_RNG_LAPLACE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa766585227c8613f083d62da1eb0d5f1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flogistic_69',['DPNP_FN_RNG_LOGISTIC',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3613e366d1d7a4f1d0a9029a5fab229f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flogistic_5fext_70',['DPNP_FN_RNG_LOGISTIC_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a189c3bcc88dc1ab0c6b43911146d51fd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flognormal_71',['DPNP_FN_RNG_LOGNORMAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a71e9d9eae39bfc079094c1244fb8bfbd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flognormal_5fext_72',['DPNP_FN_RNG_LOGNORMAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ab03609e63992ac5aea8933f7310dae0f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fmultinomial_73',['DPNP_FN_RNG_MULTINOMIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558add99122eaef926420c899b5509219aac',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fmultinomial_5fext_74',['DPNP_FN_RNG_MULTINOMIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a428a630017c0a128deb4642470f20efb',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fmultivariate_5fnormal_75',['DPNP_FN_RNG_MULTIVARIATE_NORMAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0064886d269433e4c5e54bf3ffb6eb71',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fmultivariate_5fnormal_5fext_76',['DPNP_FN_RNG_MULTIVARIATE_NORMAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a220baac0d954f5e2d3a6c89c8f4bc2ad',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnegative_5fbinomial_77',['DPNP_FN_RNG_NEGATIVE_BINOMIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9a2fb54e875d4c304e60e8747164df9e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnegative_5fbinomial_5fext_78',['DPNP_FN_RNG_NEGATIVE_BINOMIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6416887970ce60bfa9d8fc88b03e71d7',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnoncentral_5fchisquare_79',['DPNP_FN_RNG_NONCENTRAL_CHISQUARE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9a0b6b12ba1ee21d8561087ec15cf9b6',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnoncentral_5fchisquare_5fext_80',['DPNP_FN_RNG_NONCENTRAL_CHISQUARE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a11734477d3b7ad5b6905bad5417b454d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnormal_81',['DPNP_FN_RNG_NORMAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3fd78fcac1e00c5c8ae1ba0eed23122d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnormal_5fext_82',['DPNP_FN_RNG_NORMAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ada145b083ebd5704d9eb39ffb58387b1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpareto_83',['DPNP_FN_RNG_PARETO',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a51b643c02f16bd79ce230d5da9411ed1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpareto_5fext_84',['DPNP_FN_RNG_PARETO_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae7cdf66fd8b623050ba1a0d26e12d1bd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpoisson_85',['DPNP_FN_RNG_POISSON',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac932383a1104d78d3c137a8688de68a0',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpoisson_5fext_86',['DPNP_FN_RNG_POISSON_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a37bbbe3a9ed0f5af607ad31cb08946b3',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpower_87',['DPNP_FN_RNG_POWER',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a7b6208bb084ce808682c6f1ef54387',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpower_5fext_88',['DPNP_FN_RNG_POWER_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a278cb0efcc0a1b7e85af3f2c60b8a80d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5frayleigh_89',['DPNP_FN_RNG_RAYLEIGH',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558acc272cc4ecbe0b0e5705041af58249c6',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5frayleigh_5fext_90',['DPNP_FN_RNG_RAYLEIGH_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558abcd6c3b24ddbbe69a1e776705b276dba',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fshuffle_91',['DPNP_FN_RNG_SHUFFLE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae57add61435f1fe27df7af416aacd162',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fshuffle_5fext_92',['DPNP_FN_RNG_SHUFFLE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a05795744d8cfd0c99c3607540dc236',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fsrand_93',['DPNP_FN_RNG_SRAND',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9fdb85aaf89a9a23ade5fc73a6a60b4b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fsrand_5fext_94',['DPNP_FN_RNG_SRAND_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae0cf8c82c5a808c57953a90659c234b1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fcauchy_95',['DPNP_FN_RNG_STANDARD_CAUCHY',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa14ca7c1b83bc295bebb629e28e80dfc',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fcauchy_5fext_96',['DPNP_FN_RNG_STANDARD_CAUCHY_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1d29beee5d3424e6aca222ed56e3f707',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fexponential_97',['DPNP_FN_RNG_STANDARD_EXPONENTIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1989558074799d28289de9919eb55c48',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fexponential_5fext_98',['DPNP_FN_RNG_STANDARD_EXPONENTIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1f02e752405381ab74767a4b0b42cbaa',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fgamma_99',['DPNP_FN_RNG_STANDARD_GAMMA',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8f9b10a503f1c853fc633ce370e252d1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fgamma_5fext_100',['DPNP_FN_RNG_STANDARD_GAMMA_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad962b47912f922a4ec72f1aefe81fe64',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fnormal_101',['DPNP_FN_RNG_STANDARD_NORMAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa47904a3ff27ca35a2c69d09d897c29d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5ft_102',['DPNP_FN_RNG_STANDARD_T',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a23ba5ff2630c0a58ea0839afd5909f76',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5ft_5fext_103',['DPNP_FN_RNG_STANDARD_T_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1afb7e3342019b75330aba6e1a4abfca',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5ftriangular_104',['DPNP_FN_RNG_TRIANGULAR',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad2fb09fb4c0e41d29a76dffdf992c134',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5ftriangular_5fext_105',['DPNP_FN_RNG_TRIANGULAR_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558add30724342e9da4b6f49d4139c21a41e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5funiform_106',['DPNP_FN_RNG_UNIFORM',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa43c5be689c64f6e058fee732c71d549',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5funiform_5fext_107',['DPNP_FN_RNG_UNIFORM_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad5025dde08abd334429a67bddc1f864f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fvonmises_108',['DPNP_FN_RNG_VONMISES',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a62eedd89940f85f26c37b97cc4f80bc6',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fvonmises_5fext_109',['DPNP_FN_RNG_VONMISES_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a74c732efc8cea46d451c573b018e522d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fwald_110',['DPNP_FN_RNG_WALD',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9b2be3e8c111f7d37813476b1bdb7e91',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fwald_5fext_111',['DPNP_FN_RNG_WALD_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a96bdde1b80a9acff45e11ede77ece529',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fweibull_112',['DPNP_FN_RNG_WEIBULL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a390dd8fed5f213b251eb2c92af0211c6',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fweibull_5fext_113',['DPNP_FN_RNG_WEIBULL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1fbafdcfb58875a7dd9b26f3acdf6600',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fzipf_114',['DPNP_FN_RNG_ZIPF',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a59f893fd340c0937b52941bf138d5b19',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fzipf_5fext_115',['DPNP_FN_RNG_ZIPF_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558afca9175f1ea7f71a0cf585421ea66a27',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsearchsorted_116',['DPNP_FN_SEARCHSORTED',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a673b312ec7e9a40fa18483ed02d3649d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsort_117',['DPNP_FN_SORT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a99dd510a742f3c15b48092cef64f8aa3',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsqrt_118',['DPNP_FN_SQRT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af8187e64cd7661fbf4bf2fd04f339e5c',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsqrt_5fext_119',['DPNP_FN_SQRT_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aece0d851a884f3b66f3d1e6c1f67a540',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fstd_120',['DPNP_FN_STD',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac0d3143bc0fd7a8f43501a3a8784a148',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsum_121',['DPNP_FN_SUM',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a5f78154de3845f234e34f22d870448',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fvar_122',['DPNP_FN_VAR',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a17750205304e246fad783e631614cf48',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fzeros_123',['DPNP_FN_ZEROS',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a51216d8cda7e009964d71ddd8c7fbb1d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fzeros_5flike_124',['DPNP_FN_ZEROS_LIKE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad22026553dca7a3084662acf657bba0d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fbool_125',['DPNP_FT_BOOL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a1d41c2373d33a46bb47a6791a876c103',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fcmplx128_126',['DPNP_FT_CMPLX128',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a599b693823273a797188b9beb8018052',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fcmplx64_127',['DPNP_FT_CMPLX64',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15af186d251dc2c1d64ce7c7c03a7c6e2d5',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fdouble_128',['DPNP_FT_DOUBLE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15ac84f19e1412dd40492153e4cb0e27739',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5ffloat_129',['DPNP_FT_FLOAT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15aea1ca4f8f623afaaf6072b0b6eb56c76',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fint_130',['DPNP_FT_INT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a2ca75eef4ff62b379b29390b6efe736f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5flong_131',['DPNP_FT_LONG',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a8160fd9c1c7bd64515ffa60b8140f208',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fnone_132',['DPNP_FT_NONE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a4dd2e447249c9f1ed5b4a01263bd8d06',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5finitval_5fc_133',['dpnp_initval_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga2c1f63f22354673088112c4f248c98a2',1,'dpnp_iface.hpp']]], + ['dpnp_5fless_5fcomp_134',['dpnp_less_comp',['../classdpnp__less__comp.html',1,'']]], + ['dpnp_5fmax_5fc_135',['dpnp_max_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga82436cd570953d8e730b2f963db327de',1,'dpnp_iface.hpp']]], + ['dpnp_5fmean_5fc_136',['dpnp_mean_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga9ffb57d8d58fc2d3bc4c76fce7dd4fb4',1,'dpnp_iface.hpp']]], + ['dpnp_5fmedian_5fc_137',['dpnp_median_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga1aec65af16a011e7ac26fb1cd2daf1eb',1,'dpnp_iface.hpp']]], + ['dpnp_5fmemory_5falloc_5fc_138',['dpnp_memory_alloc_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gab577c1444f9e878b90162013bf2c4591',1,'dpnp_iface.hpp']]], + ['dpnp_5fmin_5fc_139',['dpnp_min_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gae183e59a05697d37ecfb659ef783224a',1,'dpnp_iface.hpp']]], + ['dpnp_5fmodf_5fc_140',['dpnp_modf_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gab66364798efa3d954afdc1659383ee54',1,'dpnp_iface.hpp']]], + ['dpnp_5fmultiply_5fc_141',['dpnp_multiply_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gac9fb583c42b950288b305efde244646e',1,'dpnp_gen_2arg_3type_tbl.hpp']]], + ['dpnp_5fnanvar_5fc_142',['dpnp_nanvar_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga09e5c5f507183e0dcd9153acdf970d61',1,'dpnp_iface.hpp']]], + ['dpnp_5fones_5fc_143',['dpnp_ones_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga709d9a7ac1174112ecc6d807e0c0a1e4',1,'dpnp_iface.hpp']]], + ['dpnp_5fones_5flike_5fc_144',['dpnp_ones_like_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gab27ed0161e18e2ff77dae7482fc67ceb',1,'dpnp_iface.hpp']]], + ['dpnp_5fpartition_5fc_145',['dpnp_partition_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gad6b710733eb11c4f51e92cab7e34dcb5',1,'dpnp_iface.hpp']]], + ['dpnp_5fprod_5fc_146',['dpnp_prod_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga6610de7cc5611443e025d9cd7d08b74c',1,'dpnp_iface.hpp']]], + ['dpnp_5fpython_5fconstants_5finitialize_5fc_147',['dpnp_python_constants_initialize_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga96eabd32a2b65f49e715ccdbc33c45d4',1,'constants.hpp']]], + ['dpnp_5fqueue_5fis_5fcpu_5fc_148',['dpnp_queue_is_cpu_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga2df766b3642aa4e94c8cef7927d6022d',1,'dpnp_iface.hpp']]], + ['dpnp_5frng_5fbeta_5fc_149',['dpnp_rng_beta_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga16bad12795c72adc5de076e129890a83',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fbinomial_5fc_150',['dpnp_rng_binomial_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga51221588325d576caf0f235739ef0718',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fchisquare_5fc_151',['dpnp_rng_chisquare_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga97a25a9105c5332d83aae862e6d29d9f',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fexponential_5fc_152',['dpnp_rng_exponential_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga026b7f9552a6cb89e816071c41c43f26',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5ff_5fc_153',['dpnp_rng_f_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga841854c7f53246b62719074088bd0b5b',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fgamma_5fc_154',['dpnp_rng_gamma_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gad54d6118580ab6b1b2c4ff2ba6ef36ca',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fgaussian_5fc_155',['dpnp_rng_gaussian_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga94731fce32598fffe43cb617a684c83a',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fgeometric_5fc_156',['dpnp_rng_geometric_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga430f99caa9b1ce1497c0f6b26ebb4e85',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fgumbel_5fc_157',['dpnp_rng_gumbel_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga78ffe853157e336c03a2773b0713eaa7',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fhypergeometric_5fc_158',['dpnp_rng_hypergeometric_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gab67b8c98406fcacc0fddbb2407ef7755',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5flaplace_5fc_159',['dpnp_rng_laplace_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga31adf1930f42170d8f40d1bd25779e66',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5flogistic_5fc_160',['dpnp_rng_logistic_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac68d320b745cf0b7f008fc27ad29e38c',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5flognormal_5fc_161',['dpnp_rng_lognormal_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaa66de7492a2987bc5f61c87cbb1312c4',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fmultinomial_5fc_162',['dpnp_rng_multinomial_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga80937d0842dd407149ff8a21e5754c2c',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fmultivariate_5fnormal_5fc_163',['dpnp_rng_multivariate_normal_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gad8bd0801def7866f56f24a03cdff0ce7',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fnegative_5fbinomial_5fc_164',['dpnp_rng_negative_binomial_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga9ba783072be992cc228c281c9c5ce3f9',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fnoncentral_5fchisquare_5fc_165',['dpnp_rng_noncentral_chisquare_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gacad7ceee454319a21e31e985855a60f3',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fnormal_5fc_166',['dpnp_rng_normal_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga225ae916386ae4ef6091b089b0dd1fe1',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fpareto_5fc_167',['dpnp_rng_pareto_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga3335ff85936d6ecb6273eac430c73a4e',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fpoisson_5fc_168',['dpnp_rng_poisson_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaccbd86d29e501bdbac9f3b0bb6560d74',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fpower_5fc_169',['dpnp_rng_power_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac0b6211cd01634db4bbb4aca3ab88977',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5frayleigh_5fc_170',['dpnp_rng_rayleigh_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga2ce225aadf9b75ce024eb984e035ab4f',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fshuffle_5fc_171',['dpnp_rng_shuffle_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaeff910810c83051069c6929555429ed9',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fsrand_5fc_172',['dpnp_rng_srand_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga41dd03c85f901c2dee88e709170ee1a1',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5fcauchy_5fc_173',['dpnp_rng_standard_cauchy_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga3234f956d618f70bdbbc95e62085891d',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5fexponential_5fc_174',['dpnp_rng_standard_exponential_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gafe6bbfe559a0b307f07add47ba1dfa0d',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5fgamma_5fc_175',['dpnp_rng_standard_gamma_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gab43bb4c4352d161a1ff20fb79eed1494',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5fnormal_5fc_176',['dpnp_rng_standard_normal_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga125082596bf7b57ccca5f245923e81a1',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5ft_5fc_177',['dpnp_rng_standard_t_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga1c20a0068cb5334be486b11dbbec3697',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5ftriangular_5fc_178',['dpnp_rng_triangular_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga35b32eec8a073d2d96551a8256bbcde7',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5funiform_5fc_179',['dpnp_rng_uniform_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga37e231ebdeec9fef8a56743a28770183',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fvonmises_5fc_180',['dpnp_rng_vonmises_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac1c75311828e64769fda7f49ba212232',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fwald_5fc_181',['dpnp_rng_wald_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gacbdc26ae5f2e1a404d9ce2011613bd16',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fweibull_5fc_182',['dpnp_rng_weibull_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga8d3046514e4bccb6d869f1052c4f4406',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fzipf_5fc_183',['dpnp_rng_zipf_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaa681bf7b3ffc6fdd431f1ec2f4dd6d64',1,'dpnp_iface_random.hpp']]], + ['dpnp_5fsearchsorted_5fc_184',['dpnp_searchsorted_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga066e660d9841964898e1051cdd66f713',1,'dpnp_iface.hpp']]], + ['dpnp_5fsort_5fc_185',['dpnp_sort_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga26e5f6303907fe4b4496fb2cc0685407',1,'dpnp_iface.hpp']]], + ['dpnp_5fsqrt_5fc_186',['dpnp_sqrt_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga2e8ccd7745314eb662b47c41324076b0',1,'dpnp_gen_1arg_2type_tbl.hpp']]], + ['dpnp_5fstd_5fc_187',['dpnp_std_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga41839ae42b40874e5405889e50e13358',1,'dpnp_iface.hpp']]], + ['dpnp_5fsum_5fc_188',['dpnp_sum_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gaba1f836500ed61109153fb4afef55c89',1,'dpnp_iface.hpp']]], + ['dpnp_5fusm_5fiterator_189',['DPNP_USM_iterator',['../class_d_p_n_p___u_s_m__iterator.html',1,'']]], + ['dpnp_5fvar_5fc_190',['dpnp_var_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga91baef74014e4e8b8ce22013cc361a66',1,'dpnp_iface.hpp']]], + ['dpnp_5fzeros_5fc_191',['dpnp_zeros_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gacd17ba5828ba92fae45ab9c3b82419ae',1,'dpnp_iface.hpp']]], + ['dpnp_5fzeros_5flike_5fc_192',['dpnp_zeros_like_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga701ba350a76dc444f53a7e7d59c7a143',1,'dpnp_iface.hpp']]], + ['dpnpc_5fid_193',['dpnpc_id',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga1e1d9e72e8f1a92a6e25d7f563562b11',1,'DPNPC_id::DPNPC_id()'],['../class_d_p_n_p_c__id.html',1,'DPNPC_id< _Tp >'],['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae67edf544bf0edce8e1cd74d68d8dc76',1,'DPNPC_id::DPNPC_id()']]], + ['dpnpc_5fptr_5fadapter_194',['DPNPC_ptr_adapter',['../class_d_p_n_p_c__ptr__adapter.html',1,'']]], + ['dpnpfuncdata_195',['DPNPFuncData',['../struct_d_p_n_p_func_data.html',1,'']]], + ['dpnpfuncdata_5ft_196',['DPNPFuncData_t',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ga52f631e01afd73cc5573f9e8f61bd78f',1,'dpnp_iface_fptr.hpp']]], + ['dpnpfuncname_197',['DPNPFuncName',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ga8b20590525bff7c7ce4f728d2021b558',1,'dpnp_iface_fptr.hpp']]], + ['dpnpfunctype_198',['DPNPFuncType',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gaec54569b58e937e84099479f078bce15',1,'dpnp_iface_fptr.hpp']]] +]; diff --git a/pull/2070/backend_doc/search/all_4.js b/pull/2070/backend_doc/search/all_4.js new file mode 100644 index 00000000000..a9226fe83ab --- /dev/null +++ b/pull/2070/backend_doc/search/all_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['end_0',['end',['../class_d_p_n_p_c__id.html#aa70a960886549f3d75137ac573a4c828',1,'DPNPC_id']]], + ['engine_5fstruct_1',['engine_struct',['../structengine__struct.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/all_5.js b/pull/2070/backend_doc/search/all_5.js new file mode 100644 index 00000000000..1b9a7c33d84 --- /dev/null +++ b/pull/2070/backend_doc/search/all_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['fabsfunctor_0',['FabsFunctor',['../structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor.html',1,'dpnp::kernels::fabs']]], + ['fixfunctor_1',['FixFunctor',['../structdpnp_1_1kernels_1_1fix_1_1_fix_functor.html',1,'dpnp::kernels::fix']]], + ['fmaxfunctor_2',['FmaxFunctor',['../structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor.html',1,'dpnp::kernels::fmax']]], + ['fminfunctor_3',['FminFunctor',['../structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor.html',1,'dpnp::kernels::fmin']]], + ['fmodfunctor_4',['FmodFunctor',['../structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor.html',1,'dpnp::kernels::fmod']]], + ['func_5ftype_5fmap_5ffactory_5ft_5',['func_type_map_factory_t',['../structfunc__type__map__factory__t.html',1,'']]], + ['func_5ftype_5fpair_5ft_6',['func_type_pair_t',['../structfunc__type__pair__t.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/all_6.js b/pull/2070/backend_doc/search/all_6.js new file mode 100644 index 00000000000..8eb5b1f724f --- /dev/null +++ b/pull/2070/backend_doc/search/all_6.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['gemmbatchtypepairsupportfactory_0',['GemmBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['gemmtypepairsupportfactory_1',['GemmTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['gemvtypepairsupportfactory_2',['GemvTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['geqrfbatchtypepairsupportfactory_3',['GeqrfBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['geqrftypepairsupportfactory_4',['GeqrfTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['gesvdtypepairsupportfactory_5',['GesvdTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['gesvtypepairsupportfactory_6',['GesvTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['get_5fdpnp_5ffunction_5fptr_7',['get_dpnp_function_ptr',['../group___b_a_c_k_e_n_d___a_p_i.html#ga5d37203d4448c22f7b046710d639fd4e',1,'dpnp_iface_fptr.hpp']]], + ['get_5fdpnp_5ffunction_5fptr1_8',['get_dpnp_function_ptr1',['../group___b_a_c_k_e_n_d___a_p_i.html#ga77f60af228fba6ec73c66217bd7a4ee7',1,'dpnp_iface_fptr.hpp']]], + ['get_5fid_5fby_5fxyz_5finkernel_9',['get_id_by_xyz_inkernel',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga064c245ca5bae67e4c986442e22d484e',1,'dpnp_utils.hpp']]], + ['get_5foutput_5fsize_10',['get_output_size',['../class_d_p_n_p_c__id.html#a79168b2adbe07a8099747374bba2c483',1,'DPNPC_id']]], + ['get_5fshape_5foffsets_5finkernel_11',['get_shape_offsets_inkernel',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga4706968b8ce210d69309a0cae330cea5',1,'dpnp_utils.hpp']]], + ['get_5fxyz_5fby_5fid_12',['get_xyz_by_id',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga81df4307ea53001fc552b6cd76c0ebf8',1,'dpnp_utils.hpp']]], + ['get_5fxyz_5fid_5fby_5fid_5finkernel_13',['get_xyz_id_by_id_inkernel',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#gad37eb9ce0ad29590cc931a9b6cd538e2',1,'dpnp_utils.hpp']]], + ['getrfbatchtypepairsupportfactory_14',['GetrfBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['getrftypepairsupportfactory_15',['GetrfTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['getribatchtypepairsupportfactory_16',['GetriBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['getrstypepairsupportfactory_17',['GetrsTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/all_7.js b/pull/2070/backend_doc/search/all_7.js new file mode 100644 index 00000000000..7a31acc62c5 --- /dev/null +++ b/pull/2070/backend_doc/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['heavisidefunctor_0',['HeavisideFunctor',['../structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor.html',1,'dpnp::kernels::heaviside']]], + ['heevdtypepairsupportfactory_1',['HeevdTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/all_8.js b/pull/2070/backend_doc/search/all_8.js new file mode 100644 index 00000000000..18d05976791 --- /dev/null +++ b/pull/2070/backend_doc/search/all_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['interface_20api_0',['interface api',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'Backend C++ library interface API'],['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'Backend C++ library runtime interface API']]], + ['interface_20random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['is_5fany_2',['is_any',['../structis__any.html',1,'']]], + ['is_5fcomplex_3',['is_complex',['../structis__complex.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/all_9.js b/pull/2070/backend_doc/search/all_9.js new file mode 100644 index 00000000000..51f343c2c7c --- /dev/null +++ b/pull/2070/backend_doc/search/all_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['library_20interface_20api_0',['Backend C++ library interface API',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'']]], + ['library_20interface_20random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['library_20runtime_20interface_20api_2',['Backend C++ library runtime interface API',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'']]], + ['library_20utilities_3',['Backend C++ library utilities',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html',1,'']]], + ['linalgerror_4',['LinAlgError',['../classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error.html',1,'dpnp::extensions::lapack']]], + ['logaddexp2functor_5',['Logaddexp2Functor',['../structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor.html',1,'dpnp::kernels::logaddexp2']]] +]; diff --git a/pull/2070/backend_doc/search/all_a.js b/pull/2070/backend_doc/search/all_a.js new file mode 100644 index 00000000000..82c9b18634e --- /dev/null +++ b/pull/2070/backend_doc/search/all_a.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['mcg59_5fdelete_0',['MCG59_Delete',['../group___b_a_c_k_e_n_d___a_p_i.html#gad658fb513fc4ab24115573d8bdbf38df',1,'dpnp_random_state.hpp']]], + ['mcg59_5finitscalarseed_1',['MCG59_InitScalarSeed',['../group___b_a_c_k_e_n_d___a_p_i.html#ga8d41fc0affbac587992402c23ff9b930',1,'dpnp_random_state.hpp']]], + ['mcg59_5fstruct_2',['mcg59_struct',['../structmcg59__struct.html',1,'']]], + ['mt19937_5fdelete_3',['MT19937_Delete',['../group___b_a_c_k_e_n_d___a_p_i.html#gaff33ecfcdcc418196d3361d37c53f5f0',1,'dpnp_random_state.hpp']]], + ['mt19937_5finitscalarseed_4',['MT19937_InitScalarSeed',['../group___b_a_c_k_e_n_d___a_p_i.html#ga27e7a066bbe9e7bb42ea0bb4aa80fa5a',1,'dpnp_random_state.hpp']]], + ['mt19937_5finitvectorseed_5',['MT19937_InitVectorSeed',['../group___b_a_c_k_e_n_d___a_p_i.html#ga5aa43f73b2b057034fd5f29cd86ea246',1,'dpnp_random_state.hpp']]], + ['mt19937_5fstruct_6',['mt19937_struct',['../structmt19937__struct.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/all_b.js b/pull/2070/backend_doc/search/all_b.js new file mode 100644 index 00000000000..5354a7ba12a --- /dev/null +++ b/pull/2070/backend_doc/search/all_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['operator_2b_2b_0',['operator++',['../class_d_p_n_p___u_s_m__iterator.html#a995480447406ffd7421ddbd4006637be',1,'DPNP_USM_iterator::operator++()'],['../class_d_p_n_p___u_s_m__iterator.html#a8f31f980fbfb90d1e9367438a7351e26',1,'DPNP_USM_iterator::operator++(int)']]], + ['operator_3c_3c_1',['operator<<',['../class_d_p_n_p___u_s_m__iterator.html#ad8717a8073f17dc82cbfc74a9fbcc777',1,'DPNP_USM_iterator::operator<<'],['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga2d677a923f4dc4c31e302b0c3bb692f0',1,'operator<<(std::ostream &out, const std::vector< T > &vec): dpnp_utils.hpp'],['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga632dede9569431596d7423005389a147',1,'operator<<(std::ostream &out, DPNPFuncType elem): dpnp_utils.hpp']]], + ['operator_5b_5d_2',['operator[]',['../class_d_p_n_p_c__id.html#a2e98849be3b71da7efdfbccdcb26c010',1,'DPNPC_id']]], + ['orgqrbatchtypepairsupportfactory_3',['OrgqrBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['orgqrtypepairsupportfactory_4',['OrgqrTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/all_c.js b/pull/2070/backend_doc/search/all_c.js new file mode 100644 index 00000000000..a18683d815b --- /dev/null +++ b/pull/2070/backend_doc/search/all_c.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['potrfbatchtypepairsupportfactory_0',['PotrfBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['potrftypepairsupportfactory_1',['PotrfTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['precisiontype_2',['PrecisionType',['../structdpnp_1_1extensions_1_1fft_1_1_precision_type.html',1,'dpnp::extensions::fft']]], + ['precisiontype_3c_20mkl_5fdft_3a_3aprecision_3a_3adouble_20_3e_3',['PrecisionType< mkl_dft::precision::DOUBLE >',['../structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4.html',1,'dpnp::extensions::fft']]], + ['precisiontype_3c_20mkl_5fdft_3a_3aprecision_3a_3asingle_20_3e_4',['PrecisionType< mkl_dft::precision::SINGLE >',['../structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4.html',1,'dpnp::extensions::fft']]], + ['ptr_5',['ptr',['../struct_d_p_n_p_func_data.html#af40fd22f5954384788121f817fb02f0d',1,'DPNPFuncData']]], + ['ptr_5fno_5ffp64_6',['ptr_no_fp64',['../struct_d_p_n_p_func_data.html#aa88f90ce507ebffe7462bba4d2df6c76',1,'DPNPFuncData']]], + ['py_5fnan_7',['py_nan',['../structpython__constants.html#ad34c02509443758b7257406387f7a14c',1,'python_constants']]], + ['py_5fnone_8',['py_none',['../structpython__constants.html#a4b321c2c3693f0fedfe18e20c317dd24',1,'python_constants']]], + ['python_5fconstants_9',['python_constants',['../structpython__constants.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/all_d.js b/pull/2070/backend_doc/search/all_d.js new file mode 100644 index 00000000000..9f7f87c7bf9 --- /dev/null +++ b/pull/2070/backend_doc/search/all_d.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['radiansfunctor_0',['RadiansFunctor',['../structdpnp_1_1kernels_1_1radians_1_1_radians_functor.html',1,'dpnp::kernels::radians']]], + ['random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['return_5ftype_2',['return_type',['../struct_d_p_n_p_func_data.html#a59c07232bc3830e89d5abe5447a24816',1,'DPNPFuncData']]], + ['return_5ftype_5fno_5ffp64_3',['return_type_no_fp64',['../struct_d_p_n_p_func_data.html#a591831d25d776b9ce6ef0a328bda9ddc',1,'DPNPFuncData']]], + ['runtime_20interface_20api_4',['Backend C++ library runtime interface API',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/all_e.js b/pull/2070/backend_doc/search/all_e.js new file mode 100644 index 00000000000..7f2f7065f1d --- /dev/null +++ b/pull/2070/backend_doc/search/all_e.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['scaletype_0',['ScaleType',['../structdpnp_1_1extensions_1_1fft_1_1_scale_type.html',1,'dpnp::extensions::fft']]], + ['scaletype_3c_20prec_2c_20mkl_5fdft_3a_3adomain_3a_3acomplex_2c_20is_5ffwd_20_3e_1',['ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >',['../structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4.html',1,'dpnp::extensions::fft']]], + ['scaletype_3c_20prec_2c_20mkl_5fdft_3a_3adomain_3a_3areal_2c_20false_20_3e_2',['ScaleType< prec, mkl_dft::domain::REAL, false >',['../structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4.html',1,'dpnp::extensions::fft']]], + ['scaletype_3c_20prec_2c_20mkl_5fdft_3a_3adomain_3a_3areal_2c_20true_20_3e_3',['ScaleType< prec, mkl_dft::domain::REAL, true >',['../structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4.html',1,'dpnp::extensions::fft']]], + ['set_5faxes_4',['set_axes',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga87a0b53a5ae1b69762f201cd6521e210',1,'DPNPC_id']]], + ['set_5faxis_5',['set_axis',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae4294907d97ba7d7a630d5097b435d0a',1,'DPNPC_id']]], + ['syevdtypepairsupportfactory_6',['SyevdTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/all_f.js b/pull/2070/backend_doc/search/all_f.js new file mode 100644 index 00000000000..38e40367bbd --- /dev/null +++ b/pull/2070/backend_doc/search/all_f.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['ungqrbatchtypepairsupportfactory_0',['UngqrBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['ungqrtypepairsupportfactory_1',['UngqrTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['utilities_2',['Backend C++ library utilities',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_0.js b/pull/2070/backend_doc/search/classes_0.js new file mode 100644 index 00000000000..1e7c1224718 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['are_5fsame_0',['are_same',['../structare__same.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_1.js b/pull/2070/backend_doc/search/classes_1.js new file mode 100644 index 00000000000..9601c1d058d --- /dev/null +++ b/pull/2070/backend_doc/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['backend_5fsycl_0',['backend_sycl',['../classbackend__sycl.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_2.js b/pull/2070/backend_doc/search/classes_2.js new file mode 100644 index 00000000000..634930de7e2 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_2.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['degreesfunctor_0',['DegreesFunctor',['../structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor.html',1,'dpnp::kernels::degrees']]], + ['descriptorwrapper_1',['DescriptorWrapper',['../classdpnp_1_1extensions_1_1fft_1_1_descriptor_wrapper.html',1,'dpnp::extensions::fft']]], + ['dotccontigfactory_2',['DotcContigFactory',['../structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory.html',1,'dpnp::extensions::blas']]], + ['dotcontigfactory_3',['DotContigFactory',['../structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory.html',1,'dpnp::extensions::blas']]], + ['dotctypepairsupportfactory_4',['DotcTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['dottypepairsupportfactory_5',['DotTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['dotucontigfactory_6',['DotuContigFactory',['../structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory.html',1,'dpnp::extensions::blas']]], + ['dotutypepairsupportfactory_7',['DotuTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['dpnp_5fless_5fcomp_8',['dpnp_less_comp',['../classdpnp__less__comp.html',1,'']]], + ['dpnp_5fusm_5fiterator_9',['DPNP_USM_iterator',['../class_d_p_n_p___u_s_m__iterator.html',1,'']]], + ['dpnpc_5fid_10',['DPNPC_id',['../class_d_p_n_p_c__id.html',1,'']]], + ['dpnpc_5fptr_5fadapter_11',['DPNPC_ptr_adapter',['../class_d_p_n_p_c__ptr__adapter.html',1,'']]], + ['dpnpfuncdata_12',['DPNPFuncData',['../struct_d_p_n_p_func_data.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_3.js b/pull/2070/backend_doc/search/classes_3.js new file mode 100644 index 00000000000..192aec0ff48 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['engine_5fstruct_0',['engine_struct',['../structengine__struct.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_4.js b/pull/2070/backend_doc/search/classes_4.js new file mode 100644 index 00000000000..1b9a7c33d84 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_4.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['fabsfunctor_0',['FabsFunctor',['../structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor.html',1,'dpnp::kernels::fabs']]], + ['fixfunctor_1',['FixFunctor',['../structdpnp_1_1kernels_1_1fix_1_1_fix_functor.html',1,'dpnp::kernels::fix']]], + ['fmaxfunctor_2',['FmaxFunctor',['../structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor.html',1,'dpnp::kernels::fmax']]], + ['fminfunctor_3',['FminFunctor',['../structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor.html',1,'dpnp::kernels::fmin']]], + ['fmodfunctor_4',['FmodFunctor',['../structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor.html',1,'dpnp::kernels::fmod']]], + ['func_5ftype_5fmap_5ffactory_5ft_5',['func_type_map_factory_t',['../structfunc__type__map__factory__t.html',1,'']]], + ['func_5ftype_5fpair_5ft_6',['func_type_pair_t',['../structfunc__type__pair__t.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_5.js b/pull/2070/backend_doc/search/classes_5.js new file mode 100644 index 00000000000..953954fee67 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_5.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['gemmbatchtypepairsupportfactory_0',['GemmBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['gemmtypepairsupportfactory_1',['GemmTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['gemvtypepairsupportfactory_2',['GemvTypePairSupportFactory',['../structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory.html',1,'dpnp::extensions::blas::types']]], + ['geqrfbatchtypepairsupportfactory_3',['GeqrfBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['geqrftypepairsupportfactory_4',['GeqrfTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['gesvdtypepairsupportfactory_5',['GesvdTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['gesvtypepairsupportfactory_6',['GesvTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['getrfbatchtypepairsupportfactory_7',['GetrfBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['getrftypepairsupportfactory_8',['GetrfTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['getribatchtypepairsupportfactory_9',['GetriBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['getrstypepairsupportfactory_10',['GetrsTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/classes_6.js b/pull/2070/backend_doc/search/classes_6.js new file mode 100644 index 00000000000..7a31acc62c5 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['heavisidefunctor_0',['HeavisideFunctor',['../structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor.html',1,'dpnp::kernels::heaviside']]], + ['heevdtypepairsupportfactory_1',['HeevdTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/classes_7.js b/pull/2070/backend_doc/search/classes_7.js new file mode 100644 index 00000000000..b9119d63919 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['is_5fany_0',['is_any',['../structis__any.html',1,'']]], + ['is_5fcomplex_1',['is_complex',['../structis__complex.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_8.js b/pull/2070/backend_doc/search/classes_8.js new file mode 100644 index 00000000000..0d4417edff3 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['linalgerror_0',['LinAlgError',['../classdpnp_1_1extensions_1_1lapack_1_1_lin_alg_error.html',1,'dpnp::extensions::lapack']]], + ['logaddexp2functor_1',['Logaddexp2Functor',['../structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor.html',1,'dpnp::kernels::logaddexp2']]] +]; diff --git a/pull/2070/backend_doc/search/classes_9.js b/pull/2070/backend_doc/search/classes_9.js new file mode 100644 index 00000000000..03b415059ac --- /dev/null +++ b/pull/2070/backend_doc/search/classes_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['mcg59_5fstruct_0',['mcg59_struct',['../structmcg59__struct.html',1,'']]], + ['mt19937_5fstruct_1',['mt19937_struct',['../structmt19937__struct.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_a.js b/pull/2070/backend_doc/search/classes_a.js new file mode 100644 index 00000000000..5ab9dd44d7e --- /dev/null +++ b/pull/2070/backend_doc/search/classes_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['orgqrbatchtypepairsupportfactory_0',['OrgqrBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['orgqrtypepairsupportfactory_1',['OrgqrTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/classes_b.js b/pull/2070/backend_doc/search/classes_b.js new file mode 100644 index 00000000000..29d4997895e --- /dev/null +++ b/pull/2070/backend_doc/search/classes_b.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['potrfbatchtypepairsupportfactory_0',['PotrfBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['potrftypepairsupportfactory_1',['PotrfTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['precisiontype_2',['PrecisionType',['../structdpnp_1_1extensions_1_1fft_1_1_precision_type.html',1,'dpnp::extensions::fft']]], + ['precisiontype_3c_20mkl_5fdft_3a_3aprecision_3a_3adouble_20_3e_3',['PrecisionType< mkl_dft::precision::DOUBLE >',['../structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4.html',1,'dpnp::extensions::fft']]], + ['precisiontype_3c_20mkl_5fdft_3a_3aprecision_3a_3asingle_20_3e_4',['PrecisionType< mkl_dft::precision::SINGLE >',['../structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4.html',1,'dpnp::extensions::fft']]], + ['python_5fconstants_5',['python_constants',['../structpython__constants.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/classes_c.js b/pull/2070/backend_doc/search/classes_c.js new file mode 100644 index 00000000000..0bb5cf52f09 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['radiansfunctor_0',['RadiansFunctor',['../structdpnp_1_1kernels_1_1radians_1_1_radians_functor.html',1,'dpnp::kernels::radians']]] +]; diff --git a/pull/2070/backend_doc/search/classes_d.js b/pull/2070/backend_doc/search/classes_d.js new file mode 100644 index 00000000000..1ce12da93a8 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_d.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['scaletype_0',['ScaleType',['../structdpnp_1_1extensions_1_1fft_1_1_scale_type.html',1,'dpnp::extensions::fft']]], + ['scaletype_3c_20prec_2c_20mkl_5fdft_3a_3adomain_3a_3acomplex_2c_20is_5ffwd_20_3e_1',['ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >',['../structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4.html',1,'dpnp::extensions::fft']]], + ['scaletype_3c_20prec_2c_20mkl_5fdft_3a_3adomain_3a_3areal_2c_20false_20_3e_2',['ScaleType< prec, mkl_dft::domain::REAL, false >',['../structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4.html',1,'dpnp::extensions::fft']]], + ['scaletype_3c_20prec_2c_20mkl_5fdft_3a_3adomain_3a_3areal_2c_20true_20_3e_3',['ScaleType< prec, mkl_dft::domain::REAL, true >',['../structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4.html',1,'dpnp::extensions::fft']]], + ['syevdtypepairsupportfactory_4',['SyevdTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/classes_e.js b/pull/2070/backend_doc/search/classes_e.js new file mode 100644 index 00000000000..9d1e8098089 --- /dev/null +++ b/pull/2070/backend_doc/search/classes_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ungqrbatchtypepairsupportfactory_0',['UngqrBatchTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]], + ['ungqrtypepairsupportfactory_1',['UngqrTypePairSupportFactory',['../structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory.html',1,'dpnp::extensions::lapack::types']]] +]; diff --git a/pull/2070/backend_doc/search/classes_f.js b/pull/2070/backend_doc/search/classes_f.js new file mode 100644 index 00000000000..75813c0956b --- /dev/null +++ b/pull/2070/backend_doc/search/classes_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['value_5ftype_5fof_0',['value_type_of',['../structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of.html',1,'dpnp::extensions::lapack::helper']]], + ['value_5ftype_5fof_3c_20std_3a_3acomplex_3c_20t_20_3e_20_3e_1',['value_type_of< std::complex< T > >',['../structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4.html',1,'dpnp::extensions::lapack::helper']]] +]; diff --git a/pull/2070/backend_doc/search/close.svg b/pull/2070/backend_doc/search/close.svg new file mode 100644 index 00000000000..337d6cc1329 --- /dev/null +++ b/pull/2070/backend_doc/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/pull/2070/backend_doc/search/enums_0.js b/pull/2070/backend_doc/search/enums_0.js new file mode 100644 index 00000000000..d93362d5269 --- /dev/null +++ b/pull/2070/backend_doc/search/enums_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['dpnpfuncname_0',['DPNPFuncName',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ga8b20590525bff7c7ce4f728d2021b558',1,'dpnp_iface_fptr.hpp']]], + ['dpnpfunctype_1',['DPNPFuncType',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gaec54569b58e937e84099479f078bce15',1,'dpnp_iface_fptr.hpp']]] +]; diff --git a/pull/2070/backend_doc/search/enumvalues_0.js b/pull/2070/backend_doc/search/enumvalues_0.js new file mode 100644 index 00000000000..163153adadd --- /dev/null +++ b/pull/2070/backend_doc/search/enumvalues_0.js @@ -0,0 +1,120 @@ +var searchData= +[ + ['dpnp_5ffn_5fargmax_0',['DPNP_FN_ARGMAX',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad7a30d5f1ef5f03e82d0ec4a06b2cfd3',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fargmin_1',['DPNP_FN_ARGMIN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a563f719d139a7d794b600213dccef1de',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fargsort_2',['DPNP_FN_ARGSORT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a33a515ed4d5cd48b8e755dc4d5525643',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fchoose_3',['DPNP_FN_CHOOSE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a753a922dac7c8d4151b2f1c65b95f80f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fchoose_5fext_4',['DPNP_FN_CHOOSE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a78256afce49f190fe5699d5c3be57176',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fcorrelate_5',['DPNP_FN_CORRELATE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3849a9470b35f70f8aee6528db759b86',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fcorrelate_5fext_6',['DPNP_FN_CORRELATE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9bc9a51cda7b0d6ddb0ce5412c747a1e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fcount_5fnonzero_7',['DPNP_FN_COUNT_NONZERO',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a4a4d73cc14f7681dd49a449c3bd10144',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fcov_8',['DPNP_FN_COV',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a4e3c9946978c0627bf39906da7804b3b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fdot_9',['DPNP_FN_DOT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5333d3eb859da5bba7770ae8194ca5d2',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fdot_5fext_10',['DPNP_FN_DOT_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a62f2665bbd701478639f3701b16a6cf1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5ferf_11',['DPNP_FN_ERF',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa8e5f8f3b90944e05d9c8e4183c23706',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5ferf_5fext_12',['DPNP_FN_ERF_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af72fefd6d9811fc2e819650a5d592b60',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5finitval_13',['DPNP_FN_INITVAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa3e8a4061dcef64562a635d8a9870611',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5finitval_5fext_14',['DPNP_FN_INITVAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558adddd48eebbd0f2d9af89499617eebe64',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5flast_15',['DPNP_FN_LAST',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aadc54195a4c41ac24ed1aa10f8e6f6a4',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmax_16',['DPNP_FN_MAX',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a7fdc6b2053d31144e2c19dd861ede010',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmean_17',['DPNP_FN_MEAN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af905d2372a52b6fb1b7a22b76010b6dd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmedian_18',['DPNP_FN_MEDIAN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a44ceec4f99af1bc08e8f5543b386180e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmedian_5fext_19',['DPNP_FN_MEDIAN_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a512afdcfc770a0be3097a6b8f09d82d1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmin_20',['DPNP_FN_MIN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9efe7aa7ce951e7a44180b3160bcfd01',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmodf_21',['DPNP_FN_MODF',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558addd017f3f6c6753bc796a1ee5e9e4dcb',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmodf_5fext_22',['DPNP_FN_MODF_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a125c30f857787e9bd19648b0beae9f5b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fmultiply_23',['DPNP_FN_MULTIPLY',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a051aaed58a292f8a66357f883923973b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fnanvar_24',['DPNP_FN_NANVAR',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a10e8c2f3d4b98e84040ba9793462c1d9',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fnone_25',['DPNP_FN_NONE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a01897799d4a0cba291db28a27e33cc24',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fones_26',['DPNP_FN_ONES',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ada4b07c03838ec240fe821748c44601d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fones_5flike_27',['DPNP_FN_ONES_LIKE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1b52092777d3af8b5929d28756be4461',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fpartition_28',['DPNP_FN_PARTITION',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aca4a111afa2773a5dbac2f1f879d2029',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fpartition_5fext_29',['DPNP_FN_PARTITION_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558affc2163c69279951e165fb38fb98bb41',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fprod_30',['DPNP_FN_PROD',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a72a62985c0bb7a38d58d9a8ab34ab19c',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fbeta_31',['DPNP_FN_RNG_BETA',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0668a283409d746cfa94256b7cdb850e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fbeta_5fext_32',['DPNP_FN_RNG_BETA_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5021a4aeca89c89bf577dce589e760c5',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fbinomial_33',['DPNP_FN_RNG_BINOMIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa07058cd0653319a5c14d660b0840c1d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fbinomial_5fext_34',['DPNP_FN_RNG_BINOMIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a2834d0a5ad758b989d781ddf55b50265',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fchisquare_35',['DPNP_FN_RNG_CHISQUARE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6ba83001ce89ae9bea48277c027d0b64',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fchisquare_5fext_36',['DPNP_FN_RNG_CHISQUARE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a532b9c7944f9d6c4290d03bcb75d6fb8',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fexponential_37',['DPNP_FN_RNG_EXPONENTIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6d9d980b8da13bdb0b5300fc4024cc90',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fexponential_5fext_38',['DPNP_FN_RNG_EXPONENTIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8c4218eb8e22d1868c0ac0165dac4f8e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5ff_39',['DPNP_FN_RNG_F',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a56d7153c972b0be7b98a638b3e2bc953',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5ff_5fext_40',['DPNP_FN_RNG_F_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a30133f517664ed53ec5be1d7fc176b08',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgamma_41',['DPNP_FN_RNG_GAMMA',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac988c55f9d110ee7ce575a59803dfe0d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgamma_5fext_42',['DPNP_FN_RNG_GAMMA_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a384557e466eb25ae484b32c1db45eb02',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgaussian_43',['DPNP_FN_RNG_GAUSSIAN',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9ac4119c5429b52649c38e290305a3bc',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgaussian_5fext_44',['DPNP_FN_RNG_GAUSSIAN_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a513c3a4f4042cb6d5bbf4d77c6bc6d87',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgeometric_45',['DPNP_FN_RNG_GEOMETRIC',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0ba43c2e5702dd405cd40d405fe3ad46',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgeometric_5fext_46',['DPNP_FN_RNG_GEOMETRIC_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a622d2445e61c9e3bbb48103f11a6ee9a',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgumbel_47',['DPNP_FN_RNG_GUMBEL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a264ea5dbc7125d301af8b67aa6381ddb',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fgumbel_5fext_48',['DPNP_FN_RNG_GUMBEL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a7ec41e2f35f7e27424ce99a9d850a399',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fhypergeometric_49',['DPNP_FN_RNG_HYPERGEOMETRIC',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8de6f56949b2201f0c99e3b34fd3760f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fhypergeometric_5fext_50',['DPNP_FN_RNG_HYPERGEOMETRIC_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1beebad63439e4d24242fad6185d1ffd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flaplace_51',['DPNP_FN_RNG_LAPLACE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a52addc8e50547e5ed5829ec8cfb96b0b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flaplace_5fext_52',['DPNP_FN_RNG_LAPLACE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa766585227c8613f083d62da1eb0d5f1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flogistic_53',['DPNP_FN_RNG_LOGISTIC',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3613e366d1d7a4f1d0a9029a5fab229f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flogistic_5fext_54',['DPNP_FN_RNG_LOGISTIC_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a189c3bcc88dc1ab0c6b43911146d51fd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flognormal_55',['DPNP_FN_RNG_LOGNORMAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a71e9d9eae39bfc079094c1244fb8bfbd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5flognormal_5fext_56',['DPNP_FN_RNG_LOGNORMAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ab03609e63992ac5aea8933f7310dae0f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fmultinomial_57',['DPNP_FN_RNG_MULTINOMIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558add99122eaef926420c899b5509219aac',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fmultinomial_5fext_58',['DPNP_FN_RNG_MULTINOMIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a428a630017c0a128deb4642470f20efb',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fmultivariate_5fnormal_59',['DPNP_FN_RNG_MULTIVARIATE_NORMAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a0064886d269433e4c5e54bf3ffb6eb71',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fmultivariate_5fnormal_5fext_60',['DPNP_FN_RNG_MULTIVARIATE_NORMAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a220baac0d954f5e2d3a6c89c8f4bc2ad',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnegative_5fbinomial_61',['DPNP_FN_RNG_NEGATIVE_BINOMIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9a2fb54e875d4c304e60e8747164df9e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnegative_5fbinomial_5fext_62',['DPNP_FN_RNG_NEGATIVE_BINOMIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a6416887970ce60bfa9d8fc88b03e71d7',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnoncentral_5fchisquare_63',['DPNP_FN_RNG_NONCENTRAL_CHISQUARE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9a0b6b12ba1ee21d8561087ec15cf9b6',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnoncentral_5fchisquare_5fext_64',['DPNP_FN_RNG_NONCENTRAL_CHISQUARE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a11734477d3b7ad5b6905bad5417b454d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnormal_65',['DPNP_FN_RNG_NORMAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a3fd78fcac1e00c5c8ae1ba0eed23122d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fnormal_5fext_66',['DPNP_FN_RNG_NORMAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ada145b083ebd5704d9eb39ffb58387b1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpareto_67',['DPNP_FN_RNG_PARETO',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a51b643c02f16bd79ce230d5da9411ed1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpareto_5fext_68',['DPNP_FN_RNG_PARETO_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae7cdf66fd8b623050ba1a0d26e12d1bd',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpoisson_69',['DPNP_FN_RNG_POISSON',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac932383a1104d78d3c137a8688de68a0',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpoisson_5fext_70',['DPNP_FN_RNG_POISSON_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a37bbbe3a9ed0f5af607ad31cb08946b3',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpower_71',['DPNP_FN_RNG_POWER',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a7b6208bb084ce808682c6f1ef54387',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fpower_5fext_72',['DPNP_FN_RNG_POWER_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a278cb0efcc0a1b7e85af3f2c60b8a80d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5frayleigh_73',['DPNP_FN_RNG_RAYLEIGH',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558acc272cc4ecbe0b0e5705041af58249c6',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5frayleigh_5fext_74',['DPNP_FN_RNG_RAYLEIGH_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558abcd6c3b24ddbbe69a1e776705b276dba',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fshuffle_75',['DPNP_FN_RNG_SHUFFLE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae57add61435f1fe27df7af416aacd162',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fshuffle_5fext_76',['DPNP_FN_RNG_SHUFFLE_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a05795744d8cfd0c99c3607540dc236',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fsrand_77',['DPNP_FN_RNG_SRAND',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9fdb85aaf89a9a23ade5fc73a6a60b4b',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fsrand_5fext_78',['DPNP_FN_RNG_SRAND_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ae0cf8c82c5a808c57953a90659c234b1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fcauchy_79',['DPNP_FN_RNG_STANDARD_CAUCHY',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa14ca7c1b83bc295bebb629e28e80dfc',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fcauchy_5fext_80',['DPNP_FN_RNG_STANDARD_CAUCHY_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1d29beee5d3424e6aca222ed56e3f707',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fexponential_81',['DPNP_FN_RNG_STANDARD_EXPONENTIAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1989558074799d28289de9919eb55c48',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fexponential_5fext_82',['DPNP_FN_RNG_STANDARD_EXPONENTIAL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1f02e752405381ab74767a4b0b42cbaa',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fgamma_83',['DPNP_FN_RNG_STANDARD_GAMMA',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a8f9b10a503f1c853fc633ce370e252d1',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fgamma_5fext_84',['DPNP_FN_RNG_STANDARD_GAMMA_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad962b47912f922a4ec72f1aefe81fe64',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5fnormal_85',['DPNP_FN_RNG_STANDARD_NORMAL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa47904a3ff27ca35a2c69d09d897c29d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5ft_86',['DPNP_FN_RNG_STANDARD_T',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a23ba5ff2630c0a58ea0839afd5909f76',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fstandard_5ft_5fext_87',['DPNP_FN_RNG_STANDARD_T_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1afb7e3342019b75330aba6e1a4abfca',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5ftriangular_88',['DPNP_FN_RNG_TRIANGULAR',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad2fb09fb4c0e41d29a76dffdf992c134',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5ftriangular_5fext_89',['DPNP_FN_RNG_TRIANGULAR_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558add30724342e9da4b6f49d4139c21a41e',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5funiform_90',['DPNP_FN_RNG_UNIFORM',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aa43c5be689c64f6e058fee732c71d549',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5funiform_5fext_91',['DPNP_FN_RNG_UNIFORM_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad5025dde08abd334429a67bddc1f864f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fvonmises_92',['DPNP_FN_RNG_VONMISES',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a62eedd89940f85f26c37b97cc4f80bc6',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fvonmises_5fext_93',['DPNP_FN_RNG_VONMISES_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a74c732efc8cea46d451c573b018e522d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fwald_94',['DPNP_FN_RNG_WALD',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a9b2be3e8c111f7d37813476b1bdb7e91',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fwald_5fext_95',['DPNP_FN_RNG_WALD_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a96bdde1b80a9acff45e11ede77ece529',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fweibull_96',['DPNP_FN_RNG_WEIBULL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a390dd8fed5f213b251eb2c92af0211c6',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fweibull_5fext_97',['DPNP_FN_RNG_WEIBULL_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a1fbafdcfb58875a7dd9b26f3acdf6600',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fzipf_98',['DPNP_FN_RNG_ZIPF',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a59f893fd340c0937b52941bf138d5b19',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5frng_5fzipf_5fext_99',['DPNP_FN_RNG_ZIPF_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558afca9175f1ea7f71a0cf585421ea66a27',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsearchsorted_100',['DPNP_FN_SEARCHSORTED',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a673b312ec7e9a40fa18483ed02d3649d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsort_101',['DPNP_FN_SORT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a99dd510a742f3c15b48092cef64f8aa3',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsqrt_102',['DPNP_FN_SQRT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558af8187e64cd7661fbf4bf2fd04f339e5c',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsqrt_5fext_103',['DPNP_FN_SQRT_EXT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558aece0d851a884f3b66f3d1e6c1f67a540',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fstd_104',['DPNP_FN_STD',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ac0d3143bc0fd7a8f43501a3a8784a148',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fsum_105',['DPNP_FN_SUM',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a5a5f78154de3845f234e34f22d870448',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fvar_106',['DPNP_FN_VAR',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a17750205304e246fad783e631614cf48',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fzeros_107',['DPNP_FN_ZEROS',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558a51216d8cda7e009964d71ddd8c7fbb1d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5ffn_5fzeros_5flike_108',['DPNP_FN_ZEROS_LIKE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#gga8b20590525bff7c7ce4f728d2021b558ad22026553dca7a3084662acf657bba0d',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fbool_109',['DPNP_FT_BOOL',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a1d41c2373d33a46bb47a6791a876c103',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fcmplx128_110',['DPNP_FT_CMPLX128',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a599b693823273a797188b9beb8018052',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fcmplx64_111',['DPNP_FT_CMPLX64',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15af186d251dc2c1d64ce7c7c03a7c6e2d5',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fdouble_112',['DPNP_FT_DOUBLE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15ac84f19e1412dd40492153e4cb0e27739',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5ffloat_113',['DPNP_FT_FLOAT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15aea1ca4f8f623afaaf6072b0b6eb56c76',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fint_114',['DPNP_FT_INT',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a2ca75eef4ff62b379b29390b6efe736f',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5flong_115',['DPNP_FT_LONG',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a8160fd9c1c7bd64515ffa60b8140f208',1,'dpnp_iface_fptr.hpp']]], + ['dpnp_5fft_5fnone_116',['DPNP_FT_NONE',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html#ggaec54569b58e937e84099479f078bce15a4dd2e447249c9f1ed5b4a01263bd8d06',1,'dpnp_iface_fptr.hpp']]] +]; diff --git a/pull/2070/backend_doc/search/functions_0.js b/pull/2070/backend_doc/search/functions_0.js new file mode 100644 index 00000000000..ac48848e7d0 --- /dev/null +++ b/pull/2070/backend_doc/search/functions_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['begin_0',['begin',['../class_d_p_n_p_c__id.html#a1e1427181e175dacfb37d3a042d4876f',1,'DPNPC_id']]], + ['broadcast_5fto_5fshape_1',['broadcast_to_shape',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga5f47f787627aa8dbd02301760482d7d6',1,'DPNPC_id']]] +]; diff --git a/pull/2070/backend_doc/search/functions_1.js b/pull/2070/backend_doc/search/functions_1.js new file mode 100644 index 00000000000..359f19df31e --- /dev/null +++ b/pull/2070/backend_doc/search/functions_1.js @@ -0,0 +1,70 @@ +var searchData= +[ + ['dpnp_5fargmax_5fc_0',['dpnp_argmax_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga0c91dcb81f3a0de00cf1c7326e8feb9c',1,'dpnp_iface.hpp']]], + ['dpnp_5fargmin_5fc_1',['dpnp_argmin_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gab9df32dd9f7107c691c5972a86351d35',1,'dpnp_iface.hpp']]], + ['dpnp_5fargsort_5fc_2',['dpnp_argsort_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gad7ba17bf5aab9a319b59429718622322',1,'dpnp_iface.hpp']]], + ['dpnp_5fchoose_5fc_3',['dpnp_choose_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gade43dedf9297ae8a75c812cf1e59d2c1',1,'dpnp_iface.hpp']]], + ['dpnp_5fcorrelate_5fc_4',['dpnp_correlate_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gac8a963ba01536cad42b8a42d8250314b',1,'dpnp_iface.hpp']]], + ['dpnp_5fcount_5fnonzero_5fc_5',['dpnp_count_nonzero_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga720e05039ce0f0784c8a2e04f7f1c682',1,'dpnp_iface.hpp']]], + ['dpnp_5fcov_5fc_6',['dpnp_cov_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga49f8dd90da75b44e6b733e944c6e7b33',1,'dpnp_iface.hpp']]], + ['dpnp_5fdot_5fc_7',['dpnp_dot_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gaddbabf7c091b81ba8ce90ebc54cdffc8',1,'dpnp_iface.hpp']]], + ['dpnp_5finitval_5fc_8',['dpnp_initval_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga2c1f63f22354673088112c4f248c98a2',1,'dpnp_iface.hpp']]], + ['dpnp_5fmax_5fc_9',['dpnp_max_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga82436cd570953d8e730b2f963db327de',1,'dpnp_iface.hpp']]], + ['dpnp_5fmean_5fc_10',['dpnp_mean_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga9ffb57d8d58fc2d3bc4c76fce7dd4fb4',1,'dpnp_iface.hpp']]], + ['dpnp_5fmedian_5fc_11',['dpnp_median_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga1aec65af16a011e7ac26fb1cd2daf1eb',1,'dpnp_iface.hpp']]], + ['dpnp_5fmemory_5falloc_5fc_12',['dpnp_memory_alloc_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gab577c1444f9e878b90162013bf2c4591',1,'dpnp_iface.hpp']]], + ['dpnp_5fmin_5fc_13',['dpnp_min_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gae183e59a05697d37ecfb659ef783224a',1,'dpnp_iface.hpp']]], + ['dpnp_5fmodf_5fc_14',['dpnp_modf_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gab66364798efa3d954afdc1659383ee54',1,'dpnp_iface.hpp']]], + ['dpnp_5fmultiply_5fc_15',['dpnp_multiply_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gac9fb583c42b950288b305efde244646e',1,'dpnp_gen_2arg_3type_tbl.hpp']]], + ['dpnp_5fnanvar_5fc_16',['dpnp_nanvar_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga09e5c5f507183e0dcd9153acdf970d61',1,'dpnp_iface.hpp']]], + ['dpnp_5fones_5fc_17',['dpnp_ones_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga709d9a7ac1174112ecc6d807e0c0a1e4',1,'dpnp_iface.hpp']]], + ['dpnp_5fones_5flike_5fc_18',['dpnp_ones_like_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gab27ed0161e18e2ff77dae7482fc67ceb',1,'dpnp_iface.hpp']]], + ['dpnp_5fpartition_5fc_19',['dpnp_partition_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gad6b710733eb11c4f51e92cab7e34dcb5',1,'dpnp_iface.hpp']]], + ['dpnp_5fprod_5fc_20',['dpnp_prod_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga6610de7cc5611443e025d9cd7d08b74c',1,'dpnp_iface.hpp']]], + ['dpnp_5fpython_5fconstants_5finitialize_5fc_21',['dpnp_python_constants_initialize_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga96eabd32a2b65f49e715ccdbc33c45d4',1,'constants.hpp']]], + ['dpnp_5fqueue_5fis_5fcpu_5fc_22',['dpnp_queue_is_cpu_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga2df766b3642aa4e94c8cef7927d6022d',1,'dpnp_iface.hpp']]], + ['dpnp_5frng_5fbeta_5fc_23',['dpnp_rng_beta_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga16bad12795c72adc5de076e129890a83',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fbinomial_5fc_24',['dpnp_rng_binomial_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga51221588325d576caf0f235739ef0718',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fchisquare_5fc_25',['dpnp_rng_chisquare_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga97a25a9105c5332d83aae862e6d29d9f',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fexponential_5fc_26',['dpnp_rng_exponential_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga026b7f9552a6cb89e816071c41c43f26',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5ff_5fc_27',['dpnp_rng_f_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga841854c7f53246b62719074088bd0b5b',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fgamma_5fc_28',['dpnp_rng_gamma_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gad54d6118580ab6b1b2c4ff2ba6ef36ca',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fgaussian_5fc_29',['dpnp_rng_gaussian_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga94731fce32598fffe43cb617a684c83a',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fgeometric_5fc_30',['dpnp_rng_geometric_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga430f99caa9b1ce1497c0f6b26ebb4e85',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fgumbel_5fc_31',['dpnp_rng_gumbel_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga78ffe853157e336c03a2773b0713eaa7',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fhypergeometric_5fc_32',['dpnp_rng_hypergeometric_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gab67b8c98406fcacc0fddbb2407ef7755',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5flaplace_5fc_33',['dpnp_rng_laplace_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga31adf1930f42170d8f40d1bd25779e66',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5flogistic_5fc_34',['dpnp_rng_logistic_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac68d320b745cf0b7f008fc27ad29e38c',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5flognormal_5fc_35',['dpnp_rng_lognormal_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaa66de7492a2987bc5f61c87cbb1312c4',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fmultinomial_5fc_36',['dpnp_rng_multinomial_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga80937d0842dd407149ff8a21e5754c2c',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fmultivariate_5fnormal_5fc_37',['dpnp_rng_multivariate_normal_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gad8bd0801def7866f56f24a03cdff0ce7',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fnegative_5fbinomial_5fc_38',['dpnp_rng_negative_binomial_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga9ba783072be992cc228c281c9c5ce3f9',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fnoncentral_5fchisquare_5fc_39',['dpnp_rng_noncentral_chisquare_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gacad7ceee454319a21e31e985855a60f3',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fnormal_5fc_40',['dpnp_rng_normal_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga225ae916386ae4ef6091b089b0dd1fe1',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fpareto_5fc_41',['dpnp_rng_pareto_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga3335ff85936d6ecb6273eac430c73a4e',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fpoisson_5fc_42',['dpnp_rng_poisson_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaccbd86d29e501bdbac9f3b0bb6560d74',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fpower_5fc_43',['dpnp_rng_power_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac0b6211cd01634db4bbb4aca3ab88977',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5frayleigh_5fc_44',['dpnp_rng_rayleigh_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga2ce225aadf9b75ce024eb984e035ab4f',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fshuffle_5fc_45',['dpnp_rng_shuffle_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaeff910810c83051069c6929555429ed9',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fsrand_5fc_46',['dpnp_rng_srand_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga41dd03c85f901c2dee88e709170ee1a1',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5fcauchy_5fc_47',['dpnp_rng_standard_cauchy_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga3234f956d618f70bdbbc95e62085891d',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5fexponential_5fc_48',['dpnp_rng_standard_exponential_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gafe6bbfe559a0b307f07add47ba1dfa0d',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5fgamma_5fc_49',['dpnp_rng_standard_gamma_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gab43bb4c4352d161a1ff20fb79eed1494',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5fnormal_5fc_50',['dpnp_rng_standard_normal_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga125082596bf7b57ccca5f245923e81a1',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fstandard_5ft_5fc_51',['dpnp_rng_standard_t_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga1c20a0068cb5334be486b11dbbec3697',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5ftriangular_5fc_52',['dpnp_rng_triangular_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga35b32eec8a073d2d96551a8256bbcde7',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5funiform_5fc_53',['dpnp_rng_uniform_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga37e231ebdeec9fef8a56743a28770183',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fvonmises_5fc_54',['dpnp_rng_vonmises_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gac1c75311828e64769fda7f49ba212232',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fwald_5fc_55',['dpnp_rng_wald_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gacbdc26ae5f2e1a404d9ce2011613bd16',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fweibull_5fc_56',['dpnp_rng_weibull_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#ga8d3046514e4bccb6d869f1052c4f4406',1,'dpnp_iface_random.hpp']]], + ['dpnp_5frng_5fzipf_5fc_57',['dpnp_rng_zipf_c',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html#gaa681bf7b3ffc6fdd431f1ec2f4dd6d64',1,'dpnp_iface_random.hpp']]], + ['dpnp_5fsearchsorted_5fc_58',['dpnp_searchsorted_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga066e660d9841964898e1051cdd66f713',1,'dpnp_iface.hpp']]], + ['dpnp_5fsort_5fc_59',['dpnp_sort_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga26e5f6303907fe4b4496fb2cc0685407',1,'dpnp_iface.hpp']]], + ['dpnp_5fsqrt_5fc_60',['dpnp_sqrt_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga2e8ccd7745314eb662b47c41324076b0',1,'dpnp_gen_1arg_2type_tbl.hpp']]], + ['dpnp_5fstd_5fc_61',['dpnp_std_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga41839ae42b40874e5405889e50e13358',1,'dpnp_iface.hpp']]], + ['dpnp_5fsum_5fc_62',['dpnp_sum_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gaba1f836500ed61109153fb4afef55c89',1,'dpnp_iface.hpp']]], + ['dpnp_5fvar_5fc_63',['dpnp_var_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga91baef74014e4e8b8ce22013cc361a66',1,'dpnp_iface.hpp']]], + ['dpnp_5fzeros_5fc_64',['dpnp_zeros_c',['../group___b_a_c_k_e_n_d___a_p_i.html#gacd17ba5828ba92fae45ab9c3b82419ae',1,'dpnp_iface.hpp']]], + ['dpnp_5fzeros_5flike_5fc_65',['dpnp_zeros_like_c',['../group___b_a_c_k_e_n_d___a_p_i.html#ga701ba350a76dc444f53a7e7d59c7a143',1,'dpnp_iface.hpp']]], + ['dpnpc_5fid_66',['dpnpc_id',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae67edf544bf0edce8e1cd74d68d8dc76',1,'DPNPC_id::DPNPC_id(pointer __ptr, const std::vector< size_type > &__shape, const std::vector< size_type > &__strides)'],['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga1e1d9e72e8f1a92a6e25d7f563562b11',1,'DPNPC_id::DPNPC_id(DPCTLSyclQueueRef q_ref, pointer __ptr, const std::vector< size_type > &__shape)']]] +]; diff --git a/pull/2070/backend_doc/search/functions_2.js b/pull/2070/backend_doc/search/functions_2.js new file mode 100644 index 00000000000..d073a8ad39c --- /dev/null +++ b/pull/2070/backend_doc/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['end_0',['end',['../class_d_p_n_p_c__id.html#aa70a960886549f3d75137ac573a4c828',1,'DPNPC_id']]] +]; diff --git a/pull/2070/backend_doc/search/functions_3.js b/pull/2070/backend_doc/search/functions_3.js new file mode 100644 index 00000000000..66b8d5437b7 --- /dev/null +++ b/pull/2070/backend_doc/search/functions_3.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['get_5fdpnp_5ffunction_5fptr_0',['get_dpnp_function_ptr',['../group___b_a_c_k_e_n_d___a_p_i.html#ga5d37203d4448c22f7b046710d639fd4e',1,'dpnp_iface_fptr.hpp']]], + ['get_5fdpnp_5ffunction_5fptr1_1',['get_dpnp_function_ptr1',['../group___b_a_c_k_e_n_d___a_p_i.html#ga77f60af228fba6ec73c66217bd7a4ee7',1,'dpnp_iface_fptr.hpp']]], + ['get_5fid_5fby_5fxyz_5finkernel_2',['get_id_by_xyz_inkernel',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga064c245ca5bae67e4c986442e22d484e',1,'dpnp_utils.hpp']]], + ['get_5foutput_5fsize_3',['get_output_size',['../class_d_p_n_p_c__id.html#a79168b2adbe07a8099747374bba2c483',1,'DPNPC_id']]], + ['get_5fshape_5foffsets_5finkernel_4',['get_shape_offsets_inkernel',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga4706968b8ce210d69309a0cae330cea5',1,'dpnp_utils.hpp']]], + ['get_5fxyz_5fby_5fid_5',['get_xyz_by_id',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga81df4307ea53001fc552b6cd76c0ebf8',1,'dpnp_utils.hpp']]], + ['get_5fxyz_5fid_5fby_5fid_5finkernel_6',['get_xyz_id_by_id_inkernel',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#gad37eb9ce0ad29590cc931a9b6cd538e2',1,'dpnp_utils.hpp']]] +]; diff --git a/pull/2070/backend_doc/search/functions_4.js b/pull/2070/backend_doc/search/functions_4.js new file mode 100644 index 00000000000..b1b06f123bb --- /dev/null +++ b/pull/2070/backend_doc/search/functions_4.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['mcg59_5fdelete_0',['MCG59_Delete',['../group___b_a_c_k_e_n_d___a_p_i.html#gad658fb513fc4ab24115573d8bdbf38df',1,'dpnp_random_state.hpp']]], + ['mcg59_5finitscalarseed_1',['MCG59_InitScalarSeed',['../group___b_a_c_k_e_n_d___a_p_i.html#ga8d41fc0affbac587992402c23ff9b930',1,'dpnp_random_state.hpp']]], + ['mt19937_5fdelete_2',['MT19937_Delete',['../group___b_a_c_k_e_n_d___a_p_i.html#gaff33ecfcdcc418196d3361d37c53f5f0',1,'dpnp_random_state.hpp']]], + ['mt19937_5finitscalarseed_3',['MT19937_InitScalarSeed',['../group___b_a_c_k_e_n_d___a_p_i.html#ga27e7a066bbe9e7bb42ea0bb4aa80fa5a',1,'dpnp_random_state.hpp']]], + ['mt19937_5finitvectorseed_4',['MT19937_InitVectorSeed',['../group___b_a_c_k_e_n_d___a_p_i.html#ga5aa43f73b2b057034fd5f29cd86ea246',1,'dpnp_random_state.hpp']]] +]; diff --git a/pull/2070/backend_doc/search/functions_5.js b/pull/2070/backend_doc/search/functions_5.js new file mode 100644 index 00000000000..2bbbefd0bb5 --- /dev/null +++ b/pull/2070/backend_doc/search/functions_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['operator_2b_2b_0',['operator++',['../class_d_p_n_p___u_s_m__iterator.html#a995480447406ffd7421ddbd4006637be',1,'DPNP_USM_iterator::operator++()'],['../class_d_p_n_p___u_s_m__iterator.html#a8f31f980fbfb90d1e9367438a7351e26',1,'DPNP_USM_iterator::operator++(int)']]], + ['operator_3c_3c_1',['operator<<',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga2d677a923f4dc4c31e302b0c3bb692f0',1,'operator<<(std::ostream &out, const std::vector< T > &vec): dpnp_utils.hpp'],['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga632dede9569431596d7423005389a147',1,'operator<<(std::ostream &out, DPNPFuncType elem): dpnp_utils.hpp']]], + ['operator_5b_5d_2',['operator[]',['../class_d_p_n_p_c__id.html#a2e98849be3b71da7efdfbccdcb26c010',1,'DPNPC_id']]] +]; diff --git a/pull/2070/backend_doc/search/functions_6.js b/pull/2070/backend_doc/search/functions_6.js new file mode 100644 index 00000000000..b40977a6b97 --- /dev/null +++ b/pull/2070/backend_doc/search/functions_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['set_5faxes_0',['set_axes',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#ga87a0b53a5ae1b69762f201cd6521e210',1,'DPNPC_id']]], + ['set_5faxis_1',['set_axis',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html#gae4294907d97ba7d7a630d5097b435d0a',1,'DPNPC_id']]] +]; diff --git a/pull/2070/backend_doc/search/groups_0.js b/pull/2070/backend_doc/search/groups_0.js new file mode 100644 index 00000000000..e9b299697f1 --- /dev/null +++ b/pull/2070/backend_doc/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['api_0',['api',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'Backend C++ library interface API'],['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'Backend C++ library interface RANDOM API'],['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'Backend C++ library runtime interface API']]] +]; diff --git a/pull/2070/backend_doc/search/groups_1.js b/pull/2070/backend_doc/search/groups_1.js new file mode 100644 index 00000000000..33c925bfeab --- /dev/null +++ b/pull/2070/backend_doc/search/groups_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['backend_20c_20library_20interface_20api_0',['Backend C++ library interface API',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'']]], + ['backend_20c_20library_20interface_20random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['backend_20c_20library_20runtime_20interface_20api_2',['Backend C++ library runtime interface API',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'']]], + ['backend_20c_20library_20utilities_3',['Backend C++ library utilities',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/groups_2.js b/pull/2070/backend_doc/search/groups_2.js new file mode 100644 index 00000000000..a3131a59166 --- /dev/null +++ b/pull/2070/backend_doc/search/groups_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['c_20library_20interface_20api_0',['Backend C++ library interface API',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'']]], + ['c_20library_20interface_20random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['c_20library_20runtime_20interface_20api_2',['Backend C++ library runtime interface API',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'']]], + ['c_20library_20utilities_3',['Backend C++ library utilities',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/groups_3.js b/pull/2070/backend_doc/search/groups_3.js new file mode 100644 index 00000000000..73ab6edd2b5 --- /dev/null +++ b/pull/2070/backend_doc/search/groups_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['interface_20api_0',['interface api',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'Backend C++ library interface API'],['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'Backend C++ library runtime interface API']]], + ['interface_20random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/groups_4.js b/pull/2070/backend_doc/search/groups_4.js new file mode 100644 index 00000000000..36481f8f988 --- /dev/null +++ b/pull/2070/backend_doc/search/groups_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['library_20interface_20api_0',['Backend C++ library interface API',['../group___b_a_c_k_e_n_d___a_p_i.html',1,'']]], + ['library_20interface_20random_20api_1',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['library_20runtime_20interface_20api_2',['Backend C++ library runtime interface API',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'']]], + ['library_20utilities_3',['Backend C++ library utilities',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/groups_5.js b/pull/2070/backend_doc/search/groups_5.js new file mode 100644 index 00000000000..6e95e9d81ef --- /dev/null +++ b/pull/2070/backend_doc/search/groups_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['random_20api_0',['Backend C++ library interface RANDOM API',['../group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html',1,'']]], + ['runtime_20interface_20api_1',['Backend C++ library runtime interface API',['../group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/groups_6.js b/pull/2070/backend_doc/search/groups_6.js new file mode 100644 index 00000000000..525e04bceb7 --- /dev/null +++ b/pull/2070/backend_doc/search/groups_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['utilities_0',['Backend C++ library utilities',['../group___b_a_c_k_e_n_d___u_t_i_l_s.html',1,'']]] +]; diff --git a/pull/2070/backend_doc/search/mag.svg b/pull/2070/backend_doc/search/mag.svg new file mode 100644 index 00000000000..ffb6cf0d025 --- /dev/null +++ b/pull/2070/backend_doc/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/pull/2070/backend_doc/search/mag_d.svg b/pull/2070/backend_doc/search/mag_d.svg new file mode 100644 index 00000000000..4122773f92c --- /dev/null +++ b/pull/2070/backend_doc/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/pull/2070/backend_doc/search/mag_sel.svg b/pull/2070/backend_doc/search/mag_sel.svg new file mode 100644 index 00000000000..553dba87732 --- /dev/null +++ b/pull/2070/backend_doc/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/pull/2070/backend_doc/search/mag_seld.svg b/pull/2070/backend_doc/search/mag_seld.svg new file mode 100644 index 00000000000..c906f84c83a --- /dev/null +++ b/pull/2070/backend_doc/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/pull/2070/backend_doc/search/related_0.js b/pull/2070/backend_doc/search/related_0.js new file mode 100644 index 00000000000..1b7366cd575 --- /dev/null +++ b/pull/2070/backend_doc/search/related_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['operator_3c_3c_0',['operator<<',['../class_d_p_n_p___u_s_m__iterator.html#ad8717a8073f17dc82cbfc74a9fbcc777',1,'DPNP_USM_iterator']]] +]; diff --git a/pull/2070/backend_doc/search/search.css b/pull/2070/backend_doc/search/search.css new file mode 100644 index 00000000000..19f76f9d5b9 --- /dev/null +++ b/pull/2070/backend_doc/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/pull/2070/backend_doc/search/search.js b/pull/2070/backend_doc/search/search.js new file mode 100644 index 00000000000..6fd40c67701 --- /dev/null +++ b/pull/2070/backend_doc/search/search.js @@ -0,0 +1,840 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/elementwise_functions/simplify_iteration_space.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    simplify_iteration_space.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29#include <vector>
    +
    30
    +
    31namespace dpnp::extensions::py_internal
    +
    32{
    +
    33namespace py = pybind11;
    +
    34
    +
    35void simplify_iteration_space(int &,
    +
    36 const py::ssize_t *const &,
    +
    37 std::vector<py::ssize_t> const &,
    +
    38 std::vector<py::ssize_t> const &,
    +
    39 std::vector<py::ssize_t> &,
    +
    40 std::vector<py::ssize_t> &,
    +
    41 std::vector<py::ssize_t> &,
    +
    42 py::ssize_t &,
    +
    43 py::ssize_t &);
    +
    44
    +
    45void simplify_iteration_space_3(int &,
    +
    46 const py::ssize_t *const &,
    +
    47 // src1
    +
    48 std::vector<py::ssize_t> const &,
    +
    49 // src2
    +
    50 std::vector<py::ssize_t> const &,
    +
    51 // dst
    +
    52 std::vector<py::ssize_t> const &,
    +
    53 // output
    +
    54 std::vector<py::ssize_t> &,
    +
    55 std::vector<py::ssize_t> &,
    +
    56 std::vector<py::ssize_t> &,
    +
    57 std::vector<py::ssize_t> &,
    +
    58 py::ssize_t &,
    +
    59 py::ssize_t &,
    +
    60 py::ssize_t &);
    +
    61} // namespace dpnp::extensions::py_internal
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/sin_8hpp_source.html b/pull/2070/backend_doc/sin_8hpp_source.html new file mode 100644 index 00000000000..e655c01c878 --- /dev/null +++ b/pull/2070/backend_doc/sin_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/sin.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    sin.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_sin(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/sinh_8hpp_source.html b/pull/2070/backend_doc/sinh_8hpp_source.html new file mode 100644 index 00000000000..1a6020dbe8e --- /dev/null +++ b/pull/2070/backend_doc/sinh_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/sinh.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    sinh.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_sinh(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/splitbar.png b/pull/2070/backend_doc/splitbar.png new file mode 100644 index 00000000000..fe895f2c581 Binary files /dev/null and b/pull/2070/backend_doc/splitbar.png differ diff --git a/pull/2070/backend_doc/splitbard.png b/pull/2070/backend_doc/splitbard.png new file mode 100644 index 00000000000..8367416d757 Binary files /dev/null and b/pull/2070/backend_doc/splitbard.png differ diff --git a/pull/2070/backend_doc/sqr_8hpp_source.html b/pull/2070/backend_doc/sqr_8hpp_source.html new file mode 100644 index 00000000000..136ffb20aef --- /dev/null +++ b/pull/2070/backend_doc/sqr_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/sqr.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    sqr.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_sqr(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/sqrt_8hpp_source.html b/pull/2070/backend_doc/sqrt_8hpp_source.html new file mode 100644 index 00000000000..df9a17246d4 --- /dev/null +++ b/pull/2070/backend_doc/sqrt_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/sqrt.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    sqrt.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_sqrt(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/struct_d_p_n_p_func_data-members.html b/pull/2070/backend_doc/struct_d_p_n_p_func_data-members.html new file mode 100644 index 00000000000..090e5190a7e --- /dev/null +++ b/pull/2070/backend_doc/struct_d_p_n_p_func_data-members.html @@ -0,0 +1,115 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    DPNPFuncData Member List
    +
    +
    + +

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

    + + + + + + + + +
    DPNPFuncData(const DPNPFuncType gen_type, void *gen_ptr, const DPNPFuncType type_no_fp64, void *ptr_no_fp64) (defined in DPNPFuncData)DPNPFuncDatainline
    DPNPFuncData(const DPNPFuncType gen_type, void *gen_ptr) (defined in DPNPFuncData)DPNPFuncDatainline
    DPNPFuncData() (defined in DPNPFuncData)DPNPFuncDatainline
    ptrDPNPFuncData
    ptr_no_fp64DPNPFuncData
    return_typeDPNPFuncData
    return_type_no_fp64DPNPFuncData
    +
    + + + + diff --git a/pull/2070/backend_doc/struct_d_p_n_p_func_data.html b/pull/2070/backend_doc/struct_d_p_n_p_func_data.html new file mode 100644 index 00000000000..27b31681ecd --- /dev/null +++ b/pull/2070/backend_doc/struct_d_p_n_p_func_data.html @@ -0,0 +1,327 @@ + + + + + + + +DPNP C++ backend kernel library: DPNPFuncData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Contains information about the C++ backend function. + More...

    + +

    #include <dpnp_iface_fptr.hpp>

    + + + + + + +

    +Public Member Functions

     DPNPFuncData (const DPNPFuncType gen_type, void *gen_ptr, const DPNPFuncType type_no_fp64, void *ptr_no_fp64)
     
     DPNPFuncData (const DPNPFuncType gen_type, void *gen_ptr)
     
    + + + + + + + + + +

    +Public Attributes

    DPNPFuncType return_type
     
    void * ptr
     
    DPNPFuncType return_type_no_fp64
     
    void * ptr_no_fp64
     
    +

    Detailed Description

    +

    Contains information about the C++ backend function.

    +

    The structure defines the types that are used by get_dpnp_function_ptr.

    + +

    Definition at line 263 of file dpnp_iface_fptr.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ DPNPFuncData() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DPNPFuncData::DPNPFuncData (const DPNPFuncType gen_type,
    void * gen_ptr,
    const DPNPFuncType type_no_fp64,
    void * ptr_no_fp64 
    )
    +
    +inline
    +
    + +

    Definition at line 265 of file dpnp_iface_fptr.hpp.

    + +
    +
    + +

    ◆ DPNPFuncData() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    DPNPFuncData::DPNPFuncData (const DPNPFuncType gen_type,
    void * gen_ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 273 of file dpnp_iface_fptr.hpp.

    + +
    +
    + +

    ◆ DPNPFuncData() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    DPNPFuncData::DPNPFuncData ()
    +
    +inline
    +
    + +

    Definition at line 277 of file dpnp_iface_fptr.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ ptr

    + +
    +
    + + + + +
    void* DPNPFuncData::ptr
    +
    +

    C++ backend function pointer

    + +

    Definition at line 281 of file dpnp_iface_fptr.hpp.

    + +
    +
    + +

    ◆ ptr_no_fp64

    + +
    +
    + + + + +
    void* DPNPFuncData::ptr_no_fp64
    +
    +

    alternative C++ backend function pointer when no fp64 support by device

    + +

    Definition at line 284 of file dpnp_iface_fptr.hpp.

    + +
    +
    + +

    ◆ return_type

    + +
    +
    + + + + +
    DPNPFuncType DPNPFuncData::return_type
    +
    +

    return type identifier which expected by the ptr function

    + +

    Definition at line 279 of file dpnp_iface_fptr.hpp.

    + +
    +
    + +

    ◆ return_type_no_fp64

    + +
    +
    + + + + +
    DPNPFuncType DPNPFuncData::return_type_no_fp64
    +
    +

    alternative return type identifier when no fp64 support by device

    + +

    Definition at line 282 of file dpnp_iface_fptr.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/struct_d_p_n_p_func_data.js b/pull/2070/backend_doc/struct_d_p_n_p_func_data.js new file mode 100644 index 00000000000..26870c295d0 --- /dev/null +++ b/pull/2070/backend_doc/struct_d_p_n_p_func_data.js @@ -0,0 +1,7 @@ +var struct_d_p_n_p_func_data = +[ + [ "ptr", "struct_d_p_n_p_func_data.html#af40fd22f5954384788121f817fb02f0d", null ], + [ "ptr_no_fp64", "struct_d_p_n_p_func_data.html#aa88f90ce507ebffe7462bba4d2df6c76", null ], + [ "return_type", "struct_d_p_n_p_func_data.html#a59c07232bc3830e89d5abe5447a24816", null ], + [ "return_type_no_fp64", "struct_d_p_n_p_func_data.html#a591831d25d776b9ce6ef0a328bda9ddc", null ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/structare__same.html b/pull/2070/backend_doc/structare__same.html new file mode 100644 index 00000000000..bc57fbdef1b --- /dev/null +++ b/pull/2070/backend_doc/structare__same.html @@ -0,0 +1,136 @@ + + + + + + + +DPNP C++ backend kernel library: are_same< T, Ts > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    are_same< T, Ts > Struct Template Reference
    +
    +
    + +

    #include <dpnp_fptr.hpp>

    +
    +Inheritance diagram for are_same< T, Ts >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for are_same< T, Ts >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +

    Detailed Description

    +
    template<typename T, typename... Ts>
    +struct are_same< T, Ts >

    Implements std::is_same<> with variadic number of types to compare with and when type T has to match every type from Ts sequence.

    + +

    Definition at line 178 of file dpnp_fptr.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structare__same__coll__graph.map b/pull/2070/backend_doc/structare__same__coll__graph.map new file mode 100644 index 00000000000..15e7834e351 --- /dev/null +++ b/pull/2070/backend_doc/structare__same__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structare__same__coll__graph.md5 b/pull/2070/backend_doc/structare__same__coll__graph.md5 new file mode 100644 index 00000000000..ab72cd26432 --- /dev/null +++ b/pull/2070/backend_doc/structare__same__coll__graph.md5 @@ -0,0 +1 @@ +cbad384be1395d1210f7d7c2c962a47d \ No newline at end of file diff --git a/pull/2070/backend_doc/structare__same__coll__graph.png b/pull/2070/backend_doc/structare__same__coll__graph.png new file mode 100644 index 00000000000..bb9db75a030 Binary files /dev/null and b/pull/2070/backend_doc/structare__same__coll__graph.png differ diff --git a/pull/2070/backend_doc/structare__same__inherit__graph.map b/pull/2070/backend_doc/structare__same__inherit__graph.map new file mode 100644 index 00000000000..15e7834e351 --- /dev/null +++ b/pull/2070/backend_doc/structare__same__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structare__same__inherit__graph.md5 b/pull/2070/backend_doc/structare__same__inherit__graph.md5 new file mode 100644 index 00000000000..ab72cd26432 --- /dev/null +++ b/pull/2070/backend_doc/structare__same__inherit__graph.md5 @@ -0,0 +1 @@ +cbad384be1395d1210f7d7c2c962a47d \ No newline at end of file diff --git a/pull/2070/backend_doc/structare__same__inherit__graph.png b/pull/2070/backend_doc/structare__same__inherit__graph.png new file mode 100644 index 00000000000..bb9db75a030 Binary files /dev/null and b/pull/2070/backend_doc/structare__same__inherit__graph.png differ diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory-members.html new file mode 100644 index 00000000000..c265d1c7efc --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::DotContigFactory< fnT, varT > Member List
    +
    +
    + +

    This is the complete list of members for dpnp::extensions::blas::DotContigFactory< fnT, varT >, including all inherited members.

    + + +
    get() (defined in dpnp::extensions::blas::DotContigFactory< fnT, varT >)dpnp::extensions::blas::DotContigFactory< fnT, varT >inline
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory.html new file mode 100644 index 00000000000..6506630c04a --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dot_contig_factory.html @@ -0,0 +1,152 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::DotContigFactory< fnT, varT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::DotContigFactory< fnT, varT > Struct Template Reference
    +
    +
    + + + + +

    +Public Member Functions

    fnT get ()
     
    +

    Detailed Description

    +
    template<typename fnT, typename varT>
    +struct dpnp::extensions::blas::DotContigFactory< fnT, varT >
    +

    Definition at line 84 of file dot.hpp.

    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    +
    +template<typename fnT , typename varT >
    + + + + + +
    + + + + + + + +
    fnT dpnp::extensions::blas::DotContigFactory< fnT, varT >::get ()
    +
    +inline
    +
    + +

    Definition at line 86 of file dot.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/extensions/blas/dot.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory-members.html new file mode 100644 index 00000000000..2e916369b03 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::DotcContigFactory< fnT, varT > Member List
    +
    +
    + +

    This is the complete list of members for dpnp::extensions::blas::DotcContigFactory< fnT, varT >, including all inherited members.

    + + +
    get() (defined in dpnp::extensions::blas::DotcContigFactory< fnT, varT >)dpnp::extensions::blas::DotcContigFactory< fnT, varT >inline
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory.html new file mode 100644 index 00000000000..4e341c6572d --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotc_contig_factory.html @@ -0,0 +1,152 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::DotcContigFactory< fnT, varT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::DotcContigFactory< fnT, varT > Struct Template Reference
    +
    +
    + + + + +

    +Public Member Functions

    fnT get ()
     
    +

    Detailed Description

    +
    template<typename fnT, typename varT>
    +struct dpnp::extensions::blas::DotcContigFactory< fnT, varT >
    +

    Definition at line 85 of file dotc.hpp.

    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    +
    +template<typename fnT , typename varT >
    + + + + + +
    + + + + + + + +
    fnT dpnp::extensions::blas::DotcContigFactory< fnT, varT >::get ()
    +
    +inline
    +
    + +

    Definition at line 87 of file dotc.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/extensions/blas/dotc.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory-members.html new file mode 100644 index 00000000000..c378bace3fe --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::DotuContigFactory< fnT, varT > Member List
    +
    +
    + +

    This is the complete list of members for dpnp::extensions::blas::DotuContigFactory< fnT, varT >, including all inherited members.

    + + +
    get() (defined in dpnp::extensions::blas::DotuContigFactory< fnT, varT >)dpnp::extensions::blas::DotuContigFactory< fnT, varT >inline
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory.html new file mode 100644 index 00000000000..80193205d33 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1_dotu_contig_factory.html @@ -0,0 +1,152 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::DotuContigFactory< fnT, varT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::DotuContigFactory< fnT, varT > Struct Template Reference
    +
    +
    + + + + +

    +Public Member Functions

    fnT get ()
     
    +

    Detailed Description

    +
    template<typename fnT, typename varT>
    +struct dpnp::extensions::blas::DotuContigFactory< fnT, varT >
    +

    Definition at line 85 of file dotu.hpp.

    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    +
    +template<typename fnT , typename varT >
    + + + + + +
    + + + + + + + +
    fnT dpnp::extensions::blas::DotuContigFactory< fnT, varT >::get ()
    +
    +inline
    +
    + +

    Definition at line 87 of file dotu.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/extensions/blas/dotu.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory-members.html new file mode 100644 index 00000000000..6b8897dbdcf --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::types::DotTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory.html new file mode 100644 index 00000000000..7c8d6278e5e --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dot_type_pair_support_factory.html @@ -0,0 +1,166 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::types::DotTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::types::DotTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dot<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::blas::types::DotTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dot<T> function.

    +
    Template Parameters
    + + +
    TType of input and output arrays.
    +
    +
    + +

    Definition at line 46 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::blas::types::DotTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 48 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory-members.html new file mode 100644 index 00000000000..93882445c29 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::types::DotcTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory.html new file mode 100644 index 00000000000..9a0431e6bef --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotc_type_pair_support_factory.html @@ -0,0 +1,172 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::types::DotcTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::types::DotcTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dotc<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::blas::types::DotcTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dotc<T> function.

    +
    Template Parameters
    + + +
    TType of input and output arrays.
    +
    +
    + +

    Definition at line 63 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::blas::types::DotcTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 65 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory-members.html new file mode 100644 index 00000000000..df23d3c26b3 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::types::DotuTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory.html new file mode 100644 index 00000000000..661031a8048 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_dotu_type_pair_support_factory.html @@ -0,0 +1,172 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::types::DotuTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::types::DotuTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dotu<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::blas::types::DotuTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::dotu<T> function.

    +
    Template Parameters
    + + +
    TType of input and output arrays.
    +
    +
    + +

    Definition at line 86 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::blas::types::DotuTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 88 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory-members.html new file mode 100644 index 00000000000..d391f92586a --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::types::GemmBatchTypePairSupportFactory< Tab, Tc > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory.html new file mode 100644 index 00000000000..98ae9ac3ce5 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_batch_type_pair_support_factory.html @@ -0,0 +1,181 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::types::GemmBatchTypePairSupportFactory< Tab, Tc > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::types::GemmBatchTypePairSupportFactory< Tab, Tc > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemm_batch<Tab, Tc> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename Tab, typename Tc>
    +struct dpnp::extensions::blas::types::GemmBatchTypePairSupportFactory< Tab, Tc >

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemm_batch<Tab, Tc> function.

    +
    Template Parameters
    + + + +
    TabType of arrays containing input matrices A and B.
    TcType of array containing output matrix C.
    +
    +
    + +

    Definition at line 142 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename Tab , typename Tc >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::blas::types::GemmBatchTypePairSupportFactory< Tab, Tc >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, std::int8_t, Tc, std::int32_t>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, std::int8_t, Tc, float>,
    +
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, sycl::half, Tc, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, sycl::half, Tc, sycl::half>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, float, Tc, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, double, Tc, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab,
    +
    std::complex<float>,
    +
    Tc,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab,
    +
    std::complex<double>,
    +
    Tc,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 144 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory-members.html new file mode 100644 index 00000000000..167cbc1988f --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::types::GemmTypePairSupportFactory< Tab, Tc > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory.html new file mode 100644 index 00000000000..d2870091cb5 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemm_type_pair_support_factory.html @@ -0,0 +1,181 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::types::GemmTypePairSupportFactory< Tab, Tc > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::types::GemmTypePairSupportFactory< Tab, Tc > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemm<Tab, Tc> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename Tab, typename Tc>
    +struct dpnp::extensions::blas::types::GemmTypePairSupportFactory< Tab, Tc >

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemm<Tab, Tc> function.

    +
    Template Parameters
    + + + +
    TabType of arrays containing input matrices A and B.
    TcType of array containing output matrix C.
    +
    +
    + +

    Definition at line 110 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename Tab , typename Tc >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::blas::types::GemmTypePairSupportFactory< Tab, Tc >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, std::int8_t, Tc, std::int32_t>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, std::int8_t, Tc, float>,
    +
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, sycl::half, Tc, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, sycl::half, Tc, sycl::half>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, float, Tc, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab, double, Tc, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab,
    +
    std::complex<float>,
    +
    Tc,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<Tab,
    +
    std::complex<double>,
    +
    Tc,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 112 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory-members.html new file mode 100644 index 00000000000..4a9b7772fad --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::blas::types::GemvTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory.html new file mode 100644 index 00000000000..79bbf56166c --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1blas_1_1types_1_1_gemv_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::blas::types::GemvTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::blas::types::GemvTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemv<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::blas::types::GemvTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL BLAS library provides support in oneapi::mkl::blas::gemv<T> function.

    +
    Template Parameters
    + + +
    TType of input and output arrays.
    +
    +
    + +

    Definition at line 173 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::blas::types::GemvTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 175 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type.html new file mode 100644 index 00000000000..3b8c4ca8e20 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type.html @@ -0,0 +1,113 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::fft::PrecisionType< prec > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::fft::PrecisionType< prec > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<mkl_dft::precision prec>
    +struct dpnp::extensions::fft::PrecisionType< prec >
    +

    Definition at line 36 of file fft_utils.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4-members.html new file mode 100644 index 00000000000..67d5193fe6d --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::fft::PrecisionType< mkl_dft::precision::DOUBLE > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4.html new file mode 100644 index 00000000000..481214d855e --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_d_o_u_b_l_e_01_4.html @@ -0,0 +1,138 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::fft::PrecisionType< mkl_dft::precision::DOUBLE > Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::fft::PrecisionType< mkl_dft::precision::DOUBLE > Struct Reference
    +
    +
    + + + + +

    +Public Types

    using type = double
     
    +

    Detailed Description

    +
    +

    Definition at line 45 of file fft_utils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + + + + +
    using dpnp::extensions::fft::PrecisionType< mkl_dft::precision::DOUBLE >::type = double
    +
    + +

    Definition at line 47 of file fft_utils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4-members.html new file mode 100644 index 00000000000..a5f158c6b6a --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::fft::PrecisionType< mkl_dft::precision::SINGLE > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4.html new file mode 100644 index 00000000000..d4c1ff1404d --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_precision_type_3_01mkl__dft_1_1precision_1_1_s_i_n_g_l_e_01_4.html @@ -0,0 +1,138 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::fft::PrecisionType< mkl_dft::precision::SINGLE > Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::fft::PrecisionType< mkl_dft::precision::SINGLE > Struct Reference
    +
    +
    + + + + +

    +Public Types

    using type = float
     
    +

    Detailed Description

    +
    +

    Definition at line 39 of file fft_utils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + + + + +
    using dpnp::extensions::fft::PrecisionType< mkl_dft::precision::SINGLE >::type = float
    +
    + +

    Definition at line 41 of file fft_utils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type-members.html new file mode 100644 index 00000000000..e1bc6c2f2ab --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type-members.html @@ -0,0 +1,110 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::fft::ScaleType< prec, dom, is_forward > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type.html new file mode 100644 index 00000000000..b9dfd95d420 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type.html @@ -0,0 +1,161 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::fft::ScaleType< prec, dom, is_forward > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::fft::ScaleType< prec, dom, is_forward > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type_in = void
     
    using type_out = void
     
    +

    Detailed Description

    +
    template<mkl_dft::precision prec, mkl_dft::domain dom, bool is_forward>
    +struct dpnp::extensions::fft::ScaleType< prec, dom, is_forward >
    +

    Definition at line 53 of file fft_utils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type_in

    + +
    +
    +
    +template<mkl_dft::precision prec, mkl_dft::domain dom, bool is_forward>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, dom, is_forward >::type_in = void
    +
    + +

    Definition at line 55 of file fft_utils.hpp.

    + +
    +
    + +

    ◆ type_out

    + +
    +
    +
    +template<mkl_dft::precision prec, mkl_dft::domain dom, bool is_forward>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, dom, is_forward >::type_out = void
    +
    + +

    Definition at line 56 of file fft_utils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4-members.html new file mode 100644 index 00000000000..584006efee1 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4-members.html @@ -0,0 +1,111 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4.html new file mode 100644 index 00000000000..c67a8c505d2 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_c_o_m_p_l_e_x_00_01is__fwd_01_4.html @@ -0,0 +1,181 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using prec_type = typename PrecisionType< prec >::type
     
    using type_in = std::complex< prec_type >
     
    using type_out = std::complex< prec_type >
     
    +

    Detailed Description

    +
    template<mkl_dft::precision prec, bool is_fwd>
    +struct dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >
    +

    Definition at line 82 of file fft_utils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ prec_type

    + +
    +
    +
    +template<mkl_dft::precision prec, bool is_fwd>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >::prec_type = typename PrecisionType<prec>::type
    +
    + +

    Definition at line 84 of file fft_utils.hpp.

    + +
    +
    + +

    ◆ type_in

    + +
    +
    +
    +template<mkl_dft::precision prec, bool is_fwd>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >::type_in = std::complex<prec_type>
    +
    + +

    Definition at line 85 of file fft_utils.hpp.

    + +
    +
    + +

    ◆ type_out

    + +
    +
    +
    +template<mkl_dft::precision prec, bool is_fwd>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::COMPLEX, is_fwd >::type_out = std::complex<prec_type>
    +
    + +

    Definition at line 86 of file fft_utils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4-members.html new file mode 100644 index 00000000000..7c9089c7cf4 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4-members.html @@ -0,0 +1,111 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4.html new file mode 100644 index 00000000000..9b479f0c068 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01false_01_4.html @@ -0,0 +1,181 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using prec_type = typename PrecisionType< prec >::type
     
    using type_in = std::complex< prec_type >
     
    using type_out = prec_type
     
    +

    Detailed Description

    +
    template<mkl_dft::precision prec>
    +struct dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false >
    +

    Definition at line 72 of file fft_utils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ prec_type

    + +
    +
    +
    +template<mkl_dft::precision prec>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false >::prec_type = typename PrecisionType<prec>::type
    +
    + +

    Definition at line 74 of file fft_utils.hpp.

    + +
    +
    + +

    ◆ type_in

    + +
    +
    +
    +template<mkl_dft::precision prec>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false >::type_in = std::complex<prec_type>
    +
    + +

    Definition at line 75 of file fft_utils.hpp.

    + +
    +
    + +

    ◆ type_out

    + +
    +
    +
    +template<mkl_dft::precision prec>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, false >::type_out = prec_type
    +
    + +

    Definition at line 76 of file fft_utils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4-members.html new file mode 100644 index 00000000000..35ac3dcdd68 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4-members.html @@ -0,0 +1,111 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4.html new file mode 100644 index 00000000000..30e0d9ca147 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1fft_1_1_scale_type_3_01prec_00_01mkl__dft_1_1domain_1_1_r_e_a_l_00_01true_01_4.html @@ -0,0 +1,181 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using prec_type = typename PrecisionType< prec >::type
     
    using type_in = prec_type
     
    using type_out = std::complex< prec_type >
     
    +

    Detailed Description

    +
    template<mkl_dft::precision prec>
    +struct dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true >
    +

    Definition at line 62 of file fft_utils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ prec_type

    + +
    +
    +
    +template<mkl_dft::precision prec>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true >::prec_type = typename PrecisionType<prec>::type
    +
    + +

    Definition at line 64 of file fft_utils.hpp.

    + +
    +
    + +

    ◆ type_in

    + +
    +
    +
    +template<mkl_dft::precision prec>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true >::type_in = prec_type
    +
    + +

    Definition at line 65 of file fft_utils.hpp.

    + +
    +
    + +

    ◆ type_out

    + +
    +
    +
    +template<mkl_dft::precision prec>
    + + + + +
    using dpnp::extensions::fft::ScaleType< prec, mkl_dft::domain::REAL, true >::type_out = std::complex<prec_type>
    +
    + +

    Definition at line 66 of file fft_utils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of-members.html new file mode 100644 index 00000000000..c2a7b983d20 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::helper::value_type_of< T > Member List
    +
    +
    + +

    This is the complete list of members for dpnp::extensions::lapack::helper::value_type_of< T >, including all inherited members.

    + + +
    type typedef (defined in dpnp::extensions::lapack::helper::value_type_of< T >)dpnp::extensions::lapack::helper::value_type_of< T >
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of.html new file mode 100644 index 00000000000..e6ef90671c9 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of.html @@ -0,0 +1,141 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::helper::value_type_of< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::helper::value_type_of< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = T
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::helper::value_type_of< T >
    +

    Definition at line 42 of file common_helpers.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using dpnp::extensions::lapack::helper::value_type_of< T >::type = T
    +
    + +

    Definition at line 44 of file common_helpers.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4-members.html new file mode 100644 index 00000000000..f75906201b0 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::helper::value_type_of< std::complex< T > > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4.html new file mode 100644 index 00000000000..3f012b051a5 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1helper_1_1value__type__of_3_01std_1_1complex_3_01_t_01_4_01_4.html @@ -0,0 +1,141 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::helper::value_type_of< std::complex< T > > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::helper::value_type_of< std::complex< T > > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = T
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::helper::value_type_of< std::complex< T > >
    +

    Definition at line 48 of file common_helpers.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using dpnp::extensions::lapack::helper::value_type_of< std::complex< T > >::type = T
    +
    + +

    Definition at line 50 of file common_helpers.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory-members.html new file mode 100644 index 00000000000..707f990f1ef --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::GeqrfBatchTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory.html new file mode 100644 index 00000000000..a11005b0940 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_batch_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::GeqrfBatchTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::GeqrfBatchTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::geqrf_batch<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::GeqrfBatchTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::geqrf_batch<T> function.

    +
    Template Parameters
    + + +
    TType of array containing the input matrices to be QR factorized in batch mode. Upon execution, each matrix in the batch is transformed to output arrays representing their respective orthogonal matrix Q and upper triangular matrix R.
    +
    +
    + +

    Definition at line 49 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::GeqrfBatchTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 51 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory-members.html new file mode 100644 index 00000000000..d5dd1927d29 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::GeqrfTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory.html new file mode 100644 index 00000000000..26301888be7 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_geqrf_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::GeqrfTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::GeqrfTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::geqrf<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::GeqrfTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::geqrf<T> function.

    +
    Template Parameters
    + + +
    TType of array containing the input matrix to be QR factorized. Upon execution, this matrix is transformed to output arrays representing the orthogonal matrix Q and the upper triangular matrix R.
    +
    +
    + +

    Definition at line 76 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::GeqrfTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 78 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory-members.html new file mode 100644 index 00000000000..563e1a611de --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::GesvTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory.html new file mode 100644 index 00000000000..560c3364c38 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesv_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::GesvTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::GesvTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::gesv<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::GesvTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::gesv<T> function.

    +
    Template Parameters
    + + +
    TType of array containing the coefficient matrix A and the array of multiple dependent variables. Upon execution, the array of multiple dependent variables will be overwritten with the solution.
    +
    +
    + +

    Definition at line 103 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::GesvTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 105 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory-members.html new file mode 100644 index 00000000000..0aa04fc5a0e --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::GesvdTypePairSupportFactory< T, RealT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory.html new file mode 100644 index 00000000000..a13bd104ce8 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_gesvd_type_pair_support_factory.html @@ -0,0 +1,170 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::GesvdTypePairSupportFactory< T, RealT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::GesvdTypePairSupportFactory< T, RealT > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::gesvd<T, RealT> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T, typename RealT>
    +struct dpnp::extensions::lapack::types::GesvdTypePairSupportFactory< T, RealT >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::gesvd<T, RealT> function.

    +
    Template Parameters
    + + + +
    TType of array containing input matrix A and output matrices U and VT of singular vectors.
    RealTType of output array containing singular values of A.
    +
    +
    + +

    Definition at line 130 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T , typename RealT >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::GesvdTypePairSupportFactory< T, RealT >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, RealT, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, RealT, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, std::complex<float>, RealT, float>,
    +
    dpctl_td_ns::
    +
    TypePairDefinedEntry<T, std::complex<double>, RealT, double>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 132 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory-members.html new file mode 100644 index 00000000000..0071fdc4583 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::GetrfBatchTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory.html new file mode 100644 index 00000000000..7b924451420 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_batch_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::GetrfBatchTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::GetrfBatchTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrf_batch<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::GetrfBatchTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrf_batch<T> function.

    +
    Template Parameters
    + + +
    TType of array containing input matrix, as well as the output array for storing the LU factorization.
    +
    +
    + +

    Definition at line 177 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::GetrfBatchTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 179 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory-members.html new file mode 100644 index 00000000000..9efffc0e5fb --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::GetrfTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory.html new file mode 100644 index 00000000000..f1ac6a90295 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrf_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::GetrfTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::GetrfTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrf<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::GetrfTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrf<T> function.

    +
    Template Parameters
    + + +
    TType of array containing input matrix, as well as the output array for storing the LU factorization.
    +
    +
    + +

    Definition at line 151 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::GetrfTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 153 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory-members.html new file mode 100644 index 00000000000..46ff130b236 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::GetriBatchTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory.html new file mode 100644 index 00000000000..a9502255891 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getri_batch_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::GetriBatchTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::GetriBatchTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getri_batch<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::GetriBatchTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getri_batch<T> function.

    +
    Template Parameters
    + + +
    TType of array containing input matrix (LU-factored form), as well as the output array for storing the inverse of the matrix.
    +
    +
    + +

    Definition at line 203 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::GetriBatchTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 205 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory-members.html new file mode 100644 index 00000000000..60d8b321a9e --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::GetrsTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory.html new file mode 100644 index 00000000000..5fd39af4914 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_getrs_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::GetrsTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::GetrsTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrs<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::GetrsTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::getrs<T> function.

    +
    Template Parameters
    + + +
    TType of array containing input matrix (LU-factored form) and the array of multiple dependent variables, as well as the output array for storing the solutions to a system of linear equations.
    +
    +
    + +

    Definition at line 231 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::GetrsTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 233 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory-members.html new file mode 100644 index 00000000000..6f768d07271 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::HeevdTypePairSupportFactory< T, RealT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory.html new file mode 100644 index 00000000000..f433aa1ac5a --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_heevd_type_pair_support_factory.html @@ -0,0 +1,168 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::HeevdTypePairSupportFactory< T, RealT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::HeevdTypePairSupportFactory< T, RealT > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::heevd<T, RealT> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T, typename RealT>
    +struct dpnp::extensions::lapack::types::HeevdTypePairSupportFactory< T, RealT >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::heevd<T, RealT> function.

    +
    Template Parameters
    + + + +
    TType of array containing input matrix A and an output array with eigenvectors.
    RealTType of output array containing eigenvalues of A.
    +
    +
    + +

    Definition at line 258 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T , typename RealT >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::HeevdTypePairSupportFactory< T, RealT >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::
    +
    TypePairDefinedEntry<T, std::complex<double>, RealT, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, std::complex<float>, RealT, float>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 260 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory-members.html new file mode 100644 index 00000000000..54a3613b02a --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::OrgqrBatchTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory.html new file mode 100644 index 00000000000..b726dc22d82 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_batch_type_pair_support_factory.html @@ -0,0 +1,166 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::OrgqrBatchTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::OrgqrBatchTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::orgqr_batch<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::OrgqrBatchTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::orgqr_batch<T> function.

    +
    Template Parameters
    + + +
    TType of array containing the matrix A, each from a separate instance in the batch, from which the elementary reflectors were generated (as in QR factorization). Upon execution, each array in the batch is overwritten with its respective orthonormal matrix Q.
    +
    +
    + +

    Definition at line 280 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::OrgqrBatchTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 282 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory-members.html new file mode 100644 index 00000000000..3684fdadd47 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::OrgqrTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory.html new file mode 100644 index 00000000000..c2df3538483 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_orgqr_type_pair_support_factory.html @@ -0,0 +1,166 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::OrgqrTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::OrgqrTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::orgqr<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::OrgqrTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::orgqr<T> function.

    +
    Template Parameters
    + + +
    TType of array containing the matrix A from which the elementary reflectors were generated (as in QR factorization). Upon execution, the array is overwritten with the orthonormal matrix Q.
    +
    +
    + +

    Definition at line 299 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::OrgqrTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 301 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory-members.html new file mode 100644 index 00000000000..fec92eebb7f --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::PotrfBatchTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory.html new file mode 100644 index 00000000000..e132b33cb0c --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_batch_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::PotrfBatchTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::PotrfBatchTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::potrf<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::PotrfBatchTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::potrf<T> function.

    +
    Template Parameters
    + + +
    TType of array containing input matrices, as well as the output arrays for storing the Cholesky factor L.
    +
    +
    + +

    Definition at line 343 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::PotrfBatchTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 345 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory-members.html new file mode 100644 index 00000000000..be569fa7499 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::PotrfTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory.html new file mode 100644 index 00000000000..0f8a49f84f7 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_potrf_type_pair_support_factory.html @@ -0,0 +1,174 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::PotrfTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::PotrfTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::potrf<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::PotrfTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::potrf<T> function.

    +
    Template Parameters
    + + +
    TType of array containing input matrix, as well as the output array for storing the Cholesky factor L.
    +
    +
    + +

    Definition at line 317 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::PotrfTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, T, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, T, float>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 319 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory-members.html new file mode 100644 index 00000000000..0568377c5ff --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::SyevdTypePairSupportFactory< T, RealT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory.html new file mode 100644 index 00000000000..96ec06b1429 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_syevd_type_pair_support_factory.html @@ -0,0 +1,166 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::SyevdTypePairSupportFactory< T, RealT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::SyevdTypePairSupportFactory< T, RealT > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::syevd<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T, typename RealT>
    +struct dpnp::extensions::lapack::types::SyevdTypePairSupportFactory< T, RealT >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::syevd<T> function.

    +
    Template Parameters
    + + +
    TType of array containing input matrix A and an output arrays with eigenvectors and eigenvectors.
    +
    +
    + +

    Definition at line 369 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T , typename RealT >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::SyevdTypePairSupportFactory< T, RealT >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T, double, RealT, double>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T, float, RealT, float>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 371 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory-members.html new file mode 100644 index 00000000000..4c575348b57 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::UngqrBatchTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory.html new file mode 100644 index 00000000000..95e6c6736b4 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_batch_type_pair_support_factory.html @@ -0,0 +1,172 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::UngqrBatchTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::UngqrBatchTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::ungqr_batch<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::UngqrBatchTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::ungqr_batch<T> function.

    +
    Template Parameters
    + + +
    TType of array containing the matrix A, each from a separate instance in the batch, from which the elementary reflectors were generated (as in QR factorization). Upon execution, each array in the batch is overwritten with its respective complex unitary matrix Q.
    +
    +
    + +

    Definition at line 390 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::UngqrBatchTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 392 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory-members.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory-members.html new file mode 100644 index 00000000000..b06c7afebf5 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::extensions::lapack::types::UngqrTypePairSupportFactory< T > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory.html b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory.html new file mode 100644 index 00000000000..88df09dc73e --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1extensions_1_1lapack_1_1types_1_1_ungqr_type_pair_support_factory.html @@ -0,0 +1,172 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::extensions::lapack::types::UngqrTypePairSupportFactory< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::extensions::lapack::types::UngqrTypePairSupportFactory< T > Struct Template Reference
    +
    +
    + +

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::ungqr<T> function. + More...

    + +

    #include <types_matrix.hpp>

    + + + + +

    +Static Public Attributes

    static constexpr bool is_defined
     
    +

    Detailed Description

    +
    template<typename T>
    +struct dpnp::extensions::lapack::types::UngqrTypePairSupportFactory< T >

    A factory to define pairs of supported types for which MKL LAPACK library provides support in oneapi::mkl::lapack::ungqr<T> function.

    +
    Template Parameters
    + + +
    TType of array containing the matrix A from which the elementary reflectors were generated (as in QR factorization). Upon execution, the array is overwritten with the complex unitary matrix Q.
    +
    +
    + +

    Definition at line 415 of file types_matrix.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_defined

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool dpnp::extensions::lapack::types::UngqrTypePairSupportFactory< T >::is_defined
    +
    +staticconstexpr
    +
    +Initial value:
    = std::disjunction<
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<float>,
    +
    T,
    +
    std::complex<float>>,
    +
    dpctl_td_ns::TypePairDefinedEntry<T,
    +
    std::complex<double>,
    +
    T,
    +
    std::complex<double>>,
    +
    +
    dpctl_td_ns::NotDefinedEntry>::is_defined
    +
    +

    Definition at line 417 of file types_matrix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor-members.html new file mode 100644 index 00000000000..20adcc0bb74 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor-members.html @@ -0,0 +1,113 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::degrees::DegreesFunctor< argT, resT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor.html new file mode 100644 index 00000000000..99b515d651a --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1degrees_1_1_degrees_functor.html @@ -0,0 +1,253 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::degrees::DegreesFunctor< argT, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::degrees::DegreesFunctor< argT, resT > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using is_constant = typename std::false_type
     
    using supports_vec = typename std::true_type
     
    using supports_sg_loadstore = typename std::true_type
     
    + + + + + + +

    +Public Member Functions

    resT operator() (const argT &x) const
     
    template<int vec_sz>
    sycl::vec< resT, vec_sz > operator() (const sycl::vec< argT, vec_sz > &x) const
     
    +

    Detailed Description

    +
    template<typename argT, typename resT>
    +struct dpnp::kernels::degrees::DegreesFunctor< argT, resT >
    +

    Definition at line 33 of file degrees.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ is_constant

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::degrees::DegreesFunctor< argT, resT >::is_constant = typename std::false_type
    +
    + +

    Definition at line 36 of file degrees.hpp.

    + +
    +
    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::degrees::DegreesFunctor< argT, resT >::supports_sg_loadstore = typename std::true_type
    +
    + +

    Definition at line 42 of file degrees.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::degrees::DegreesFunctor< argT, resT >::supports_vec = typename std::true_type
    +
    + +

    Definition at line 40 of file degrees.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + + +
    + + + + + + + + +
    resT dpnp::kernels::degrees::DegreesFunctor< argT, resT >::operator() (const argT & x) const
    +
    +inline
    +
    + +

    Definition at line 44 of file degrees.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename argT , typename resT >
    +
    +template<int vec_sz>
    + + + + + +
    + + + + + + + + +
    sycl::vec< resT, vec_sz > dpnp::kernels::degrees::DegreesFunctor< argT, resT >::operator() (const sycl::vec< argT, vec_sz > & x) const
    +
    +inline
    +
    + +

    Definition at line 50 of file degrees.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/degrees.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor-members.html new file mode 100644 index 00000000000..be81de07d45 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor-members.html @@ -0,0 +1,112 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::fabs::FabsFunctor< argT, resT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor.html new file mode 100644 index 00000000000..ea01cc77336 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fabs_1_1_fabs_functor.html @@ -0,0 +1,218 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::fabs::FabsFunctor< argT, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::fabs::FabsFunctor< argT, resT > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using is_constant = typename std::false_type
     
    using supports_vec = typename std::false_type
     
    using supports_sg_loadstore = typename std::true_type
     
    + + + +

    +Public Member Functions

    resT operator() (const argT &x) const
     
    +

    Detailed Description

    +
    template<typename argT, typename resT>
    +struct dpnp::kernels::fabs::FabsFunctor< argT, resT >
    +

    Definition at line 33 of file fabs.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ is_constant

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::fabs::FabsFunctor< argT, resT >::is_constant = typename std::false_type
    +
    + +

    Definition at line 36 of file fabs.hpp.

    + +
    +
    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::fabs::FabsFunctor< argT, resT >::supports_sg_loadstore = typename std::true_type
    +
    + +

    Definition at line 42 of file fabs.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::fabs::FabsFunctor< argT, resT >::supports_vec = typename std::false_type
    +
    + +

    Definition at line 40 of file fabs.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + + +
    + + + + + + + + +
    resT dpnp::kernels::fabs::FabsFunctor< argT, resT >::operator() (const argT & x) const
    +
    +inline
    +
    + +

    Definition at line 44 of file fabs.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/fabs.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fix_1_1_fix_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fix_1_1_fix_functor-members.html new file mode 100644 index 00000000000..5bccd71c2cb --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fix_1_1_fix_functor-members.html @@ -0,0 +1,112 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::fix::FixFunctor< argT, resT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fix_1_1_fix_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fix_1_1_fix_functor.html new file mode 100644 index 00000000000..80a84b8e058 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fix_1_1_fix_functor.html @@ -0,0 +1,218 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::fix::FixFunctor< argT, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::fix::FixFunctor< argT, resT > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using is_constant = typename std::false_type
     
    using supports_vec = typename std::false_type
     
    using supports_sg_loadstore = typename std::true_type
     
    + + + +

    +Public Member Functions

    resT operator() (const argT &x) const
     
    +

    Detailed Description

    +
    template<typename argT, typename resT>
    +struct dpnp::kernels::fix::FixFunctor< argT, resT >
    +

    Definition at line 33 of file fix.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ is_constant

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::fix::FixFunctor< argT, resT >::is_constant = typename std::false_type
    +
    + +

    Definition at line 36 of file fix.hpp.

    + +
    +
    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::fix::FixFunctor< argT, resT >::supports_sg_loadstore = typename std::true_type
    +
    + +

    Definition at line 42 of file fix.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::fix::FixFunctor< argT, resT >::supports_vec = typename std::false_type
    +
    + +

    Definition at line 40 of file fix.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + + +
    + + + + + + + + +
    resT dpnp::kernels::fix::FixFunctor< argT, resT >::operator() (const argT & x) const
    +
    +inline
    +
    + +

    Definition at line 44 of file fix.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/fix.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor-members.html new file mode 100644 index 00000000000..e1376061917 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor-members.html @@ -0,0 +1,112 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT > Member List
    +
    +
    + +

    This is the complete list of members for dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >, including all inherited members.

    + + + + + +
    operator()(const argT1 &in1, const argT2 &in2) const (defined in dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >)dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >inline
    operator()(const sycl::vec< argT1, vec_sz > &in1, const sycl::vec< argT2, vec_sz > &in2) const (defined in dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >)dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >inline
    supports_sg_loadstore typedef (defined in dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >)dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >
    supports_vec typedef (defined in dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >)dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor.html new file mode 100644 index 00000000000..63784a7e87e --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmax_1_1_fmax_functor.html @@ -0,0 +1,253 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using supports_sg_loadstore = std::negation< std::disjunction< tu_ns::is_complex< argT1 >, tu_ns::is_complex< argT2 > > >
     
    using supports_vec = std::conjunction< std::is_same< argT1, argT2 >, std::disjunction< std::is_floating_point< argT1 >, std::is_same< argT1, sycl::half > > >
     
    + + + + + + +

    +Public Member Functions

    resT operator() (const argT1 &in1, const argT2 &in2) const
     
    template<int vec_sz>
    sycl::vec< resT, vec_sz > operator() (const sycl::vec< argT1, vec_sz > &in1, const sycl::vec< argT2, vec_sz > &in2) const
     
    +

    Detailed Description

    +
    template<typename argT1, typename argT2, typename resT>
    +struct dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >
    +

    Definition at line 40 of file fmax.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >::supports_sg_loadstore = std::negation< std::disjunction<tu_ns::is_complex<argT1>, tu_ns::is_complex<argT2> >>
    +
    + +

    Definition at line 42 of file fmax.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >::supports_vec = std::conjunction<std::is_same<argT1, argT2>, std::disjunction<std::is_floating_point<argT1>, std::is_same<argT1, sycl::half> >>
    +
    + +

    Definition at line 44 of file fmax.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    resT dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >::operator() (const argT1 & in1,
    const argT2 & in2 
    ) const
    +
    +inline
    +
    + +

    Definition at line 49 of file fmax.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    +
    +template<int vec_sz>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    sycl::vec< resT, vec_sz > dpnp::kernels::fmax::FmaxFunctor< argT1, argT2, resT >::operator() (const sycl::vec< argT1, vec_sz > & in1,
    const sycl::vec< argT2, vec_sz > & in2 
    ) const
    +
    +inline
    +
    + +

    Definition at line 77 of file fmax.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/fmax.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor-members.html new file mode 100644 index 00000000000..aa694dc1a92 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor-members.html @@ -0,0 +1,112 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT > Member List
    +
    +
    + +

    This is the complete list of members for dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >, including all inherited members.

    + + + + + +
    operator()(const argT1 &in1, const argT2 &in2) const (defined in dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >)dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >inline
    operator()(const sycl::vec< argT1, vec_sz > &in1, const sycl::vec< argT2, vec_sz > &in2) const (defined in dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >)dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >inline
    supports_sg_loadstore typedef (defined in dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >)dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >
    supports_vec typedef (defined in dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >)dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor.html new file mode 100644 index 00000000000..df36edec2b7 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmin_1_1_fmin_functor.html @@ -0,0 +1,253 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using supports_sg_loadstore = std::negation< std::disjunction< tu_ns::is_complex< argT1 >, tu_ns::is_complex< argT2 > > >
     
    using supports_vec = std::conjunction< std::is_same< argT1, argT2 >, std::disjunction< std::is_floating_point< argT1 >, std::is_same< argT1, sycl::half > > >
     
    + + + + + + +

    +Public Member Functions

    resT operator() (const argT1 &in1, const argT2 &in2) const
     
    template<int vec_sz>
    sycl::vec< resT, vec_sz > operator() (const sycl::vec< argT1, vec_sz > &in1, const sycl::vec< argT2, vec_sz > &in2) const
     
    +

    Detailed Description

    +
    template<typename argT1, typename argT2, typename resT>
    +struct dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >
    +

    Definition at line 40 of file fmin.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >::supports_sg_loadstore = std::negation< std::disjunction<tu_ns::is_complex<argT1>, tu_ns::is_complex<argT2> >>
    +
    + +

    Definition at line 42 of file fmin.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >::supports_vec = std::conjunction<std::is_same<argT1, argT2>, std::disjunction<std::is_floating_point<argT1>, std::is_same<argT1, sycl::half> >>
    +
    + +

    Definition at line 44 of file fmin.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    resT dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >::operator() (const argT1 & in1,
    const argT2 & in2 
    ) const
    +
    +inline
    +
    + +

    Definition at line 49 of file fmin.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    +
    +template<int vec_sz>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    sycl::vec< resT, vec_sz > dpnp::kernels::fmin::FminFunctor< argT1, argT2, resT >::operator() (const sycl::vec< argT1, vec_sz > & in1,
    const sycl::vec< argT2, vec_sz > & in2 
    ) const
    +
    +inline
    +
    + +

    Definition at line 77 of file fmin.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/fmin.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor-members.html new file mode 100644 index 00000000000..4b990c6e31e --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor-members.html @@ -0,0 +1,112 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT > Member List
    +
    +
    + +

    This is the complete list of members for dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >, including all inherited members.

    + + + + + +
    operator()(const argT1 &in1, const argT2 &in2) const (defined in dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >)dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >inline
    operator()(const sycl::vec< argT1, vec_sz > &in1, const sycl::vec< argT2, vec_sz > &in2) const (defined in dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >)dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >inline
    supports_sg_loadstore typedef (defined in dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >)dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >
    supports_vec typedef (defined in dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >)dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor.html new file mode 100644 index 00000000000..33c982cb343 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1fmod_1_1_fmod_functor.html @@ -0,0 +1,253 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using supports_sg_loadstore = typename std::true_type
     
    using supports_vec = std::negation< std::conjunction< std::is_integral< argT1 >, std::is_integral< argT2 > > >
     
    + + + + + + +

    +Public Member Functions

    resT operator() (const argT1 &in1, const argT2 &in2) const
     
    template<int vec_sz>
    sycl::vec< resT, vec_sz > operator() (const sycl::vec< argT1, vec_sz > &in1, const sycl::vec< argT2, vec_sz > &in2) const
     
    +

    Detailed Description

    +
    template<typename argT1, typename argT2, typename resT>
    +struct dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >
    +

    Definition at line 33 of file fmod.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >::supports_sg_loadstore = typename std::true_type
    +
    + +

    Definition at line 35 of file fmod.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >::supports_vec = std::negation< std::conjunction<std::is_integral<argT1>, std::is_integral<argT2> >>
    +
    + +

    Definition at line 36 of file fmod.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    resT dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >::operator() (const argT1 & in1,
    const argT2 & in2 
    ) const
    +
    +inline
    +
    + +

    Definition at line 39 of file fmod.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    +
    +template<int vec_sz>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    sycl::vec< resT, vec_sz > dpnp::kernels::fmod::FmodFunctor< argT1, argT2, resT >::operator() (const sycl::vec< argT1, vec_sz > & in1,
    const sycl::vec< argT2, vec_sz > & in2 
    ) const
    +
    +inline
    +
    + +

    Definition at line 54 of file fmod.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/fmod.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor-members.html new file mode 100644 index 00000000000..cfdb62225f6 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor-members.html @@ -0,0 +1,111 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor.html new file mode 100644 index 00000000000..30a681ae33a --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1heaviside_1_1_heaviside_functor.html @@ -0,0 +1,208 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using supports_sg_loadstore = std::negation< std::disjunction< tu_ns::is_complex< argT1 >, tu_ns::is_complex< argT2 > > >
     
    using supports_vec = typename std::false_type
     
    + + + +

    +Public Member Functions

    resT operator() (const argT1 &in1, const argT2 &in2) const
     
    +

    Detailed Description

    +
    template<typename argT1, typename argT2, typename resT>
    +struct dpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT >
    +

    Definition at line 40 of file heaviside.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT >::supports_sg_loadstore = std::negation< std::disjunction<tu_ns::is_complex<argT1>, tu_ns::is_complex<argT2> >>
    +
    + +

    Definition at line 42 of file heaviside.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT >::supports_vec = typename std::false_type
    +
    + +

    Definition at line 44 of file heaviside.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    resT dpnp::kernels::heaviside::HeavisideFunctor< argT1, argT2, resT >::operator() (const argT1 & in1,
    const argT2 & in2 
    ) const
    +
    +inline
    +
    + +

    Definition at line 46 of file heaviside.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/heaviside.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor-members.html new file mode 100644 index 00000000000..d540ac6a00d --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor-members.html @@ -0,0 +1,111 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor.html new file mode 100644 index 00000000000..bcbe357744b --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1logaddexp2_1_1_logaddexp2_functor.html @@ -0,0 +1,208 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using supports_sg_loadstore = std::true_type
     
    using supports_vec = std::false_type
     
    + + + +

    +Public Member Functions

    resT operator() (const argT1 &in1, const argT2 &in2) const
     
    +

    Detailed Description

    +
    template<typename argT1, typename argT2, typename resT>
    +struct dpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT >
    +

    Definition at line 60 of file logaddexp2.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT >::supports_sg_loadstore = std::true_type
    +
    + +

    Definition at line 62 of file logaddexp2.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + +
    using dpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT >::supports_vec = std::false_type
    +
    + +

    Definition at line 63 of file logaddexp2.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename argT1 , typename argT2 , typename resT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    resT dpnp::kernels::logaddexp2::Logaddexp2Functor< argT1, argT2, resT >::operator() (const argT1 & in1,
    const argT2 & in2 
    ) const
    +
    +inline
    +
    + +

    Definition at line 65 of file logaddexp2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/logaddexp2.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1radians_1_1_radians_functor-members.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1radians_1_1_radians_functor-members.html new file mode 100644 index 00000000000..fb263c5f3b9 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1radians_1_1_radians_functor-members.html @@ -0,0 +1,113 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    dpnp::kernels::radians::RadiansFunctor< argT, resT > Member List
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/structdpnp_1_1kernels_1_1radians_1_1_radians_functor.html b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1radians_1_1_radians_functor.html new file mode 100644 index 00000000000..9707f6666e6 --- /dev/null +++ b/pull/2070/backend_doc/structdpnp_1_1kernels_1_1radians_1_1_radians_functor.html @@ -0,0 +1,253 @@ + + + + + + + +DPNP C++ backend kernel library: dpnp::kernels::radians::RadiansFunctor< argT, resT > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    dpnp::kernels::radians::RadiansFunctor< argT, resT > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using is_constant = typename std::false_type
     
    using supports_vec = typename std::true_type
     
    using supports_sg_loadstore = typename std::true_type
     
    + + + + + + +

    +Public Member Functions

    resT operator() (const argT &x) const
     
    template<int vec_sz>
    sycl::vec< resT, vec_sz > operator() (const sycl::vec< argT, vec_sz > &x) const
     
    +

    Detailed Description

    +
    template<typename argT, typename resT>
    +struct dpnp::kernels::radians::RadiansFunctor< argT, resT >
    +

    Definition at line 33 of file radians.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ is_constant

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::radians::RadiansFunctor< argT, resT >::is_constant = typename std::false_type
    +
    + +

    Definition at line 36 of file radians.hpp.

    + +
    +
    + +

    ◆ supports_sg_loadstore

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::radians::RadiansFunctor< argT, resT >::supports_sg_loadstore = typename std::true_type
    +
    + +

    Definition at line 42 of file radians.hpp.

    + +
    +
    + +

    ◆ supports_vec

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + +
    using dpnp::kernels::radians::RadiansFunctor< argT, resT >::supports_vec = typename std::true_type
    +
    + +

    Definition at line 40 of file radians.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename argT , typename resT >
    + + + + + +
    + + + + + + + + +
    resT dpnp::kernels::radians::RadiansFunctor< argT, resT >::operator() (const argT & x) const
    +
    +inline
    +
    + +

    Definition at line 44 of file radians.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename argT , typename resT >
    +
    +template<int vec_sz>
    + + + + + +
    + + + + + + + + +
    sycl::vec< resT, vec_sz > dpnp::kernels::radians::RadiansFunctor< argT, resT >::operator() (const sycl::vec< argT, vec_sz > & x) const
    +
    +inline
    +
    + +

    Definition at line 50 of file radians.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /github/workspace/dpnp/backend/kernels/elementwise_functions/radians.hpp
    • +
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/structengine__struct-members.html b/pull/2070/backend_doc/structengine__struct-members.html new file mode 100644 index 00000000000..5ee40ca7721 --- /dev/null +++ b/pull/2070/backend_doc/structengine__struct-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    engine_struct Member List
    +
    +
    + +

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

    + + +
    engine (defined in engine_struct)engine_struct
    +
    + + + + diff --git a/pull/2070/backend_doc/structengine__struct.html b/pull/2070/backend_doc/structengine__struct.html new file mode 100644 index 00000000000..bd61a2fce8c --- /dev/null +++ b/pull/2070/backend_doc/structengine__struct.html @@ -0,0 +1,150 @@ + + + + + + + +DPNP C++ backend kernel library: engine_struct Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    engine_struct Struct Reference
    +
    +
    +
    +Inheritance diagram for engine_struct:
    +
    +
    Inheritance graph
    + + + + + + + +
    [legend]
    + + + + +

    +Public Attributes

    void * engine
     
    +

    Detailed Description

    +
    +

    Definition at line 52 of file dpnp_random_state.hpp.

    +

    Member Data Documentation

    + +

    ◆ engine

    + +
    +
    + + + + +
    void* engine_struct::engine
    +
    + +

    Definition at line 54 of file dpnp_random_state.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structengine__struct__inherit__graph.map b/pull/2070/backend_doc/structengine__struct__inherit__graph.map new file mode 100644 index 00000000000..1349462b8d0 --- /dev/null +++ b/pull/2070/backend_doc/structengine__struct__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/pull/2070/backend_doc/structengine__struct__inherit__graph.md5 b/pull/2070/backend_doc/structengine__struct__inherit__graph.md5 new file mode 100644 index 00000000000..a362c8f4631 --- /dev/null +++ b/pull/2070/backend_doc/structengine__struct__inherit__graph.md5 @@ -0,0 +1 @@ +3f651144788a9ef175eb3221bcdd3121 \ No newline at end of file diff --git a/pull/2070/backend_doc/structengine__struct__inherit__graph.png b/pull/2070/backend_doc/structengine__struct__inherit__graph.png new file mode 100644 index 00000000000..48e9682ac16 Binary files /dev/null and b/pull/2070/backend_doc/structengine__struct__inherit__graph.png differ diff --git a/pull/2070/backend_doc/structfunc__type__map__factory__t-members.html b/pull/2070/backend_doc/structfunc__type__map__factory__t-members.html new file mode 100644 index 00000000000..eccde015267 --- /dev/null +++ b/pull/2070/backend_doc/structfunc__type__map__factory__t-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    func_type_map_factory_t< Ps > Member List
    +
    +
    + +

    This is the complete list of members for func_type_map_factory_t< Ps >, including all inherited members.

    + + +
    find_type typedef (defined in func_type_map_factory_t< Ps >)func_type_map_factory_t< Ps >
    +
    + + + + diff --git a/pull/2070/backend_doc/structfunc__type__map__factory__t.html b/pull/2070/backend_doc/structfunc__type__map__factory__t.html new file mode 100644 index 00000000000..9419e397957 --- /dev/null +++ b/pull/2070/backend_doc/structfunc__type__map__factory__t.html @@ -0,0 +1,167 @@ + + + + + + + +DPNP C++ backend kernel library: func_type_map_factory_t< Ps > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    func_type_map_factory_t< Ps > Struct Template Reference
    +
    +
    + +

    #include <dpnp_fptr.hpp>

    +
    +Inheritance diagram for func_type_map_factory_t< Ps >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for func_type_map_factory_t< Ps >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    + + + + + +

    +Public Types

    template<DPNPFuncType FuncType>
    using find_type = typename decltype(get_pair(std::integral_constant< DPNPFuncType, FuncType >{}))::type
     
    +

    Detailed Description

    +
    template<typename... Ps>
    +struct func_type_map_factory_t< Ps >

    An internal structure to create a map of Data type enum value associated with C++ type

    + +

    Definition at line 91 of file dpnp_fptr.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ find_type

    + +
    +
    +
    +template<typename... Ps>
    +
    +template<DPNPFuncType FuncType>
    + + + + +
    using func_type_map_factory_t< Ps >::find_type = typename decltype(get_pair( std::integral_constant<DPNPFuncType, FuncType>{}))::type
    +
    + +

    Definition at line 96 of file dpnp_fptr.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.map b/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.map new file mode 100644 index 00000000000..a9303d9ae5e --- /dev/null +++ b/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.md5 b/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.md5 new file mode 100644 index 00000000000..920fb95e638 --- /dev/null +++ b/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.md5 @@ -0,0 +1 @@ +5ef8024347a3835624d349547799eec1 \ No newline at end of file diff --git a/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.png b/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.png new file mode 100644 index 00000000000..1948038fba2 Binary files /dev/null and b/pull/2070/backend_doc/structfunc__type__map__factory__t__coll__graph.png differ diff --git a/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.map b/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.map new file mode 100644 index 00000000000..a9303d9ae5e --- /dev/null +++ b/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.md5 b/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.md5 new file mode 100644 index 00000000000..920fb95e638 --- /dev/null +++ b/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.md5 @@ -0,0 +1 @@ +5ef8024347a3835624d349547799eec1 \ No newline at end of file diff --git a/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.png b/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.png new file mode 100644 index 00000000000..1948038fba2 Binary files /dev/null and b/pull/2070/backend_doc/structfunc__type__map__factory__t__inherit__graph.png differ diff --git a/pull/2070/backend_doc/structfunc__type__pair__t-members.html b/pull/2070/backend_doc/structfunc__type__pair__t-members.html new file mode 100644 index 00000000000..3d2388b8769 --- /dev/null +++ b/pull/2070/backend_doc/structfunc__type__pair__t-members.html @@ -0,0 +1,110 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    func_type_pair_t< FuncType, T > Member List
    +
    +
    + +

    This is the complete list of members for func_type_pair_t< FuncType, T >, including all inherited members.

    + + + +
    get_pair(std::integral_constant< DPNPFuncType, FuncType >) (defined in func_type_pair_t< FuncType, T >)func_type_pair_t< FuncType, T >inlinestatic
    type typedef (defined in func_type_pair_t< FuncType, T >)func_type_pair_t< FuncType, T >
    +
    + + + + diff --git a/pull/2070/backend_doc/structfunc__type__pair__t.html b/pull/2070/backend_doc/structfunc__type__pair__t.html new file mode 100644 index 00000000000..603716ea8e1 --- /dev/null +++ b/pull/2070/backend_doc/structfunc__type__pair__t.html @@ -0,0 +1,181 @@ + + + + + + + +DPNP C++ backend kernel library: func_type_pair_t< FuncType, T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    func_type_pair_t< FuncType, T > Struct Template Reference
    +
    +
    + +

    #include <dpnp_fptr.hpp>

    + + + + +

    +Public Types

    using type = T
     
    + + + +

    +Static Public Member Functions

    static func_type_pair_t get_pair (std::integral_constant< DPNPFuncType, FuncType >)
     
    +

    Detailed Description

    +
    template<DPNPFuncType FuncType, typename T>
    +struct func_type_pair_t< FuncType, T >

    An internal structure to build a pair of Data type enum value with C++ type

    + +

    Definition at line 75 of file dpnp_fptr.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<DPNPFuncType FuncType, typename T >
    + + + + +
    using func_type_pair_t< FuncType, T >::type = T
    +
    + +

    Definition at line 77 of file dpnp_fptr.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_pair()

    + +
    +
    +
    +template<DPNPFuncType FuncType, typename T >
    + + + + + +
    + + + + + + + + +
    static func_type_pair_t func_type_pair_t< FuncType, T >::get_pair (std::integral_constant< DPNPFuncType, FuncType > )
    +
    +inlinestatic
    +
    + +

    Definition at line 80 of file dpnp_fptr.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structis__any.html b/pull/2070/backend_doc/structis__any.html new file mode 100644 index 00000000000..5551fc4e0f1 --- /dev/null +++ b/pull/2070/backend_doc/structis__any.html @@ -0,0 +1,136 @@ + + + + + + + +DPNP C++ backend kernel library: is_any< T, Ts > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    is_any< T, Ts > Struct Template Reference
    +
    +
    + +

    #include <dpnp_fptr.hpp>

    +
    +Inheritance diagram for is_any< T, Ts >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for is_any< T, Ts >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +

    Detailed Description

    +
    template<typename T, typename... Ts>
    +struct is_any< T, Ts >

    Implements std::is_same<> with variadic number of types to compare with and when type T has to match only one of types Ts.

    + +

    Definition at line 169 of file dpnp_fptr.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structis__any__coll__graph.map b/pull/2070/backend_doc/structis__any__coll__graph.map new file mode 100644 index 00000000000..49dd6a364e9 --- /dev/null +++ b/pull/2070/backend_doc/structis__any__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structis__any__coll__graph.md5 b/pull/2070/backend_doc/structis__any__coll__graph.md5 new file mode 100644 index 00000000000..1e0598909a9 --- /dev/null +++ b/pull/2070/backend_doc/structis__any__coll__graph.md5 @@ -0,0 +1 @@ +db2808e3efc3280bda531e3695d21417 \ No newline at end of file diff --git a/pull/2070/backend_doc/structis__any__coll__graph.png b/pull/2070/backend_doc/structis__any__coll__graph.png new file mode 100644 index 00000000000..5f905743eab Binary files /dev/null and b/pull/2070/backend_doc/structis__any__coll__graph.png differ diff --git a/pull/2070/backend_doc/structis__any__inherit__graph.map b/pull/2070/backend_doc/structis__any__inherit__graph.map new file mode 100644 index 00000000000..49dd6a364e9 --- /dev/null +++ b/pull/2070/backend_doc/structis__any__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structis__any__inherit__graph.md5 b/pull/2070/backend_doc/structis__any__inherit__graph.md5 new file mode 100644 index 00000000000..1e0598909a9 --- /dev/null +++ b/pull/2070/backend_doc/structis__any__inherit__graph.md5 @@ -0,0 +1 @@ +db2808e3efc3280bda531e3695d21417 \ No newline at end of file diff --git a/pull/2070/backend_doc/structis__any__inherit__graph.png b/pull/2070/backend_doc/structis__any__inherit__graph.png new file mode 100644 index 00000000000..5f905743eab Binary files /dev/null and b/pull/2070/backend_doc/structis__any__inherit__graph.png differ diff --git a/pull/2070/backend_doc/structis__complex.html b/pull/2070/backend_doc/structis__complex.html new file mode 100644 index 00000000000..5287897bcf6 --- /dev/null +++ b/pull/2070/backend_doc/structis__complex.html @@ -0,0 +1,136 @@ + + + + + + + +DPNP C++ backend kernel library: is_complex< _Tp > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    is_complex< _Tp > Struct Template Reference
    +
    +
    + +

    #include <dpnp_fptr.hpp>

    +
    +Inheritance diagram for is_complex< _Tp >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for is_complex< _Tp >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +

    Detailed Description

    +
    template<typename _Tp>
    +struct is_complex< _Tp >

    A helper alias template to return true value for complex types and false otherwise.

    + +

    Definition at line 227 of file dpnp_fptr.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structis__complex__coll__graph.map b/pull/2070/backend_doc/structis__complex__coll__graph.map new file mode 100644 index 00000000000..d0dd5a543a1 --- /dev/null +++ b/pull/2070/backend_doc/structis__complex__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structis__complex__coll__graph.md5 b/pull/2070/backend_doc/structis__complex__coll__graph.md5 new file mode 100644 index 00000000000..d920814aa28 --- /dev/null +++ b/pull/2070/backend_doc/structis__complex__coll__graph.md5 @@ -0,0 +1 @@ +32cd2a99a07f37627c2e4584cc23ded8 \ No newline at end of file diff --git a/pull/2070/backend_doc/structis__complex__coll__graph.png b/pull/2070/backend_doc/structis__complex__coll__graph.png new file mode 100644 index 00000000000..d32aaf31336 Binary files /dev/null and b/pull/2070/backend_doc/structis__complex__coll__graph.png differ diff --git a/pull/2070/backend_doc/structis__complex__inherit__graph.map b/pull/2070/backend_doc/structis__complex__inherit__graph.map new file mode 100644 index 00000000000..d0dd5a543a1 --- /dev/null +++ b/pull/2070/backend_doc/structis__complex__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structis__complex__inherit__graph.md5 b/pull/2070/backend_doc/structis__complex__inherit__graph.md5 new file mode 100644 index 00000000000..d920814aa28 --- /dev/null +++ b/pull/2070/backend_doc/structis__complex__inherit__graph.md5 @@ -0,0 +1 @@ +32cd2a99a07f37627c2e4584cc23ded8 \ No newline at end of file diff --git a/pull/2070/backend_doc/structis__complex__inherit__graph.png b/pull/2070/backend_doc/structis__complex__inherit__graph.png new file mode 100644 index 00000000000..d32aaf31336 Binary files /dev/null and b/pull/2070/backend_doc/structis__complex__inherit__graph.png differ diff --git a/pull/2070/backend_doc/structmcg59__struct-members.html b/pull/2070/backend_doc/structmcg59__struct-members.html new file mode 100644 index 00000000000..63220c8f166 --- /dev/null +++ b/pull/2070/backend_doc/structmcg59__struct-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    mcg59_struct Member List
    +
    +
    + +

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

    + + +
    engine (defined in engine_struct)engine_struct
    +
    + + + + diff --git a/pull/2070/backend_doc/structmcg59__struct.html b/pull/2070/backend_doc/structmcg59__struct.html new file mode 100644 index 00000000000..5b0521544ff --- /dev/null +++ b/pull/2070/backend_doc/structmcg59__struct.html @@ -0,0 +1,141 @@ + + + + + + + +DPNP C++ backend kernel library: mcg59_struct Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    mcg59_struct Struct Reference
    +
    +
    +
    +Inheritance diagram for mcg59_struct:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for mcg59_struct:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from engine_struct
    void * engine
     
    +

    Detailed Description

    +
    +

    Definition at line 63 of file dpnp_random_state.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structmcg59__struct__coll__graph.map b/pull/2070/backend_doc/structmcg59__struct__coll__graph.map new file mode 100644 index 00000000000..4d7c6e094d4 --- /dev/null +++ b/pull/2070/backend_doc/structmcg59__struct__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structmcg59__struct__coll__graph.md5 b/pull/2070/backend_doc/structmcg59__struct__coll__graph.md5 new file mode 100644 index 00000000000..fdc8d5d90f4 --- /dev/null +++ b/pull/2070/backend_doc/structmcg59__struct__coll__graph.md5 @@ -0,0 +1 @@ +f33f9b748d2d7021dc6401301b2afaff \ No newline at end of file diff --git a/pull/2070/backend_doc/structmcg59__struct__coll__graph.png b/pull/2070/backend_doc/structmcg59__struct__coll__graph.png new file mode 100644 index 00000000000..b2b60a2edbd Binary files /dev/null and b/pull/2070/backend_doc/structmcg59__struct__coll__graph.png differ diff --git a/pull/2070/backend_doc/structmcg59__struct__inherit__graph.map b/pull/2070/backend_doc/structmcg59__struct__inherit__graph.map new file mode 100644 index 00000000000..4d7c6e094d4 --- /dev/null +++ b/pull/2070/backend_doc/structmcg59__struct__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structmcg59__struct__inherit__graph.md5 b/pull/2070/backend_doc/structmcg59__struct__inherit__graph.md5 new file mode 100644 index 00000000000..fdc8d5d90f4 --- /dev/null +++ b/pull/2070/backend_doc/structmcg59__struct__inherit__graph.md5 @@ -0,0 +1 @@ +f33f9b748d2d7021dc6401301b2afaff \ No newline at end of file diff --git a/pull/2070/backend_doc/structmcg59__struct__inherit__graph.png b/pull/2070/backend_doc/structmcg59__struct__inherit__graph.png new file mode 100644 index 00000000000..b2b60a2edbd Binary files /dev/null and b/pull/2070/backend_doc/structmcg59__struct__inherit__graph.png differ diff --git a/pull/2070/backend_doc/structmt19937__struct-members.html b/pull/2070/backend_doc/structmt19937__struct-members.html new file mode 100644 index 00000000000..a1414062b93 --- /dev/null +++ b/pull/2070/backend_doc/structmt19937__struct-members.html @@ -0,0 +1,109 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    mt19937_struct Member List
    +
    +
    + +

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

    + + +
    engine (defined in engine_struct)engine_struct
    +
    + + + + diff --git a/pull/2070/backend_doc/structmt19937__struct.html b/pull/2070/backend_doc/structmt19937__struct.html new file mode 100644 index 00000000000..26ccd8dfd54 --- /dev/null +++ b/pull/2070/backend_doc/structmt19937__struct.html @@ -0,0 +1,141 @@ + + + + + + + +DPNP C++ backend kernel library: mt19937_struct Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    mt19937_struct Struct Reference
    +
    +
    +
    +Inheritance diagram for mt19937_struct:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for mt19937_struct:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from engine_struct
    void * engine
     
    +

    Detailed Description

    +
    +

    Definition at line 58 of file dpnp_random_state.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/structmt19937__struct__coll__graph.map b/pull/2070/backend_doc/structmt19937__struct__coll__graph.map new file mode 100644 index 00000000000..aace455e4f3 --- /dev/null +++ b/pull/2070/backend_doc/structmt19937__struct__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structmt19937__struct__coll__graph.md5 b/pull/2070/backend_doc/structmt19937__struct__coll__graph.md5 new file mode 100644 index 00000000000..113ddc7af2d --- /dev/null +++ b/pull/2070/backend_doc/structmt19937__struct__coll__graph.md5 @@ -0,0 +1 @@ +cd65fd0e66f236efcbc90c4f83dbb990 \ No newline at end of file diff --git a/pull/2070/backend_doc/structmt19937__struct__coll__graph.png b/pull/2070/backend_doc/structmt19937__struct__coll__graph.png new file mode 100644 index 00000000000..6ea83f5bb83 Binary files /dev/null and b/pull/2070/backend_doc/structmt19937__struct__coll__graph.png differ diff --git a/pull/2070/backend_doc/structmt19937__struct__inherit__graph.map b/pull/2070/backend_doc/structmt19937__struct__inherit__graph.map new file mode 100644 index 00000000000..aace455e4f3 --- /dev/null +++ b/pull/2070/backend_doc/structmt19937__struct__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/pull/2070/backend_doc/structmt19937__struct__inherit__graph.md5 b/pull/2070/backend_doc/structmt19937__struct__inherit__graph.md5 new file mode 100644 index 00000000000..113ddc7af2d --- /dev/null +++ b/pull/2070/backend_doc/structmt19937__struct__inherit__graph.md5 @@ -0,0 +1 @@ +cd65fd0e66f236efcbc90c4f83dbb990 \ No newline at end of file diff --git a/pull/2070/backend_doc/structmt19937__struct__inherit__graph.png b/pull/2070/backend_doc/structmt19937__struct__inherit__graph.png new file mode 100644 index 00000000000..6ea83f5bb83 Binary files /dev/null and b/pull/2070/backend_doc/structmt19937__struct__inherit__graph.png differ diff --git a/pull/2070/backend_doc/structpython__constants-members.html b/pull/2070/backend_doc/structpython__constants-members.html new file mode 100644 index 00000000000..f84f37569b9 --- /dev/null +++ b/pull/2070/backend_doc/structpython__constants-members.html @@ -0,0 +1,110 @@ + + + + + + + +DPNP C++ backend kernel library: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    python_constants Member List
    +
    +
    + +

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

    + + + +
    py_nanpython_constantsstatic
    py_nonepython_constantsstatic
    +
    + + + + diff --git a/pull/2070/backend_doc/structpython__constants.html b/pull/2070/backend_doc/structpython__constants.html new file mode 100644 index 00000000000..f4f11faf686 --- /dev/null +++ b/pull/2070/backend_doc/structpython__constants.html @@ -0,0 +1,177 @@ + + + + + + + +DPNP C++ backend kernel library: python_constants Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    python_constants Struct Reference
    +
    +
    + +

    #include <constants.hpp>

    + + + + + + +

    +Static Public Attributes

    static void * py_none
     
    static void * py_nan
     
    +

    Detailed Description

    +

    This is container for the constants from Python interpreter and other modules. These constants are subject to use in algorithms.

    + +

    Definition at line 36 of file constants.hpp.

    +

    Member Data Documentation

    + +

    ◆ py_nan

    + +
    +
    + + + + + +
    + + + + +
    void* python_constants::py_nan
    +
    +static
    +
    +

    Python NAN or NumPy.nan

    + +

    Definition at line 39 of file constants.hpp.

    + +
    +
    + +

    ◆ py_none

    + +
    +
    + + + + + +
    + + + + +
    void* python_constants::py_none
    +
    +static
    +
    +

    Python None

    + +

    Definition at line 38 of file constants.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/pull/2070/backend_doc/sub_8hpp_source.html b/pull/2070/backend_doc/sub_8hpp_source.html new file mode 100644 index 00000000000..734254abac0 --- /dev/null +++ b/pull/2070/backend_doc/sub_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/sub.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    sub.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_sub(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/syevd_8hpp_source.html b/pull/2070/backend_doc/syevd_8hpp_source.html new file mode 100644 index 00000000000..87d96af8108 --- /dev/null +++ b/pull/2070/backend_doc/syevd_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/syevd.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    syevd.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::lapack
    +
    33{
    +
    34void init_syevd(py::module_ m);
    +
    35} // namespace dpnp::extensions::lapack
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/syevd__batch_8hpp_source.html b/pull/2070/backend_doc/syevd__batch_8hpp_source.html new file mode 100644 index 00000000000..d0dda824049 --- /dev/null +++ b/pull/2070/backend_doc/syevd__batch_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/syevd_batch.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    syevd_batch.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::lapack
    +
    33{
    +
    34void init_syevd_batch(py::module_ m);
    +
    35} // namespace dpnp::extensions::lapack
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/sync_off.png b/pull/2070/backend_doc/sync_off.png new file mode 100644 index 00000000000..3b443fc6289 Binary files /dev/null and b/pull/2070/backend_doc/sync_off.png differ diff --git a/pull/2070/backend_doc/sync_on.png b/pull/2070/backend_doc/sync_on.png new file mode 100644 index 00000000000..e08320fb64e Binary files /dev/null and b/pull/2070/backend_doc/sync_on.png differ diff --git a/pull/2070/backend_doc/tab_a.png b/pull/2070/backend_doc/tab_a.png new file mode 100644 index 00000000000..3b725c41c5a Binary files /dev/null and b/pull/2070/backend_doc/tab_a.png differ diff --git a/pull/2070/backend_doc/tab_ad.png b/pull/2070/backend_doc/tab_ad.png new file mode 100644 index 00000000000..e34850acfc2 Binary files /dev/null and b/pull/2070/backend_doc/tab_ad.png differ diff --git a/pull/2070/backend_doc/tab_b.png b/pull/2070/backend_doc/tab_b.png new file mode 100644 index 00000000000..e2b4a8638cb Binary files /dev/null and b/pull/2070/backend_doc/tab_b.png differ diff --git a/pull/2070/backend_doc/tab_bd.png b/pull/2070/backend_doc/tab_bd.png new file mode 100644 index 00000000000..91c25249869 Binary files /dev/null and b/pull/2070/backend_doc/tab_bd.png differ diff --git a/pull/2070/backend_doc/tab_h.png b/pull/2070/backend_doc/tab_h.png new file mode 100644 index 00000000000..fd5cb705488 Binary files /dev/null and b/pull/2070/backend_doc/tab_h.png differ diff --git a/pull/2070/backend_doc/tab_hd.png b/pull/2070/backend_doc/tab_hd.png new file mode 100644 index 00000000000..2489273d4ce Binary files /dev/null and b/pull/2070/backend_doc/tab_hd.png differ diff --git a/pull/2070/backend_doc/tab_s.png b/pull/2070/backend_doc/tab_s.png new file mode 100644 index 00000000000..ab478c95b67 Binary files /dev/null and b/pull/2070/backend_doc/tab_s.png differ diff --git a/pull/2070/backend_doc/tab_sd.png b/pull/2070/backend_doc/tab_sd.png new file mode 100644 index 00000000000..757a565ced4 Binary files /dev/null and b/pull/2070/backend_doc/tab_sd.png differ diff --git a/pull/2070/backend_doc/tabs.css b/pull/2070/backend_doc/tabs.css new file mode 100644 index 00000000000..71c8a4704c0 --- /dev/null +++ b/pull/2070/backend_doc/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/pull/2070/backend_doc/tan_8hpp_source.html b/pull/2070/backend_doc/tan_8hpp_source.html new file mode 100644 index 00000000000..731e110d080 --- /dev/null +++ b/pull/2070/backend_doc/tan_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/tan.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tan.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_tan(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/tanh_8hpp_source.html b/pull/2070/backend_doc/tanh_8hpp_source.html new file mode 100644 index 00000000000..26a0e0a90a9 --- /dev/null +++ b/pull/2070/backend_doc/tanh_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/tanh.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tanh.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_tanh(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/topics.html b/pull/2070/backend_doc/topics.html new file mode 100644 index 00000000000..e63cd67cc07 --- /dev/null +++ b/pull/2070/backend_doc/topics.html @@ -0,0 +1,113 @@ + + + + + + + +DPNP C++ backend kernel library: Topics + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Topics
    +
    + +
    + + + + diff --git a/pull/2070/backend_doc/topics.js b/pull/2070/backend_doc/topics.js new file mode 100644 index 00000000000..461b5786570 --- /dev/null +++ b/pull/2070/backend_doc/topics.js @@ -0,0 +1,7 @@ +var topics = +[ + [ "Backend C++ library interface API", "group___b_a_c_k_e_n_d___a_p_i.html", "group___b_a_c_k_e_n_d___a_p_i" ], + [ "Backend C++ library runtime interface API", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i.html", "group___b_a_c_k_e_n_d___f_u_n_c___p_t_r___a_p_i" ], + [ "Backend C++ library interface RANDOM API", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i.html", "group___b_a_c_k_e_n_d___r_a_n_d_o_m___a_p_i" ], + [ "Backend C++ library utilities", "group___b_a_c_k_e_n_d___u_t_i_l_s.html", "group___b_a_c_k_e_n_d___u_t_i_l_s" ] +]; \ No newline at end of file diff --git a/pull/2070/backend_doc/trunc_8hpp_source.html b/pull/2070/backend_doc/trunc_8hpp_source.html new file mode 100644 index 00000000000..5c08b7e6c27 --- /dev/null +++ b/pull/2070/backend_doc/trunc_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/trunc.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    trunc.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::vm
    +
    33{
    +
    34void init_trunc(py::module_ m);
    +
    35} // namespace dpnp::extensions::vm
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/ufunc_2elementwise__functions_2common_8hpp_source.html b/pull/2070/backend_doc/ufunc_2elementwise__functions_2common_8hpp_source.html new file mode 100644 index 00000000000..29545a32814 --- /dev/null +++ b/pull/2070/backend_doc/ufunc_2elementwise__functions_2common_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/ufunc/elementwise_functions/common.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    common.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <pybind11/pybind11.h>
    +
    29
    +
    30namespace py = pybind11;
    +
    31
    +
    32namespace dpnp::extensions::ufunc
    +
    33{
    +
    34void init_elementwise_functions(py::module_);
    +
    35} // namespace dpnp::extensions::ufunc
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/ungqr_8hpp_source.html b/pull/2070/backend_doc/ungqr_8hpp_source.html new file mode 100644 index 00000000000..95901843402 --- /dev/null +++ b/pull/2070/backend_doc/ungqr_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/lapack/ungqr.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ungqr.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <oneapi/mkl.hpp>
    +
    29#include <sycl/sycl.hpp>
    +
    30
    +
    31#include <dpctl4pybind11.hpp>
    +
    32
    +
    33namespace dpnp::extensions::lapack
    +
    34{
    +
    35extern std::pair<sycl::event, sycl::event>
    +
    36 ungqr(sycl::queue &exec_q,
    +
    37 const std::int64_t m,
    +
    38 const std::int64_t n,
    +
    39 const std::int64_t k,
    +
    40 const dpctl::tensor::usm_ndarray &a_array,
    +
    41 const dpctl::tensor::usm_ndarray &tau_array,
    +
    42 const std::vector<sycl::event> &depends = {});
    +
    43
    +
    44extern std::pair<sycl::event, sycl::event>
    +
    45 ungqr_batch(sycl::queue &exec_q,
    +
    46 const dpctl::tensor::usm_ndarray &a_array,
    +
    47 const dpctl::tensor::usm_ndarray &tau_array,
    +
    48 std::int64_t m,
    +
    49 std::int64_t n,
    +
    50 std::int64_t k,
    +
    51 std::int64_t stride_a,
    +
    52 std::int64_t stride_tau,
    +
    53 std::int64_t batch_size,
    +
    54 const std::vector<sycl::event> &depends = {});
    +
    55
    +
    56extern void init_ungqr_batch_dispatch_vector(void);
    +
    57extern void init_ungqr_dispatch_vector(void);
    +
    58} // namespace dpnp::extensions::lapack
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/verbose_8hpp_source.html b/pull/2070/backend_doc/verbose_8hpp_source.html new file mode 100644 index 00000000000..e8b1d6c5d26 --- /dev/null +++ b/pull/2070/backend_doc/verbose_8hpp_source.html @@ -0,0 +1,149 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/src/verbose.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    verbose.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2016-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27#ifndef VERBOSE_H // Cython compatibility
    +
    28#define VERBOSE_H
    +
    29
    +
    30#include <sycl/sycl.hpp>
    +
    31
    +
    32bool is_verbose_mode();
    +
    33void set_barrier_event(sycl::queue queue, std::vector<sycl::event> &depends);
    +
    34void verbose_print(std::string header,
    +
    35 sycl::event first_event,
    +
    36 sycl::event last_event);
    +
    37
    +
    38#endif // VERBOSE_H
    +
    +
    + + + + diff --git a/pull/2070/backend_doc/vm_2common_8hpp_source.html b/pull/2070/backend_doc/vm_2common_8hpp_source.html new file mode 100644 index 00000000000..fdbccfc1c3a --- /dev/null +++ b/pull/2070/backend_doc/vm_2common_8hpp_source.html @@ -0,0 +1,447 @@ + + + + + + + +DPNP C++ backend kernel library: /github/workspace/dpnp/backend/extensions/vm/common.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DPNP C++ backend kernel library 0.16.0dev1 +
    +
    Data Parallel Extension for NumPy*
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    common.hpp
    +
    +
    +
    1//*****************************************************************************
    +
    2// Copyright (c) 2023-2024, Intel Corporation
    +
    3// All rights reserved.
    +
    4//
    +
    5// Redistribution and use in source and binary forms, with or without
    +
    6// modification, are permitted provided that the following conditions are met:
    +
    7// - Redistributions of source code must retain the above copyright notice,
    +
    8// this list of conditions and the following disclaimer.
    +
    9// - Redistributions in binary form must reproduce the above copyright notice,
    +
    10// this list of conditions and the following disclaimer in the documentation
    +
    11// and/or other materials provided with the distribution.
    +
    12//
    +
    13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +
    14// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +
    15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +
    16// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    +
    17// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +
    18// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +
    19// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +
    20// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +
    21// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +
    22// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +
    23// THE POSSIBILITY OF SUCH DAMAGE.
    +
    24//*****************************************************************************
    +
    25
    +
    26#pragma once
    +
    27
    +
    28#include <oneapi/mkl.hpp>
    +
    29#include <sycl/sycl.hpp>
    +
    30
    +
    31#include <dpctl4pybind11.hpp>
    +
    32#include <pybind11/pybind11.h>
    +
    33
    +
    34// dpctl tensor headers
    +
    35#include "utils/memory_overlap.hpp"
    +
    36#include "utils/type_dispatch.hpp"
    +
    37
    +
    38#include "dpnp_utils.hpp"
    +
    39
    +
    40static_assert(INTEL_MKL_VERSION >= __INTEL_MKL_2023_2_0_VERSION_REQUIRED,
    +
    41 "OneMKL does not meet minimum version requirement");
    +
    42
    +
    43namespace py = pybind11;
    +
    44namespace td_ns = dpctl::tensor::type_dispatch;
    +
    45
    +
    46namespace dpnp::extensions::vm::py_internal
    +
    47{
    +
    48template <typename output_typesT, typename contig_dispatchT>
    +
    49bool need_to_call_unary_ufunc(sycl::queue &exec_q,
    +
    50 const dpctl::tensor::usm_ndarray &src,
    +
    51 const dpctl::tensor::usm_ndarray &dst,
    +
    52 const output_typesT &output_type_vec,
    +
    53 const contig_dispatchT &contig_dispatch_vector)
    +
    54{
    +
    55 // check type_nums
    +
    56 int src_typenum = src.get_typenum();
    +
    57 int dst_typenum = dst.get_typenum();
    +
    58
    +
    59 auto array_types = td_ns::usm_ndarray_types();
    +
    60 int src_typeid = array_types.typenum_to_lookup_id(src_typenum);
    +
    61 int dst_typeid = array_types.typenum_to_lookup_id(dst_typenum);
    +
    62
    +
    63 // check that types are supported
    +
    64 int func_output_typeid = output_type_vec[src_typeid];
    +
    65 if (dst_typeid != func_output_typeid) {
    +
    66 return false;
    +
    67 }
    +
    68
    +
    69 // OneMKL VM functions perform a copy on host if no double type support
    +
    70 if (!exec_q.get_device().has(sycl::aspect::fp64)) {
    +
    71 return false;
    +
    72 }
    +
    73
    +
    74 // check that queues are compatible
    +
    75 if (!dpctl::utils::queues_are_compatible(exec_q, {src, dst})) {
    +
    76 return false;
    +
    77 }
    +
    78
    +
    79 // dimensions must be the same
    +
    80 int dst_nd = dst.get_ndim();
    +
    81 if (dst_nd != src.get_ndim()) {
    +
    82 return false;
    +
    83 }
    +
    84 else if (dst_nd == 0) {
    +
    85 // don't call OneMKL for 0d arrays
    +
    86 return false;
    +
    87 }
    +
    88
    +
    89 // shapes must be the same
    +
    90 const py::ssize_t *src_shape = src.get_shape_raw();
    +
    91 const py::ssize_t *dst_shape = dst.get_shape_raw();
    +
    92 bool shapes_equal(true);
    +
    93 size_t src_nelems(1);
    +
    94
    +
    95 for (int i = 0; i < dst_nd; ++i) {
    +
    96 src_nelems *= static_cast<size_t>(src_shape[i]);
    +
    97 shapes_equal = shapes_equal && (src_shape[i] == dst_shape[i]);
    +
    98 }
    +
    99 if (!shapes_equal) {
    +
    100 return false;
    +
    101 }
    +
    102
    +
    103 // if nelems is zero, return false
    +
    104 if (src_nelems == 0) {
    +
    105 return false;
    +
    106 }
    +
    107
    +
    108 // ensure that output is ample enough to accommodate all elements
    +
    109 auto dst_offsets = dst.get_minmax_offsets();
    +
    110 // destination must be ample enough to accommodate all elements
    +
    111 {
    +
    112 size_t range =
    +
    113 static_cast<size_t>(dst_offsets.second - dst_offsets.first);
    +
    114 if (range + 1 < src_nelems) {
    +
    115 return false;
    +
    116 }
    +
    117 }
    +
    118
    +
    119 // check memory overlap
    +
    120 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
    +
    121 if (overlap(src, dst)) {
    +
    122 return false;
    +
    123 }
    +
    124
    +
    125 // support only contiguous inputs
    +
    126 bool is_src_c_contig = src.is_c_contiguous();
    +
    127 bool is_dst_c_contig = dst.is_c_contiguous();
    +
    128
    +
    129 bool all_c_contig = (is_src_c_contig && is_dst_c_contig);
    +
    130 if (!all_c_contig) {
    +
    131 return false;
    +
    132 }
    +
    133
    +
    134 // MKL function is not defined for the type
    +
    135 if (contig_dispatch_vector[src_typeid] == nullptr) {
    +
    136 return false;
    +
    137 }
    +
    138 return true;
    +
    139}
    +
    140
    +
    141template <typename output_typesT, typename contig_dispatchT>
    +
    142bool need_to_call_binary_ufunc(sycl::queue &exec_q,
    +
    143 const dpctl::tensor::usm_ndarray &src1,
    +
    144 const dpctl::tensor::usm_ndarray &src2,
    +
    145 const dpctl::tensor::usm_ndarray &dst,
    +
    146 const output_typesT &output_type_table,
    +
    147 const contig_dispatchT &contig_dispatch_table)
    +
    148{
    +
    149 // check type_nums
    +
    150 int src1_typenum = src1.get_typenum();
    +
    151 int src2_typenum = src2.get_typenum();
    +
    152 int dst_typenum = dst.get_typenum();
    +
    153
    +
    154 auto array_types = td_ns::usm_ndarray_types();
    +
    155 int src1_typeid = array_types.typenum_to_lookup_id(src1_typenum);
    +
    156 int src2_typeid = array_types.typenum_to_lookup_id(src2_typenum);
    +
    157 int dst_typeid = array_types.typenum_to_lookup_id(dst_typenum);
    +
    158
    +
    159 // check that types are supported
    +
    160 int output_typeid = output_type_table[src1_typeid][src2_typeid];
    +
    161 if (output_typeid != dst_typeid) {
    +
    162 return false;
    +
    163 }
    +
    164
    +
    165 // types must be the same
    +
    166 if (src1_typeid != src2_typeid) {
    +
    167 return false;
    +
    168 }
    +
    169
    +
    170 // OneMKL VM functions perform a copy on host if no double type support
    +
    171 if (!exec_q.get_device().has(sycl::aspect::fp64)) {
    +
    172 return false;
    +
    173 }
    +
    174
    +
    175 // check that queues are compatible
    +
    176 if (!dpctl::utils::queues_are_compatible(exec_q, {src1, src2, dst})) {
    +
    177 return false;
    +
    178 }
    +
    179
    +
    180 // dimensions must be the same
    +
    181 int dst_nd = dst.get_ndim();
    +
    182 if (dst_nd != src1.get_ndim() || dst_nd != src2.get_ndim()) {
    +
    183 return false;
    +
    184 }
    +
    185 else if (dst_nd == 0) {
    +
    186 // don't call OneMKL for 0d arrays
    +
    187 return false;
    +
    188 }
    +
    189
    +
    190 // shapes must be the same
    +
    191 const py::ssize_t *src1_shape = src1.get_shape_raw();
    +
    192 const py::ssize_t *src2_shape = src2.get_shape_raw();
    +
    193 const py::ssize_t *dst_shape = dst.get_shape_raw();
    +
    194 bool shapes_equal(true);
    +
    195 size_t src_nelems(1);
    +
    196
    +
    197 for (int i = 0; i < dst_nd; ++i) {
    +
    198 src_nelems *= static_cast<size_t>(src1_shape[i]);
    +
    199 shapes_equal = shapes_equal && (src1_shape[i] == dst_shape[i] &&
    +
    200 src2_shape[i] == dst_shape[i]);
    +
    201 }
    +
    202 if (!shapes_equal) {
    +
    203 return false;
    +
    204 }
    +
    205
    +
    206 // if nelems is zero, return false
    +
    207 if (src_nelems == 0) {
    +
    208 return false;
    +
    209 }
    +
    210
    +
    211 // ensure that output is ample enough to accommodate all elements
    +
    212 auto dst_offsets = dst.get_minmax_offsets();
    +
    213 // destination must be ample enough to accommodate all elements
    +
    214 {
    +
    215 size_t range =
    +
    216 static_cast<size_t>(dst_offsets.second - dst_offsets.first);
    +
    217 if (range + 1 < src_nelems) {
    +
    218 return false;
    +
    219 }
    +
    220 }
    +
    221
    +
    222 // check memory overlap
    +
    223 auto const &overlap = dpctl::tensor::overlap::MemoryOverlap();
    +
    224 if (overlap(src1, dst) || overlap(src2, dst)) {
    +
    225 return false;
    +
    226 }
    +
    227
    +
    228 // support only contiguous inputs
    +
    229 bool is_src1_c_contig = src1.is_c_contiguous();
    +
    230 bool is_src2_c_contig = src2.is_c_contiguous();
    +
    231 bool is_dst_c_contig = dst.is_c_contiguous();
    +
    232
    +
    233 bool all_c_contig =
    +
    234 (is_src1_c_contig && is_src2_c_contig && is_dst_c_contig);
    +
    235 if (!all_c_contig) {
    +
    236 return false;
    +
    237 }
    +
    238
    +
    239 // MKL function is not defined for the type
    +
    240 if (contig_dispatch_table[src1_typeid] == nullptr) {
    +
    241 return false;
    +
    242 }
    +
    243 return true;
    +
    244}
    +
    245
    +
    251#define MACRO_POPULATE_DISPATCH_VECTORS(__name__) \
    +
    252 template <typename fnT, typename T> \
    +
    253 struct ContigFactory \
    +
    254 { \
    +
    255 fnT get() \
    +
    256 { \
    +
    257 if constexpr (std::is_same_v<typename OutputType<T>::value_type, \
    +
    258 void>) { \
    +
    259 return nullptr; \
    +
    260 } \
    +
    261 else { \
    +
    262 return __name__##_contig_impl<T>; \
    +
    263 } \
    +
    264 } \
    +
    265 }; \
    +
    266 \
    +
    267 template <typename fnT, typename T> \
    +
    268 struct TypeMapFactory \
    +
    269 { \
    +
    270 std::enable_if_t<std::is_same<fnT, int>::value, int> get() \
    +
    271 { \
    +
    272 using rT = typename OutputType<T>::value_type; \
    +
    273 return td_ns::GetTypeid<rT>{}.get(); \
    +
    274 } \
    +
    275 }; \
    +
    276 \
    +
    277 static void populate_dispatch_vectors(void) \
    +
    278 { \
    +
    279 py_internal::init_ufunc_dispatch_vector<int, TypeMapFactory>( \
    +
    280 output_typeid_vector); \
    +
    281 py_internal::init_ufunc_dispatch_vector<unary_contig_impl_fn_ptr_t, \
    +
    282 ContigFactory>( \
    +
    283 contig_dispatch_vector); \
    +
    284 };
    +
    285
    +
    291#define MACRO_POPULATE_DISPATCH_TABLES(__name__) \
    +
    292 template <typename fnT, typename T1, typename T2> \
    +
    293 struct ContigFactory \
    +
    294 { \
    +
    295 fnT get() \
    +
    296 { \
    +
    297 if constexpr (std::is_same_v< \
    +
    298 typename OutputType<T1, T2>::value_type, void>) \
    +
    299 { \
    +
    300 return nullptr; \
    +
    301 } \
    +
    302 else { \
    +
    303 return __name__##_contig_impl<T1, T2>; \
    +
    304 } \
    +
    305 } \
    +
    306 }; \
    +
    307 \
    +
    308 template <typename fnT, typename T1, typename T2> \
    +
    309 struct TypeMapFactory \
    +
    310 { \
    +
    311 std::enable_if_t<std::is_same<fnT, int>::value, int> get() \
    +
    312 { \
    +
    313 using rT = typename OutputType<T1, T2>::value_type; \
    +
    314 return td_ns::GetTypeid<rT>{}.get(); \
    +
    315 } \
    +
    316 }; \
    +
    317 \
    +
    318 static void populate_dispatch_tables(void) \
    +
    319 { \
    +
    320 py_internal::init_ufunc_dispatch_table<int, TypeMapFactory>( \
    +
    321 output_typeid_vector); \
    +
    322 py_internal::init_ufunc_dispatch_table<binary_contig_impl_fn_ptr_t, \
    +
    323 ContigFactory>( \
    +
    324 contig_dispatch_vector); \
    +
    325 };
    +
    326
    +
    327template <typename dispatchT,
    +
    328 template <typename fnT, typename T>
    +
    329 typename factoryT,
    +
    330 int _num_types = td_ns::num_types>
    +
    331void init_ufunc_dispatch_vector(dispatchT dispatch_vector[])
    +
    332{
    +
    333 td_ns::DispatchVectorBuilder<dispatchT, factoryT, _num_types> dvb;
    +
    334 dvb.populate_dispatch_vector(dispatch_vector);
    +
    335}
    +
    336
    +
    337template <typename dispatchT,
    +
    338 template <typename fnT, typename D, typename S>
    +
    339 typename factoryT,
    +
    340 int _num_types = td_ns::num_types>
    +
    341void init_ufunc_dispatch_table(dispatchT dispatch_table[][_num_types])
    +
    342{
    +
    343 td_ns::DispatchTableBuilder<dispatchT, factoryT, _num_types> dtb;
    +
    344 dtb.populate_dispatch_table(dispatch_table);
    +
    345}
    +
    346} // namespace dpnp::extensions::vm::py_internal
    +
    +
    + + + + diff --git a/pull/2070/dpctl.html b/pull/2070/dpctl.html new file mode 100644 index 00000000000..31bd5645973 --- /dev/null +++ b/pull/2070/dpctl.html @@ -0,0 +1,208 @@ + + + + + + + + + + + Interplay with the Data Parallel Control Library — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Interplay with the Data Parallel Control Library

    +

    Data Parallel Control Library provides API to manage specific +SYCL* resources for SYCL-based Python packages.

    +

    An example below demonstrates how the Data Parallel Extension for NumPy* can be +easily combined with the device management interface provided by dpctl package.

    +
     1    import dpctl
    + 2    import dpnp
    + 3
    + 4    d = dpctl.select_cpu_device()
    + 5    x = dpnp.array([1, 2, 3], device=d)
    + 6    s = dpnp.sum(x)
    + 7
    + 8    y = dpnp.linspace(0, dpnp.pi, num=10**6, device="gpu")
    + 9    f = 1 + y * dpnp.sin(y)
    +10
    +11    # locate argument where function attains global maximum
    +12    max_arg = x[dpnp.argmax(f)]
    +13    max_val = dpnp.max(f)
    +
    +
    +

    For more information please refer to Data Parallel Control Library +documentation.

    +
    +

    Example

    +
     1import time
    + 2
    + 3import numpy
    + 4
    + 5import dpnp
    + 6
    + 7
    + 8def run(executor, size, test_type, repetition):
    + 9    x = executor.reshape(
    +10        executor.arange(size * size, dtype=test_type), (size, size)
    +11    )
    +12
    +13    times = []
    +14    for _ in range(repetition):
    +15        start_time = time.perf_counter()
    +16        result = executor.sum(x)
    +17        end_time = time.perf_counter()
    +18        times.append(end_time - start_time)
    +19
    +20    return numpy.median(times), result
    +21
    +22
    +23def get_dtypes():
    +24    _dtypes_list = [numpy.int32, numpy.int64, numpy.float32]
    +25    device = dpctl.select_default_device()
    +26    if device.has_aspect_fp64:
    +27        _dtypes_list.append(numpy.float64)
    +28    return _dtypes_list
    +29
    +30
    +31def example():
    +32    test_repetition = 5
    +33    for test_type in get_dtypes():
    +34        type_name = numpy.dtype(test_type).name
    +35        print(
    +36            f"...Test data type is {type_name}, each test repetitions {test_repetition}"
    +37        )
    +38
    +39        for size in [64, 128, 256, 512, 1024, 2048, 4096]:
    +40            time_numpy, result_numpy = run(
    +41                numpy, size, test_type, test_repetition
    +42            )
    +43            time_dpnp, result_dpnp = run(dpnp, size, test_type, test_repetition)
    +44
    +45            if result_dpnp == result_numpy:
    +46                verification = True
    +47            else:
    +48                verification = f"({result_dpnp} != {result_numpy})"
    +49
    +50            msg = f"type:{type_name}:N:{size:4}:NumPy:{time_numpy:.3e}:DPNP:{time_dpnp:.3e}"
    +51            msg += f":ratio:{time_numpy/time_dpnp:6.2f}:verification:{verification}"
    +52            print(msg)
    +53
    +54
    +55if __name__ == "__main__":
    +56    import dpctl
    +57
    +58    dpctl.select_default_device().print_device_info()
    +59    example()
    +
    +
    +
    +
    + + +
    +
    +
    + +
    + +
    +

    © Copyright 2020-2024, Intel Corporation.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/dpnp_backend_api.html b/pull/2070/dpnp_backend_api.html new file mode 100644 index 00000000000..c3f72ad12e2 --- /dev/null +++ b/pull/2070/dpnp_backend_api.html @@ -0,0 +1,127 @@ + + + + + + + + + + + C++ backend API Reference — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    C++ backend API Reference

    +

    C++ backend of Data Parallel Extension for NumPy*

    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/genindex.html b/pull/2070/genindex.html new file mode 100644 index 00000000000..ae24e251eea --- /dev/null +++ b/pull/2070/genindex.html @@ -0,0 +1,1712 @@ + + + + + + + + + + Index — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + + +

    Index

    + +
    + _ + | A + | B + | C + | D + | E + | F + | G + | H + | I + | K + | L + | M + | N + | O + | P + | Q + | R + | S + | T + | U + | V + | W + | Z + +
    +

    _

    + + + +
    + +

    A

    + + + +
    + +

    B

    + + + +
    + +

    C

    + + + +
    + +

    D

    + + + +
    + +

    E

    + + + +
    + +

    F

    + + + +
    + +

    G

    + + + +
    + +

    H

    + + + +
    + +

    I

    + + + +
    + +

    K

    + + + +
    + +

    L

    + + + +
    + +

    M

    + + + +
    + +

    N

    + + + +
    + +

    O

    + + + +
    + +

    P

    + + + +
    + +

    Q

    + + +
    + +

    R

    + + + +
    + +

    S

    + + + +
    + +

    T

    + + + +
    + +

    U

    + + + +
    + +

    V

    + + + +
    + +

    W

    + + + +
    + +

    Z

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

    © Copyright 2020-2024, Intel Corporation.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/index.html b/pull/2070/index.html new file mode 100644 index 00000000000..c30ee7fc899 --- /dev/null +++ b/pull/2070/index.html @@ -0,0 +1,156 @@ + + + + + + + + + + + Data Parallel Extension for NumPy* — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/objects.inv b/pull/2070/objects.inv new file mode 100644 index 00000000000..770832a910d Binary files /dev/null and b/pull/2070/objects.inv differ diff --git a/pull/2070/overview.html b/pull/2070/overview.html new file mode 100644 index 00000000000..7e2f8dac459 --- /dev/null +++ b/pull/2070/overview.html @@ -0,0 +1,157 @@ + + + + + + + + + + + Overview — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Overview

    +

    The Data Parallel Extension for NumPy* (dpnp package) - a library that +implements a subset of NumPy* that can be executed on any +data parallel device. The subset is a drop-in replacement of core NumPy* +functions and numerical data types.

    +

    The Data Parallel Extension for NumPy* is being developed as part of +Intel AI Analytics Toolkit and is distributed with the +Intel Distribution for Python*. The dpnp package is also available +on Anaconda cloud. Please refer the Quick Start Guide page to learn more.

    +

    Being drop-in replacement for NumPy* means that the usage is very similar:

    +
    >>> import dpnp as np
    +
    +
    +

    The dpnp.ndarray class is a compatible alternative of +numpy.ndarray.

    +
    >>> x = np.array([1, 2, 3])
    +
    +
    +

    x in the above example is an instance of dpnp.ndarray that +is created identically to NumPy*'s one. The key difference of +dpnp.ndarray from numpy.ndarray is that the memory +is allocated on the default SYCL* device, which is a "gpu" on systems +with integrated or discrete GPU (otherwise it is the "host" device +on systems that do not have GPU).

    +

    Most of the array manipulations are also done in the way similar to NumPy* such as:

    +
    >>> s = np.sum(x)
    +
    +
    +

    Please see the API Reference for the complete list of supported NumPy* APIs +along with their limitations.

    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/py-modindex.html b/pull/2070/py-modindex.html new file mode 100644 index 00000000000..1644c8f91e9 --- /dev/null +++ b/pull/2070/py-modindex.html @@ -0,0 +1,149 @@ + + + + + + + + + + Python Module Index — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + + +

    Python Module Index

    + +
    + d +
    + + + + + + + + + + + + + +
     
    + d
    + dpnp +
        + dpnp.fft +
        + dpnp.random +
    + + +
    +
    +
    + +
    + +
    +

    © Copyright 2020-2024, Intel Corporation.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/quick_start_guide.html b/pull/2070/quick_start_guide.html new file mode 100644 index 00000000000..8e1d3dede69 --- /dev/null +++ b/pull/2070/quick_start_guide.html @@ -0,0 +1,290 @@ + + + + + + + + + + + Quick Start Guide — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Quick Start Guide

    +
    +

    Device Drivers

    +

    To start programming data parallel devices beyond CPU, you will need +an appropriate hardware. The Data Parallel Extension for NumPy* works fine +on Intel © laptops with integrated graphics. In majority of cases, +your Windows*-based laptop already has all necessary device drivers installed. +But if you want the most up-to-date driver, you can always +update it to the latest one. +Follow device driver installation instructions to complete the step.

    +
    +
    +

    Python Interpreter

    +

    You will need Python 3.8, 3.9, or 3.10 installed on your system. If you +do not have one yet the easiest way to do that is to install +Intel Distribution for Python*. It installs all essential Python numerical +and machine learning packages optimized for the Intel hardware, including +Data Parallel Extension for NumPy*. +If you have Python installation from another vendor, it is fine too. All you +need is to install Data Parallel Extension for NumPy* manually as shown +in the next installation section.

    +
    +
    +

    Installation

    +
    +

    Install Package from Intel(R) channel

    +

    You will need one of the commands below:

    +
      +
    • Conda: conda install dpnp -c https://software.repos.intel.com/python/conda/ -c conda-forge

    • +
    • Pip: python -m pip install dpnp

    • +
    +

    These commands install dpnp package along with its dependencies, including +dpctl package with Data Parallel Control Library and all required +compiler runtimes and OneMKL.

    +
    +

    Note

    +

    Before installing with conda or pip it is strongly advised to update conda and pip to latest versions

    +
    +
    +
    +

    Build and Install Conda Package

    +

    Alternatively you can create and activate a local conda build environment:

    +
    conda create -n build-env conda-build
    +conda activate build-env
    +
    +
    +

    And to build dpnp package from the sources:

    +
    conda build conda-recipe -c https://software.repos.intel.com/python/conda/ -c conda-forge
    +
    +
    +

    Finally, to install the result package:

    +
    conda install dpnp -c local
    +
    +
    +
    +
    +

    Build and Install with scikit-build

    +

    Another way to build and install dpnp package from the source is to use Python +setuptools and scikit-build. You will need to create a local conda +build environment by command below depending on hosting OS.

    +

    On Linux:

    +
    conda create -n build-env dpctl cython dpcpp_linux-64 mkl-devel-dpcpp tbb-devel onedpl-devel cmake scikit-build ninja pytest -c https://software.repos.intel.com/python/conda/ -c conda-forge
    +conda activate build-env
    +
    +
    +

    On Windows:

    +
    conda create -n build-env dpctl cython dpcpp_win-64 mkl-devel-dpcpp tbb-devel onedpl-devel cmake scikit-build ninja pytest -c https://software.repos.intel.com/python/conda/ -c conda-forge
    +conda activate build-env
    +
    +
    +

    To build and install the package on Linux OS, run:

    +
    python setup.py install -- -G Ninja -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx
    +
    +
    +

    To build and install the package on Windows OS, run:

    +
    python setup.py install -- -G Ninja -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icx
    +
    +
    +

    Alternatively, to develop on Linux OS, you can use the driver script:

    +
    python scripts/build_locally.py
    +
    +
    +
    +
    +

    Building for custom SYCL targets

    +

    Project dpnp is written using generic SYCL and supports building for multiple SYCL targets, +subject to limitations of CodePlay plugins implementing SYCL +programming model for classes of devices.

    +

    Building dpnp for these targets requires that these CodePlay plugins be installed into DPC++ +installation layout of compatible version. The following plugins from CodePlay are supported:

    +
    +
    +

    Building dpnp also requires building Data Parallel Control Library for custom SYCL targets.

    +

    Build dpnp as follows:

    +
    python scripts/build_locally.py --target=cuda
    +
    +
    +
    +
    +
    +

    Testing

    +

    If you want to execute the scope of Python test suites which are available +by the source, you will need to run a command as below:

    +
    pytest -s tests
    +
    +
    +
    +
    +

    Examples

    +

    The examples below demonstrates a simple usage of the Data Parallel Extension for NumPy*

    +
    +
    How to create an array and to sum the elements
    +
     1import dpnp as np
    + 2
    + 3x = np.asarray([1, 2, 3])
    + 4print("Array x allocated on the device:", x.device)
    + 5
    + 6y = np.sum(x)
    + 7
    + 8print("Result y is located on the device:", y.device)  # The same device as x
    + 9print("Shape of y is:", y.shape)  # 0-dimensional array
    +10print("y =", y)  # Expect 6
    +
    +
    +
    +
    +
    How to create an array on the specific device type and how the next computations follow it
    +
     1import dpnp as np
    + 2
    + 3x = np.empty(3)
    + 4try:
    + 5    x = np.asarray([1, 2, 3], device="gpu")
    + 6except Exception:
    + 7    print("GPU device is not available")
    + 8
    + 9print("Array x allocated on the device:", x.device)
    +10
    +11y = np.sum(x)
    +12
    +13print("Result y is located on the device:", y.device)  # The same device as x
    +14print("Shape of y is:", y.shape)  # 0-dimensional array
    +15print("y=", y)  # Expect 6
    +
    +
    +
    +

    More examples on how to use dpnp can be found in dpnp/examples.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/binary.html b/pull/2070/reference/binary.html new file mode 100644 index 00000000000..b78b248ab8b --- /dev/null +++ b/pull/2070/reference/binary.html @@ -0,0 +1,200 @@ + + + + + + + + + + + Binary Operations — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Binary Operations

    +
    +

    Element-wise bit operations

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

    dpnp.bitwise_and

    Computes the bitwise AND of the underlying binary representation of each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.bitwise_not

    Inverts (flips) each bit for each element x_i of the input array x.

    dpnp.bitwise_or

    Computes the bitwise OR of the underlying binary representation of each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.bitwise_xor

    Computes the bitwise XOR of the underlying binary representation of each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.invert

    Inverts (flips) each bit for each element x_i of the input array x.

    dpnp.left_shift

    Shifts the bits of each element x1_i of the input array x1 to the left by appending x2_i (i.e., the respective element in the input array x2) zeros to the right of x1_i.

    dpnp.right_shift

    Shifts the bits of each element x1_i of the input array x1 to the right according to the respective element x2_i of the input array x2.

    +
    +
    +

    Bit packing

    + + + +
    +
    +
    +

    Output formatting

    + + + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/comparison.html b/pull/2070/reference/comparison.html new file mode 100644 index 00000000000..ee37c72323b --- /dev/null +++ b/pull/2070/reference/comparison.html @@ -0,0 +1,2464 @@ + + + + + + + + + + + Comparison Table NumPy/ DPNP/ CuPy — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Comparison Table NumPy/ DPNP/ CuPy

    +

    Here is a list of NumPy and CuPy APIs and its corresponding DPNP implementations.

    +

    - in DPNP column means that DPNP implementation is not provided yet.

    +

    NumPy(v1.23.5) / DPNP(v0.16.0dev1+17.g69a3b6ac3c2) / CuPy(v9.6.0) APIs

    +
    +

    Summary

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

    Name

    NumPy

    DPNP

    CuPy

    Module-Level

    397

    267

    299

    Multi-Dimensional Array

    56

    39

    47

    Linear Algebra

    20

    20

    16

    Discrete Fourier Transform

    18

    18

    18

    Random Sampling

    51

    48

    49

    Total

    542

    392

    429

    +
    +
    +

    Module-Level

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

    NumPy

    DPNP

    CuPy

    numpy.abs

    dpnp.abs

    cupy.abs

    numpy.absolute

    dpnp.absolute

    cupy.absolute

    numpy.add

    dpnp.add

    cupy.add

    numpy.add_docstring

    -

    -

    numpy.add_newdoc

    -

    -

    numpy.add_newdoc_ufunc

    -

    -

    numpy.all

    dpnp.all

    cupy.all

    numpy.allclose

    dpnp.allclose

    cupy.allclose

    numpy.alltrue

    -

    -

    numpy.amax

    dpnp.amax

    cupy.amax

    numpy.amin

    dpnp.amin

    cupy.amin

    numpy.angle

    dpnp.angle

    cupy.angle

    numpy.any

    dpnp.any

    cupy.any

    numpy.append

    dpnp.append

    cupy.append

    numpy.apply_along_axis

    -

    cupy.apply_along_axis

    numpy.apply_over_axes

    -

    -

    numpy.arange

    dpnp.arange

    cupy.arange

    numpy.arccos

    dpnp.arccos

    cupy.arccos

    numpy.arccosh

    dpnp.arccosh

    cupy.arccosh

    numpy.arcsin

    dpnp.arcsin

    cupy.arcsin

    numpy.arcsinh

    dpnp.arcsinh

    cupy.arcsinh

    numpy.arctan

    dpnp.arctan

    cupy.arctan

    numpy.arctan2

    dpnp.arctan2

    cupy.arctan2

    numpy.arctanh

    dpnp.arctanh

    cupy.arctanh

    numpy.argmax

    dpnp.argmax

    cupy.argmax

    numpy.argmin

    dpnp.argmin

    cupy.argmin

    numpy.argpartition

    -

    cupy.argpartition

    numpy.argsort

    dpnp.argsort

    cupy.argsort

    numpy.argwhere

    dpnp.argwhere

    cupy.argwhere

    numpy.around

    dpnp.around

    cupy.around

    numpy.array

    dpnp.array

    cupy.array

    numpy.array2string

    -

    -

    numpy.array_equal

    dpnp.array_equal

    cupy.array_equal

    numpy.array_equiv

    dpnp.array_equiv

    -

    numpy.array_repr

    -

    cupy.array_repr

    numpy.array_split

    dpnp.array_split

    cupy.array_split

    numpy.array_str

    -

    cupy.array_str

    numpy.asanyarray

    dpnp.asanyarray

    cupy.asanyarray

    numpy.asarray

    dpnp.asarray

    cupy.asarray

    numpy.asarray_chkfinite

    dpnp.asarray_chkfinite

    -

    numpy.ascontiguousarray

    dpnp.ascontiguousarray

    cupy.ascontiguousarray

    numpy.asfarray

    dpnp.asfarray

    -

    numpy.asfortranarray

    dpnp.asfortranarray

    cupy.asfortranarray

    numpy.asmatrix

    -

    -

    numpy.atleast_1d

    dpnp.atleast_1d

    cupy.atleast_1d

    numpy.atleast_2d

    dpnp.atleast_2d

    cupy.atleast_2d

    numpy.atleast_3d

    dpnp.atleast_3d

    cupy.atleast_3d

    numpy.average

    dpnp.average

    cupy.average

    numpy.bartlett

    -

    cupy.bartlett

    numpy.base_repr

    -

    cupy.base_repr

    numpy.binary_repr

    -

    cupy.binary_repr

    numpy.bincount

    dpnp.bincount

    cupy.bincount

    numpy.bitwise_and

    dpnp.bitwise_and

    cupy.bitwise_and

    numpy.bitwise_not

    dpnp.bitwise_not

    cupy.bitwise_not

    numpy.bitwise_or

    dpnp.bitwise_or

    cupy.bitwise_or

    numpy.bitwise_xor

    dpnp.bitwise_xor

    cupy.bitwise_xor

    numpy.blackman

    -

    cupy.blackman

    numpy.block

    -

    -

    numpy.bmat

    -

    -

    numpy.broadcast_arrays

    dpnp.broadcast_arrays

    cupy.broadcast_arrays

    numpy.broadcast_shapes

    -

    -

    numpy.broadcast_to

    dpnp.broadcast_to

    cupy.broadcast_to

    numpy.busday_count

    -

    -

    numpy.busday_offset

    -

    -

    numpy.byte_bounds

    -

    -

    numpy.can_cast

    dpnp.can_cast

    cupy.can_cast

    numpy.cbrt

    dpnp.cbrt

    cupy.cbrt

    numpy.ceil

    dpnp.ceil

    cupy.ceil

    numpy.choose

    dpnp.choose

    cupy.choose

    numpy.clip

    dpnp.clip

    cupy.clip

    numpy.column_stack

    dpnp.column_stack

    cupy.column_stack

    numpy.common_type

    -

    cupy.common_type

    numpy.compare_chararrays

    -

    -

    numpy.compress

    -

    cupy.compress

    numpy.concatenate

    dpnp.concatenate

    cupy.concatenate

    numpy.conj

    dpnp.conj

    cupy.conj

    numpy.conjugate

    dpnp.conjugate

    cupy.conjugate

    numpy.convolve

    dpnp.convolve

    cupy.convolve

    numpy.copy

    dpnp.copy

    cupy.copy

    numpy.copysign

    dpnp.copysign

    cupy.copysign

    numpy.copyto

    dpnp.copyto

    cupy.copyto

    numpy.corrcoef

    -

    cupy.corrcoef

    numpy.correlate

    dpnp.correlate

    cupy.correlate

    numpy.cos

    dpnp.cos

    cupy.cos

    numpy.cosh

    dpnp.cosh

    cupy.cosh

    numpy.count_nonzero

    dpnp.count_nonzero

    cupy.count_nonzero

    numpy.cov

    dpnp.cov

    cupy.cov

    numpy.cross

    dpnp.cross

    cupy.cross

    numpy.cumprod

    dpnp.cumprod

    cupy.cumprod

    numpy.cumproduct

    -

    -

    numpy.cumsum

    dpnp.cumsum

    cupy.cumsum

    numpy.datetime_as_string

    -

    -

    numpy.datetime_data

    -

    -

    numpy.deg2rad

    dpnp.deg2rad

    cupy.deg2rad

    numpy.degrees

    dpnp.degrees

    cupy.degrees

    numpy.delete

    -

    -

    numpy.deprecate

    -

    -

    numpy.deprecate_with_doc

    -

    -

    numpy.diag

    dpnp.diag

    cupy.diag

    numpy.diag_indices

    dpnp.diag_indices

    cupy.diag_indices

    numpy.diag_indices_from

    dpnp.diag_indices_from

    cupy.diag_indices_from

    numpy.diagflat

    dpnp.diagflat

    cupy.diagflat

    numpy.diagonal

    dpnp.diagonal

    cupy.diagonal

    numpy.diff

    dpnp.diff

    cupy.diff

    numpy.digitize

    dpnp.digitize

    cupy.digitize

    numpy.disp

    -

    -

    numpy.divide

    dpnp.divide

    cupy.divide

    numpy.divmod

    -

    cupy.divmod

    numpy.dot

    dpnp.dot

    cupy.dot

    numpy.dsplit

    dpnp.dsplit

    cupy.dsplit

    numpy.dstack

    dpnp.dstack

    cupy.dstack

    numpy.ediff1d

    dpnp.ediff1d

    -

    numpy.einsum

    dpnp.einsum

    cupy.einsum

    numpy.einsum_path

    dpnp.einsum_path

    -

    numpy.empty

    dpnp.empty

    cupy.empty

    numpy.empty_like

    dpnp.empty_like

    cupy.empty_like

    numpy.equal

    dpnp.equal

    cupy.equal

    numpy.exp

    dpnp.exp

    cupy.exp

    numpy.exp2

    dpnp.exp2

    cupy.exp2

    numpy.expand_dims

    dpnp.expand_dims

    cupy.expand_dims

    numpy.expm1

    dpnp.expm1

    cupy.expm1

    numpy.extract

    dpnp.extract

    cupy.extract

    numpy.eye

    dpnp.eye

    cupy.eye

    numpy.fabs

    dpnp.fabs

    -

    numpy.fastCopyAndTranspose

    -

    -

    numpy.fill_diagonal

    dpnp.fill_diagonal

    cupy.fill_diagonal

    numpy.find_common_type

    -

    cupy.find_common_type

    numpy.fix

    dpnp.fix

    cupy.fix

    numpy.flatnonzero

    dpnp.flatnonzero

    cupy.flatnonzero

    numpy.flip

    dpnp.flip

    cupy.flip

    numpy.fliplr

    dpnp.fliplr

    cupy.fliplr

    numpy.flipud

    dpnp.flipud

    cupy.flipud

    numpy.float_power

    dpnp.float_power

    -

    numpy.floor

    dpnp.floor

    cupy.floor

    numpy.floor_divide

    dpnp.floor_divide

    cupy.floor_divide

    numpy.fmax

    dpnp.fmax

    cupy.fmax

    numpy.fmin

    dpnp.fmin

    cupy.fmin

    numpy.fmod

    dpnp.fmod

    cupy.fmod

    numpy.format_float_positional

    -

    -

    numpy.format_float_scientific

    -

    -

    numpy.frexp

    -

    cupy.frexp

    numpy.from_dlpack

    dpnp.from_dlpack

    -

    numpy.frombuffer

    dpnp.frombuffer

    -

    numpy.fromfile

    dpnp.fromfile

    cupy.fromfile

    numpy.fromfunction

    dpnp.fromfunction

    -

    numpy.fromiter

    dpnp.fromiter

    -

    numpy.frompyfunc

    -

    -

    numpy.fromregex

    -

    -

    numpy.fromstring

    dpnp.fromstring

    -

    numpy.full

    dpnp.full

    cupy.full

    numpy.full_like

    dpnp.full_like

    cupy.full_like

    numpy.gcd

    -

    cupy.gcd

    numpy.genfromtxt

    -

    -

    numpy.geomspace

    dpnp.geomspace

    -

    numpy.get_array_wrap

    -

    -

    numpy.get_include

    dpnp.get_include

    -

    numpy.get_printoptions

    -

    -

    numpy.getbufsize

    -

    -

    numpy.geterr

    -

    -

    numpy.geterrcall

    -

    -

    numpy.geterrobj

    -

    -

    numpy.gradient

    dpnp.gradient

    cupy.gradient

    numpy.greater

    dpnp.greater

    cupy.greater

    numpy.greater_equal

    dpnp.greater_equal

    cupy.greater_equal

    numpy.hamming

    -

    cupy.hamming

    numpy.hanning

    -

    cupy.hanning

    numpy.heaviside

    dpnp.heaviside

    -

    numpy.histogram

    dpnp.histogram

    cupy.histogram

    numpy.histogram2d

    -

    cupy.histogram2d

    numpy.histogram_bin_edges

    dpnp.histogram_bin_edges

    -

    numpy.histogramdd

    -

    cupy.histogramdd

    numpy.hsplit

    dpnp.hsplit

    cupy.hsplit

    numpy.hstack

    dpnp.hstack

    cupy.hstack

    numpy.hypot

    dpnp.hypot

    cupy.hypot

    numpy.i0

    -

    cupy.i0

    numpy.identity

    dpnp.identity

    cupy.identity

    numpy.imag

    dpnp.imag

    cupy.imag

    numpy.in1d

    -

    cupy.in1d

    numpy.indices

    dpnp.indices

    cupy.indices

    numpy.info

    -

    -

    numpy.inner

    dpnp.inner

    cupy.inner

    numpy.insert

    -

    -

    numpy.interp

    -

    cupy.interp

    numpy.intersect1d

    -

    -

    numpy.invert

    dpnp.invert

    cupy.invert

    numpy.is_busday

    -

    -

    numpy.isclose

    dpnp.isclose

    cupy.isclose

    numpy.iscomplex

    dpnp.iscomplex

    cupy.iscomplex

    numpy.iscomplexobj

    dpnp.iscomplexobj

    cupy.iscomplexobj

    numpy.isfinite

    dpnp.isfinite

    cupy.isfinite

    numpy.isfortran

    -

    cupy.isfortran

    numpy.isin

    -

    cupy.isin

    numpy.isinf

    dpnp.isinf

    cupy.isinf

    numpy.isnan

    dpnp.isnan

    cupy.isnan

    numpy.isnat

    -

    -

    numpy.isneginf

    dpnp.isneginf

    -

    numpy.isposinf

    dpnp.isposinf

    -

    numpy.isreal

    dpnp.isreal

    cupy.isreal

    numpy.isrealobj

    dpnp.isrealobj

    cupy.isrealobj

    numpy.isscalar

    dpnp.isscalar

    cupy.isscalar

    numpy.issctype

    -

    cupy.issctype

    numpy.issubclass_

    -

    cupy.issubclass_

    numpy.issubdtype

    dpnp.issubdtype

    cupy.issubdtype

    numpy.issubsctype

    -

    cupy.issubsctype

    numpy.iterable

    -

    -

    numpy.ix_

    dpnp.ix_

    cupy.ix_

    numpy.kaiser

    -

    cupy.kaiser

    numpy.kron

    dpnp.kron

    cupy.kron

    numpy.lcm

    -

    cupy.lcm

    numpy.ldexp

    -

    cupy.ldexp

    numpy.left_shift

    dpnp.left_shift

    cupy.left_shift

    numpy.less

    dpnp.less

    cupy.less

    numpy.less_equal

    dpnp.less_equal

    cupy.less_equal

    numpy.lexsort

    -

    cupy.lexsort

    numpy.linspace

    dpnp.linspace

    cupy.linspace

    numpy.load

    -

    cupy.load

    numpy.loadtxt

    dpnp.loadtxt

    -

    numpy.log

    dpnp.log

    cupy.log

    numpy.log10

    dpnp.log10

    cupy.log10

    numpy.log1p

    dpnp.log1p

    cupy.log1p

    numpy.log2

    dpnp.log2

    cupy.log2

    numpy.logaddexp

    dpnp.logaddexp

    cupy.logaddexp

    numpy.logaddexp2

    dpnp.logaddexp2

    cupy.logaddexp2

    numpy.logical_and

    dpnp.logical_and

    cupy.logical_and

    numpy.logical_not

    dpnp.logical_not

    cupy.logical_not

    numpy.logical_or

    dpnp.logical_or

    cupy.logical_or

    numpy.logical_xor

    dpnp.logical_xor

    cupy.logical_xor

    numpy.logspace

    dpnp.logspace

    cupy.logspace

    numpy.lookfor

    -

    -

    numpy.mask_indices

    dpnp.mask_indices

    -

    numpy.mat

    -

    -

    numpy.matmul

    dpnp.matmul

    cupy.matmul

    numpy.max

    dpnp.max

    cupy.max

    numpy.maximum

    dpnp.maximum

    cupy.maximum

    numpy.maximum_sctype

    -

    -

    numpy.may_share_memory

    -

    cupy.may_share_memory

    numpy.mean

    dpnp.mean

    cupy.mean

    numpy.median

    dpnp.median

    cupy.median

    numpy.meshgrid

    dpnp.meshgrid

    cupy.meshgrid

    numpy.min

    dpnp.min

    cupy.min

    numpy.min_scalar_type

    -

    cupy.min_scalar_type

    numpy.minimum

    dpnp.minimum

    cupy.minimum

    numpy.mintypecode

    -

    cupy.mintypecode

    numpy.mod

    dpnp.mod

    cupy.mod

    numpy.modf

    dpnp.modf

    cupy.modf

    numpy.moveaxis

    dpnp.moveaxis

    cupy.moveaxis

    numpy.msort

    -

    cupy.msort

    numpy.multiply

    dpnp.multiply

    cupy.multiply

    numpy.nan_to_num

    dpnp.nan_to_num

    cupy.nan_to_num

    numpy.nanargmax

    dpnp.nanargmax

    cupy.nanargmax

    numpy.nanargmin

    dpnp.nanargmin

    cupy.nanargmin

    numpy.nancumprod

    dpnp.nancumprod

    cupy.nancumprod

    numpy.nancumsum

    dpnp.nancumsum

    cupy.nancumsum

    numpy.nanmax

    dpnp.nanmax

    cupy.nanmax

    numpy.nanmean

    dpnp.nanmean

    cupy.nanmean

    numpy.nanmedian

    -

    cupy.nanmedian

    numpy.nanmin

    dpnp.nanmin

    cupy.nanmin

    numpy.nanpercentile

    -

    -

    numpy.nanprod

    dpnp.nanprod

    cupy.nanprod

    numpy.nanquantile

    -

    -

    numpy.nanstd

    dpnp.nanstd

    cupy.nanstd

    numpy.nansum

    dpnp.nansum

    cupy.nansum

    numpy.nanvar

    dpnp.nanvar

    cupy.nanvar

    numpy.ndim

    dpnp.ndim

    cupy.ndim

    numpy.negative

    dpnp.negative

    cupy.negative

    numpy.nested_iters

    -

    -

    numpy.nextafter

    dpnp.nextafter

    cupy.nextafter

    numpy.nonzero

    dpnp.nonzero

    cupy.nonzero

    numpy.not_equal

    dpnp.not_equal

    cupy.not_equal

    numpy.obj2sctype

    -

    cupy.obj2sctype

    numpy.ones

    dpnp.ones

    cupy.ones

    numpy.ones_like

    dpnp.ones_like

    cupy.ones_like

    numpy.outer

    dpnp.outer

    cupy.outer

    numpy.packbits

    -

    cupy.packbits

    numpy.pad

    -

    cupy.pad

    numpy.partition

    dpnp.partition

    cupy.partition

    numpy.percentile

    -

    cupy.percentile

    numpy.piecewise

    -

    cupy.piecewise

    numpy.place

    dpnp.place

    cupy.place

    numpy.poly

    -

    -

    numpy.polyadd

    -

    cupy.polyadd

    numpy.polyder

    -

    -

    numpy.polydiv

    -

    -

    numpy.polyfit

    -

    cupy.polyfit

    numpy.polyint

    -

    -

    numpy.polymul

    -

    cupy.polymul

    numpy.polysub

    -

    cupy.polysub

    numpy.polyval

    -

    cupy.polyval

    numpy.positive

    dpnp.positive

    -

    numpy.power

    dpnp.power

    cupy.power

    numpy.printoptions

    -

    -

    numpy.prod

    dpnp.prod

    cupy.prod

    numpy.product

    -

    -

    numpy.promote_types

    -

    cupy.promote_types

    numpy.ptp

    dpnp.ptp

    cupy.ptp

    numpy.put

    dpnp.put

    cupy.put

    numpy.put_along_axis

    dpnp.put_along_axis

    -

    numpy.putmask

    dpnp.putmask

    cupy.putmask

    numpy.quantile

    -

    cupy.quantile

    numpy.rad2deg

    dpnp.rad2deg

    cupy.rad2deg

    numpy.radians

    dpnp.radians

    cupy.radians

    numpy.ravel

    dpnp.ravel

    cupy.ravel

    numpy.ravel_multi_index

    dpnp.ravel_multi_index

    cupy.ravel_multi_index

    numpy.real

    dpnp.real

    cupy.real

    numpy.real_if_close

    dpnp.real_if_close

    -

    numpy.recfromcsv

    -

    -

    numpy.recfromtxt

    -

    -

    numpy.reciprocal

    dpnp.reciprocal

    cupy.reciprocal

    numpy.remainder

    dpnp.remainder

    cupy.remainder

    numpy.repeat

    dpnp.repeat

    cupy.repeat

    numpy.require

    dpnp.require

    cupy.require

    numpy.reshape

    dpnp.reshape

    cupy.reshape

    numpy.resize

    dpnp.resize

    cupy.resize

    numpy.result_type

    dpnp.result_type

    cupy.result_type

    numpy.right_shift

    dpnp.right_shift

    cupy.right_shift

    numpy.rint

    dpnp.rint

    cupy.rint

    numpy.roll

    dpnp.roll

    cupy.roll

    numpy.rollaxis

    dpnp.rollaxis

    cupy.rollaxis

    numpy.roots

    -

    cupy.roots

    numpy.rot90

    dpnp.rot90

    cupy.rot90

    numpy.round

    dpnp.round

    cupy.round

    numpy.round_

    -

    cupy.round_

    numpy.row_stack

    dpnp.row_stack

    -

    numpy.safe_eval

    -

    -

    numpy.save

    -

    cupy.save

    numpy.savetxt

    -

    -

    numpy.savez

    -

    cupy.savez

    numpy.savez_compressed

    -

    cupy.savez_compressed

    numpy.sctype2char

    -

    cupy.sctype2char

    numpy.searchsorted

    dpnp.searchsorted

    cupy.searchsorted

    numpy.select

    dpnp.select

    cupy.select

    numpy.set_numeric_ops

    -

    -

    numpy.set_printoptions

    -

    -

    numpy.set_string_function

    -

    -

    numpy.setbufsize

    -

    -

    numpy.setdiff1d

    -

    -

    numpy.seterr

    -

    -

    numpy.seterrcall

    -

    -

    numpy.seterrobj

    -

    -

    numpy.setxor1d

    -

    -

    numpy.shape

    dpnp.shape

    cupy.shape

    numpy.shares_memory

    -

    cupy.shares_memory

    numpy.show_config

    -

    cupy.show_config

    numpy.sign

    dpnp.sign

    cupy.sign

    numpy.signbit

    dpnp.signbit

    cupy.signbit

    numpy.sin

    dpnp.sin

    cupy.sin

    numpy.sinc

    -

    cupy.sinc

    numpy.sinh

    dpnp.sinh

    cupy.sinh

    numpy.size

    dpnp.size

    cupy.size

    numpy.sometrue

    -

    -

    numpy.sort

    dpnp.sort

    cupy.sort

    numpy.sort_complex

    dpnp.sort_complex

    cupy.sort_complex

    numpy.source

    -

    -

    numpy.spacing

    -

    -

    numpy.split

    dpnp.split

    cupy.split

    numpy.sqrt

    dpnp.sqrt

    cupy.sqrt

    numpy.square

    dpnp.square

    cupy.square

    numpy.squeeze

    dpnp.squeeze

    cupy.squeeze

    numpy.stack

    dpnp.stack

    cupy.stack

    numpy.std

    dpnp.std

    cupy.std

    numpy.subtract

    dpnp.subtract

    cupy.subtract

    numpy.sum

    dpnp.sum

    cupy.sum

    numpy.swapaxes

    dpnp.swapaxes

    cupy.swapaxes

    numpy.take

    dpnp.take

    cupy.take

    numpy.take_along_axis

    dpnp.take_along_axis

    cupy.take_along_axis

    numpy.tan

    dpnp.tan

    cupy.tan

    numpy.tanh

    dpnp.tanh

    cupy.tanh

    numpy.tensordot

    dpnp.tensordot

    cupy.tensordot

    numpy.tile

    dpnp.tile

    cupy.tile

    numpy.trace

    dpnp.trace

    cupy.trace

    numpy.transpose

    dpnp.transpose

    cupy.transpose

    numpy.trapz

    -

    -

    numpy.tri

    dpnp.tri

    cupy.tri

    numpy.tril

    dpnp.tril

    cupy.tril

    numpy.tril_indices

    dpnp.tril_indices

    -

    numpy.tril_indices_from

    dpnp.tril_indices_from

    -

    numpy.trim_zeros

    dpnp.trim_zeros

    cupy.trim_zeros

    numpy.triu

    dpnp.triu

    cupy.triu

    numpy.triu_indices

    dpnp.triu_indices

    -

    numpy.triu_indices_from

    dpnp.triu_indices_from

    -

    numpy.true_divide

    dpnp.true_divide

    cupy.true_divide

    numpy.trunc

    dpnp.trunc

    cupy.trunc

    numpy.typename

    -

    cupy.typename

    numpy.union1d

    -

    -

    numpy.unique

    dpnp.unique

    cupy.unique

    numpy.unpackbits

    -

    cupy.unpackbits

    numpy.unravel_index

    dpnp.unravel_index

    cupy.unravel_index

    numpy.unwrap

    dpnp.unwrap

    cupy.unwrap

    numpy.vander

    dpnp.vander

    -

    numpy.var

    dpnp.var

    cupy.var

    numpy.vdot

    dpnp.vdot

    cupy.vdot

    numpy.vsplit

    dpnp.vsplit

    cupy.vsplit

    numpy.vstack

    dpnp.vstack

    cupy.vstack

    numpy.where

    dpnp.where

    cupy.where

    numpy.who

    -

    cupy.who

    numpy.zeros

    dpnp.zeros

    cupy.zeros

    numpy.zeros_like

    dpnp.zeros_like

    cupy.zeros_like

    NumPy Total

    DPNP Total

    CuPy Total

    397

    267

    299

    +
    +
    +

    Multi-Dimensional Array

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

    NumPy

    DPNP

    CuPy

    numpy.ndarray.all()

    dpnp.ndarray.all()

    cupy.ndarray.all()

    numpy.ndarray.any()

    dpnp.ndarray.any()

    cupy.ndarray.any()

    numpy.ndarray.argmax()

    dpnp.ndarray.argmax()

    cupy.ndarray.argmax()

    numpy.ndarray.argmin()

    dpnp.ndarray.argmin()

    cupy.ndarray.argmin()

    numpy.ndarray.argpartition()

    -

    cupy.ndarray.argpartition()

    numpy.ndarray.argsort()

    dpnp.ndarray.argsort()

    cupy.ndarray.argsort()

    numpy.ndarray.astype()

    dpnp.ndarray.astype()

    cupy.ndarray.astype()

    numpy.ndarray.byteswap()

    -

    -

    numpy.ndarray.choose()

    dpnp.ndarray.choose()

    cupy.ndarray.choose()

    numpy.ndarray.clip()

    dpnp.ndarray.clip()

    cupy.ndarray.clip()

    numpy.ndarray.compress()

    -

    cupy.ndarray.compress()

    numpy.ndarray.conj()

    dpnp.ndarray.conj()

    cupy.ndarray.conj()

    numpy.ndarray.conjugate()

    dpnp.ndarray.conjugate()

    cupy.ndarray.conjugate()

    numpy.ndarray.copy()

    dpnp.ndarray.copy()

    cupy.ndarray.copy()

    numpy.ndarray.cumprod()

    dpnp.ndarray.cumprod()

    cupy.ndarray.cumprod()

    numpy.ndarray.cumsum()

    dpnp.ndarray.cumsum()

    cupy.ndarray.cumsum()

    numpy.ndarray.diagonal()

    dpnp.ndarray.diagonal()

    cupy.ndarray.diagonal()

    numpy.ndarray.dot()

    dpnp.ndarray.dot()

    cupy.ndarray.dot()

    numpy.ndarray.dump()

    -

    cupy.ndarray.dump()

    numpy.ndarray.dumps()

    -

    cupy.ndarray.dumps()

    numpy.ndarray.fill()

    dpnp.ndarray.fill()

    cupy.ndarray.fill()

    numpy.ndarray.flatten()

    dpnp.ndarray.flatten()

    cupy.ndarray.flatten()

    numpy.ndarray.getfield()

    -

    -

    numpy.ndarray.item()

    dpnp.ndarray.item()

    cupy.ndarray.item()

    numpy.ndarray.itemset()

    -

    -

    numpy.ndarray.max()

    dpnp.ndarray.max()

    cupy.ndarray.max()

    numpy.ndarray.mean()

    dpnp.ndarray.mean()

    cupy.ndarray.mean()

    numpy.ndarray.min()

    dpnp.ndarray.min()

    cupy.ndarray.min()

    numpy.ndarray.newbyteorder()

    -

    -

    numpy.ndarray.nonzero()

    dpnp.ndarray.nonzero()

    cupy.ndarray.nonzero()

    numpy.ndarray.partition()

    dpnp.ndarray.partition()

    cupy.ndarray.partition()

    numpy.ndarray.prod()

    dpnp.ndarray.prod()

    cupy.ndarray.prod()

    numpy.ndarray.ptp()

    -

    cupy.ndarray.ptp()

    numpy.ndarray.put()

    dpnp.ndarray.put()

    cupy.ndarray.put()

    numpy.ndarray.ravel()

    dpnp.ndarray.ravel()

    cupy.ndarray.ravel()

    numpy.ndarray.repeat()

    dpnp.ndarray.repeat()

    cupy.ndarray.repeat()

    numpy.ndarray.reshape()

    dpnp.ndarray.reshape()

    cupy.ndarray.reshape()

    numpy.ndarray.resize()

    -

    -

    numpy.ndarray.round()

    dpnp.ndarray.round()

    cupy.ndarray.round()

    numpy.ndarray.searchsorted()

    dpnp.ndarray.searchsorted()

    -

    numpy.ndarray.setfield()

    -

    -

    numpy.ndarray.setflags()

    -

    -

    numpy.ndarray.sort()

    dpnp.ndarray.sort()

    cupy.ndarray.sort()

    numpy.ndarray.squeeze()

    dpnp.ndarray.squeeze()

    cupy.ndarray.squeeze()

    numpy.ndarray.std()

    dpnp.ndarray.std()

    cupy.ndarray.std()

    numpy.ndarray.sum()

    dpnp.ndarray.sum()

    cupy.ndarray.sum()

    numpy.ndarray.swapaxes()

    dpnp.ndarray.swapaxes()

    cupy.ndarray.swapaxes()

    numpy.ndarray.take()

    dpnp.ndarray.take()

    cupy.ndarray.take()

    numpy.ndarray.tobytes()

    -

    cupy.ndarray.tobytes()

    numpy.ndarray.tofile()

    -

    cupy.ndarray.tofile()

    numpy.ndarray.tolist()

    -

    cupy.ndarray.tolist()

    numpy.ndarray.tostring()

    -

    -

    numpy.ndarray.trace()

    dpnp.ndarray.trace()

    cupy.ndarray.trace()

    numpy.ndarray.transpose()

    dpnp.ndarray.transpose()

    cupy.ndarray.transpose()

    numpy.ndarray.var()

    dpnp.ndarray.var()

    cupy.ndarray.var()

    numpy.ndarray.view()

    -

    cupy.ndarray.view()

    NumPy Total

    DPNP Total

    CuPy Total

    56

    39

    47

    +
    +
    +

    Linear Algebra

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

    NumPy

    DPNP

    CuPy

    numpy.linalg.cholesky

    dpnp.linalg.cholesky

    cupy.linalg.cholesky

    numpy.linalg.cond

    dpnp.linalg.cond

    -

    numpy.linalg.det

    dpnp.linalg.det

    cupy.linalg.det

    numpy.linalg.eig

    dpnp.linalg.eig

    -

    numpy.linalg.eigh

    dpnp.linalg.eigh

    cupy.linalg.eigh

    numpy.linalg.eigvals

    dpnp.linalg.eigvals

    -

    numpy.linalg.eigvalsh

    dpnp.linalg.eigvalsh

    cupy.linalg.eigvalsh

    numpy.linalg.inv

    dpnp.linalg.inv

    cupy.linalg.inv

    numpy.linalg.lstsq

    dpnp.linalg.lstsq

    cupy.linalg.lstsq

    numpy.linalg.matrix_power

    dpnp.linalg.matrix_power

    cupy.linalg.matrix_power

    numpy.linalg.matrix_rank

    dpnp.linalg.matrix_rank

    cupy.linalg.matrix_rank

    numpy.linalg.multi_dot

    dpnp.linalg.multi_dot

    -

    numpy.linalg.norm

    dpnp.linalg.norm

    cupy.linalg.norm

    numpy.linalg.pinv

    dpnp.linalg.pinv

    cupy.linalg.pinv

    numpy.linalg.qr

    dpnp.linalg.qr

    cupy.linalg.qr

    numpy.linalg.slogdet

    dpnp.linalg.slogdet

    cupy.linalg.slogdet

    numpy.linalg.solve

    dpnp.linalg.solve

    cupy.linalg.solve

    numpy.linalg.svd

    dpnp.linalg.svd

    cupy.linalg.svd

    numpy.linalg.tensorinv

    dpnp.linalg.tensorinv

    cupy.linalg.tensorinv

    numpy.linalg.tensorsolve

    dpnp.linalg.tensorsolve

    cupy.linalg.tensorsolve

    NumPy Total

    DPNP Total

    CuPy Total

    20

    20

    16

    +
    +
    +

    Discrete Fourier Transform

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

    NumPy

    DPNP

    CuPy

    numpy.fft.fft

    dpnp.fft.fft

    cupy.fft.fft

    numpy.fft.fft2

    dpnp.fft.fft2

    cupy.fft.fft2

    numpy.fft.fftfreq

    dpnp.fft.fftfreq

    cupy.fft.fftfreq

    numpy.fft.fftn

    dpnp.fft.fftn

    cupy.fft.fftn

    numpy.fft.fftshift

    dpnp.fft.fftshift

    cupy.fft.fftshift

    numpy.fft.hfft

    dpnp.fft.hfft

    cupy.fft.hfft

    numpy.fft.ifft

    dpnp.fft.ifft

    cupy.fft.ifft

    numpy.fft.ifft2

    dpnp.fft.ifft2

    cupy.fft.ifft2

    numpy.fft.ifftn

    dpnp.fft.ifftn

    cupy.fft.ifftn

    numpy.fft.ifftshift

    dpnp.fft.ifftshift

    cupy.fft.ifftshift

    numpy.fft.ihfft

    dpnp.fft.ihfft

    cupy.fft.ihfft

    numpy.fft.irfft

    dpnp.fft.irfft

    cupy.fft.irfft

    numpy.fft.irfft2

    dpnp.fft.irfft2

    cupy.fft.irfft2

    numpy.fft.irfftn

    dpnp.fft.irfftn

    cupy.fft.irfftn

    numpy.fft.rfft

    dpnp.fft.rfft

    cupy.fft.rfft

    numpy.fft.rfft2

    dpnp.fft.rfft2

    cupy.fft.rfft2

    numpy.fft.rfftfreq

    dpnp.fft.rfftfreq

    cupy.fft.rfftfreq

    numpy.fft.rfftn

    dpnp.fft.rfftn

    cupy.fft.rfftn

    NumPy Total

    DPNP Total

    CuPy Total

    18

    18

    18

    +
    +
    +

    Random Sampling

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

    NumPy

    DPNP

    CuPy

    numpy.random.beta

    dpnp.random.beta

    cupy.random.beta

    numpy.random.binomial

    dpnp.random.binomial

    cupy.random.binomial

    numpy.random.bytes

    dpnp.random.bytes

    cupy.random.bytes

    numpy.random.chisquare

    dpnp.random.chisquare

    cupy.random.chisquare

    numpy.random.choice

    dpnp.random.choice

    cupy.random.choice

    numpy.random.default_rng

    -

    cupy.random.default_rng

    numpy.random.dirichlet

    dpnp.random.dirichlet

    cupy.random.dirichlet

    numpy.random.exponential

    dpnp.random.exponential

    cupy.random.exponential

    numpy.random.f

    dpnp.random.f

    cupy.random.f

    numpy.random.gamma

    dpnp.random.gamma

    cupy.random.gamma

    numpy.random.geometric

    dpnp.random.geometric

    cupy.random.geometric

    numpy.random.get_state

    -

    -

    numpy.random.gumbel

    dpnp.random.gumbel

    cupy.random.gumbel

    numpy.random.hypergeometric

    dpnp.random.hypergeometric

    cupy.random.hypergeometric

    numpy.random.laplace

    dpnp.random.laplace

    cupy.random.laplace

    numpy.random.logistic

    dpnp.random.logistic

    cupy.random.logistic

    numpy.random.lognormal

    dpnp.random.lognormal

    cupy.random.lognormal

    numpy.random.logseries

    dpnp.random.logseries

    cupy.random.logseries

    numpy.random.multinomial

    dpnp.random.multinomial

    cupy.random.multinomial

    numpy.random.multivariate_normal

    dpnp.random.multivariate_normal

    cupy.random.multivariate_normal

    numpy.random.negative_binomial

    dpnp.random.negative_binomial

    cupy.random.negative_binomial

    numpy.random.noncentral_chisquare

    dpnp.random.noncentral_chisquare

    cupy.random.noncentral_chisquare

    numpy.random.noncentral_f

    dpnp.random.noncentral_f

    cupy.random.noncentral_f

    numpy.random.normal

    dpnp.random.normal

    cupy.random.normal

    numpy.random.pareto

    dpnp.random.pareto

    cupy.random.pareto

    numpy.random.permutation

    dpnp.random.permutation

    cupy.random.permutation

    numpy.random.poisson

    dpnp.random.poisson

    cupy.random.poisson

    numpy.random.power

    dpnp.random.power

    cupy.random.power

    numpy.random.rand

    dpnp.random.rand

    cupy.random.rand

    numpy.random.randint

    dpnp.random.randint

    cupy.random.randint

    numpy.random.randn

    dpnp.random.randn

    cupy.random.randn

    numpy.random.random

    dpnp.random.random

    cupy.random.random

    numpy.random.random_integers

    dpnp.random.random_integers

    cupy.random.random_integers

    numpy.random.random_sample

    dpnp.random.random_sample

    cupy.random.random_sample

    numpy.random.ranf

    dpnp.random.ranf

    cupy.random.ranf

    numpy.random.rayleigh

    dpnp.random.rayleigh

    cupy.random.rayleigh

    numpy.random.sample

    dpnp.random.sample

    cupy.random.sample

    numpy.random.seed

    dpnp.random.seed

    cupy.random.seed

    numpy.random.set_state

    -

    -

    numpy.random.shuffle

    dpnp.random.shuffle

    cupy.random.shuffle

    numpy.random.standard_cauchy

    dpnp.random.standard_cauchy

    cupy.random.standard_cauchy

    numpy.random.standard_exponential

    dpnp.random.standard_exponential

    cupy.random.standard_exponential

    numpy.random.standard_gamma

    dpnp.random.standard_gamma

    cupy.random.standard_gamma

    numpy.random.standard_normal

    dpnp.random.standard_normal

    cupy.random.standard_normal

    numpy.random.standard_t

    dpnp.random.standard_t

    cupy.random.standard_t

    numpy.random.triangular

    dpnp.random.triangular

    cupy.random.triangular

    numpy.random.uniform

    dpnp.random.uniform

    cupy.random.uniform

    numpy.random.vonmises

    dpnp.random.vonmises

    cupy.random.vonmises

    numpy.random.wald

    dpnp.random.wald

    cupy.random.wald

    numpy.random.weibull

    dpnp.random.weibull

    cupy.random.weibull

    numpy.random.zipf

    dpnp.random.zipf

    cupy.random.zipf

    NumPy Total

    DPNP Total

    CuPy Total

    51

    48

    49

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/creation.html b/pull/2070/reference/creation.html new file mode 100644 index 00000000000..557f892fdff --- /dev/null +++ b/pull/2070/reference/creation.html @@ -0,0 +1,303 @@ + + + + + + + + + + + Array creation routines — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Array creation routines

    +
    +

    From shape or value

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

    dpnp.empty

    Return a new array of given shape and type, without initializing entries.

    dpnp.empty_like

    Return a new array with the same shape and type as a given array.

    dpnp.eye

    Return a 2-D array with ones on the diagonal and zeros elsewhere.

    dpnp.identity

    Return the identity array.

    dpnp.ones

    Return a new array of given shape and type, filled with ones.

    dpnp.ones_like

    Return an array of ones with the same shape and type as a given array.

    dpnp.zeros

    Return a new array of given shape and type, filled with zeros.

    dpnp.zeros_like

    Return an array of zeros with the same shape and type as a given array.

    dpnp.full

    Return a new array of given shape and type, filled with fill_value.

    dpnp.full_like

    Return a full array with the same shape and type as a given array.

    +
    +
    +

    From existing data

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

    dpnp.array

    Create an array.

    dpnp.asarray

    Converts an input object into array.

    dpnp.asanyarray

    Convert the input to an dpnp.ndarray.

    dpnp.ascontiguousarray

    Return a contiguous array in memory (C order).

    dpnp.astype

    Copy the array with data type casting.

    dpnp.copy

    Return an array copy of the given object.

    dpnp.frombuffer

    Interpret a buffer as a 1-dimensional array.

    dpnp.from_dlpack

    Create a dpnp array from a Python object implementing the __dlpack__ protocol.

    dpnp.fromfile

    Construct an array from data in a text or binary file.

    dpnp.fromfunction

    Construct an array by executing a function over each coordinate.

    dpnp.fromiter

    Create a new 1-dimensional array from an iterable object.

    dpnp.fromstring

    A new 1-D array initialized from text data in a string.

    dpnp.loadtxt

    Load data from a text file.

    +
    +
    +

    Numerical ranges

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

    dpnp.arange

    Returns an array with evenly spaced values within a given interval.

    dpnp.linspace

    Return evenly spaced numbers over a specified interval.

    dpnp.logspace

    Return numbers spaced evenly on a log scale.

    dpnp.geomspace

    Return numbers spaced evenly on a log scale (a geometric progression).

    dpnp.meshgrid

    Return coordinate matrices from coordinate vectors.

    dpnp.mgrid

    Construct a dense multi-dimensional "meshgrid".

    dpnp.ogrid

    Construct an open multi-dimensional "meshgrid".

    +
    +
    +

    Building matrices

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

    dpnp.diag

    Extract a diagonal or construct a diagonal array.

    dpnp.diagflat

    Create a two-dimensional array with the flattened input as a diagonal.

    dpnp.tri

    An array with ones at and below the given diagonal and zeros elsewhere.

    dpnp.tril

    Lower triangle of an array.

    dpnp.triu

    Upper triangle of an array.

    dpnp.vander

    Generate a Vandermonde matrix.

    +
    +
    +

    The Matrix class

    + + + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/dtype.html b/pull/2070/reference/dtype.html new file mode 100644 index 00000000000..db2ddb3a507 --- /dev/null +++ b/pull/2070/reference/dtype.html @@ -0,0 +1,211 @@ + + + + + + + + + + + Data type routines — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Data type routines

    + + + + + + + + + +

    dpnp.can_cast

    Returns True if cast between data types can occur according to the casting rule.

    dpnp.result_type

    Returns the type that results from applying the NumPy type promotion rules to the arguments.

    +
    +

    Creating data types

    + + + + + + +

    dpnp.dtype

    Create a data type object.

    +
    +
    +

    Data type information

    + + + + + + + + + +

    dpnp.finfo

    Returns machine limits for floating-point data types.

    dpnp.iinfo

    Returns machine limits for integer data types.

    +
    +
    +

    Data type testing

    + + + + + + +

    dpnp.issubdtype

    Returns True if the first argument is a type code lower/equal in type hierarchy.

    +
    +
    +

    Miscellaneous

    + + + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/dtypes_table.html b/pull/2070/reference/dtypes_table.html new file mode 100644 index 00000000000..6df934598ff --- /dev/null +++ b/pull/2070/reference/dtypes_table.html @@ -0,0 +1,180 @@ + + + + + + + + + + + Available array data types — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Available array data types

    +

    Table below shows a list of all supported data types (dtypes) and constants of the Data Parallel Extension for NumPy*.

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

    Data Types

    Type aliases

    Constants

    + + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/fft.html b/pull/2070/reference/fft.html new file mode 100644 index 00000000000..11b391d2ac4 --- /dev/null +++ b/pull/2070/reference/fft.html @@ -0,0 +1,359 @@ + + + + + + + + + + + FFT Functions — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    FFT Functions

    +
    +

    Standard FFTs

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

    fft

    Compute the one-dimensional discrete Fourier Transform.

    ifft

    Compute the one-dimensional inverse discrete Fourier Transform.

    fft2

    Compute the 2-dimensional discrete Fourier Transform.

    ifft2

    Compute the 2-dimensional inverse discrete Fourier Transform.

    fftn

    Compute the N-dimensional discrete Fourier Transform.

    ifftn

    Compute the N-dimensional inverse discrete Fourier Transform.

    +
    +
    +

    Real FFTs

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

    rfft

    Compute the one-dimensional discrete Fourier Transform for real input.

    irfft

    Computes the inverse of dpnp.fft.rfft.

    rfft2

    Compute the 2-dimensional FFT of a real array.

    irfft2

    Computes the inverse of dpnp.fft.rfft2.

    rfftn

    Compute the N-dimensional discrete Fourier Transform for real input.

    irfftn

    Computes the inverse of dpnp.fft.rfftn.

    +
    +
    +

    Hermitian FFTs

    + + + + + + + + + +

    hfft

    Compute the FFT of a signal that has Hermitian symmetry, i.e., a real spectrum.

    ihfft

    Compute the inverse FFT of a signal that has Hermitian symmetry.

    +
    +
    +

    Helper routines

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

    fftfreq

    Return the Discrete Fourier Transform sample frequencies.

    rfftfreq

    Return the Discrete Fourier Transform sample frequencies (for usage with dpnp.fft.rfft, dpnp.fft.irfft).

    fftshift

    Shift the zero-frequency component to the center of the spectrum.

    ifftshift

    Inverse shift the zero-frequency component to the center of the spectrum.

    +
    +

    Background information

    +

    Fourier analysis is fundamentally a method for expressing a function as a sum +of periodic components, and for recovering the function from those components. +When both the function and its Fourier transform are replaced with discretized +counterparts, it is called the discrete Fourier transform (DFT). The DFT has +become a mainstay of numerical computing in part because of a very fast +algorithm for computing it, called the Fast Fourier Transform (FFT), which was +known to Gauss (1805) and was brought to light in its current form by Cooley +and Tukey [CT]. Press et al. [NR] provide an accessible introduction to +Fourier analysis and its applications.

    +

    Because the discrete Fourier transform separates its input into components +that contribute at discrete frequencies, it has a great number of applications +in digital signal processing, e.g., for filtering, and in this context the +discretized input to the transform is customarily referred to as a signal, +which exists in the time domain. The output is called a spectrum or +transform and exists in the frequency domain.

    +
    +
    +

    Implementation details

    +

    There are many ways to define the DFT, varying in the sign of the +exponent, normalization, etc. In this implementation, the DFT is defined +as

    +
    +\[A_k = \sum_{m=0}^{n-1} a_m \exp\left\{-2\pi i{mk \over n}\right\} +\qquad k = 0,\ldots,n-1.\]
    +

    The DFT is in general defined for complex inputs and outputs, and a +single-frequency component at linear frequency \(f\) is +represented by a complex exponential +\(a_m = \exp\{2\pi i\,f m\Delta t\}\), where \(\Delta t\) +is the sampling interval.

    +

    The values in the result follow so-called "standard" order: If A = +fft(a, n), then A[0] contains the zero-frequency term (the sum of +the signal), which is always purely real for real inputs. Then A[1:n/2] +contains the positive-frequency terms, and A[n/2+1:] contains the +negative-frequency terms, in order of decreasingly negative frequency. +For an even number of input points, A[n/2] represents both positive and +negative Nyquist frequency, and is also purely real for real input. For +an odd number of input points, A[(n-1)/2] contains the largest positive +frequency, while A[(n+1)/2] contains the largest negative frequency. +The routine dpnp.fft.fftfreq(n) returns an array giving the frequencies +of corresponding elements in the output. The routine +dpnp.fft.fftshift(A) shifts transforms and their frequencies to put the +zero-frequency components in the middle, and dpnp.fft.ifftshift(A) undoes +that shift.

    +

    When the input a is a time-domain signal and A = dpnp.fft.fft(a), +dpnp.abs(A) is its amplitude spectrum and dpnp.abs(A)**2 is its +power spectrum. The phase spectrum is obtained by dpnp.angle(A).

    +

    The inverse DFT is defined as

    +
    +\[a_m = \frac{1}{n}\sum_{k=0}^{n-1}A_k\exp\left\{2\pi i{mk\over n}\right\} +\qquad m = 0,\ldots,n-1.\]
    +

    It differs from the forward transform by the sign of the exponential +argument and the default normalization by \(1/n\).

    +
    +
    +

    Normalization

    +

    The argument norm indicates which direction of the pair of direct/inverse +transforms is scaled and with what normalization factor. +The default normalization ("backward") has the direct (forward) transforms +unscaled and the inverse (backward) transforms scaled by \(1/n\). It is +possible to obtain unitary transforms by setting the keyword argument norm +to "ortho" so that both direct and inverse transforms are scaled by +\(1/\sqrt{n}\). Finally, setting the keyword argument norm to +"forward" has the direct transforms scaled by \(1/n\) and the inverse +transforms unscaled (i.e. exactly opposite to the default "backward"). +None is an alias of the default option "backward" for backward +compatibility.

    +
    +
    +

    Real and Hermitian transforms

    +

    When the input is purely real, its transform is Hermitian, i.e., the +component at frequency \(f_k\) is the complex conjugate of the +component at frequency \(-f_k\), which means that for real +inputs there is no information in the negative frequency components that +is not already available from the positive frequency components. +The family of rfft functions is +designed to operate on real inputs, and exploits this symmetry by +computing only the positive frequency components, up to and including the +Nyquist frequency. Thus, n input points produce n/2+1 complex +output points. The inverses of this family assumes the same symmetry of +its input, and for an output of n points uses n/2+1 input points.

    +

    Correspondingly, when the spectrum is purely real, the signal is +Hermitian. The hfft family of functions exploits this symmetry by +using n/2+1 complex points in the input (time) domain for n real +points in the frequency domain.

    +

    In higher dimensions, FFTs are used, e.g., for image analysis and +filtering. The computational efficiency of the FFT means that it can +also be a faster way to compute large convolutions, using the property +that a convolution in the time domain is equivalent to a point-by-point +multiplication in the frequency domain.

    +
    +
    +

    Higher dimensions

    +

    In two dimensions, the DFT is defined as

    +
    +\[A_{kl} = \sum_{m=0}^{M-1} \sum_{n=0}^{N-1} +a_{mn}\exp\left\{-2\pi i \left({mk\over M}+{nl\over N}\right)\right\} +\qquad k = 0, \ldots, M-1;\quad l = 0, \ldots, N-1,\]
    +

    which extends in the obvious way to higher dimensions, and the inverses +in higher dimensions also extend in the same way.

    +

    References

    +
    +
    +[CT] +

    Cooley, James W., and John W. Tukey, 1965, "An algorithm for the +machine calculation of complex Fourier series," Math. Comput. +19: 297-301.

    +
    +
    +[NR] +

    Press, W., Teukolsky, S., Vetterline, W.T., and Flannery, B.P., +2007, Numerical Recipes: The Art of Scientific Computing, ch. +12-13. Cambridge Univ. Press, Cambridge, UK.

    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.abs.html b/pull/2070/reference/generated/dpnp.abs.html new file mode 100644 index 00000000000..5f774a99986 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.abs.html @@ -0,0 +1,223 @@ + + + + + + + + + + + dpnp.abs — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.abs

    +
    +
    +dpnp.abs(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the absolute value for each element x_i of input array x.

    +

    For full documentation refer to numpy.absolute.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise absolute values. +For complex input, the absolute value is its magnitude. +If x has a real-valued data type, the returned array has the +same data type as x. If x has a complex floating-point data type, +the returned array has a real-valued floating-point data type whose +precision matches the precision of x.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.fabs

    Calculate the absolute value element-wise excluding complex types.

    +
    +
    +
    +

    Notes

    +

    dpnp.abs is a shorthand for this function.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-1.2, 1.2])
    +>>> np.absolute(a)
    +array([1.2, 1.2])
    +
    +
    +
    >>> a = np.array(1.2 + 1j)
    +>>> np.absolute(a)
    +array(1.5620499351813308)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.absolute.html b/pull/2070/reference/generated/dpnp.absolute.html new file mode 100644 index 00000000000..894e8597d44 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.absolute.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.absolute — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.absolute

    +
    +
    +dpnp.absolute(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the absolute value for each element x_i of input array x.

    +

    For full documentation refer to numpy.absolute.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise absolute values. +For complex input, the absolute value is its magnitude. +If x has a real-valued data type, the returned array has the +same data type as x. If x has a complex floating-point data type, +the returned array has a real-valued floating-point data type whose +precision matches the precision of x.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.fabs

    Calculate the absolute value element-wise excluding complex types.

    +
    +
    +
    +

    Notes

    +

    dpnp.abs is a shorthand for this function.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-1.2, 1.2])
    +>>> np.absolute(a)
    +array([1.2, 1.2])
    +
    +
    +
    >>> a = np.array(1.2 + 1j)
    +>>> np.absolute(a)
    +array(1.5620499351813308)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.acos.html b/pull/2070/reference/generated/dpnp.acos.html new file mode 100644 index 00000000000..ee95168a417 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.acos.html @@ -0,0 +1,233 @@ + + + + + + + + + + + dpnp.acos — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.acos

    +
    +
    +dpnp.acos(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse cosine for each element x_i for input array x.

    +

    The inverse of dpnp.cos so that, if y = cos(x), then x = arccos(y). +Note that dpnp.acos is an alias of dpnp.arccos.

    +

    For full documentation refer to numpy.arccos.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse cosine, in radians +and in the closed interval [-pi/2, pi/2]. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.cos

    Trigonometric cosine, element-wise.

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    dpnp.arccosh

    Hyperbolic inverse cosine, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arccos is a multivalued function: for each x there are infinitely +many numbers z such that cos(z) = x. The convention is to return the +angle z whose real part lies in [0, pi].

    +

    For real-valued input data types, dpnp.arccos always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arccos is a complex analytic function that +has, by convention, the branch cuts [-inf, -1] and [1, inf] and is continuous +from above on the former and from below on the latter.

    +

    The inverse cos is also known as \(acos\) or \(cos^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, -1])
    +>>> np.arccos(x)
    +array([0.0,  3.14159265])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.acosh.html b/pull/2070/reference/generated/dpnp.acosh.html new file mode 100644 index 00000000000..636e8806945 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.acosh.html @@ -0,0 +1,236 @@ + + + + + + + + + + + dpnp.acosh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.acosh

    +
    +
    +dpnp.acosh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse hyperbolic cosine for each element x_i for input array x.

    +

    The inverse of dpnp.cosh so that, if y = cosh(x), then x = arccosh(y). +Note that dpnp.acosh is an alias of dpnp.arccosh.

    +

    For full documentation refer to numpy.arccosh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse hyperbolic cosine, in +radians and in the half-closed interval [0, inf). The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.cosh

    Hyperbolic cosine, element-wise.

    +
    +
    dpnp.arcsinh

    Hyperbolic inverse sine, element-wise.

    +
    +
    dpnp.sinh

    Hyperbolic sine, element-wise.

    +
    +
    dpnp.arctanh

    Hyperbolic inverse tangent, element-wise.

    +
    +
    dpnp.tanh

    Hyperbolic tangent, element-wise.

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arccosh is a multivalued function: for each x there are infinitely +many numbers z such that cosh(z) = x. The convention is to return the +angle z whose real part lies in [0, inf].

    +

    For real-valued input data types, dpnp.arccosh always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arccosh is a complex analytic function that +has, by convention, the branch cuts [-inf, 1] and is continuous from above.

    +

    The inverse hyperbolic cos is also known as \(acosh\) or \(cosh^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1.0, np.e, 10.0])
    +>>> np.arccosh(x)
    +array([0.0, 1.65745445, 2.99322285])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.add.html b/pull/2070/reference/generated/dpnp.add.html new file mode 100644 index 00000000000..585068b2f72 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.add.html @@ -0,0 +1,209 @@ + + + + + + + + + + + dpnp.add — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.add

    +
    +
    +dpnp.add(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the sum for each element x1_i of the input array x1 with +the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.add.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise sums. The data type of the +returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Equivalent to x1 + x2 in terms of array broadcasting.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3])
    +>>> b = np.array([1, 2, 3])
    +>>> np.add(a, b)
    +array([2, 4, 6])
    +
    +
    +
    >>> x1 = np.arange(9.0).reshape((3, 3))
    +>>> x2 = np.arange(3.0)
    +>>> np.add(x1, x2)
    +array([[  0.,   2.,   4.],
    +       [  3.,   5.,   7.],
    +       [  6.,   8.,  10.]])
    +
    +
    +

    The + operator can be used as a shorthand for add on +dpnp.ndarray.

    +
    >>> x1 + x2
    +array([[  0.,   2.,   4.],
    +       [  3.,   5.,   7.],
    +       [  6.,   8.,  10.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.all.html b/pull/2070/reference/generated/dpnp.all.html new file mode 100644 index 00000000000..8d5f046c368 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.all.html @@ -0,0 +1,247 @@ + + + + + + + + + + + dpnp.all — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.all

    +
    +
    +dpnp.all(a, /, axis=None, out=None, keepdims=False, *, where=True)[source]
    +

    Test whether all array elements along a given axis evaluate to True.

    +

    For full documentation refer to numpy.all.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which a logical AND reduction is performed. +The default is to perform a logical AND over all the dimensions +of the input array.`axis` may be negative, in which case it counts +from the last to the first axis. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output but the type (of the returned +values) will be cast if necessary. +Default: None.

    • +
    • keepdims (bool, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array with a data type of bool. +containing the results of the logical AND reduction is returned +unless out is specified. Otherwise, a reference to out is returned. +The result has the same shape as a if axis is not None +or a is a 0-d array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where is only supported with its default value. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.ndarray.all

    equivalent method

    +
    +
    dpnp.any

    Test whether any element along a given axis evaluates to True.

    +
    +
    +
    +

    Notes

    +

    Not a Number (NaN), positive infinity and negative infinity +evaluate to True because these are not equal to zero.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[True, False], [True, True]])
    +>>> np.all(x)
    +array(False)
    +
    +
    +
    >>> np.all(x, axis=0)
    +array([ True, False])
    +
    +
    +
    >>> x2 = np.array([-1, 4, 5])
    +>>> np.all(x2)
    +array(True)
    +
    +
    +
    >>> x3 = np.array([1.0, np.nan])
    +>>> np.all(x3)
    +array(True)
    +
    +
    +
    >>> o = np.array(False)
    +>>> z = np.all(x2, out=o)
    +>>> z, o
    +(array(True), array(True))
    +>>> # Check now that `z` is a reference to `o`
    +>>> z is o
    +True
    +>>> id(z), id(o) # identity of `z` and `o`
    +(139884456208480, 139884456208480) # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.allclose.html b/pull/2070/reference/generated/dpnp.allclose.html new file mode 100644 index 00000000000..7efc6ae30c4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.allclose.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.allclose — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.allclose

    +
    +
    +dpnp.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source]
    +

    Returns True if two arrays are element-wise equal within a tolerance.

    +

    The tolerance values are positive, typically very small numbers. The +relative difference (rtol * abs(b)) and the absolute difference atol +are added together to compare against the absolute difference between a +and b.

    +

    NaNs are treated as equal if they are in the same place and if +equal_nan=True. Infs are treated as equal if they are in the same +place and of the same sign in both arrays.

    +

    For full documentation refer to numpy.allclose.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs a and b can not be scalars at the same time.

    • +
    • b ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs a and b can not be scalars at the same time.

    • +
    • rtol ({dpnp.ndarray, usm_ndarray, scalar}, optional) -- The relative tolerance parameter. Default: 1e-05.

    • +
    • atol ({dpnp.ndarray, usm_ndarray, scalar}, optional) -- The absolute tolerance parameter. Default: 1e-08.

    • +
    • equal_nan (bool) -- Whether to compare NaNs as equal. If True, NaNs in a will +be considered equal to NaNs in b in the output array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- A 0-dim array with True value if the two arrays are equal within +the given tolerance; with False otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.isclose

    Test whether two arrays are element-wise equal.

    +
    +
    dpnp.all

    Test whether all elements evaluate to True.

    +
    +
    dpnp.any

    Test whether any element evaluates to True.

    +
    +
    dpnp.equal

    Return (x1 == x2) element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1e10, 1e-7])
    +>>> b = np.array([1.00001e10, 1e-8])
    +>>> np.allclose(a, b)
    +array(False)
    +
    +
    +
    >>> a = np.array([1.0, np.nan])
    +>>> b = np.array([1.0, np.nan])
    +>>> np.allclose(a, b)
    +array(False)
    +>>> np.allclose(a, b, equal_nan=True)
    +array(True)
    +
    +
    +
    >>> a = np.array([1.0, np.inf])
    +>>> b = np.array([1.0, np.inf])
    +>>> np.allclose(a, b)
    +array(True)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.amax.html b/pull/2070/reference/generated/dpnp.amax.html new file mode 100644 index 00000000000..abf30ad0c56 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.amax.html @@ -0,0 +1,184 @@ + + + + + + + + + + + dpnp.amax — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.amax

    +
    +
    +dpnp.amax(a, axis=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the maximum of an array or maximum along an axis.

    +

    amax is an alias of dpnp.max.

    +
    +

    See also

    +
    +
    dpnp.max

    alias of this function

    +
    +
    dpnp.ndarray.max

    equivalent method

    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.amin.html b/pull/2070/reference/generated/dpnp.amin.html new file mode 100644 index 00000000000..d28a0fccd92 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.amin.html @@ -0,0 +1,184 @@ + + + + + + + + + + + dpnp.amin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.amin

    +
    +
    +dpnp.amin(a, axis=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the minimum of an array or minimum along an axis.

    +

    amin is an alias of dpnp.min.

    +
    +

    See also

    +
    +
    dpnp.min

    alias of this function

    +
    +
    dpnp.ndarray.min

    equivalent method

    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.angle.html b/pull/2070/reference/generated/dpnp.angle.html new file mode 100644 index 00000000000..333920e01b4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.angle.html @@ -0,0 +1,226 @@ + + + + + + + + + + + dpnp.angle — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.angle

    +
    +
    +dpnp.angle(x, deg=False)
    +

    Computes the phase angle (also called the argument) of each element x_i for +input array x.

    +

    For full documentation refer to numpy.angle.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a complex-valued floating-point data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise phase angles. +The returned array has a floating-point data type determined +by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Notes

    +

    Although the angle of the complex number 0 is undefined, dpnp.angle(0) returns the value 0.

    +
    +

    See also

    +
    +
    dpnp.arctan2

    Element-wise arc tangent of x1/x2 choosing the quadrant correctly.

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    dpnp.absolute

    Calculate the absolute value element-wise.

    +
    +
    dpnp.real

    Return the real part of the complex argument.

    +
    +
    dpnp.imag

    Return the imaginary part of the complex argument.

    +
    +
    dpnp.real_if_close

    Return the real part of the input is complex with all imaginary parts close to zero.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1.0, 1.0j, 1+1j])
    +>>> np.angle(a) # in radians
    +array([0.        , 1.57079633, 0.78539816]) # may vary
    +
    +
    +
    >>> np.angle(a, deg=True) # in degrees
    +array([ 0., 90., 45.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.any.html b/pull/2070/reference/generated/dpnp.any.html new file mode 100644 index 00000000000..3583eec1fcd --- /dev/null +++ b/pull/2070/reference/generated/dpnp.any.html @@ -0,0 +1,247 @@ + + + + + + + + + + + dpnp.any — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.any

    +
    +
    +dpnp.any(a, /, axis=None, out=None, keepdims=False, *, where=True)[source]
    +

    Test whether any array element along a given axis evaluates to True.

    +

    For full documentation refer to numpy.any.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which a logical OR reduction is performed. +The default is to perform a logical OR over all the dimensions +of the input array.`axis` may be negative, in which case it counts +from the last to the first axis. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output but the type (of the returned +values) will be cast if necessary. +Default: None.

    • +
    • keepdims (bool, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array with a data type of bool. +containing the results of the logical OR reduction is returned +unless out is specified. Otherwise, a reference to out is returned. +The result has the same shape as a if axis is not None +or a is a 0-d array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where is only supported with its default value. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.ndarray.any

    equivalent method

    +
    +
    dpnp.all

    Test whether all elements along a given axis evaluate to True.

    +
    +
    +
    +

    Notes

    +

    Not a Number (NaN), positive infinity and negative infinity evaluate +to True because these are not equal to zero.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[True, False], [True, True]])
    +>>> np.any(x)
    +array(True)
    +
    +
    +
    >>> np.any(x, axis=0)
    +array([ True,  True])
    +
    +
    +
    >>> x2 = np.array([-1, 0, 5])
    +>>> np.any(x2)
    +array(True)
    +
    +
    +
    >>> x3 = np.array([1.0, np.nan])
    +>>> np.any(x3)
    +array(True)
    +
    +
    +
    >>> o = np.array(False)
    +>>> z = np.any(x2, out=o)
    +>>> z, o
    +(array(True), array(True))
    +>>> # Check now that `z` is a reference to `o`
    +>>> z is o
    +True
    +>>> id(z), id(o) # identity of `z` and `o`
    +>>> (140053638309840, 140053638309840) # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.append.html b/pull/2070/reference/generated/dpnp.append.html new file mode 100644 index 00000000000..506e737cc66 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.append.html @@ -0,0 +1,228 @@ + + + + + + + + + + + dpnp.append — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.append

    +
    +
    +dpnp.append(arr, values, axis=None)[source]
    +

    Append values to the end of an array.

    +

    For full documentation refer to numpy.append.

    +
    +
    Parameters:
    +
      +
    • arr ({dpnp.ndarray, usm_ndarray}) -- Values are appended to a copy of this array.

    • +
    • values ({scalar, array_like}) -- These values are appended to a copy of arr. It must be of the +correct shape (the same shape as arr, excluding axis). If +axis is not specified, values can be any shape and will be +flattened before use. +These values can be in any form that can be converted to an array. +This includes scalars, lists, lists of tuples, tuples, +tuples of tuples, tuples of lists, and ndarrays.

    • +
    • axis ({None, int}, optional) -- The axis along which values are appended. If axis is not +given, both arr and values are flattened before use. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A copy of arr with values appended to axis. Note that +append does not occur in-place: a new array is allocated and +filled. If axis is None, out is a flattened array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.insert

    Insert elements into an array.

    +
    +
    dpnp.delete

    Delete elements from an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3])
    +>>> np.append(a, [[4, 5, 6], [7, 8, 9]])
    +array([1, 2, 3, 4, 5, 6, 7, 8, 9])
    +
    +
    +

    When axis is specified, values must have the correct shape.

    +
    >>> b = np.array([[1, 2, 3], [4, 5, 6]])
    +>>> np.append(b, [[7, 8, 9]], axis=0)
    +array([[1, 2, 3],
    +       [4, 5, 6],
    +       [7, 8, 9]])
    +>>> np.append(b, [7, 8, 9], axis=0)
    +Traceback (most recent call last):
    +    ...
    +ValueError: all the input arrays must have same number of dimensions, but
    +the array at index 0 has 2 dimension(s) and the array at index 1 has 1
    +dimension(s)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.arange.html b/pull/2070/reference/generated/dpnp.arange.html new file mode 100644 index 00000000000..a331640b4bf --- /dev/null +++ b/pull/2070/reference/generated/dpnp.arange.html @@ -0,0 +1,239 @@ + + + + + + + + + + + dpnp.arange — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.arange

    +
    +
    +dpnp.arange(start, /, stop=None, step=1, *, dtype=None, like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Returns an array with evenly spaced values within a given interval.

    +

    For full documentation refer to numpy.arange.

    +
    +
    Parameters:
    +
      +
    • start ({int, real}, optional) -- Start of interval. The interval includes this value. +The default start value is 0.

    • +
    • stop ({int, real}) -- End of interval. The interval does not include this value, except +in some cases where step is not an integer and floating point +round-off affects the length of out.

    • +
    • step ({int, real}, optional) -- Spacing between values. The default step size is 1. If step +is specified as a position argument, start must also be given.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary).

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The 1-D array containing evenly spaced values.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.linspace

    Evenly spaced numbers with careful handling of endpoints.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.arange(3)
    +array([0, 1, 2])
    +>>> np.arange(3, 7)
    +array([3, 4, 5, 6])
    +>>> np.arange(3, 7, 2)
    +array([3, 5])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.arange(3)  # default case
    +>>> x, x.device, x.usm_type
    +(array([0, 1, 2]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.arange(3, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([0, 1, 2]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.arange(3, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([0, 1, 2]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.arccos.html b/pull/2070/reference/generated/dpnp.arccos.html new file mode 100644 index 00000000000..6794976326d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.arccos.html @@ -0,0 +1,214 @@ + + + + + + + + + + + dpnp.arccos — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.arccos

    +
    +
    +dpnp.arccos(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse cosine for each element x_i for input array x.

    +

    The inverse of dpnp.cos so that, if y = cos(x), then x = arccos(y). +Note that dpnp.acos is an alias of dpnp.arccos.

    +

    For full documentation refer to numpy.arccos.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse cosine, in radians +and in the closed interval [-pi/2, pi/2]. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.cos

    Trigonometric cosine, element-wise.

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    dpnp.arccosh

    Hyperbolic inverse cosine, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arccos is a multivalued function: for each x there are infinitely +many numbers z such that cos(z) = x. The convention is to return the +angle z whose real part lies in [0, pi].

    +

    For real-valued input data types, dpnp.arccos always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arccos is a complex analytic function that +has, by convention, the branch cuts [-inf, -1] and [1, inf] and is continuous +from above on the former and from below on the latter.

    +

    The inverse cos is also known as \(acos\) or \(cos^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, -1])
    +>>> np.arccos(x)
    +array([0.0,  3.14159265])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.arccosh.html b/pull/2070/reference/generated/dpnp.arccosh.html new file mode 100644 index 00000000000..4914207f336 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.arccosh.html @@ -0,0 +1,217 @@ + + + + + + + + + + + dpnp.arccosh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.arccosh

    +
    +
    +dpnp.arccosh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse hyperbolic cosine for each element x_i for input array x.

    +

    The inverse of dpnp.cosh so that, if y = cosh(x), then x = arccosh(y). +Note that dpnp.acosh is an alias of dpnp.arccosh.

    +

    For full documentation refer to numpy.arccosh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse hyperbolic cosine, in +radians and in the half-closed interval [0, inf). The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.cosh

    Hyperbolic cosine, element-wise.

    +
    +
    dpnp.arcsinh

    Hyperbolic inverse sine, element-wise.

    +
    +
    dpnp.sinh

    Hyperbolic sine, element-wise.

    +
    +
    dpnp.arctanh

    Hyperbolic inverse tangent, element-wise.

    +
    +
    dpnp.tanh

    Hyperbolic tangent, element-wise.

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arccosh is a multivalued function: for each x there are infinitely +many numbers z such that cosh(z) = x. The convention is to return the +angle z whose real part lies in [0, inf].

    +

    For real-valued input data types, dpnp.arccosh always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arccosh is a complex analytic function that +has, by convention, the branch cuts [-inf, 1] and is continuous from above.

    +

    The inverse hyperbolic cos is also known as \(acosh\) or \(cosh^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1.0, np.e, 10.0])
    +>>> np.arccosh(x)
    +array([0.0, 1.65745445, 2.99322285])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.arcsin.html b/pull/2070/reference/generated/dpnp.arcsin.html new file mode 100644 index 00000000000..79e710d28fa --- /dev/null +++ b/pull/2070/reference/generated/dpnp.arcsin.html @@ -0,0 +1,220 @@ + + + + + + + + + + + dpnp.arcsin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.arcsin

    +
    +
    +dpnp.arcsin(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse sine for each element x_i for input array x.

    +

    The inverse of dpnp.sin, so that if y = sin(x) then x = arcsin(y). +Note that dpnp.asin is an alias of dpnp.arcsin.

    +

    For full documentation refer to numpy.arcsin.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse sine, in radians +and in the closed interval [-pi/2, pi/2]. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.sin

    Trigonometric sine, element-wise.

    +
    +
    dpnp.cos

    Trigonometric cosine, element-wise.

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    dpnp.tan

    Trigonometric tangent, element-wise.

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    dpnp.arctan2

    Element-wise arc tangent of x1/x2 choosing the quadrant correctly.

    +
    +
    dpnp.arcsinh

    Hyperbolic inverse sine, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arcsin is a multivalued function: for each x there are infinitely +many numbers z such that sin(z) = x. The convention is to return the +angle z whose real part lies in [-pi/2, pi/2].

    +

    For real-valued input data types, dpnp.arcsin always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arcsin is a complex analytic function that +has, by convention, the branch cuts [-inf, -1] and [1, inf] and is continuous +from above on the former and from below on the latter.

    +

    The inverse sine is also known as \(asin\) or \(sin^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, 1, -1])
    +>>> np.arcsin(x)
    +array([0.0, 1.5707963267948966, -1.5707963267948966])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.arcsinh.html b/pull/2070/reference/generated/dpnp.arcsinh.html new file mode 100644 index 00000000000..7631e198f82 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.arcsinh.html @@ -0,0 +1,214 @@ + + + + + + + + + + + dpnp.arcsinh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.arcsinh

    +
    +
    +dpnp.arcsinh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse hyperbolic sine for each element x_i for input array x.

    +

    The inverse of dpnp.sinh, so that if y = sinh(x) then x = arcsinh(y). +Note that dpnp.asinh is an alias of dpnp.arcsinh.

    +

    For full documentation refer to numpy.arcsinh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse hyperbolic sine. +The data type of the returned array is determined by +the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.sinh

    Hyperbolic sine, element-wise.

    +
    +
    dpnp.arctanh

    Hyperbolic inverse tangent, element-wise.

    +
    +
    dpnp.arccosh

    Hyperbolic inverse cosine, element-wise.

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arcsinh is a multivalued function: for each x there are infinitely +many numbers z such that sin(z) = x. The convention is to return the +angle z whose real part lies in [-pi/2, pi/2].

    +

    For real-valued input data types, dpnp.arcsinh always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arcsinh is a complex analytic function that +has, by convention, the branch cuts [1j, infj] and [`1j, -infj] and is continuous +from above on the former and from below on the latter.

    +

    The inverse hyperbolic sine is also known as \(asinh\) or \(sinh^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([np.e, 10.0])
    +>>> np.arcsinh(x)
    +array([1.72538256, 2.99822295])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.arctan.html b/pull/2070/reference/generated/dpnp.arctan.html new file mode 100644 index 00000000000..17926019394 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.arctan.html @@ -0,0 +1,218 @@ + + + + + + + + + + + dpnp.arctan — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.arctan

    +
    +
    +dpnp.arctan(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse tangent for each element x_i for input array x.

    +

    The inverse of dpnp.tan, so that if y = tan(x) then x = arctan(y). +Note that dpnp.atan is an alias of dpnp.arctan.

    +

    For full documentation refer to numpy.arctan.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse tangent, in radians +and in the closed interval [-pi/2, pi/2]. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arctan2

    Element-wise arc tangent of x1/x2 choosing the quadrant correctly.

    +
    +
    dpnp.angle

    Argument of complex values.

    +
    +
    dpnp.tan

    Trigonometric tangent, element-wise.

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    dpnp.arctanh

    Inverse hyperbolic tangent, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arctan is a multivalued function: for each x there are infinitely +many numbers z such that tan(z) = x. The convention is to return the +angle z whose real part lies in [-pi/2, pi/2].

    +

    For real-valued input data types, dpnp.arctan always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arctan is a complex analytic function that +has, by convention, the branch cuts [1j, infj] and [-1j, -infj] and is continuous +from the left on the former and from the right on the latter.

    +

    The inverse tan is also known as \(atan\) or \(tan^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, 1])
    +>>> np.arctan(x)
    +array([0.0, 0.78539816])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.arctan2.html b/pull/2070/reference/generated/dpnp.arctan2.html new file mode 100644 index 00000000000..ba5c3615d3c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.arctan2.html @@ -0,0 +1,227 @@ + + + + + + + + + + + dpnp.arctan2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.arctan2

    +
    +
    +dpnp.arctan2(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the inverse tangent of the quotient x1_i/x2_i for each element +x1_i of the input array x1 with the respective element x2_i of the +input array x2. Each element-wise result is expressed in radians.

    +

    Note that dpnp.atan2 is an alias of dpnp.arctan2. +This function is not defined for complex-valued arguments; for the so-called +argument of complex values, use dpnp.angle.

    +

    For full documentation refer to numpy.arctan2.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real-valued floating-point +data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real-valued +floating-point data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the inverse tangent of the quotient x1/x2. +The returned array must have a real-valued floating-point data type +determined by Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword arguments kwargs are currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    dpnp.tan

    Compute tangent element-wise.

    +
    +
    dpnp.angle

    Return the angle of the complex argument.

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    dpnp.arctanh

    Inverse hyperbolic tangent, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([1., -1.])
    +>>> x2 = np.array([0., 0.])
    +>>> np.arctan2(x1, x2)
    +array([1.57079633, -1.57079633])
    +
    +
    +
    >>> x1 = np.array([0., 0., np.inf])
    +>>> x2 = np.array([+0., -0., np.inf])
    +>>> np.arctan2(x1, x2)
    +array([0.0 , 3.14159265, 0.78539816])
    +
    +
    +
    >>> x1 = np.array([-1, +1, +1, -1])
    +>>> x2 = np.array([-1, -1, +1, +1])
    +>>> np.arctan2(x1, x2) * 180 / np.pi
    +array([-135.,  -45.,   45.,  135.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.arctanh.html b/pull/2070/reference/generated/dpnp.arctanh.html new file mode 100644 index 00000000000..15dd58652d7 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.arctanh.html @@ -0,0 +1,214 @@ + + + + + + + + + + + dpnp.arctanh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.arctanh

    +
    +
    +dpnp.arctanh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes hyperbolic inverse tangent for each element x_i for input array x.

    +

    The inverse of dpnp.tanh, so that if y = tanh(x) then x = arctanh(y). +Note that dpnp.atanh is an alias of dpnp.arctanh.

    +

    For full documentation refer to numpy.arctanh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise hyperbolic inverse tangent. +The data type of the returned array is determined by +the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.tanh

    Hyperbolic tangent, element-wise.

    +
    +
    dpnp.arcsinh

    Hyperbolic inverse sine, element-wise.

    +
    +
    dpnp.arccosh

    Hyperbolic inverse cosine, element-wise.

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arctanh is a multivalued function: for each x there are infinitely +many numbers z such that tanh(z) = x. The convention is to return the +angle z whose real part lies in [-pi/2, pi/2].

    +

    For real-valued input data types, dpnp.arctanh always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arctanh is a complex analytic function that +has, by convention, the branch cuts [-1, -inf] and [1, inf] and is is continuous +from above on the former and from below on the latter.

    +

    The inverse hyperbolic tan is also known as \(atanh\) or \(tanh^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, -0.5])
    +>>> np.arctanh(x)
    +array([0.0, -0.54930614])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.argmax.html b/pull/2070/reference/generated/dpnp.argmax.html new file mode 100644 index 00000000000..7f2fa4bd0b2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.argmax.html @@ -0,0 +1,244 @@ + + + + + + + + + + + dpnp.argmax — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.argmax

    +
    +
    +dpnp.argmax(a, axis=None, out=None, *, keepdims=False)[source]
    +

    Returns the indices of the maximum values along an axis.

    +

    For full documentation refer to numpy.argmax.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int}, optional) -- By default, the index is into the flattened array, otherwise along +the specified axis. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- If provided, the result will be inserted into this array. It should be +of the appropriate shape and dtype. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- Array of indices into the array. It has the same shape as a.shape +with the dimension along axis removed. If keepdims is set to +True, then the size of axis will be 1 with the resulting +array having same shape as a.shape.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.argmax

    Equivalent function.

    +
    +
    dpnp.nanargmax

    Returns the indices of the maximum values along an axis, ignoring NaNs.

    +
    +
    dpnp.argmin

    Returns the indices of the minimum values along an axis.

    +
    +
    dpnp.max

    The maximum value along a given axis.

    +
    +
    dpnp.unravel_index

    Convert a flat index into an index tuple.

    +
    +
    dpnp.take_along_axis

    Apply np.expand_dims(index_array, axis)

    +
    +
    from

    obj:dpnp.argmax to an array as if by calling max.

    +
    +
    +
    +

    Notes

    +

    In case of multiple occurrences of the maximum values, the indices +corresponding to the first occurrence are returned.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(6).reshape((2, 3)) + 10
    +>>> a
    +array([[10, 11, 12],
    +       [13, 14, 15]])
    +>>> np.argmax(a)
    +array(5)
    +
    +
    +
    >>> np.argmax(a, axis=0)
    +array([1, 1, 1])
    +>>> np.argmax(a, axis=1)
    +array([2, 2])
    +
    +
    +
    >>> b = np.arange(6)
    +>>> b[1] = 5
    +>>> b
    +array([0, 5, 2, 3, 4, 5])
    +>>> np.argmax(b)  # Only the first occurrence is returned.
    +array(1)
    +
    +
    +
    >>> x = np.arange(24).reshape((2, 3, 4))
    +>>> res = np.argmax(x, axis=1, keepdims=True) # Setting keepdims to True
    +>>> res.shape
    +(2, 1, 4)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.argmin.html b/pull/2070/reference/generated/dpnp.argmin.html new file mode 100644 index 00000000000..10a53ab4a68 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.argmin.html @@ -0,0 +1,244 @@ + + + + + + + + + + + dpnp.argmin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.argmin

    +
    +
    +dpnp.argmin(a, axis=None, out=None, *, keepdims=False)[source]
    +

    Returns the indices of the minimum values along an axis.

    +

    For full documentation refer to numpy.argmin.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int}, optional) -- By default, the index is into the flattened array, otherwise along +the specified axis. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- If provided, the result will be inserted into this array. It should be +of the appropriate shape and dtype. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- Array of indices into the array. It has the same shape as a.shape +with the dimension along axis removed. If keepdims is set to +True, then the size of axis will be 1 with the resulting +array having same shape as a.shape.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.argmin

    Equivalent function.

    +
    +
    dpnp.nanargmin

    Returns the indices of the minimum values along an axis, ignoring NaNs.

    +
    +
    dpnp.argmax

    Returns the indices of the maximum values along an axis.

    +
    +
    dpnp.min

    The minimum value along a given axis.

    +
    +
    dpnp.unravel_index

    Convert a flat index into an index tuple.

    +
    +
    dpnp.take_along_axis

    Apply np.expand_dims(index_array, axis)

    +
    +
    from

    obj:dpnp.argmin to an array as if by calling min.

    +
    +
    +
    +

    Notes

    +

    In case of multiple occurrences of the minimum values, the indices +corresponding to the first occurrence are returned.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(6).reshape((2, 3)) + 10
    +>>> a
    +array([[10, 11, 12],
    +       [13, 14, 15]])
    +>>> np.argmin(a)
    +array(0)
    +
    +
    +
    >>> np.argmin(a, axis=0)
    +array([0, 0, 0])
    +>>> np.argmin(a, axis=1)
    +array([0, 0])
    +
    +
    +
    >>> b = np.arange(6) + 10
    +>>> b[4] = 10
    +>>> b
    +array([10, 11, 12, 13, 10, 15])
    +>>> np.argmin(b)  # Only the first occurrence is returned.
    +array(0)
    +
    +
    +
    >>> x = np.arange(24).reshape((2, 3, 4))
    +>>> res = np.argmin(x, axis=1, keepdims=True) # Setting keepdims to True
    +>>> res.shape
    +(2, 1, 4)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.argsort.html b/pull/2070/reference/generated/dpnp.argsort.html new file mode 100644 index 00000000000..828e5877ebb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.argsort.html @@ -0,0 +1,241 @@ + + + + + + + + + + + dpnp.argsort — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.argsort

    +
    +
    +dpnp.argsort(a, axis=-1, kind=None, order=None)[source]
    +

    Returns the indices that would sort an array.

    +

    For full documentation refer to numpy.argsort.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Array to be sorted.

    • +
    • axis (int or None, optional) -- Axis along which to sort. If None, the array is flattened before +sorting. The default is -1, which sorts along the last axis.

    • +
    • kind ({None, "stable"}, optional) -- Default is None, which is equivalent to "stable". +Unlike NumPy, no other option is accepted here.

    • +
    +
    +
    Returns:
    +

    out -- Array of indices that sort a along the specified axis. +If a is one-dimensional, a[index_array] yields a sorted a. +More generally, dpnp.take_along_axis(a, index_array, axis=axis) +always yields the sorted a, irrespective of dimensionality. +The return array has default array index data type.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Notes

    +

    For zero-dimensional arrays, if axis=None, output is a one-dimensional +array with a single zero element. Otherwise, an AxisError is raised.

    +

    Limitations

    +

    Parameters order is only supported with its default value. +Parameters kind can only be None or "stable" which +are equivalent. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.ndarray.argsort

    Equivalent method.

    +
    +
    dpnp.sort

    Return a sorted copy of an array.

    +
    +
    dpnp.lexsort

    Indirect stable sort with multiple keys.

    +
    +
    dpnp.argpartition

    Indirect partial sort.

    +
    +
    dpnp.take_along_axis

    Apply index_array from obj:dpnp.argsort to an array as if by calling sort.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([3, 1, 2])
    +>>> np.argsort(x)
    +array([1, 2, 0])
    +
    +
    +
    >>> x = np.array([[0, 3], [2, 2]])
    +>>> x
    +array([[0, 3],
    +       [2, 2]])
    +
    +
    +
    >>> ind = np.argsort(x, axis=0)  # sorts along first axis
    +>>> ind
    +array([[0, 1],
    +       [1, 0]])
    +>>> np.take_along_axis(x, ind, axis=0)  # same as np.sort(x, axis=0)
    +array([[0, 2],
    +       [2, 3]])
    +
    +
    +
    >>> ind = np.argsort(x, axis=1)  # sorts along last axis
    +>>> ind
    +array([[0, 1],
    +       [0, 1]])
    +>>> np.take_along_axis(x, ind, axis=1)  # same as np.sort(x, axis=1)
    +array([[0, 3],
    +       [2, 2]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.argwhere.html b/pull/2070/reference/generated/dpnp.argwhere.html new file mode 100644 index 00000000000..d1216ea5635 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.argwhere.html @@ -0,0 +1,207 @@ + + + + + + + + + + + dpnp.argwhere — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.argwhere

    +
    +
    +dpnp.argwhere(a)[source]
    +

    Find the indices of array elements that are non-zero, grouped by element.

    +

    For full documentation refer to numpy.argwhere.

    +
    +
    Parameters:
    +

    a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    +
    +
    Returns:
    +

    out -- Indices of elements that are non-zero. Indices are grouped by element. +This array will have shape (N, a.ndim) where N is the number of +non-zero items.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.where

    Returns elements chosen from input arrays depending on a condition.

    +
    +
    dpnp.nonzero

    Return the indices of the elements that are non-zero.

    +
    +
    +
    +

    Notes

    +

    dpnp.argwhere(a) is almost the same as +dpnp.transpose(dpnp.nonzero(a)), but produces a result of the correct +shape for a 0D array. +The output of dpnp.argwhere is not suitable for indexing arrays. +For this purpose use dpnp.nonzero instead.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(6).reshape(2, 3)
    +>>> x
    +array([[0, 1, 2],
    +       [3, 4, 5]])
    +>>> np.argwhere(x > 1)
    +array([[0, 2],
    +       [1, 0],
    +       [1, 1],
    +       [1, 2]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.around.html b/pull/2070/reference/generated/dpnp.around.html new file mode 100644 index 00000000000..23cddcff8c0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.around.html @@ -0,0 +1,215 @@ + + + + + + + + + + + dpnp.around — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.around

    +
    +
    +dpnp.around(x, /, decimals=0, out=None)[source]
    +

    Round an array to the given number of decimals.

    +

    For full documentation refer to numpy.around.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • decimals (int, optional) -- Number of decimal places to round to (default: 0). If decimals is +negative, it specifies the number of positions to the left of the +decimal point.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The rounded value of elements of the array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.round

    Equivalent function; see for details.

    +
    +
    dpnp.ndarray.round

    Equivalent function.

    +
    +
    dpnp.rint

    Round elements of the array to the nearest integer.

    +
    +
    dpnp.fix

    Round to nearest integer towards zero, element-wise.

    +
    +
    dpnp.ceil

    Compute the ceiling of the input, element-wise.

    +
    +
    dpnp.floor

    Return the floor of the input, element-wise.

    +
    +
    dpnp.trunc

    Return the truncated value of the input, element-wise.

    +
    +
    +
    +

    Notes

    +

    This function works the same as dpnp.round.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.array.html b/pull/2070/reference/generated/dpnp.array.html new file mode 100644 index 00000000000..4d1e6608b4e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.array.html @@ -0,0 +1,268 @@ + + + + + + + + + + + dpnp.array — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.array

    +
    +
    +dpnp.array(a, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Create an array.

    +

    For full documentation refer to numpy.array.

    +
    +
    Parameters:
    +
      +
    • a (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary). +Default: None.

    • +
    • copy ({None, bool}, optional) -- If True, then the array data is copied. If None, a copy will +only be made if a copy is needed to satisfy any of the requirements +(dtype, order, etc.). For False it raises a ValueError +exception if a copy can not be avoided. +Default: True.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array. +Default: "K".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. +Default: None.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- An array object satisfying the specified requirements.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter subok is supported only with default value False. +Parameter ndmin is supported only with default value 0. +Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.empty_like

    Return an empty array with shape and type of input.

    +
    +
    dpnp.ones_like

    Return an array of ones with shape and type of input.

    +
    +
    dpnp.zeros_like

    Return an array of zeros with shape and type of input.

    +
    +
    dpnp.full_like

    Return a new array with shape of input filled with value.

    +
    +
    dpnp.empty

    Return a new uninitialized array.

    +
    +
    dpnp.ones

    Return a new array setting values to one.

    +
    +
    dpnp.zeros

    Return a new array setting values to zero.

    +
    +
    dpnp.full

    Return a new array of given shape filled with value.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 3])
    +>>> x.ndim, x.size, x.shape
    +(1, 3, (3,))
    +>>> x
    +array([1, 2, 3])
    +
    +
    +

    More than one dimension:

    +
    >>> x2 = np.array([[1, 2], [3, 4]])
    +>>> x2.ndim, x2.size, x2.shape
    +(2, 4, (2, 2))
    +>>> x2
    +array([[1, 2],
    +       [3, 4]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.array([1, 2, 3]) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.array([1, 2, 3], device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 2, 3]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.array([1, 2, 3], usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.array_equal.html b/pull/2070/reference/generated/dpnp.array_equal.html new file mode 100644 index 00000000000..fd389f913af --- /dev/null +++ b/pull/2070/reference/generated/dpnp.array_equal.html @@ -0,0 +1,237 @@ + + + + + + + + + + + dpnp.array_equal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.array_equal

    +
    +
    +dpnp.array_equal(a1, a2, equal_nan=False)[source]
    +

    True if two arrays have the same shape and elements, False +otherwise.

    +

    For full documentation refer to numpy.array_equal.

    +
    +
    Parameters:
    +
      +
    • a1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • a2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • equal_nan (bool, optional) -- Whether to compare NaNs as equal. If the dtype of a1 and a2 is +complex, values will be considered equal if either the real or the +imaginary component of a given value is NaN. +Default: False.

    • +
    +
    +
    Returns:
    +

    b -- An array with a data type of bool. +Returns True if the arrays are equal.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.allclose

    Returns True if two arrays are element-wise equal within a tolerance.

    +
    +
    dpnp.array_equiv

    Returns True if input arrays are shape consistent and all elements equal.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2])
    +>>> b = np.array([1, 2])
    +>>> np.array_equal(a, b)
    +array(True)
    +
    +
    +
    >>> b = np.array([1, 2, 3])
    +>>> np.array_equal(a, b)
    +array(False)
    +
    +
    +
    >>> b = np.array([1, 4])
    +>>> np.array_equal(a, b)
    +array(False)
    +
    +
    +
    >>> a = np.array([1, np.nan])
    +>>> np.array_equal(a, a)
    +array(False)
    +
    +
    +
    >>> np.array_equal(a, a, equal_nan=True)
    +array(True)
    +
    +
    +

    When equal_nan is True, complex values with NaN components are +considered equal if either the real or the imaginary components are +NaNs.

    +
    >>> a = np.array([1 + 1j])
    +>>> b = a.copy()
    +>>> a.real = np.nan
    +>>> b.imag = np.nan
    +>>> np.array_equal(a, b, equal_nan=True)
    +array(True)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.array_equiv.html b/pull/2070/reference/generated/dpnp.array_equiv.html new file mode 100644 index 00000000000..f3e14ede146 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.array_equiv.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.array_equiv — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.array_equiv

    +
    +
    +dpnp.array_equiv(a1, a2)[source]
    +

    Returns True if input arrays are shape consistent and all elements +equal.

    +

    Shape consistent means they are either the same shape, or one input array +can be broadcasted to create the same shape as the other one.

    +

    For full documentation refer to numpy.array_equiv.

    +
    +
    Parameters:
    +
      +
    • a1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • a2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    +
    +
    Returns:
    +

    out -- An array with a data type of bool. +True if equivalent, False otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2])
    +>>> b = np.array([1, 2])
    +>>> c = np.array([1, 3])
    +>>> np.array_equiv(a, b)
    +array(True)
    +>>> np.array_equiv(a, c)
    +array(False)
    +
    +
    +

    Showing the shape equivalence:

    +
    >>> b = np.array([[1, 2], [1, 2]])
    +>>> c = np.array([[1, 2, 1, 2], [1, 2, 1, 2]])
    +>>> np.array_equiv(a, b)
    +array(True)
    +>>> np.array_equiv(a, c)
    +array(False)
    +
    +
    +
    >>> b = np.array([[1, 2], [1, 3]])
    +>>> np.array_equiv(a, b)
    +array(False)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.array_split.html b/pull/2070/reference/generated/dpnp.array_split.html new file mode 100644 index 00000000000..47ac02bdd77 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.array_split.html @@ -0,0 +1,220 @@ + + + + + + + + + + + dpnp.array_split — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.array_split

    +
    +
    +dpnp.array_split(ary, indices_or_sections, axis=0)[source]
    +

    Split an array into multiple sub-arrays.

    +

    Please refer to the dpnp.split documentation. The only difference +between these functions is that dpnp.array_split allows +indices_or_sections to be an integer that does not equally divide the +axis. For an array of length l that should be split into n sections, it +returns l % n sub-arrays of size l//n + 1 and the rest of size +l//n.

    +

    For full documentation refer to numpy.array_split.

    +
    +
    Parameters:
    +
      +
    • ary ({dpnp.ndarray, usm_ndarray}) -- Array to be divided into sub-arrays.

    • +
    • indices_or_sections ({int, sequence of ints}) --

      If indices_or_sections is an integer, N, and array length is l, it +returns l % n sub-arrays of size l//n + 1 and the rest of size +l//n.

      +

      If indices_or_sections is a sequence of sorted integers, the entries +indicate where along axis the array is split.

      +

    • +
    • axis (int, optional) -- The axis along which to split. +Default: 0.

    • +
    +
    +
    Returns:
    +

    sub-arrays -- A list of sub arrays. Each array is a view of the corresponding input +array.

    +
    +
    Return type:
    +

    list of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.split

    Split array into multiple sub-arrays of equal size.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(8.0)
    +>>> np.array_split(x, 3)
    +[array([0., 1., 2.]), array([3., 4., 5.]), array([6., 7.])]
    +
    +
    +
    >>> x = np.arange(9)
    +>>> np.array_split(x, 4)
    +[array([0, 1, 2]), array([3, 4]), array([5, 6]), array([7, 8])]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.asanyarray.html b/pull/2070/reference/generated/dpnp.asanyarray.html new file mode 100644 index 00000000000..77502912d46 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.asanyarray.html @@ -0,0 +1,250 @@ + + + + + + + + + + + dpnp.asanyarray — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.asanyarray

    +
    +
    +dpnp.asanyarray(a, dtype=None, order=None, *, like=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Convert the input to an dpnp.ndarray.

    +

    For full documentation refer to numpy.asanyarray.

    +
    +
    Parameters:
    +
      +
    • a (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary).

    • +
    • order ({None, "C", "F", "A", "K"}, optional) -- Memory layout of the newly output array. +Default: "K".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array interpretation of a.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.asarray

    Similar function which always returns ndarrays.

    +
    +
    dpnp.ascontiguousarray

    Convert input to a contiguous array.

    +
    +
    dpnp.asfarray

    Convert input to a floating point ndarray.

    +
    +
    dpnp.asfortranarray

    Convert input to an ndarray with column-major memory order.

    +
    +
    dpnp.asarray_chkfinite

    Similar function which checks input for NaNs and Infs.

    +
    +
    dpnp.fromiter

    Create an array from an iterator.

    +
    +
    dpnp.fromfunction

    Construct an array by executing a function on grid positions.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.asanyarray([1, 2, 3])
    +array([1, 2, 3])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.asanyarray([1, 2, 3]) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.asanyarray([1, 2, 3], device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 2, 3]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.asanyarray([1, 2, 3], usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.asarray.html b/pull/2070/reference/generated/dpnp.asarray.html new file mode 100644 index 00000000000..5adee8f7df0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.asarray.html @@ -0,0 +1,258 @@ + + + + + + + + + + + dpnp.asarray — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.asarray

    +
    +
    +dpnp.asarray(a, dtype=None, order=None, *, device=None, usm_type=None, sycl_queue=None, copy=None, like=None)[source]
    +

    Converts an input object into array.

    +

    For full documentation refer to numpy.asarray.

    +
    +
    Parameters:
    +
      +
    • a (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary). +Default: None.

    • +
    • order ({None, "C", "F", "A", "K"}, optional) -- Memory layout of the newly output array. +Default: "K".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. +Default: None.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    • copy ({None, bool}, optional) -- If True, then the array data is copied. If None, a copy will +only be made if a copy is needed to satisfy any of the requirements +(dtype, order, etc.). For False it raises a ValueError +exception if a copy can not be avoided. +Default: True.

    • +
    +
    +
    Returns:
    +

    out -- Array interpretation of a. No copy is performed if the input +is already an ndarray with matching dtype and order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.asanyarray

    Similar function which passes through subclasses.

    +
    +
    dpnp.ascontiguousarray

    Convert input to a contiguous array.

    +
    +
    dpnp.asfarray

    Convert input to a floating point ndarray.

    +
    +
    dpnp.asfortranarray

    Convert input to an ndarray with column-major memory order.

    +
    +
    dpnp.asarray_chkfinite

    Similar function which checks input for NaNs and Infs.

    +
    +
    dpnp.fromiter

    Create an array from an iterator.

    +
    +
    dpnp.fromfunction

    Construct an array by executing a function on grid positions.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.asarray([1, 2, 3])
    +array([1, 2, 3])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.asarray([1, 2, 3]) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.asarray([1, 2, 3], device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 2, 3]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.asarray([1, 2, 3], usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.asarray_chkfinite.html b/pull/2070/reference/generated/dpnp.asarray_chkfinite.html new file mode 100644 index 00000000000..f0a5f166d2b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.asarray_chkfinite.html @@ -0,0 +1,264 @@ + + + + + + + + + + + dpnp.asarray_chkfinite — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.asarray_chkfinite

    +
    +
    +dpnp.asarray_chkfinite(a, dtype=None, order=None, *, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Convert the input to an array, checking for NaNs or Infs.

    +

    For full documentation refer to numpy.asarray_chkfinite.

    +
    +
    Parameters:
    +
      +
    • arr (array_like) -- Input data, in any form that can be converted to an array. This +includes lists, lists of tuples, tuples, tuples of tuples, tuples +of lists and ndarrays. Success requires no NaNs or Infs.

    • +
    • dtype ({None, str, dtype object}, optional) -- By default, the data-type is inferred from the input data. +Default: None.

    • +
    • order ({None, "C", "F", "A", "K"}, optional) -- Memory layout of the newly output array. +Default: "K".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. +Default: None.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array interpretation of a. No copy is performed if the input is +already an ndarray.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    Raises:
    +

    ValueError -- Raises ValueError if a contains NaN (Not a Number) or + Inf (Infinity).

    +
    +
    +
    +

    See also

    +
    +
    dpnp.asarray

    Create an array.

    +
    +
    dpnp.asanyarray

    Converts an input object into array.

    +
    +
    dpnp.ascontiguousarray

    Convert input to a c-contiguous array.

    +
    +
    dpnp.asfortranarray

    Convert input to an array with column-major memory order.

    +
    +
    dpnp.fromiter

    Create an array from an iterator.

    +
    +
    dpnp.fromfunction

    Construct an array by executing a function on grid positions.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +
    +
    +

    Convert a list into an array. If all elements are finite, +asarray_chkfinite is identical to asarray.

    +
    >>> a = [1, 2]
    +>>> np.asarray_chkfinite(a, dtype=np.float32)
    +array([1., 2.])
    +
    +
    +

    Raises ValueError if array_like contains NaNs or Infs.

    +
    >>> a = [1, 2, np.inf]
    +>>> try:
    +...     np.asarray_chkfinite(a)
    +... except ValueError:
    +...     print('ValueError')
    +ValueError
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.asarray_chkfinite([1, 2, 3]) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.asarray_chkfinite([1, 2, 3], device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 2, 3]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.asarray_chkfinite([1, 2, 3], usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ascontiguousarray.html b/pull/2070/reference/generated/dpnp.ascontiguousarray.html new file mode 100644 index 00000000000..61cb9224039 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ascontiguousarray.html @@ -0,0 +1,263 @@ + + + + + + + + + + + dpnp.ascontiguousarray — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ascontiguousarray

    +
    +
    +dpnp.ascontiguousarray(a, dtype=None, *, like=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return a contiguous array in memory (C order).

    +

    For full documentation refer to numpy.ascontiguousarray.

    +
    +
    Parameters:
    +
      +
    • a (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary).

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Contiguous array of same shape and content as a, with type dtype +if specified.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.asfortranarray

    Convert input to an ndarray with column-major memory order.

    +
    +
    dpnp.require

    Return an ndarray that satisfies requirements.

    +
    +
    dpnp.ndarray.flags

    Information about the memory layout of the array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.ones((2, 3), order='F')
    +>>> x.flags['F_CONTIGUOUS']
    +True
    +
    +
    +

    Calling ascontiguousarray makes a C-contiguous copy:

    +
    >>> y = np.ascontiguousarray(x)
    +>>> y.flags['F_CONTIGUOUS']
    +True
    +>>> x is y
    +False
    +
    +
    +

    Now, starting with a C-contiguous array:

    +
    >>> x = np.ones((2, 3), order='C')
    +>>> x.flags['C_CONTIGUOUS']
    +True
    +
    +
    +

    Then, calling ascontiguousarray returns the same object:

    +
    >>> y = np.ascontiguousarray(x)
    +>>> x is y
    +True
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x0 = np.asarray([1, 2, 3])
    +>>> x = np.ascontiguousarray(x0) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.ascontiguousarray(x0, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 2, 3]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.ascontiguousarray(x0, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.asfarray.html b/pull/2070/reference/generated/dpnp.asfarray.html new file mode 100644 index 00000000000..a2c74b76c63 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.asfarray.html @@ -0,0 +1,217 @@ + + + + + + + + + + + dpnp.asfarray — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.asfarray

    +
    +
    +dpnp.asfarray(a, dtype=None, *, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return an array converted to a float type.

    +

    For full documentation refer to numpy.asfarray.

    +
    +
    Parameters:
    +
      +
    • a (array_like) -- Input data, in any form that can be converted to an array. +This includes an instance of dpnp.ndarray or +dpctl.tensor.usm_ndarray, an object representing +SYCL USM allocation and implementing __sycl_usm_array_interface__ +protocol, an instance of numpy.ndarray, an object supporting +Python buffer protocol, a Python scalar, or a (possibly nested) +sequence of Python scalars.

    • +
    • dtype (str or dtype object, optional) -- Float type code to coerce input array a. If dtype is None, +dpnp.bool or one of the int dtypes, it is replaced with +the default floating type (dpnp.float64 if a device supports it, +or dpnp.float32 type otherwise).

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by dpnp.ndarray.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The input a as a float ndarray.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.asfarray([2, 3])
    +array([2.,  3.])
    +>>> np.asfarray([2, 3], dtype=dpnp.float32)
    +array([2., 3.], dtype=float32)
    +>>> np.asfarray([2, 3], dtype=dpnp.int32)
    +array([2.,  3.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.asfortranarray.html b/pull/2070/reference/generated/dpnp.asfortranarray.html new file mode 100644 index 00000000000..b3c5a8f7dae --- /dev/null +++ b/pull/2070/reference/generated/dpnp.asfortranarray.html @@ -0,0 +1,267 @@ + + + + + + + + + + + dpnp.asfortranarray — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.asfortranarray

    +
    +
    +dpnp.asfortranarray(a, dtype=None, *, like=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return an array (ndim >= 1) laid out in Fortran order in memory.

    +

    For full documentation refer to numpy.asfortranarray.

    +
    +
    Parameters:
    +
      +
    • a (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary).

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The input a in Fortran, or column-major, order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.ascontiguousarray

    Convert input to a contiguous (C order) array.

    +
    +
    dpnp.asanyarray

    Convert input to an ndarray with either row or column-major memory order.

    +
    +
    dpnp.require

    Return an ndarray that satisfies requirements.

    +
    +
    dpnp.ndarray.flags

    Information about the memory layout of the array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +
    +
    +

    Starting with a C-contiguous array:

    +
    >>> x = np.ones((2, 3), order='C')
    +>>> x.flags['C_CONTIGUOUS']
    +True
    +
    +
    +

    Calling asfortranarray makes a Fortran-contiguous copy:

    +
    >>> y = np.asfortranarray(x)
    +>>> y.flags['F_CONTIGUOUS']
    +True
    +>>> x is y
    +False
    +
    +
    +

    Now, starting with a Fortran-contiguous array:

    +
    >>> x = np.ones((2, 3), order='F')
    +>>> x.flags['F_CONTIGUOUS']
    +True
    +
    +
    +

    Then, calling asfortranarray returns the same object:

    +
    >>> y = np.asfortranarray(x)
    +>>> x is y
    +True
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x0 = np.asarray([1, 2, 3])
    +>>> x = np.asfortranarray(x0) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.asfortranarray(x0, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 2, 3]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.asfortranarray(x0, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.asin.html b/pull/2070/reference/generated/dpnp.asin.html new file mode 100644 index 00000000000..84e82b7d48b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.asin.html @@ -0,0 +1,239 @@ + + + + + + + + + + + dpnp.asin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.asin

    +
    +
    +dpnp.asin(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse sine for each element x_i for input array x.

    +

    The inverse of dpnp.sin, so that if y = sin(x) then x = arcsin(y). +Note that dpnp.asin is an alias of dpnp.arcsin.

    +

    For full documentation refer to numpy.arcsin.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse sine, in radians +and in the closed interval [-pi/2, pi/2]. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.sin

    Trigonometric sine, element-wise.

    +
    +
    dpnp.cos

    Trigonometric cosine, element-wise.

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    dpnp.tan

    Trigonometric tangent, element-wise.

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    dpnp.arctan2

    Element-wise arc tangent of x1/x2 choosing the quadrant correctly.

    +
    +
    dpnp.arcsinh

    Hyperbolic inverse sine, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arcsin is a multivalued function: for each x there are infinitely +many numbers z such that sin(z) = x. The convention is to return the +angle z whose real part lies in [-pi/2, pi/2].

    +

    For real-valued input data types, dpnp.arcsin always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arcsin is a complex analytic function that +has, by convention, the branch cuts [-inf, -1] and [1, inf] and is continuous +from above on the former and from below on the latter.

    +

    The inverse sine is also known as \(asin\) or \(sin^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, 1, -1])
    +>>> np.arcsin(x)
    +array([0.0, 1.5707963267948966, -1.5707963267948966])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.asinh.html b/pull/2070/reference/generated/dpnp.asinh.html new file mode 100644 index 00000000000..0fc09e7d03f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.asinh.html @@ -0,0 +1,233 @@ + + + + + + + + + + + dpnp.asinh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.asinh

    +
    +
    +dpnp.asinh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse hyperbolic sine for each element x_i for input array x.

    +

    The inverse of dpnp.sinh, so that if y = sinh(x) then x = arcsinh(y). +Note that dpnp.asinh is an alias of dpnp.arcsinh.

    +

    For full documentation refer to numpy.arcsinh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse hyperbolic sine. +The data type of the returned array is determined by +the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.sinh

    Hyperbolic sine, element-wise.

    +
    +
    dpnp.arctanh

    Hyperbolic inverse tangent, element-wise.

    +
    +
    dpnp.arccosh

    Hyperbolic inverse cosine, element-wise.

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arcsinh is a multivalued function: for each x there are infinitely +many numbers z such that sin(z) = x. The convention is to return the +angle z whose real part lies in [-pi/2, pi/2].

    +

    For real-valued input data types, dpnp.arcsinh always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arcsinh is a complex analytic function that +has, by convention, the branch cuts [1j, infj] and [`1j, -infj] and is continuous +from above on the former and from below on the latter.

    +

    The inverse hyperbolic sine is also known as \(asinh\) or \(sinh^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([np.e, 10.0])
    +>>> np.arcsinh(x)
    +array([1.72538256, 2.99822295])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.asnumpy.html b/pull/2070/reference/generated/dpnp.asnumpy.html new file mode 100644 index 00000000000..631041583f1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.asnumpy.html @@ -0,0 +1,191 @@ + + + + + + + + + + + dpnp.asnumpy — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.asnumpy

    +
    +
    +dpnp.asnumpy(a, order='C')[source]
    +

    Returns the NumPy array with input data.

    +
    +
    Parameters:
    +
      +
    • a ({array_like}) -- Arbitrary object that can be converted to numpy.ndarray.

    • +
    • order ({'C', 'F', 'A', 'K'}) -- The desired memory layout of the converted array. +When order is A, it uses F if a is column-major and uses +C otherwise. And when order is K, it keeps strides as closely +as possible.

    • +
    +
    +
    Returns:
    +

    out -- NumPy interpretation of input array a.

    +
    +
    Return type:
    +

    numpy.ndarray

    +
    +
    +

    Notes

    +

    This function works exactly the same as numpy.asarray.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.astype.html b/pull/2070/reference/generated/dpnp.astype.html new file mode 100644 index 00000000000..8237cfcfaf1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.astype.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.astype — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.astype

    +
    +
    +dpnp.astype(x1, dtype, order='K', casting='unsafe', copy=True, device=None)[source]
    +

    Copy the array with data type casting.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray}) -- Array data type casting.

    • +
    • dtype (dtype) -- Target data type.

    • +
    • order ({'C', 'F', 'A', 'K'}) -- Row-major (C-style) or column-major (Fortran-style) order. +When order is A, it uses F if a is column-major and uses +C otherwise. And when order is K, it keeps strides as closely +as possible.

    • +
    • copy ({bool}, optional) -- If it is False and no cast happens, then this method returns +the array itself. Otherwise, a copy is returned.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) --

      Controls what kind of data casting may occur. Defaults to unsafe +for backwards compatibility.

      +
      +
        +
      • 'no' means the data types should not be cast at all.

      • +
      • 'equiv' means only byte-order changes are allowed.

      • +
      • 'safe' means only casts which can preserve values are allowed.

      • +
      • 'same_kind' means only safe casts or casts within a kind, like +float64 to float32, are allowed.

      • +
      • 'unsafe' means any data conversions may be done.

      • +
      +
      +

    • +
    • copy -- By default, astype always returns a newly allocated array. If this +is set to False, and the dtype, order, and subok requirements +are satisfied, the input array is returned instead of a copy.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. Default: None.

    • +
    +
    +
    Returns:
    +

    arr_t -- Unless copy is False and the other conditions for returning +the input array are satisfied, arr_t is a new array of the same shape +as the input array, with dtype, order given by dtype, order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.atan.html b/pull/2070/reference/generated/dpnp.atan.html new file mode 100644 index 00000000000..5cc7b987de2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.atan.html @@ -0,0 +1,237 @@ + + + + + + + + + + + dpnp.atan — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.atan

    +
    +
    +dpnp.atan(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes inverse tangent for each element x_i for input array x.

    +

    The inverse of dpnp.tan, so that if y = tan(x) then x = arctan(y). +Note that dpnp.atan is an alias of dpnp.arctan.

    +

    For full documentation refer to numpy.arctan.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise inverse tangent, in radians +and in the closed interval [-pi/2, pi/2]. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arctan2

    Element-wise arc tangent of x1/x2 choosing the quadrant correctly.

    +
    +
    dpnp.angle

    Argument of complex values.

    +
    +
    dpnp.tan

    Trigonometric tangent, element-wise.

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    dpnp.arctanh

    Inverse hyperbolic tangent, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arctan is a multivalued function: for each x there are infinitely +many numbers z such that tan(z) = x. The convention is to return the +angle z whose real part lies in [-pi/2, pi/2].

    +

    For real-valued input data types, dpnp.arctan always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arctan is a complex analytic function that +has, by convention, the branch cuts [1j, infj] and [-1j, -infj] and is continuous +from the left on the former and from the right on the latter.

    +

    The inverse tan is also known as \(atan\) or \(tan^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, 1])
    +>>> np.arctan(x)
    +array([0.0, 0.78539816])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.atan2.html b/pull/2070/reference/generated/dpnp.atan2.html new file mode 100644 index 00000000000..be14ee47de7 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.atan2.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.atan2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.atan2

    +
    +
    +dpnp.atan2(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the inverse tangent of the quotient x1_i/x2_i for each element +x1_i of the input array x1 with the respective element x2_i of the +input array x2. Each element-wise result is expressed in radians.

    +

    Note that dpnp.atan2 is an alias of dpnp.arctan2. +This function is not defined for complex-valued arguments; for the so-called +argument of complex values, use dpnp.angle.

    +

    For full documentation refer to numpy.arctan2.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real-valued floating-point +data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real-valued +floating-point data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the inverse tangent of the quotient x1/x2. +The returned array must have a real-valued floating-point data type +determined by Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword arguments kwargs are currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    dpnp.tan

    Compute tangent element-wise.

    +
    +
    dpnp.angle

    Return the angle of the complex argument.

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    dpnp.arctanh

    Inverse hyperbolic tangent, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([1., -1.])
    +>>> x2 = np.array([0., 0.])
    +>>> np.arctan2(x1, x2)
    +array([1.57079633, -1.57079633])
    +
    +
    +
    >>> x1 = np.array([0., 0., np.inf])
    +>>> x2 = np.array([+0., -0., np.inf])
    +>>> np.arctan2(x1, x2)
    +array([0.0 , 3.14159265, 0.78539816])
    +
    +
    +
    >>> x1 = np.array([-1, +1, +1, -1])
    +>>> x2 = np.array([-1, -1, +1, +1])
    +>>> np.arctan2(x1, x2) * 180 / np.pi
    +array([-135.,  -45.,   45.,  135.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.atanh.html b/pull/2070/reference/generated/dpnp.atanh.html new file mode 100644 index 00000000000..6e7d72c128f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.atanh.html @@ -0,0 +1,233 @@ + + + + + + + + + + + dpnp.atanh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.atanh

    +
    +
    +dpnp.atanh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes hyperbolic inverse tangent for each element x_i for input array x.

    +

    The inverse of dpnp.tanh, so that if y = tanh(x) then x = arctanh(y). +Note that dpnp.atanh is an alias of dpnp.arctanh.

    +

    For full documentation refer to numpy.arctanh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise hyperbolic inverse tangent. +The data type of the returned array is determined by +the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.tanh

    Hyperbolic tangent, element-wise.

    +
    +
    dpnp.arcsinh

    Hyperbolic inverse sine, element-wise.

    +
    +
    dpnp.arccosh

    Hyperbolic inverse cosine, element-wise.

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    +
    +

    Notes

    +

    dpnp.arctanh is a multivalued function: for each x there are infinitely +many numbers z such that tanh(z) = x. The convention is to return the +angle z whose real part lies in [-pi/2, pi/2].

    +

    For real-valued input data types, dpnp.arctanh always returns real output. +For each value that cannot be expressed as a real number or infinity, it yields +nan.

    +

    For complex-valued input, dpnp.arctanh is a complex analytic function that +has, by convention, the branch cuts [-1, -inf] and [1, inf] and is is continuous +from above on the former and from below on the latter.

    +

    The inverse hyperbolic tan is also known as \(atanh\) or \(tanh^{-1}\).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, -0.5])
    +>>> np.arctanh(x)
    +array([0.0, -0.54930614])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.atleast_1d.html b/pull/2070/reference/generated/dpnp.atleast_1d.html new file mode 100644 index 00000000000..abaab2e961a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.atleast_1d.html @@ -0,0 +1,216 @@ + + + + + + + + + + + dpnp.atleast_1d — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.atleast_1d

    +
    +
    +dpnp.atleast_1d(*arys)[source]
    +

    Convert inputs to arrays with at least one dimension.

    +

    For full documentation refer to numpy.atleast_1d.

    +
    +
    Parameters:
    +

    arys ({dpnp.ndarray, usm_ndarray}) -- One or more array-like sequences. Arrays that already have one or more +dimensions are preserved.

    +
    +
    Returns:
    +

    out -- An array, or list of arrays, each with a.ndim >= 1. +Copies are made only if necessary.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.atleast_2d

    View inputs as arrays with at least two dimensions.

    +
    +
    dpnp.atleast_3d

    View inputs as arrays with at least three dimensions.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array(1.0)
    +>>> np.atleast_1d(x)
    +array([1.])
    +
    +
    +
    >>> y = np.array([3, 4])
    +>>> np.atleast_1d(x, y)
    +[array([1.]), array([3, 4])]
    +
    +
    +
    >>> x = np.arange(9.0).reshape(3,3)
    +>>> np.atleast_1d(x)
    +array([[0., 1., 2.],
    +       [3., 4., 5.],
    +       [6., 7., 8.]])
    +>>> np.atleast_1d(x) is x
    +True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.atleast_2d.html b/pull/2070/reference/generated/dpnp.atleast_2d.html new file mode 100644 index 00000000000..50f33041690 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.atleast_2d.html @@ -0,0 +1,208 @@ + + + + + + + + + + + dpnp.atleast_2d — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.atleast_2d

    +
    +
    +dpnp.atleast_2d(*arys)[source]
    +

    View inputs as arrays with at least two dimensions.

    +

    For full documentation refer to numpy.atleast_2d.

    +
    +
    Parameters:
    +

    arys ({dpnp.ndarray, usm_ndarray}) -- One or more array-like sequences. Arrays that already have two or more +dimensions are preserved.

    +
    +
    Returns:
    +

    out -- An array, or list of arrays, each with a.ndim >= 2. +Copies are avoided where possible, and views with two or more +dimensions are returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.atleast_1d

    Convert inputs to arrays with at least one dimension.

    +
    +
    dpnp.atleast_3d

    View inputs as arrays with at least three dimensions.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array(3.0)
    +>>> np.atleast_2d(x)
    +array([[3.]])
    +
    +
    +
    >>> x = np.arange(3.0)
    +>>> np.atleast_2d(x)
    +array([[0., 1., 2.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.atleast_3d.html b/pull/2070/reference/generated/dpnp.atleast_3d.html new file mode 100644 index 00000000000..adceffc3161 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.atleast_3d.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.atleast_3d — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.atleast_3d

    +
    +
    +dpnp.atleast_3d(*arys)[source]
    +

    View inputs as arrays with at least three dimensions.

    +

    For full documentation refer to numpy.atleast_3d.

    +
    +
    Parameters:
    +

    arys ({dpnp.ndarray, usm_ndarray}) -- One or more array-like sequences. Arrays that already have three or more +dimensions are preserved.

    +
    +
    Returns:
    +

    out -- An array, or list of arrays, each with a.ndim >= 3. Copies are +avoided where possible, and views with three or more dimensions are +returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.atleast_1d

    Convert inputs to arrays with at least one dimension.

    +
    +
    dpnp.atleast_2d

    View inputs as arrays with at least three dimensions.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array(3.0)
    +>>> np.atleast_3d(x)
    +array([[[3.]]])
    +
    +
    +
    >>> x = np.arange(3.0)
    +>>> np.atleast_3d(x).shape
    +(1, 3, 1)
    +
    +
    +
    >>> x = np.arange(12.0).reshape(4, 3)
    +>>> np.atleast_3d(x).shape
    +(4, 3, 1)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.average.html b/pull/2070/reference/generated/dpnp.average.html new file mode 100644 index 00000000000..100ee7e3e63 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.average.html @@ -0,0 +1,262 @@ + + + + + + + + + + + dpnp.average — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.average

    +
    +
    +dpnp.average(a, axis=None, weights=None, returned=False, *, keepdims=False)[source]
    +

    Compute the weighted average along the specified axis.

    +

    For full documentation refer to numpy.average.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which the averages must be computed. If +a tuple of unique integers, the averages are computed over multiple +axes. If None, the average is computed over the entire array. +Default: None.

    • +
    • weights ({array_like}, optional) --

      An array of weights associated with the values in a. Each value in +a contributes to the average according to its associated weight. +The weights array can either be 1-D (in which case its length must be +the size of a along the given axis) or of the same shape as a. +If weights=None, then all data in a are assumed to have a +weight equal to one. The 1-D calculation is:

      +
      avg = sum(a * weights) / sum(weights)
      +
      +
      +

      The only constraint on weights is that sum(weights) must not be 0.

      +

    • +
    • returned ({bool}, optional) -- If True, the tuple (average, sum_of_weights) is returned, +otherwise only the average is returned. If weights=None, +sum_of_weights is equivalent to the number of elements over which +the average is taken. +Default: False.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out, [sum_of_weights] -- Return the average along the specified axis. When returned is +True, return a tuple with the average as the first element and +the sum of the weights as the second element. sum_of_weights is of +the same type as out. The result dtype follows a general pattern. +If weights is None, the result dtype will be that of a , or +default floating point data type for the device where input array a +is allocated. Otherwise, if weights is not None and a is +non-integral, the result type will be the type of lowest precision +capable of representing values of both a and weights. If a +happens to be integral, the previous rules still applies but the result +dtype will at least be default floating point data type for the device +where input array a is allocated.

    +
    +
    Return type:
    +

    dpnp.ndarray, dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.mean

    Compute the arithmetic mean along the specified axis.

    +
    +
    dpnp.sum

    Sum of array elements over a given axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> data = np.arange(1, 5)
    +>>> data
    +array([1, 2, 3, 4])
    +>>> np.average(data)
    +array(2.5)
    +>>> np.average(np.arange(1, 11), weights=np.arange(10, 0, -1))
    +array(4.0)
    +
    +
    +
    >>> data = np.arange(6).reshape((3, 2))
    +>>> data
    +array([[0, 1],
    +    [2, 3],
    +    [4, 5]])
    +>>> np.average(data, axis=1, weights=[1./4, 3./4])
    +array([0.75, 2.75, 4.75])
    +>>> np.average(data, weights=[1./4, 3./4])
    +TypeError: Axis must be specified when shapes of a and weights differ.
    +
    +
    +

    With keepdims=True, the following result has shape (3, 1).

    +
    >>> np.average(data, axis=1, keepdims=True)
    +array([[0.5],
    +    [2.5],
    +    [4.5]])
    +
    +
    +
    >>> a = np.ones(5, dtype=np.float64)
    +>>> w = np.ones(5, dtype=np.complex64)
    +>>> avg = np.average(a, weights=w)
    +>>> print(avg.dtype)
    +complex128
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.bincount.html b/pull/2070/reference/generated/dpnp.bincount.html new file mode 100644 index 00000000000..6c0b9233d4a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.bincount.html @@ -0,0 +1,181 @@ + + + + + + + + + + + dpnp.bincount — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.bincount

    +
    +
    +dpnp.bincount(x1, weights=None, minlength=0)[source]
    +

    Count number of occurrences of each value in array of non-negative integers.

    +

    For full documentation refer to numpy.bincount.

    +
    +

    See also

    +
    +
    dpnp.unique

    Find the unique elements of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> res = np.bincount(np.arange(5))
    +>>> print(res)
    +[1, 1, 1, 1, 1]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.bitwise_and.html b/pull/2070/reference/generated/dpnp.bitwise_and.html new file mode 100644 index 00000000000..c61f7a37a26 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.bitwise_and.html @@ -0,0 +1,215 @@ + + + + + + + + + + + dpnp.bitwise_and — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.bitwise_and

    +
    +
    +dpnp.bitwise_and(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the bitwise AND of the underlying binary representation of each +element x1_i of the input array x1 with the respective element x2_i +of the input array x2.

    +

    For full documentation refer to numpy.bitwise_and.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have integer or boolean data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have integer or boolean data +type. Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.logical_and

    Compute the truth value of x1 AND x2 element-wise.

    +
    +
    dpnp.bitwise_or

    Compute the bit-wise OR of two arrays element-wise.

    +
    +
    dpnp.bitwise_xor

    Compute the bit-wise XOR of two arrays element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([2, 5, 255])
    +>>> x2 = np.array([3,14,16])
    +>>> np.bitwise_and(x1, x2)
    +[2, 4, 16]
    +
    +
    +
    >>> a = np.array([True, True])
    +>>> b = np.array([False, True])
    +>>> np.bitwise_and(a, b)
    +array([False,  True])
    +
    +
    +

    The & operator can be used as a shorthand for bitwise_and on +dpnp.ndarray.

    +
    >>> x1 & x2
    +array([ 2,  4, 16])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.bitwise_not.html b/pull/2070/reference/generated/dpnp.bitwise_not.html new file mode 100644 index 00000000000..187553c4833 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.bitwise_not.html @@ -0,0 +1,222 @@ + + + + + + + + + + + dpnp.bitwise_not — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.bitwise_not

    +
    +
    +dpnp.bitwise_not(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Inverts (flips) each bit for each element x_i of the input array x.

    +

    Note that dpnp.bitwise_invert is an alias of dpnp.invert.

    +

    For full documentation refer to numpy.invert.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have integer or boolean data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. +The data type of the returned array is same as the data type of the +input array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.bitwise_and

    Compute the bit-wise AND of two arrays element-wise.

    +
    +
    dpnp.bitwise_or

    Compute the bit-wise OR of two arrays element-wise.

    +
    +
    dpnp.bitwise_xor

    Compute the bit-wise XOR of two arrays element-wise.

    +
    +
    dpnp.logical_not

    Compute the truth value of NOT x element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([13])
    +>>> np.invert(x)
    +-14
    +
    +
    +
    >>> a = np.array([True, False])
    +>>> np.invert(a)
    +array([False,  True])
    +
    +
    +

    The ~ operator can be used as a shorthand for invert on +dpnp.ndarray.

    +
    >>> ~a
    +array([False,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.bitwise_or.html b/pull/2070/reference/generated/dpnp.bitwise_or.html new file mode 100644 index 00000000000..c0e761fa52a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.bitwise_or.html @@ -0,0 +1,209 @@ + + + + + + + + + + + dpnp.bitwise_or — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.bitwise_or

    +
    +
    +dpnp.bitwise_or(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the bitwise OR of the underlying binary representation of each +element x1_i of the input array x1 with the respective element x2_i +of the input array x2.

    +

    For full documentation refer to numpy.bitwise_or.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have integer or boolean data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have integer or boolean data +type. Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.logical_or

    Compute the truth value of x1 OR x2 element-wise.

    +
    +
    dpnp.bitwise_and

    Compute the bit-wise AND of two arrays element-wise.

    +
    +
    dpnp.bitwise_xor

    Compute the bit-wise XOR of two arrays element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([2, 5, 255])
    +>>> x2 = np.array([4])
    +>>> np.bitwise_or(x1, x2)
    +array([  6,   5, 255])
    +
    +
    +

    The | operator can be used as a shorthand for bitwise_or on +dpnp.ndarray.

    +
    >>> x1 | x2
    +array([  6,   5, 255])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.bitwise_xor.html b/pull/2070/reference/generated/dpnp.bitwise_xor.html new file mode 100644 index 00000000000..dad05fe2881 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.bitwise_xor.html @@ -0,0 +1,215 @@ + + + + + + + + + + + dpnp.bitwise_xor — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.bitwise_xor

    +
    +
    +dpnp.bitwise_xor(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the bitwise XOR of the underlying binary representation of each +element x1_i of the input array x1 with the respective element x2_i +of the input array x2.

    +

    For full documentation refer to numpy.bitwise_xor.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have integer or boolean data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have integer or boolean data +type. Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.logical_xor

    Compute the truth value of x1 XOR x2, element-wise.

    +
    +
    dpnp.bitwise_and

    Compute the bit-wise AND of two arrays element-wise.

    +
    +
    dpnp.bitwise_or

    Compute the bit-wise OR of two arrays element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([31, 3])
    +>>> x2 = np.array([5, 6])
    +>>> np.bitwise_xor(x1, x2)
    +array([26,  5])
    +
    +
    +
    >>> a = np.array([True, True])
    +>>> b = np.array([False, True])
    +>>> np.bitwise_xor(a, b)
    +array([ True, False])
    +
    +
    +

    The ^ operator can be used as a shorthand for bitwise_xor on +dpnp.ndarray.

    +
    >>> a ^ b
    +array([ True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.broadcast_arrays.html b/pull/2070/reference/generated/dpnp.broadcast_arrays.html new file mode 100644 index 00000000000..e9e6b560b8d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.broadcast_arrays.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.broadcast_arrays — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.broadcast_arrays

    +
    +
    +dpnp.broadcast_arrays(*args, subok=False)[source]
    +

    Broadcast any number of arrays against each other.

    +

    For full documentation refer to numpy.broadcast_arrays.

    +
    +
    Parameters:
    +

    args ({dpnp.ndarray, usm_ndarray}) -- A list of arrays to broadcast.

    +
    +
    Returns:
    +

    out -- A list of arrays which are views on the original arrays from args.

    +
    +
    Return type:
    +

    list of dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter subok is supported with default value. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.broadcast_to

    Broadcast an array to a new shape.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[1, 2, 3]])
    +>>> y = np.array([[4], [5]])
    +>>> np.broadcast_arrays(x, y)
    +[array([[1, 2, 3],
    +        [1, 2, 3]]), array([[4, 4, 4],
    +        [5, 5, 5]])]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.broadcast_to.html b/pull/2070/reference/generated/dpnp.broadcast_to.html new file mode 100644 index 00000000000..091098d88b2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.broadcast_to.html @@ -0,0 +1,208 @@ + + + + + + + + + + + dpnp.broadcast_to — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.broadcast_to

    +
    +
    +dpnp.broadcast_to(array, /, shape, subok=False)[source]
    +

    Broadcast an array to a new shape.

    +

    For full documentation refer to numpy.broadcast_to.

    +
    +
    Parameters:
    +
      +
    • array ({dpnp.ndarray, usm_ndarray}) -- The array to broadcast.

    • +
    • shape (tuple or int) -- The shape of the desired array. A single integer i is interpreted +as (i,).

    • +
    +
    +
    Returns:
    +

    out -- An array having a specified shape. +Must have the same data type as array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter subok is supported with default value. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.broadcast_arrays

    Broadcast any number of arrays against each other.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 3])
    +>>> np.broadcast_to(x, (3, 3))
    +array([[1, 2, 3],
    +       [1, 2, 3],
    +       [1, 2, 3]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.can_cast.html b/pull/2070/reference/generated/dpnp.can_cast.html new file mode 100644 index 00000000000..bcee8b27978 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.can_cast.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.can_cast — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.can_cast

    +
    +
    +dpnp.can_cast(from_, to, casting='safe')[source]
    +

    Returns True if cast between data types can occur according +to the casting rule.

    +

    For full documentation refer to numpy.can_cast.

    +
    +
    Parameters:
    +
      +
    • from ({dpnp.ndarray, usm_ndarray, dtype, dtype specifier}) -- Source data type.

    • +
    • to (dtype) -- Target data type.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) -- Controls what kind of data casting may occur.

    • +
    +
    +
    Returns:
    +

    out -- True if cast can occur according to the casting rule, +False otherwise.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    +

    See also

    +
    +
    dpnp.result_type

    Returns the type that results from applying the NumPy type promotion rules to the arguments.

    +
    +
    +
    +

    Examples

    +

    Basic examples

    +
    >>> import dpnp as np
    +>>> np.can_cast(np.int32, np.int64)
    +True
    +>>> np.can_cast(np.float64, complex)
    +True
    +>>> np.can_cast(complex, float)
    +False
    +
    +
    +
    >>> np.can_cast('i8', 'f8')
    +True
    +>>> np.can_cast('i8', 'f4')
    +False
    +
    +
    +

    Array scalar checks the value, array does not

    +
    >>> np.can_cast(np.array(1000.0), np.float32)
    +True
    +>>> np.can_cast(np.array([1000.0]), np.float32)
    +False
    +
    +
    +

    Using the casting rules

    +
    >>> np.can_cast('i8', 'i8', 'no')
    +True
    +>>> np.can_cast('<i8', '>i8', 'no')
    +False
    +
    +
    +
    >>> np.can_cast('<i8', '>i8', 'equiv')
    +True
    +>>> np.can_cast('<i4', '>i8', 'equiv')
    +False
    +
    +
    +
    >>> np.can_cast('<i4', '>i8', 'safe')
    +True
    +>>> np.can_cast('<i8', '>i4', 'safe')
    +False
    +
    +
    +
    >>> np.can_cast('<i8', '>i4', 'same_kind')
    +True
    +>>> np.can_cast('<i8', '>u4', 'same_kind')
    +False
    +
    +
    +
    >>> np.can_cast('<i8', '>u4', 'unsafe')
    +True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.cbrt.html b/pull/2070/reference/generated/dpnp.cbrt.html new file mode 100644 index 00000000000..b6ef663b7d5 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.cbrt.html @@ -0,0 +1,194 @@ + + + + + + + + + + + dpnp.cbrt — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.cbrt

    +
    +
    +dpnp.cbrt(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes positive cube-root for each element x_i for input array x.

    +

    For full documentation refer to numpy.cbrt.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real-valued data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise positive cube-root. +The data type of the returned array is determined by +the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.sqrt

    Return the positive square-root of an array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 8, 27])
    +>>> np.cbrt(x)
    +array([1., 2., 3.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ceil.html b/pull/2070/reference/generated/dpnp.ceil.html new file mode 100644 index 00000000000..dc9279080e4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ceil.html @@ -0,0 +1,198 @@ + + + + + + + + + + + dpnp.ceil — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ceil

    +
    +
    +dpnp.ceil(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Returns the ceiling for each element x_i for input array x.

    +

    For full documentation refer to numpy.ceil.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real-valued data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise ceiling.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.floor

    Return the floor of the input, element-wise.

    +
    +
    dpnp.trunc

    Return the truncated value of the input, element-wise.

    +
    +
    dpnp.rint

    Round elements of the array to the nearest integer.

    +
    +
    dpnp.fix

    Round to nearest integer towards zero, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
    +>>> np.ceil(a)
    +array([-1.0, -1.0, -0.0, 1.0, 2.0, 2.0, 2.0])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.choose.html b/pull/2070/reference/generated/dpnp.choose.html new file mode 100644 index 00000000000..2a966f156e9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.choose.html @@ -0,0 +1,174 @@ + + + + + + + + + + + dpnp.choose — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.choose

    +
    +
    +dpnp.choose(x1, choices, out=None, mode='raise')[source]
    +

    Construct an array from an index array and a set of arrays to choose from.

    +

    For full documentation refer to numpy.choose.

    +
    +

    See also

    +
    +
    dpnp.take_along_axis

    Preferable if choices is an array.

    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.clip.html b/pull/2070/reference/generated/dpnp.clip.html new file mode 100644 index 00000000000..54e342a6654 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.clip.html @@ -0,0 +1,226 @@ + + + + + + + + + + + dpnp.clip — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.clip

    +
    +
    +dpnp.clip(a, a_min, a_max, *, out=None, order='K', **kwargs)[source]
    +

    Clip (limit) the values in an array.

    +

    For full documentation refer to numpy.clip.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Array containing elements to clip.

    • +
    • a_min ({dpnp.ndarray, usm_ndarray, None}) -- Minimum and maximum value. If None, clipping is not performed on +the corresponding edge. Only one of a_min and a_max may be +None. Both are broadcast against a.

    • +
    • a_max ({dpnp.ndarray, usm_ndarray, None}) -- Minimum and maximum value. If None, clipping is not performed on +the corresponding edge. Only one of a_min and a_max may be +None. Both are broadcast against a.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- The results will be placed in this array. It may be the input array +for in-place clipping. out must be of the right shape to hold the +output. Its type is preserved.

    • +
    • order ({"C", "F", "A", "K", None}, optional) -- Memory layout of the newly output array, if parameter out is None. +If order is None, the default value "K" will be used.

    • +
    +
    +
    Returns:
    +

    out -- An array with the elements of a, but where values < a_min are +replaced with a_min, and those > a_max with a_max.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(10)
    +>>> a
    +array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    +>>> np.clip(a, 1, 8)
    +array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])
    +>>> np.clip(a, 8, 1)
    +array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
    +>>> np.clip(a, 3, 6, out=a)
    +array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
    +>>> a
    +array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
    +
    +
    +
    >>> a = np.arange(10)
    +>>> a
    +array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    +>>> min = np.array([3, 4, 1, 1, 1, 4, 4, 4, 4, 4])
    +>>> np.clip(a, min, 8)
    +array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.column_stack.html b/pull/2070/reference/generated/dpnp.column_stack.html new file mode 100644 index 00000000000..a7d8bcecee4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.column_stack.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.column_stack — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.column_stack

    +
    +
    +dpnp.column_stack(tup)[source]
    +

    Stacks 1-D and 2-D arrays as columns into a 2-D array.

    +

    Take a sequence of 1-D arrays and stack them as columns to make a single +2-D array. 2-D arrays are stacked as-is, just like with dpnp.hstack. +1-D arrays are turned into 2-D columns first.

    +

    For full documentation refer to numpy.column_stack.

    +
    +
    Parameters:
    +

    tup ({dpnp.ndarray, usm_ndarray}) -- A sequence of 1-D or 2-D arrays to stack. All of them must have +the same first dimension.

    +
    +
    Returns:
    +

    out -- The array formed by stacking the given arrays.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.stack

    Join a sequence of arrays along a new axis.

    +
    +
    dpnp.dstack

    Stack arrays in sequence depth wise (along third axis).

    +
    +
    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    +
    +
    dpnp.vstack

    Stack arrays in sequence vertically (row wise).

    +
    +
    dpnp.concatenate

    Join a sequence of arrays along an existing axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array((1, 2, 3))
    +>>> b = np.array((2, 3, 4))
    +>>> np.column_stack((a, b))
    +array([[1, 2],
    +       [2, 3],
    +       [3, 4]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.concat.html b/pull/2070/reference/generated/dpnp.concat.html new file mode 100644 index 00000000000..30257d41fcf --- /dev/null +++ b/pull/2070/reference/generated/dpnp.concat.html @@ -0,0 +1,239 @@ + + + + + + + + + + + dpnp.concat — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.concat

    +
    +
    +dpnp.concat(arrays, /, *, axis=0, out=None, dtype=None, casting='same_kind')
    +

    Join a sequence of arrays along an existing axis.

    +

    Note that dpnp.concat is an alias of dpnp.concatenate.

    +

    For full documentation refer to numpy.concatenate.

    +
    +
    Parameters:
    +
      +
    • arrays ({Sequence of dpnp.ndarray or usm_ndarray}) -- The arrays must have the same shape, except in the dimension +corresponding to axis (the first, by default).

    • +
    • axis (int, optional) -- The axis along which the arrays will be joined. If axis is None, +arrays are flattened before use. +Default: 0.

    • +
    • out (dpnp.ndarray, optional) -- If provided, the destination to place the result. The shape must be +correct, matching that of what concatenate would have returned +if no out argument were specified.

    • +
    • dtype (str or dtype) -- If provided, the destination array will have this dtype. Cannot be +provided together with out.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) -- Controls what kind of data casting may occur. Defaults to 'same_kind'.

    • +
    +
    +
    Returns:
    +

    out -- The concatenated array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.array_split

    Split an array into multiple sub-arrays of equal or near-equal size.

    +
    +
    dpnp.split

    Split array into a list of multiple sub-arrays of equal size.

    +
    +
    dpnp.hsplit

    Split array into multiple sub-arrays horizontally (column wise).

    +
    +
    dpnp.vsplit

    Split array into multiple sub-arrays vertically (row wise).

    +
    +
    dpnp.dsplit

    Split array into multiple sub-arrays along the 3rd axis (depth).

    +
    +
    dpnp.stack

    Stack a sequence of arrays along a new axis.

    +
    +
    dpnp.block

    Assemble arrays from blocks.

    +
    +
    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    +
    +
    dpnp.vstack

    Stack arrays in sequence vertically (row wise).

    +
    +
    dpnp.dstack

    Stack arrays in sequence depth wise (along third dimension).

    +
    +
    dpnp.column_stack

    Stack 1-D arrays as columns into a 2-D array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> b = np.array([[5, 6]])
    +>>> np.concatenate((a, b), axis=0)
    +array([[1, 2],
    +       [3, 4],
    +       [5, 6]])
    +>>> np.concatenate((a, b.T), axis=1)
    +array([[1, 2, 5],
    +       [3, 4, 6]])
    +>>> np.concatenate((a, b), axis=None)
    +array([1, 2, 3, 4, 5, 6])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.concatenate.html b/pull/2070/reference/generated/dpnp.concatenate.html new file mode 100644 index 00000000000..acbc5494d48 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.concatenate.html @@ -0,0 +1,239 @@ + + + + + + + + + + + dpnp.concatenate — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.concatenate

    +
    +
    +dpnp.concatenate(arrays, /, *, axis=0, out=None, dtype=None, casting='same_kind')[source]
    +

    Join a sequence of arrays along an existing axis.

    +

    Note that dpnp.concat is an alias of dpnp.concatenate.

    +

    For full documentation refer to numpy.concatenate.

    +
    +
    Parameters:
    +
      +
    • arrays ({Sequence of dpnp.ndarray or usm_ndarray}) -- The arrays must have the same shape, except in the dimension +corresponding to axis (the first, by default).

    • +
    • axis (int, optional) -- The axis along which the arrays will be joined. If axis is None, +arrays are flattened before use. +Default: 0.

    • +
    • out (dpnp.ndarray, optional) -- If provided, the destination to place the result. The shape must be +correct, matching that of what concatenate would have returned +if no out argument were specified.

    • +
    • dtype (str or dtype) -- If provided, the destination array will have this dtype. Cannot be +provided together with out.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) -- Controls what kind of data casting may occur. Defaults to 'same_kind'.

    • +
    +
    +
    Returns:
    +

    out -- The concatenated array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.array_split

    Split an array into multiple sub-arrays of equal or near-equal size.

    +
    +
    dpnp.split

    Split array into a list of multiple sub-arrays of equal size.

    +
    +
    dpnp.hsplit

    Split array into multiple sub-arrays horizontally (column wise).

    +
    +
    dpnp.vsplit

    Split array into multiple sub-arrays vertically (row wise).

    +
    +
    dpnp.dsplit

    Split array into multiple sub-arrays along the 3rd axis (depth).

    +
    +
    dpnp.stack

    Stack a sequence of arrays along a new axis.

    +
    +
    dpnp.block

    Assemble arrays from blocks.

    +
    +
    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    +
    +
    dpnp.vstack

    Stack arrays in sequence vertically (row wise).

    +
    +
    dpnp.dstack

    Stack arrays in sequence depth wise (along third dimension).

    +
    +
    dpnp.column_stack

    Stack 1-D arrays as columns into a 2-D array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> b = np.array([[5, 6]])
    +>>> np.concatenate((a, b), axis=0)
    +array([[1, 2],
    +       [3, 4],
    +       [5, 6]])
    +>>> np.concatenate((a, b.T), axis=1)
    +array([[1, 2, 5],
    +       [3, 4, 6]])
    +>>> np.concatenate((a, b), axis=None)
    +array([1, 2, 3, 4, 5, 6])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.conj.html b/pull/2070/reference/generated/dpnp.conj.html new file mode 100644 index 00000000000..e1735e48352 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.conj.html @@ -0,0 +1,189 @@ + + + + + + + + + + + dpnp.conj — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.conj

    +
    +
    +dpnp.conj(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes conjugate of each element x_i for input array x.

    +

    For full documentation refer to numpy.conj.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise conjugate values.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.conjugate(np.array(1+2j))
    +(1-2j)
    +
    +
    +
    >>> x = np.eye(2) + 1j * np.eye(2)
    +>>> np.conjugate(x)
    +array([[ 1.-1.j,  0.-0.j],
    +       [ 0.-0.j,  1.-1.j]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.conjugate.html b/pull/2070/reference/generated/dpnp.conjugate.html new file mode 100644 index 00000000000..05a9f55d6ec --- /dev/null +++ b/pull/2070/reference/generated/dpnp.conjugate.html @@ -0,0 +1,189 @@ + + + + + + + + + + + dpnp.conjugate — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.conjugate

    +
    +
    +dpnp.conjugate(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes conjugate of each element x_i for input array x.

    +

    For full documentation refer to numpy.conj.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise conjugate values.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.conjugate(np.array(1+2j))
    +(1-2j)
    +
    +
    +
    >>> x = np.eye(2) + 1j * np.eye(2)
    +>>> np.conjugate(x)
    +array([[ 1.-1.j,  0.-0.j],
    +       [ 0.-0.j,  1.-1.j]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.convolve.html b/pull/2070/reference/generated/dpnp.convolve.html new file mode 100644 index 00000000000..6147b271ddd --- /dev/null +++ b/pull/2070/reference/generated/dpnp.convolve.html @@ -0,0 +1,181 @@ + + + + + + + + + + + dpnp.convolve — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.convolve

    +
    +
    +dpnp.convolve(a, v, mode='full')[source]
    +

    Returns the discrete, linear convolution of two one-dimensional sequences.

    +

    For full documentation refer to numpy.convolve.

    +

    Examples

    +
    >>> ca = dpnp.convolve([1, 2, 3], [0, 1, 0.5])
    +>>> print(ca)
    +[0. , 1. , 2.5, 4. , 1.5]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.copy.html b/pull/2070/reference/generated/dpnp.copy.html new file mode 100644 index 00000000000..112333512cc --- /dev/null +++ b/pull/2070/reference/generated/dpnp.copy.html @@ -0,0 +1,248 @@ + + + + + + + + + + + dpnp.copy — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.copy

    +
    +
    +dpnp.copy(a, order='K', subok=False, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return an array copy of the given object.

    +

    For full documentation refer to numpy.copy.

    +
    +
    Parameters:
    +
      +
    • a (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array. +Default: "K".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    +

    Limitations

    +

    Parameter subok is supported only with default value False. +Otherwise, the function raises NotImplementedError exception.

    +
    +
    Returns:
    +

    out -- Array interpretation of a.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.copy

    Preferred method for creating an array copy

    +
    +
    +
    +

    Notes

    +

    This is equivalent to:

    +
    >>> dpnp.array(a, copy=True)
    +
    +
    +

    Examples

    +

    Create an array x, with a reference y and a copy z:

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 3])
    +>>> y = x
    +>>> z = np.copy(x)
    +
    +
    +

    Note that, when we modify x, y will change, but not z:

    +
    >>> x[0] = 10
    +>>> x[0] == y[0]
    +array(True)
    +>>> x[0] == z[0]
    +array(False)
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x0 = np.array([1, 2, 3])
    +>>> x = np.copy(x0) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.copy(x0, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 2, 3]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.copy(x0, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 2, 3]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.copysign.html b/pull/2070/reference/generated/dpnp.copysign.html new file mode 100644 index 00000000000..604d34c6c7e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.copysign.html @@ -0,0 +1,210 @@ + + + + + + + + + + + dpnp.copysign — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.copysign

    +
    +
    +dpnp.copysign(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Composes a floating-point value with the magnitude of x1_i and the sign of +x2_i for each element of input arrays x1 and x2.

    +

    For full documentation refer to numpy.copysign.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real floating-point data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real floating-point data +type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.negative

    Return the numerical negative of each element of x.

    +
    +
    dpnp.positive

    Return the numerical positive of each element of x.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.copysign(np.array(1.3), np.array(-1))
    +array(-1.3)
    +>>> 1 / np.copysign(np.array(0), 1)
    +array(inf)
    +>>> 1 / np.copysign(np.array(0), -1)
    +array(-inf)
    +
    +
    +
    >>> x = np.array([-1, 0, 1])
    +>>> np.copysign(x, -1.1)
    +array([-1., -0., -1.])
    +>>> np.copysign(x, np.arange(3) - 1)
    +array([-1., 0., 1.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.copyto.html b/pull/2070/reference/generated/dpnp.copyto.html new file mode 100644 index 00000000000..215e66bb513 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.copyto.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.copyto — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.copyto

    +
    +
    +dpnp.copyto(dst, src, casting='same_kind', where=True)[source]
    +

    Copies values from one array to another, broadcasting as necessary.

    +

    Raises a TypeError if the casting rule is violated, and if +where is provided, it selects which elements to copy.

    +

    For full documentation refer to numpy.copyto.

    +
    +
    Parameters:
    +
      +
    • dst ({dpnp.ndarray, usm_ndarray}) -- The array into which values are copied.

    • +
    • src (array_like) -- The array from which values are copied.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) -- Controls what kind of data casting may occur when copying.

    • +
    • where ({dpnp.ndarray, usm_ndarray, scalar} of bool, optional) -- A boolean array or a scalar which is broadcasted to match +the dimensions of dst, and selects elements to copy +from src to dst wherever it contains the value True.

    • +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> A = np.array([4, 5, 6])
    +>>> B = [1, 2, 3]
    +>>> np.copyto(A, B)
    +>>> A
    +array([1, 2, 3])
    +
    +
    +
    >>> A = np.array([[1, 2, 3], [4, 5, 6]])
    +>>> B = [[4, 5, 6], [7, 8, 9]]
    +>>> np.copyto(A, B)
    +>>> A
    +array([[4, 5, 6],
    +       [7, 8, 9]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.correlate.html b/pull/2070/reference/generated/dpnp.correlate.html new file mode 100644 index 00000000000..6a5dd6abe15 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.correlate.html @@ -0,0 +1,187 @@ + + + + + + + + + + + dpnp.correlate — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.correlate

    +
    +
    +dpnp.correlate(x1, x2, mode='valid')[source]
    +

    Cross-correlation of two 1-dimensional sequences.

    +

    For full documentation refer to numpy.correlate.

    +

    Limitations

    +

    Input arrays are supported as dpnp.ndarray. +Size and shape of input arrays are supported to be equal. +Parameter mode is supported only with default value "valid. +Otherwise the function will be executed sequentially on CPU. +Input array data types are limited by supported DPNP Available array data types.

    +
    +

    See also

    +
    +
    dpnp.convolve

    Discrete, linear convolution of two one-dimensional sequences.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.correlate([1, 2, 3], [0, 1, 0.5])
    +>>> [i for i in x]
    +[3.5]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.cos.html b/pull/2070/reference/generated/dpnp.cos.html new file mode 100644 index 00000000000..d2a74922e80 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.cos.html @@ -0,0 +1,199 @@ + + + + + + + + + + + dpnp.cos — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.cos

    +
    +
    +dpnp.cos(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes cosine for each element x_i for input array x.

    +

    For full documentation refer to numpy.cos.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise cosine. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arccos

    Trigonometric inverse cosine, element-wise.

    +
    +
    dpnp.sin

    Trigonometric sine, element-wise.

    +
    +
    dpnp.tan

    Trigonometric tangent, element-wise.

    +
    +
    dpnp.cosh

    Hyperbolic cosine, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, np.pi/2, np.pi])
    +>>> np.cos(x)
    +array([ 1.000000e+00, -4.371139e-08, -1.000000e+00])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.cosh.html b/pull/2070/reference/generated/dpnp.cosh.html new file mode 100644 index 00000000000..45d900cbd07 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.cosh.html @@ -0,0 +1,199 @@ + + + + + + + + + + + dpnp.cosh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.cosh

    +
    +
    +dpnp.cosh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes hyperbolic cosine for each element x_i for input array x.

    +

    For full documentation refer to numpy.cosh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise hyperbolic cosine. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arccosh

    Hyperbolic inverse cosine, element-wise.

    +
    +
    dpnp.sinh

    Hyperbolic sine, element-wise.

    +
    +
    dpnp.tanh

    Hyperbolic tangent, element-wise.

    +
    +
    dpnp.cos

    Trigonometric cosine, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, np.pi/2, np.pi])
    +>>> np.cosh(x)
    +array([1.0, 2.5091786, 11.591953])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.count_nonzero.html b/pull/2070/reference/generated/dpnp.count_nonzero.html new file mode 100644 index 00000000000..7efabe3e9ef --- /dev/null +++ b/pull/2070/reference/generated/dpnp.count_nonzero.html @@ -0,0 +1,217 @@ + + + + + + + + + + + dpnp.count_nonzero — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.count_nonzero

    +
    +
    +dpnp.count_nonzero(a, axis=None, *, keepdims=False, out=None)[source]
    +

    Counts the number of non-zero values in the array a.

    +

    For full documentation refer to numpy.count_nonzero.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The array for which to count non-zeros.

    • +
    • axis ({None, int, tuple}, optional) -- Axis or tuple of axes along which to count non-zeros. +Default value means that non-zeros will be counted along a flattened +version of a. +Default: None.

    • +
    • keepdims (bool, optional) -- If this is set to True, the axes that are counted are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the input array. +Default: False.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- The array into which the result is written. The data type of out must +match the expected shape and the expected data type of the result. +If None then a new array is returned. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Number of non-zero values in the array along a given axis. +Otherwise, a zero-dimensional array with the total number of non-zero +values in the array is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.nonzero

    Return the coordinates of all the non-zero values.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.count_nonzero(np.eye(4))
    +array(4)
    +>>> a = np.array([[0, 1, 7, 0],
    +                  [3, 0, 2, 19]])
    +>>> np.count_nonzero(a)
    +array(5)
    +>>> np.count_nonzero(a, axis=0)
    +array([1, 1, 2, 1])
    +>>> np.count_nonzero(a, axis=1)
    +array([2, 3])
    +>>> np.count_nonzero(a, axis=1, keepdims=True)
    +array([[2],
    +       [3]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.cov.html b/pull/2070/reference/generated/dpnp.cov.html new file mode 100644 index 00000000000..fa6242f88b6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.cov.html @@ -0,0 +1,207 @@ + + + + + + + + + + + dpnp.cov — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.cov

    +
    +
    +dpnp.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None, *, dtype=None)[source]
    +

    Estimate a covariance matrix, given data and weights.

    +

    For full documentation refer to numpy.cov.

    +
    +
    Returns:
    +

    out -- The covariance matrix of the variables.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Input array m is supported as dpnp.ndarray. +Dimension of input array m is limited by m.ndim <= 2. +Size and shape of input arrays are supported to be equal. +Parameter y is supported only with default value None. +Parameter bias is supported only with default value False. +Parameter ddof is supported only with default value None. +Parameter fweights is supported only with default value None. +Parameter aweights is supported only with default value None. +Otherwise the function will be executed sequentially on CPU. +Input array data types are limited by supported DPNP Available array data types.

    +
    +

    See also

    +
    +
    dpnp.corrcoef

    Normalized covariance matrix

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[0, 2], [1, 1], [2, 0]]).T
    +>>> x.shape
    +(2, 3)
    +>>> [i for i in x]
    +[0, 1, 2, 2, 1, 0]
    +>>> out = np.cov(x)
    +>>> out.shape
    +(2, 2)
    +>>> [i for i in out]
    +[1.0, -1.0, -1.0, 1.0]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.cross.html b/pull/2070/reference/generated/dpnp.cross.html new file mode 100644 index 00000000000..5fa656652a0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.cross.html @@ -0,0 +1,264 @@ + + + + + + + + + + + dpnp.cross — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.cross

    +
    +
    +dpnp.cross(a, b, axisa=-1, axisb=-1, axisc=-1, axis=None)[source]
    +

    Return the cross product of two (arrays of) vectors.

    +

    For full documentation refer to numpy.cross.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- First input array.

    • +
    • b ({dpnp.ndarray, usm_ndarray}) -- Second input array.

    • +
    • axisa (int, optional) -- Axis of a that defines the vector(s). By default, the last axis.

    • +
    • axisb (int, optional) -- Axis of b that defines the vector(s). By default, the last axis.

    • +
    • axisc (int, optional) -- Axis of c containing the cross product vector(s). Ignored if +both input vectors have dimension 2, as the return is scalar. +By default, the last axis.

    • +
    • axis ({int, None}, optional) -- If defined, the axis of a, b and c that defines the vector(s) +and cross product(s). Overrides axisa, axisb and axisc.

    • +
    +
    +
    Returns:
    +

    out -- Vector cross product(s).

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.inner

    Inner product.

    +
    +
    dpnp.outer

    Outer product.

    +
    +
    +
    +

    Examples

    +

    Vector cross-product.

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 3])
    +>>> y = np.array([4, 5, 6])
    +>>> np.cross(x, y)
    +array([-3,  6, -3])
    +
    +
    +

    One vector with dimension 2.

    +
    >>> x = np.array([1, 2])
    +>>> y = np.array([4, 5, 6])
    +>>> np.cross(x, y)
    +array([12, -6, -3])
    +
    +
    +

    Equivalently:

    +
    >>> x = np.array([1, 2, 0])
    +>>> y = np.array([4, 5, 6])
    +>>> np.cross(x, y)
    +array([12, -6, -3])
    +
    +
    +

    Both vectors with dimension 2.

    +
    >>> x = np.array([1, 2])
    +>>> y = np.array([4, 5])
    +>>> np.cross(x, y)
    +array(-3)
    +
    +
    +

    Multiple vector cross-products. Note that the direction of the cross +product vector is defined by the right-hand rule.

    +
    >>> x = np.array([[1, 2, 3], [4, 5, 6]])
    +>>> y = np.array([[4, 5, 6], [1, 2, 3]])
    +>>> np.cross(x, y)
    +array([[-3,  6, -3],
    +       [ 3, -6,  3]])
    +
    +
    +

    The orientation of c can be changed using the axisc keyword.

    +
    >>> np.cross(x, y, axisc=0)
    +array([[-3,  3],
    +       [ 6, -6],
    +       [-3,  3]])
    +
    +
    +

    Change the vector definition of x and y using axisa and axisb.

    +
    >>> x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    +>>> y = np.array([[7, 8, 9], [4, 5, 6], [1, 2, 3]])
    +>>> np.cross(x, y)
    +array([[ -6,  12,  -6],
    +       [  0,   0,   0],
    +       [  6, -12,   6]])
    +>>> np.cross(x, y, axisa=0, axisb=0)
    +array([[-24,  48, -24],
    +       [-30,  60, -30],
    +       [-36,  72, -36]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.cumlogsumexp.html b/pull/2070/reference/generated/dpnp.cumlogsumexp.html new file mode 100644 index 00000000000..aebd69cb88f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.cumlogsumexp.html @@ -0,0 +1,238 @@ + + + + + + + + + + + dpnp.cumlogsumexp — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.cumlogsumexp

    +
    +
    +dpnp.cumlogsumexp(x, /, *, axis=None, dtype=None, include_initial=False, out=None)[source]
    +

    Calculates the cumulative logarithm of the sum of elements in the input +array x.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real-valued data type.

    • +
    • axis ({None, int}, optional) -- Axis or axes along which values must be computed. If a tuple of unique +integers, values are computed over multiple axes. If None, the +result is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) --

      Data type of the returned array. If None, the default data type is +inferred from the "kind" of the input array data type.

      +
        +
      • If x has a real-valued floating-point data type, the returned array +will have the same data type as x.

      • +
      • If x has a boolean or integral data type, the returned array will +have the default floating point data type for the device where input +array x is allocated.

      • +
      • If x has a complex-valued floating-point data type, an error is +raised.

      • +
      +

      If the data type (either specified or resolved) differs from the data +type of x, the input array elements are cast to the specified data +type before computing the result. +Default: None.

      +

    • +
    • include_initial ({None, bool}, optional) -- A boolean indicating whether to include the initial value (i.e., the +additive identity, zero) as the first value along the provided axis in +the output. +Default: False.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- The array into which the result is written. The data type of out must +match the expected shape and the expected data type of the result or +(if provided) dtype. If None then a new array is returned. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the results. If the result was computed over the +entire array, a zero-dimensional array is returned. The returned array +has the data type as described in the dtype parameter description +above.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    Note

    +

    This function is equivalent of numpy.logaddexp.accumulate.

    +
    +
    +

    See also

    +
    +
    dpnp.logsumexp

    Logarithm of the sum of elements of the inputs, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.ones(10)
    +>>> np.cumlogsumexp(a)
    +array([1.        , 1.69314718, 2.09861229, 2.38629436, 2.60943791,
    +       2.79175947, 2.94591015, 3.07944154, 3.19722458, 3.30258509])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.cumprod.html b/pull/2070/reference/generated/dpnp.cumprod.html new file mode 100644 index 00000000000..f9151edc91f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.cumprod.html @@ -0,0 +1,234 @@ + + + + + + + + + + + dpnp.cumprod — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.cumprod

    +
    +
    +dpnp.cumprod(a, axis=None, dtype=None, out=None)[source]
    +

    Return the cumulative product of elements along a given axis.

    +

    For full documentation refer to numpy.cumprod.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int}, optional) -- Axis along which the cumulative product is computed. It defaults to +compute the cumulative product over the flattened array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type of the returned array and of the accumulator in which the elements +are multiplied. If dtype is not specified, it defaults to the dtype +of a, unless a has an integer dtype with a precision less than that +of the default platform integer. In that case, the default platform +integer is used. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have the +same shape and buffer length as the expected output but the type will +be cast if necessary. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A new array holding the result is returned unless out is specified as +dpnp.ndarray, in which case a reference to out is returned. +The result has the same size as a, and the same shape as a if axis +is not None or a is a 1-d array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.prod

    Product array elements.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3])
    +>>> np.cumprod(a) # intermediate results 1, 1*2
    +...               # total product 1*2*3 = 6
    +array([1, 2, 6])
    +>>> a = np.array([[1, 2, 3], [4, 5, 6]])
    +>>> np.cumprod(a, dtype=np.float32) # specify type of output
    +array([  1.,   2.,   6.,  24., 120., 720.], dtype=float32)
    +
    +
    +

    The cumulative product for each column (i.e., over the rows) of a:

    +
    >>> np.cumprod(a, axis=0)
    +array([[ 1,  2,  3],
    +       [ 4, 10, 18]])
    +
    +
    +

    The cumulative product for each row (i.e. over the columns) of a:

    +
    >>> np.cumprod(a, axis=1)
    +array([[  1,   2,   6],
    +       [  4,  20, 120]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.cumsum.html b/pull/2070/reference/generated/dpnp.cumsum.html new file mode 100644 index 00000000000..1cf8c7de04d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.cumsum.html @@ -0,0 +1,243 @@ + + + + + + + + + + + dpnp.cumsum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.cumsum

    +
    +
    +dpnp.cumsum(a, axis=None, dtype=None, out=None)[source]
    +

    Return the cumulative sum of the elements along a given axis.

    +

    For full documentation refer to numpy.cumsum.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int}, optional) -- Axis along which the cumulative sum is computed. It defaults to compute +the cumulative sum over the flattened array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type of the returned array and of the accumulator in which the elements +are summed. If dtype is not specified, it defaults to the dtype of +a, unless a has an integer dtype with a precision less than that of +the default platform integer. In that case, the default platform +integer is used. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have the +same shape and buffer length as the expected output but the type will +be cast if necessary. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A new array holding the result is returned unless out is specified as +dpnp.ndarray, in which case a reference to out is returned. +The result has the same size as a, and the same shape as a if axis +is not None or a is a 1-d array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.sum

    Sum array elements.

    +
    +
    dpnp.trapezoid

    Integration of array values using composite trapezoidal rule.

    +
    +
    dpnp.diff

    Calculate the n-th discrete difference along given axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2, 3], [4, 5, 6]])
    +>>> a
    +array([[1, 2, 3],
    +       [4, 5, 6]])
    +>>> np.cumsum(a)
    +array([ 1,  3,  6, 10, 15, 21])
    +>>> np.cumsum(a, dtype=float)     # specifies type of output value(s)
    +array([ 1.,  3.,  6., 10., 15., 21.])
    +
    +
    +
    >>> np.cumsum(a, axis=0)     # sum over rows for each of the 3 columns
    +array([[1, 2, 3],
    +       [5, 7, 9]])
    +>>> np.cumsum(a, axis=1)     # sum over columns for each of the 2 rows
    +array([[ 1,  3,  6],
    +       [ 4,  9, 15]])
    +
    +
    +

    cumsum(b)[-1] may not be equal to sum(b)

    +
    >>> b = np.array([1, 2e-9, 3e-9] * 10000)
    +>>> b.cumsum().dtype == b.sum().dtype == np.float64
    +True
    +>>> b.cumsum()[-1] == b.sum()
    +array(False)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.deg2rad.html b/pull/2070/reference/generated/dpnp.deg2rad.html new file mode 100644 index 00000000000..207f9479f78 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.deg2rad.html @@ -0,0 +1,199 @@ + + + + + + + + + + + dpnp.deg2rad — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.deg2rad

    +
    +
    +dpnp.deg2rad(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Convert angles from degrees to radians.

    +

    For full documentation refer to numpy.deg2rad.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Angles in degrees.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- The corresponding angle in radians. The data type of the returned array is +determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.rad2deg

    Convert angles from radians to degrees.

    +
    +
    dpnp.unwrap

    Remove large jumps in angle by wrapping.

    +
    +
    dpnp.radians

    Equivalent function.

    +
    +
    +
    +

    Notes

    +

    dpnp.deg2rad(x) is x * pi / 180.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array(180)
    +>>> np.deg2rad(x)
    +array(3.14159265)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.degrees.html b/pull/2070/reference/generated/dpnp.degrees.html new file mode 100644 index 00000000000..bf862a34814 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.degrees.html @@ -0,0 +1,203 @@ + + + + + + + + + + + dpnp.degrees — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.degrees

    +
    +
    +dpnp.degrees(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Convert angles from radians to degrees.

    +

    For full documentation refer to numpy.degrees.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array in radians.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- The corresponding degree values. The data type of the returned array is +determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.rad2deg

    Equivalent function.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> rad = np.arange(12.) * np.pi/6
    +
    +
    +

    Convert a radian array to degrees:

    +
    >>> np.degrees(rad)
    +array([  0.,  30.,  60.,  90., 120., 150., 180., 210., 240., 270., 300.,
    +       330.])
    +
    +
    +
    >>> out = np.zeros_like(rad)
    +>>> r = np.degrees(rad, out)
    +>>> np.all(r == out)
    +array(True)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.diag.html b/pull/2070/reference/generated/dpnp.diag.html new file mode 100644 index 00000000000..eb1354c12fb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.diag.html @@ -0,0 +1,264 @@ + + + + + + + + + + + dpnp.diag — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.diag

    +
    +
    +dpnp.diag(v, /, k=0, *, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Extract a diagonal or construct a diagonal array.

    +

    For full documentation refer to numpy.diag.

    +
    +
    Parameters:
    +
      +
    • v (array_like) --

      Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays. +If v is a 1-D array, return a 2-D array with v +on the k-th diagonal. +If v is a 2-D array and is an instance of +{dpnp.ndarray, usm_ndarray}, then:

      +
      +
        +
      • If device, usm_type, and sycl_queue are set to their +default values, returns a read/write view of its k-th diagonal.

      • +
      • Otherwise, returns a copy of its k-th diagonal.

      • +
      +
      +

    • +
    • k (int, optional) -- Diagonal in question. Use k > 0 for diagonals above +the main diagonal, and k < 0 for diagonals below the main diagonal. +Default: 0.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The extracted diagonal or constructed diagonal array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    diagonal

    Return specified diagonals.

    +
    +
    diagflat

    Create a 2-D array with the flattened input as a diagonal.

    +
    +
    trace

    Return the sum along diagonals of the array.

    +
    +
    triu

    Upper triangle of an array.

    +
    +
    tril

    Lower triangle of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(9).reshape((3, 3))
    +>>> x
    +array([[0, 1, 2],
    +       [3, 4, 5],
    +       [6, 7, 8]])
    +
    +
    +
    >>> np.diag(x)
    +array([0, 4, 8])
    +>>> np.diag(x, k=1)
    +array([1, 5])
    +>>> np.diag(x, k=-1)
    +array([3, 7])
    +
    +
    +
    >>> np.diag(np.diag(x))
    +array([[0, 0, 0],
    +       [0, 4, 0],
    +       [0, 0, 8]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> res = np.diag(x) # default case
    +>>> res, res.device, res.usm_type
    +(array([0, 4, 8]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> res_cpu = np.diag(x, device="cpu")
    +>>> res_cpu, res_cpu.device, res_cpu.usm_type
    +(array([0, 4, 8]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> res_host = np.diag(x, usm_type="host")
    +>>> res_host, res_host.device, res_host.usm_type
    +(array([0, 4, 8]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.diag_indices.html b/pull/2070/reference/generated/dpnp.diag_indices.html new file mode 100644 index 00000000000..29733aa2ade --- /dev/null +++ b/pull/2070/reference/generated/dpnp.diag_indices.html @@ -0,0 +1,242 @@ + + + + + + + + + + + dpnp.diag_indices — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.diag_indices

    +
    +
    +dpnp.diag_indices(n, ndim=2, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return the indices to access the main diagonal of an array.

    +

    This returns a tuple of indices that can be used to access the main +diagonal of an array a with a.ndim >= 2 dimensions and shape +(n, n, ..., n). For a.ndim = 2 this is the usual diagonal, for +a.ndim > 2 this is the set of indices to access a[i, i, ..., i] +for i = [0..n-1].

    +

    For full documentation refer to numpy.diag_indices.

    +
    +
    Parameters:
    +
      +
    • n (int) -- The size, along each dimension, of the arrays for which the returned +indices can be used.

    • +
    • ndim (int, optional) -- The number of dimensions. Default: 2.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The indices to access the main diagonal of an array.

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.diag_indices_from

    Return the indices to access the main diagonal of an n-dimensional array.

    +
    +
    +
    +

    Examples

    +

    Create a set of indices to access the diagonal of a (4, 4) array:

    +
    >>> import dpnp as np
    +>>> di = np.diag_indices(4)
    +>>> di
    +(array([0, 1, 2, 3]), array([0, 1, 2, 3]))
    +>>> a = np.arange(16).reshape(4, 4)
    +>>> a
    +array([[ 0,  1,  2,  3],
    +       [ 4,  5,  6,  7],
    +       [ 8,  9, 10, 11],
    +       [12, 13, 14, 15]])
    +>>> a[di] = 100
    +>>> a
    +array([[100,   1,   2,   3],
    +       [  4, 100,   6,   7],
    +       [  8,   9, 100,  11],
    +       [ 12,  13,  14, 100]])
    +
    +
    +

    Now, we create indices to manipulate a 3-D array:

    +
    >>> d3 = np.diag_indices(2, 3)
    +>>> d3
    +(array([0, 1]), array([0, 1]), array([0, 1]))
    +
    +
    +

    And use it to set the diagonal of an array of zeros to 1:

    +
    >>> a = np.zeros((2, 2, 2), dtype=int)
    +>>> a[d3] = 1
    +>>> a
    +array([[[1, 0],
    +        [0, 0]],
    +       [[0, 0],
    +        [0, 1]]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.diag_indices_from.html b/pull/2070/reference/generated/dpnp.diag_indices_from.html new file mode 100644 index 00000000000..03bb2c554eb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.diag_indices_from.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.diag_indices_from — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.diag_indices_from

    +
    +
    +dpnp.diag_indices_from(arr)[source]
    +

    Return the indices to access the main diagonal of an n-dimensional array.

    +

    For full documentation refer to numpy.diag_indices_from.

    +
    +
    Parameters:
    +

    arr ({dpnp.ndarray, usm_ndarray}) -- Array at least 2-D.

    +
    +
    Returns:
    +

    out -- The indices to access the main diagonal of an n-dimensional array.

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.diag_indices

    Return the indices to access the main diagonal of an array.

    +
    +
    +
    +

    Examples

    +

    Create a 4 by 4 array.

    +
    >>> import dpnp as np
    +>>> a = np.arange(16).reshape(4, 4)
    +>>> a
    +array([[ 0,  1,  2,  3],
    +       [ 4,  5,  6,  7],
    +       [ 8,  9, 10, 11],
    +       [12, 13, 14, 15]])
    +
    +
    +

    Get the indices of the diagonal elements.

    +
    >>> di = np.diag_indices_from(a)
    +>>> di
    +(array([0, 1, 2, 3]), array([0, 1, 2, 3]))
    +
    +
    +
    >>> a[di]
    +array([ 0,  5, 10, 15])
    +
    +
    +

    This is simply syntactic sugar for diag_indices.

    +
    >>> np.diag_indices(a.shape[0])
    +(array([0, 1, 2, 3]), array([0, 1, 2, 3]))
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.diagflat.html b/pull/2070/reference/generated/dpnp.diagflat.html new file mode 100644 index 00000000000..1d8f1284cc0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.diagflat.html @@ -0,0 +1,254 @@ + + + + + + + + + + + dpnp.diagflat — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.diagflat

    +
    +
    +dpnp.diagflat(v, /, k=0, *, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Create a two-dimensional array with the flattened input as a diagonal.

    +

    For full documentation refer to numpy.diagflat.

    +
    +
    Parameters:
    +
      +
    • v (array_like) -- Input data, which is flattened and set as the k-th diagonal of the +output, in any form that can be converted to an array. This includes +scalars, lists, lists of tuples, tuples, tuples of tuples, tuples of +lists, and ndarrays.

    • +
    • k (int, optional) -- Diagonal to set; 0, the default, corresponds to the "main" diagonal, +a positive (negative) k giving the number of the diagonal above (below) +the main.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The 2-D output array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.diag

    Extract a diagonal or construct a diagonal array.

    +
    +
    dpnp.diagonal

    Return specified diagonals.

    +
    +
    dpnp.trace

    Return sum along diagonals.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x0 = np.array([[1, 2], [3, 4]])
    +>>> np.diagflat(x0)
    +array([[1, 0, 0, 0],
    +       [0, 2, 0, 0],
    +       [0, 0, 3, 0],
    +       [0, 0, 0, 4]])
    +
    +
    +
    >>> np.diagflat(x0, 1)
    +array([[0, 1, 0, 0, 0],
    +       [0, 0, 2, 0, 0],
    +       [0, 0, 0, 3, 0],
    +       [0, 0, 0, 0, 4],
    +       [0, 0, 0, 0, 0]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.diagflat(x0) # default case
    +>>> x, x.device, x.usm_type
    +array([[1, 0, 0, 0],
    +       [0, 2, 0, 0],
    +       [0, 0, 3, 0],
    +       [0, 0, 0, 4]]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.diagflat(x0, device="cpu")
    +>>> y, y.device, y.usm_type
    +array([[1, 0, 0, 0],
    +       [0, 2, 0, 0],
    +       [0, 0, 3, 0],
    +       [0, 0, 0, 4]]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.diagflat(x0, usm_type="host")
    +>>> z, z.device, z.usm_type
    +array([[1, 0, 0, 0],
    +       [0, 2, 0, 0],
    +       [0, 0, 3, 0],
    +       [0, 0, 0, 4]]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.diagonal.html b/pull/2070/reference/generated/dpnp.diagonal.html new file mode 100644 index 00000000000..eb4325c6278 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.diagonal.html @@ -0,0 +1,259 @@ + + + + + + + + + + + dpnp.diagonal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.diagonal

    +
    +
    +dpnp.diagonal(a, offset=0, axis1=0, axis2=1)[source]
    +

    Return specified diagonals.

    +

    This function always returns a read/write view, and writing to +the returned array will alter your original array.

    +

    If you need to modify the array returned by this function without affecting +the original array, we suggest copying the returned array explicitly, i.e., +use dpnp.diagonal(a).copy() instead of dpnp.diagonal(a).

    +

    For full documentation refer to numpy.diagonal.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Array from which the diagonals are taken.

    • +
    • offset (int, optional) -- Offset of the diagonal from the main diagonal. Can be positive or +negative. Defaults to main diagonal (0).

    • +
    • axis1 (int, optional) -- Axis to be used as the first axis of the 2-D sub-arrays from which +the diagonals should be taken. Defaults to first axis (0).

    • +
    • axis2 (int, optional) -- Axis to be used as the second axis of the 2-D sub-arrays from +which the diagonals should be taken. Defaults to second axis (1).

    • +
    +
    +
    Returns:
    +

    array_of_diagonals -- Array is a read/write view. +If a is 2-D, then a 1-D array containing the diagonal and of the +same type as a is returned. +If a.ndim > 2, then the dimensions specified by axis1 and axis2 +are removed, and a new axis inserted at the end corresponding to the +diagonal.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.diag

    Extract a diagonal or construct a diagonal array.

    +
    +
    dpnp.diagflat

    Create a two-dimensional array with the flattened input as a diagonal.

    +
    +
    dpnp.trace

    Return the sum along diagonals of the array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(4).reshape(2,2)
    +>>> a
    +array([[0, 1],
    +       [2, 3]])
    +>>> a.diagonal()
    +array([0, 3])
    +>>> a.diagonal(1)
    +array([1])
    +
    +
    +

    A 3-D example:

    +
    >>> a = np.arange(8).reshape(2,2,2)
    +>>> a
    +array([[[0, 1],
    +        [2, 3]],
    +       [[4, 5],
    +        [6, 7]]])
    +>>> a.diagonal(0,  # Main diagonals of two arrays created by skipping
    +...            0,  # across the outer(left)-most axis last and
    +...            1)  # the "middle" (row) axis first.
    +array([[0, 6],
    +       [1, 7]])
    +
    +
    +

    The sub-arrays whose main diagonals we just obtained; note that each +corresponds to fixing the right-most (column) axis, and that the +diagonals are "packed" in rows.

    +
    >>> a[:,:,0]  # main diagonal is [0 6]
    +array([[0, 2],
    +       [4, 6]])
    +>>> a[:,:,1]  # main diagonal is [1 7]
    +array([[1, 3],
    +       [5, 7]])
    +
    +
    +

    The anti-diagonal can be obtained by reversing the order of elements +using either dpnp.flipud or dpnp.fliplr.

    +
    >>> a = np.arange(9).reshape(3, 3)
    +>>> a
    +array([[0, 1, 2],
    +       [3, 4, 5],
    +       [6, 7, 8]])
    +>>> np.fliplr(a).diagonal()  # Horizontal flip
    +array([2, 4, 6])
    +>>> np.flipud(a).diagonal()  # Vertical flip
    +array([6, 4, 2])
    +
    +
    +

    Note that the order in which the diagonal is retrieved varies depending +on the flip function.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.diff.html b/pull/2070/reference/generated/dpnp.diff.html new file mode 100644 index 00000000000..5a759780dc1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.diff.html @@ -0,0 +1,234 @@ + + + + + + + + + + + dpnp.diff — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.diff

    +
    +
    +dpnp.diff(a, n=1, axis=-1, prepend=None, append=None)[source]
    +

    Calculate the n-th discrete difference along the given axis.

    +

    For full documentation refer to numpy.diff.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array

    • +
    • n ({int}, optional) -- The number of times the values differ. If zero, the input +is returned as-is.

    • +
    • axis ({int}, optional) -- The axis along which the difference is taken, default is the +last axis.

    • +
    • prepend ({None, scalar, dpnp.ndarray, usm_ndarray}, optional) -- Values to prepend or append to a along axis prior to +performing the difference. Scalar values are expanded to +arrays with length 1 in the direction of axis and the shape +of the input array in along all other axes. Otherwise the +dimension and shape must match a except along axis.

    • +
    • append ({None, scalar, dpnp.ndarray, usm_ndarray}, optional) -- Values to prepend or append to a along axis prior to +performing the difference. Scalar values are expanded to +arrays with length 1 in the direction of axis and the shape +of the input array in along all other axes. Otherwise the +dimension and shape must match a except along axis.

    • +
    +
    +
    Returns:
    +

    out -- The n-th differences. The shape of the output is the same as a +except along axis where the dimension is smaller by n. The +type of the output is the same as the type of the difference +between any two elements of a. This is the same as the type of +a in most cases.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.gradient

    Return the gradient of an N-dimensional array.

    +
    +
    dpnp.ediff1d

    Compute the differences between consecutive elements of an array.

    +
    +
    dpnp.cumsum

    Return the cumulative sum of the elements along a given axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 4, 7, 0])
    +>>> np.diff(x)
    +array([ 1,  2,  3, -7])
    +>>> np.diff(x, n=2)
    +array([  1,   1, -10])
    +
    +
    +
    >>> x = np.array([[1, 3, 6, 10], [0, 5, 6, 8]])
    +>>> np.diff(x)
    +array([[2, 3, 4],
    +       [5, 1, 2]])
    +>>> np.diff(x, axis=0)
    +array([[-1,  2,  0, -2]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.digitize.html b/pull/2070/reference/generated/dpnp.digitize.html new file mode 100644 index 00000000000..3b4b5b70215 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.digitize.html @@ -0,0 +1,224 @@ + + + + + + + + + + + dpnp.digitize — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.digitize

    +
    +
    +dpnp.digitize(x, bins, right=False)[source]
    +

    Return the indices of the bins to which each value in input array belongs.

    +

    For full documentation refer to numpy.digitize.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array to be binned.

    • +
    • bins ({dpnp.ndarray, usm_ndarray}) -- Array of bins. It has to be 1-dimensional and monotonic +increasing or decreasing.

    • +
    • right (bool, optional) -- Indicates whether the intervals include the right or the left bin edge. +Default: False.

    • +
    +
    +
    Returns:
    +

    indices -- Array of indices with the same shape as x.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Notes

    +

    This will not raise an exception when the input array is +not monotonic.

    +
    +

    See also

    +
    +
    dpnp.bincount

    Count number of occurrences of each value in array of non-negative integers.

    +
    +
    dpnp.histogram

    Compute the histogram of a data set.

    +
    +
    dpnp.unique

    Find the unique elements of an array.

    +
    +
    dpnp.searchsorted

    Find indices where elements should be inserted to maintain order.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0.2, 6.4, 3.0, 1.6])
    +>>> bins = np.array([0.0, 1.0, 2.5, 4.0, 10.0])
    +>>> inds = np.digitize(x, bins)
    +>>> inds
    +array([1, 4, 3, 2])
    +>>> for n in range(x.size):
    +...     print(bins[inds[n]-1], "<=", x[n], "<", bins[inds[n]])
    +...
    +0. <= 0.2 < 1.
    +4. <= 6.4 < 10.
    +2.5 <= 3. < 4.
    +1. <= 1.6 < 2.5
    +
    +
    +
    >>> x = np.array([1.2, 10.0, 12.4, 15.5, 20.])
    +>>> bins = np.array([0, 5, 10, 15, 20])
    +>>> np.digitize(x, bins, right=True)
    +array([1, 2, 3, 4, 4])
    +>>> np.digitize(x, bins, right=False)
    +array([1, 3, 3, 4, 5])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.divide.html b/pull/2070/reference/generated/dpnp.divide.html new file mode 100644 index 00000000000..961081062a2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.divide.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.divide — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.divide

    +
    +
    +dpnp.divide(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the ratio for each element x1_i of the input array x1 with +the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.divide.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise division. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Equivalent to x1 / x2 in terms of array-broadcasting.

    +

    The true_divide(x1, x2) function is an alias for +divide(x1, x2).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.divide(dp.array([1, -2, 6, -9]), np.array([-2, -2, -2, -2]))
    +array([-0.5,  1. , -3. ,  4.5])
    +
    +
    +
    >>> x1 = np.arange(9.0).reshape((3, 3))
    +>>> x2 = np.arange(3.0)
    +>>> np.divide(x1, x2)
    +array([[nan, 1. , 1. ],
    +       [inf, 4. , 2.5],
    +       [inf, 7. , 4. ]])
    +
    +
    +

    The / operator can be used as a shorthand for divide on +dpnp.ndarray.

    +
    >>> x1 = np.arange(9.0).reshape((3, 3))
    +>>> x2 = 2 * np.ones(3)
    +>>> x1/x2
    +array([[0. , 0.5, 1. ],
    +       [1.5, 2. , 2.5],
    +       [3. , 3.5, 4. ]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.dot.html b/pull/2070/reference/generated/dpnp.dot.html new file mode 100644 index 00000000000..f83840b6423 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.dot.html @@ -0,0 +1,235 @@ + + + + + + + + + + + dpnp.dot — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.dot

    +
    +
    +dpnp.dot(a, b, out=None)[source]
    +

    Dot product of a and b.

    +

    For full documentation refer to numpy.dot.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. Both inputs a and b can not be scalars +at the same time.

    • +
    • b ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. Both inputs a and b can not be scalars +at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape and data type as the expected output and should be +C-contiguous. If these conditions are not met, an exception is +raised, instead of attempting to be flexible.

    • +
    +
    +
    Returns:
    +

    out -- Returns the dot product of a and b. +If out is given, then it is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.dot

    Equivalent method.

    +
    +
    dpnp.tensordot

    Sum products over arbitrary axes.

    +
    +
    dpnp.vdot

    Complex-conjugating dot product.

    +
    +
    dpnp.einsum

    Einstein summation convention.

    +
    +
    dpnp.matmul

    Matrix product of two arrays.

    +
    +
    dpnp.linalg.multi_dot

    Chained dot product.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3])
    +>>> b = np.array([1, 2, 3])
    +>>> np.dot(a, b)
    +array(14)
    +
    +
    +

    Neither argument is complex-conjugated:

    +
    >>> np.dot(np.array([2j, 3j]), np.array([2j, 3j]))
    +array(-13+0j)
    +
    +
    +

    For 2-D arrays it is the matrix product:

    +
    >>> a = np.array([[1, 0], [0, 1]])
    +>>> b = np.array([[4, 1], [2, 2]])
    +>>> np.dot(a, b)
    +array([[4, 1],
    +       [2, 2]])
    +
    +
    +
    >>> a = np.arange(3 * 4 * 5 * 6).reshape((3, 4, 5, 6))
    +>>> b = np.arange(3 * 4 * 5 * 6)[::-1].reshape((5, 4, 6, 3))
    +>>> np.dot(a, b)[2, 3, 2, 1, 2, 2]
    +array(499128)
    +>>> sum(a[2, 3, 2, :] * b[1, 2, :, 2])
    +array(499128)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.dpnp_array.dpnp_array.html b/pull/2070/reference/generated/dpnp.dpnp_array.dpnp_array.html new file mode 100644 index 00000000000..b0725017d27 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.dpnp_array.dpnp_array.html @@ -0,0 +1,1085 @@ + + + + + + + + + + + dpnp.dpnp_array.dpnp_array — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.dpnp_array.dpnp_array

    +
    +
    +class dpnp.dpnp_array.dpnp_array(shape, dtype=None, buffer=None, offset=0, strides=None, order='C', device=None, usm_type='device', sycl_queue=None)[source]
    +

    Multi-dimensional array object.

    +

    This is a wrapper around dpctl.tensor.usm_ndarray that provides +methods to be compliant with original NumPy.

    +

    Methods

    +
    +
    +__getitem__(key)[source]
    +

    Return self[key].

    +
    + +
    +
    +__setitem__(key, val)[source]
    +

    Set self[key] to value.

    +
    + +
    +
    +__len__()[source]
    +

    Return len(self).

    +
    + +
    +
    +all(axis=None, out=None, keepdims=False, *, where=True)[source]
    +

    Returns True if all elements evaluate to True.

    +

    Refer to dpnp.all for full documentation.

    +
    +

    See also

    +
    +
    dpnp.all

    equivalent function

    +
    +
    +
    +
    + +
    +
    +any(axis=None, out=None, keepdims=False, *, where=True)[source]
    +

    Returns True if any of the elements of a evaluate to True.

    +

    Refer to dpnp.any for full documentation.

    +
    +

    See also

    +
    +
    dpnp.any

    equivalent function

    +
    +
    +
    +
    + +
    +
    +argmax(axis=None, out=None, *, keepdims=False)[source]
    +

    Returns array of indices of the maximum values along the given axis.

    +

    Refer to dpnp.argmax for full documentation.

    +
    + +
    +
    +argmin(axis=None, out=None, *, keepdims=False)[source]
    +

    Return array of indices to the minimum values along the given axis.

    +

    Refer to dpnp.argmin for full documentation.

    +
    + +
    +
    +argsort(axis=-1, kind=None, order=None)[source]
    +

    Return an ndarray of indices that sort the array along the specified axis.

    +

    Refer to dpnp.argsort for full documentation.

    +
    + +
    +
    +asnumpy()[source]
    +

    Copy content of the array into numpy.ndarray instance of the same shape and data type.

    +
    +
    Returns:
    +

    An instance of numpy.ndarray populated with the array content.

    +
    +
    Return type:
    +

    numpy.ndarray

    +
    +
    +
    + +
    +
    +astype(dtype, order='K', casting='unsafe', subok=True, copy=True, device=None)[source]
    +

    Copy the array with data type casting.

    +

    Refer to dpnp.astype for full documentation.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray}) -- Array data type casting.

    • +
    • dtype (dtype) -- Target data type.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Row-major (C-style) or column-major (Fortran-style) order. +When order is 'A', it uses 'F' if a is column-major and uses 'C' otherwise. +And when order is 'K', it keeps strides as closely as possible.

    • +
    • copy ({bool}, optional) -- If it is False and no cast happens, then this method returns the array itself. +Otherwise, a copy is returned.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) --

      Controls what kind of data casting may occur. +Defaults to 'unsafe' for backwards compatibility.

      +
        +
      • 'no' means the data types should not be cast at all.

      • +
      • 'equiv' means only byte-order changes are allowed.

      • +
      • 'safe' means only casts which can preserve values are allowed.

      • +
      • 'same_kind' means only safe casts or casts within a kind, like +float64 to float32, are allowed.

      • +
      • 'unsafe' means any data conversions may be done.

      • +
      +

    • +
    • copy -- By default, astype always returns a newly allocated array. If +this is set to False, and the dtype, order, and subok +requirements are satisfied, the input array is returned instead of +a copy.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. Default: None.

    • +
    +
    +
    Returns:
    +

    arr_t -- Unless copy is False and the other conditions for returning the input array +are satisfied, arr_t is a new array of the same shape as the input array, +with dtype, order given by dtype, order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter subok is supported with default value. +Otherwise NotImplementedError exception will be raised.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 2.5])
    +>>> x
    +array([1. , 2. , 2.5])
    +>>> x.astype(int)
    +array([1, 2, 2])
    +
    +
    +
    + +
    +
    +choose(choices, out=None, mode='raise')[source]
    +

    Construct an array from an index array and a set of arrays to choose from.

    +

    Refer to dpnp.choose for full documentation.

    +
    + +
    +
    +clip(min=None, max=None, out=None, **kwargs)[source]
    +

    Clip (limit) the values in an array.

    +

    Refer to dpnp.clip for full documentation.

    +
    + +
    +
    +conj()[source]
    +

    Complex-conjugate all elements.

    +

    Refer to dpnp.conjugate for full documentation.

    +
    + +
    +
    +conjugate()[source]
    +

    Return the complex conjugate, element-wise.

    +

    Refer to dpnp.conjugate for full documentation.

    +
    + +
    +
    +copy(order='C', device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return a copy of the array.

    +

    Refer to dpnp.copy for full documentation.

    +
    +
    Parameters:
    +
      +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter +selector string, an instance of dpctl.SyclDevice +corresponding to a non-partitioned SYCL device, an instance of +dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. +Default: None.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A copy of the array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.copy

    Similar function with different default behavior

    +
    +
    dpnp.copyto

    Copies values from one array to another.

    +
    +
    +
    +

    Notes

    +

    This function is the preferred method for creating an array copy. +The function dpnp.copy() is similar, but it defaults to using +order "K".

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[1, 2, 3], [4, 5, 6]], order='F')
    +>>> y = x.copy()
    +>>> x.fill(0)
    +
    +
    +
    >>> x
    +array([[0, 0, 0],
    +       [0, 0, 0]])
    +
    +
    +
    >>> y
    +array([[1, 2, 3],
    +       [4, 5, 6]])
    +
    +
    +
    >>> y.flags['C_CONTIGUOUS']
    +True
    +
    +
    +
    + +
    +
    +cumprod(axis=None, dtype=None, out=None)[source]
    +

    Return the cumulative product of the elements along the given axis.

    +

    Refer to dpnp.cumprod for full documentation.

    +
    + +
    +
    +cumsum(axis=None, dtype=None, out=None)[source]
    +

    Return the cumulative sum of the elements along the given axis.

    +

    Refer to dpnp.cumsum for full documentation.

    +
    + +
    +
    +diagonal(offset=0, axis1=0, axis2=1)[source]
    +

    Return specified diagonals.

    +

    Refer to dpnp.diagonal for full documentation.

    +
    +

    See also

    +
    +
    dpnp.diagonal

    Equivalent function.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(4).reshape(2,2)
    +>>> a.diagonal()
    +array([0, 3])
    +
    +
    +
    + +
    +
    +dot(b, out=None)[source]
    +

    Dot product of two arrays.

    +

    Refer to dpnp.dot for full documentation.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.eye(2)
    +>>> b = np.ones((2, 2)) * 2
    +>>> a.dot(b)
    +array([[2., 2.],
    +       [2., 2.]])
    +
    +
    +

    This array method can be conveniently chained:

    +
    >>> a.dot(b).dot(b)
    +array([[8., 8.],
    +       [8., 8.]])
    +
    +
    +
    + +
    +
    +fill(value)[source]
    +

    Fill the array with a scalar value.

    +
    +
    Parameters:
    +

    value (scalar) -- All elements of a will be assigned this value.

    +
    +
    +

    Examples

    +
    >>> a = np.array([1, 2])
    +>>> a.fill(0)
    +>>> a
    +array([0, 0])
    +>>> a = np.empty(2)
    +>>> a.fill(1)
    +>>> a
    +array([1.,  1.])
    +
    +
    +
    + +
    +
    +flatten(order='C')[source]
    +

    Return a copy of the array collapsed into one dimension.

    +

    For full documentation refer to numpy.ndarray.flatten.

    +
    +
    Parameters:
    +

    order ({"C", "F"}, optional) --

    Read the elements using this index order, and place the elements +into the reshaped array using this index order.

    +
    +
      +
    • "C" means to read / write the elements using C-like index +order, with the last axis index changing fastest, back to the +first axis index changing slowest.

    • +
    • "F" means to read / write the elements using Fortran-like +index order, with the first index changing fastest, and the +last index changing slowest.

    • +
    +
    +

    Default: "C".

    +

    +
    +
    Returns:
    +

    out -- A copy of the input array, flattened to one dimension.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ravel

    Return a flattened array.

    +
    +
    dpnp.flat

    A 1-D flat iterator over the array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> a.flatten()
    +array([1, 2, 3, 4])
    +>>> a.flatten("F")
    +array([1, 3, 2, 4])
    +
    +
    +
    + +
    +
    +get_array()[source]
    +

    Get usm_ndarray object.

    +
    + +
    +
    +item(id=None)[source]
    +

    Copy an element of an array to a standard Python scalar and return it.

    +

    For full documentation refer to numpy.ndarray.item.

    +

    Examples

    +
    >>> np.random.seed(123)
    +>>> x = np.random.randint(9, size=(3, 3))
    +>>> x
    +array([[2, 2, 6],
    +       [1, 3, 6],
    +       [1, 0, 1]])
    +>>> x.item(3)
    +1
    +>>> x.item(7)
    +0
    +>>> x.item((0, 1))
    +2
    +>>> x.item((2, 2))
    +1
    +
    +
    +
    + +
    +
    +max(axis=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the maximum along an axis.

    +

    Refer to dpnp.max for full documentation.

    +
    + +
    +
    +mean(axis=None, dtype=None, out=None, keepdims=False, *, where=True)[source]
    +

    Returns the average of the array elements.

    +

    Refer to dpnp.mean for full documentation.

    +
    + +
    +
    +min(axis=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the minimum along a given axis.

    +

    Refer to dpnp.min for full documentation.

    +
    + +
    +
    +nonzero()[source]
    +

    Return the indices of the elements that are non-zero.

    +

    Refer to dpnp.nonzero for full documentation.

    +
    + +
    +
    +partition(kth, axis=-1, kind='introselect', order=None)[source]
    +

    Return a partitioned copy of an array.

    +

    Rearranges the elements in the array in such a way that the value of +the element in kth position is in the position it would be in +a sorted array.

    +

    All elements smaller than the kth element are moved before this +element and all equal or greater are moved behind it. The ordering +of the elements in the two partitions is undefined.

    +

    Refer to dpnp.partition for full documentation.

    +
    +

    See also

    +
    +
    dpnp.partition

    Return a partitioned copy of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([3, 4, 2, 1])
    +>>> a.partition(3)
    +>>> a
    +array([1, 2, 3, 4])
    +
    +
    +
    + +
    +
    +prod(axis=None, dtype=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Returns the prod along a given axis.

    +

    Refer to dpnp.prod for full documentation.

    +
    + +
    +
    +put(indices, vals, /, *, axis=None, mode='wrap')[source]
    +

    Puts values of an array into another array along a given axis.

    +

    Refer to dpnp.put for full documentation.

    +
    + +
    +
    +ravel(order='C')[source]
    +

    Return a contiguous flattened array.

    +

    Refer to dpnp.ravel for full documentation.

    +
    + +
    +
    +repeat(repeats, axis=None)[source]
    +

    Repeat elements of an array.

    +

    Refer to dpnp.repeat for full documentation.

    +
    + +
    +
    +reshape(*sh, **kwargs)[source]
    +

    Returns an array containing the same data with a new shape.

    +

    Refer to dpnp.reshape for full documentation.

    +
    +
    Returns:
    +

    y -- This will be a new view object if possible; +otherwise, it will be a copy.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.reshape

    Equivalent function.

    +
    +
    +
    +

    Notes

    +

    Unlike the free function dpnp.reshape, this method on ndarray allows +the elements of the shape parameter to be passed in as separate arguments. +For example, a.reshape(10, 11) is equivalent to +a.reshape((10, 11)).

    +
    + +
    +
    +round(decimals=0, out=None)[source]
    +

    Return array with each element rounded to the given number of decimals.

    +

    Refer to dpnp.round for full documentation.

    +
    + +
    +
    +searchsorted(v, side='left', sorter=None)[source]
    +

    Find indices where elements of v should be inserted in a +to maintain order.

    +

    Refer to dpnp.searchsorted for full documentation

    +
    + +
    +
    +sort(axis=-1, kind=None, order=None)[source]
    +

    Sort an array in-place.

    +

    Refer to dpnp.sort for full documentation.

    +
    +

    Note

    +

    axis in dpnp.sort could be integer or None. If None, +the array is flattened before sorting. However, axis in +dpnp.ndarray.sort can only be integer since it sorts an array +in-place.

    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1,4],[3,1]])
    +>>> a.sort(axis=1)
    +>>> a
    +array([[1, 4],
    +      [1, 3]])
    +>>> a.sort(axis=0)
    +>>> a
    +array([[1, 1],
    +      [3, 4]])
    +
    +
    +
    + +
    +
    +squeeze(axis=None)[source]
    +

    Remove single-dimensional entries from the shape of an array.

    +

    Refer to dpnp.squeeze for full documentation

    +
    + +
    +
    +std(axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)[source]
    +

    Returns the standard deviation of the array elements, along given axis.

    +

    Refer to dpnp.std for full documentation.

    +
    + +
    +
    +sum(axis=None, dtype=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Returns the sum along a given axis.

    +

    Refer to dpnp.sum for full documentation.

    +
    + +
    +
    +swapaxes(axis1, axis2)[source]
    +

    Interchange two axes of an array.

    +

    Refer to dpnp.swapaxes for full documentation.

    +
    + +
    +
    +take(indices, axis=None, out=None, mode='wrap')[source]
    +

    Take elements from an array along an axis.

    +

    Refer to dpnp.take for full documentation.

    +
    + +
    +
    +to_device(target_device)[source]
    +

    Transfer array to target device.

    +
    + +
    +
    +trace(offset=0, axis1=0, axis2=1, dtype=None, out=None)[source]
    +

    Return the sum along diagonals of the array.

    +

    Refer to dpnp.trace for full documentation.

    +
    + +
    +
    +transpose(*axes)[source]
    +

    Returns a view of the array with axes transposed.

    +

    For full documentation refer to numpy.ndarray.transpose.

    +
    +
    Parameters:
    +

    axes (None, tuple or list of ints, n ints, optional) --

      +
    • None or no argument: reverses the order of the axes.

    • +
    • tuple or list of ints: i in the j-th place in the +tuple/list means that the array’s i-th axis becomes the +transposed array’s j-th axis.

    • +
    • n ints: same as an n-tuple/n-list of the same integers (this +form is intended simply as a “convenience” alternative to the +tuple form).

    • +
    +

    +
    +
    Returns:
    +

    out -- View of the array with its axes suitably permuted.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.transpose

    Equivalent function.

    +
    +
    dpnp.ndarray.ndarray.T

    Array property returning the array transposed.

    +
    +
    dpnp.ndarray.reshape

    Give a new shape to an array without changing its data.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> a
    +array([[1, 2],
    +       [3, 4]])
    +>>> a.transpose()
    +array([[1, 3],
    +       [2, 4]])
    +>>> a.transpose((1, 0))
    +array([[1, 3],
    +       [2, 4]])
    +
    +
    +
    >>> a = np.array([1, 2, 3, 4])
    +>>> a
    +array([1, 2, 3, 4])
    +>>> a.transpose()
    +array([1, 2, 3, 4])
    +
    +
    +
    + +
    +
    +var(axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)[source]
    +

    Returns the variance of the array elements, along given axis.

    +

    Refer to dpnp.var for full documentation.

    +
    + +
    +
    +__eq__(other)[source]
    +

    Return self==value.

    +
    + +
    +
    +__ne__(other)[source]
    +

    Return self!=value.

    +
    + +
    +
    +__lt__(other)[source]
    +

    Return self<value.

    +
    + +
    +
    +__le__(other)[source]
    +

    Return self<=value.

    +
    + +
    +
    +__gt__(other)[source]
    +

    Return self>value.

    +
    + +
    +
    +__ge__(other)[source]
    +

    Return self>=value.

    +
    + +

    Attributes

    +
    +
    +T
    +

    View of the transposed array.

    +
    + +
    +
    +device
    +
    + +
    +
    +dtype
    +

    Returns NumPy's dtype corresponding to the type of the array elements.

    +
    + +
    +
    +flags
    +

    Return information about the memory layout of the array.

    +
    + +
    +
    +flat
    +

    Return a flat iterator, or set a flattened version of self to value.

    +
    + +
    +
    +imag
    +

    The imaginary part of the array.

    +

    For full documentation refer to numpy.ndarray.imag.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.sqrt(np.array([1+0j, 0+1j]))
    +>>> x.imag
    +array([0.        , 0.70710677])
    +
    +
    +
    + +
    +
    +itemsize
    +

    Size of one array element in bytes.

    +
    + +
    +
    +nbytes
    +

    Total bytes consumed by the elements of the array.

    +
    + +
    +
    +ndim
    +

    Return the number of dimensions of an array.

    +

    For full documentation refer to numpy.ndarray.ndim.

    +
    +
    Returns:
    +

    number_of_dimensions -- The number of dimensions in a.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndim

    Equivalent method for any array-like input.

    +
    +
    dpnp.shape

    Return the shape of an array.

    +
    +
    dpnp.ndarray.shape

    Return the shape of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 3])
    +>>> x.ndim
    +1
    +>>> y = np.zeros((2, 3, 4))
    +>>> y.ndim
    +3
    +
    +
    +
    + +
    +
    +real
    +

    The real part of the array.

    +

    For full documentation refer to numpy.ndarray.real.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.sqrt(np.array([1+0j, 0+1j]))
    +>>> x.real
    +array([1.        , 0.70710677])
    +
    +
    +
    + +
    +
    +shape
    +

    Tuple of array dimensions.

    +

    The shape property is usually used to get the current shape of an array, +but may also be used to reshape the array in-place by assigning a tuple +of array dimensions to it. Unlike dpnp.reshape, only non-negative +values are supported to be set as new shape. Reshaping an array in-place +will fail if a copy is required.

    +

    For full documentation refer to numpy.ndarray.shape.

    +
    +

    Note

    +

    Using dpnp.ndarray.reshape or dpnp.reshape is the +preferred approach to set new shape of an array.

    +
    +
    +

    See also

    +
    +
    dpnp.shape

    Equivalent getter function.

    +
    +
    dpnp.reshape

    Function similar to setting shape.

    +
    +
    dpnp.ndarray.reshape

    Method similar to setting shape.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 3, 4])
    +>>> x.shape
    +(4,)
    +>>> y = np.zeros((2, 3, 4))
    +>>> y.shape
    +(2, 3, 4)
    +
    +
    +
    >>> y.shape = (3, 8)
    +>>> y
    +array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
    +       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
    +       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])
    +>>> y.shape = (3, 6)
    +...
    +TypeError: Can not reshape array of size 24 into (3, 6)
    +
    +
    +
    + +
    +
    +size
    +

    Number of elements in the array.

    +
    +
    Returns:
    +

    element_count -- Number of elements in the array.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    +

    See also

    +
    +
    dpnp.size

    Return the number of elements along a given axis.

    +
    +
    dpnp.shape

    Return the shape of an array.

    +
    +
    dpnp.ndarray.shape

    Return the shape of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.zeros((3, 5, 2), dtype=np.complex64)
    +>>> x.size
    +30
    +
    +
    +
    + +
    +
    +strides
    +

    Returns memory displacement in array elements, upon unit +change of respective index.

    +

    For example, for strides (s1, s2, s3) and multi-index +(i1, i2, i3) position of the respective element relative +to zero multi-index element is s1*s1 + s2*i2 + s3*i3.

    +
    + +
    +
    +sycl_context
    +
    + +
    +
    +sycl_device
    +
    + +
    +
    +sycl_queue
    +
    + +
    +
    +usm_type
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.dsplit.html b/pull/2070/reference/generated/dpnp.dsplit.html new file mode 100644 index 00000000000..2fa14bf18e4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.dsplit.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.dsplit — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.dsplit

    +
    +
    +dpnp.dsplit(ary, indices_or_sections)[source]
    +

    Split array into multiple sub-arrays along the 3rd axis (depth).

    +

    Please refer to the dpnp.split documentation. dsplit +is equivalent to split with axis=2, the array is always +split along the third axis provided the array dimension is greater than +or equal to 3.

    +

    For full documentation refer to numpy.dsplit.

    +
    +
    Parameters:
    +
      +
    • ary ({dpnp.ndarray, usm_ndarray}) -- Array to be divided into sub-arrays.

    • +
    • indices_or_sections ({int, sequence of ints}) -- If indices_or_sections is an integer, N, the array will be divided +into N equal arrays along the third axis. If such a split is not +possible, an error is raised. +If indices_or_sections is a sequence of sorted integers, the entries +indicate where along the third axis the array is split.

    • +
    +
    +
    Returns:
    +

    sub-arrays -- A list of sub arrays. Each array is a view of the corresponding input +array.

    +
    +
    Return type:
    +

    list of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.split

    Split array into multiple sub-arrays of equal size.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(16.0).reshape(2, 2, 4)
    +>>> x
    +array([[[ 0.,  1.,  2.,  3.],
    +        [ 4.,  5.,  6.,  7.]],
    +       [[ 8.,  9., 10., 11.],
    +        [12., 13., 14., 15.]]])
    +>>> np.dsplit(x, 2)
    +[array([[[ 0.,  1.],
    +         [ 4.,  5.]],
    +        [[ 8.,  9.],
    +         [12., 13.]]]),
    + array([[[ 2.,  3.],
    +         [ 6.,  7.]],
    +        [[10., 11.],
    +         [14., 15.]]])]
    +>>> np.dsplit(x, np.array([3, 6]))
    +[array([[[ 0.,  1.,  2.],
    +         [ 4.,  5.,  6.]],
    +        [[ 8.,  9., 10.],
    +         [12., 13., 14.]]]),
    + array([[[ 3.],
    +         [ 7.]],
    +        [[11.],
    +         [15.]]]),
    + array([])]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.dstack.html b/pull/2070/reference/generated/dpnp.dstack.html new file mode 100644 index 00000000000..188ee660ff8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.dstack.html @@ -0,0 +1,227 @@ + + + + + + + + + + + dpnp.dstack — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.dstack

    +
    +
    +dpnp.dstack(tup)[source]
    +

    Stack arrays in sequence depth wise (along third axis).

    +

    This is equivalent to concatenation along the third axis after 2-D arrays +of shape (M, N) have been reshaped to (M, N, 1) and 1-D arrays of shape +(N,) have been reshaped to (1, N, 1). Rebuilds arrays divided by +dpnp.dsplit.

    +

    For full documentation refer to numpy.dstack.

    +
    +
    Parameters:
    +

    tup ({dpnp.ndarray, usm_ndarray}) -- One or more array-like sequences. The arrays must have the same shape +along all but the third axis. 1-D or 2-D arrays must have the same +shape.

    +
    +
    Returns:
    +

    out -- The array formed by stacking the given arrays, will be at least 3-D.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.concatenate

    Join a sequence of arrays along an existing axis.

    +
    +
    dpnp.vstack

    Stack arrays in sequence vertically (row wise).

    +
    +
    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    +
    +
    dpnp.column_stack

    Stack 1-D arrays as columns into a 2-D array.

    +
    +
    dpnp.stack

    Join a sequence of arrays along a new axis.

    +
    +
    dpnp.block

    Assemble an ndarray from nested lists of blocks.

    +
    +
    dpnp.dsplit

    Split array along third axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array((1, 2, 3))
    +>>> b = np.array((2, 3, 4))
    +>>> np.dstack((a, b))
    +array([[[1, 2],
    +        [2, 3],
    +        [3, 4]]])
    +
    +
    +
    >>> a = np.array([[1], [2], [3]])
    +>>> b = np.array([[2], [3], [4]])
    +>>> np.dstack((a, b))
    +array([[[1, 2]],
    +       [[2, 3]],
    +       [[3, 4]]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.dtype.html b/pull/2070/reference/generated/dpnp.dtype.html new file mode 100644 index 00000000000..68a6aee442d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.dtype.html @@ -0,0 +1,830 @@ + + + + + + + + + + + dpnp.dtype — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.dtype

    +
    +
    +class dpnp.dtype(dtype, align=False, copy=False)
    +

    Create a data type object.

    +

    A numpy array is homogeneous, and contains elements described by a +dtype object. A dtype object can be constructed from different +combinations of fundamental numeric types.

    +
    +
    Parameters:
    +
      +
    • dtype -- Object to be converted to a data type object.

    • +
    • align (bool, optional) -- Add padding to the fields to match what a C compiler would output +for a similar C-struct. Can be True only if obj is a dictionary +or a comma-separated string. If a struct dtype is being created, +this also sets a sticky alignment flag isalignedstruct.

    • +
    • copy (bool, optional) -- Make a new copy of the data-type object. If False, the result +may just be a reference to a built-in data-type object.

    • +
    +
    +
    +
    +

    See also

    +

    result_type

    +
    +

    Examples

    +

    Using array-scalar type:

    +
    >>> np.dtype(np.int16)
    +dtype('int16')
    +
    +
    +

    Structured type, one field name 'f1', containing int16:

    +
    >>> np.dtype([('f1', np.int16)])
    +dtype([('f1', '<i2')])
    +
    +
    +

    Structured type, one field named 'f1', in itself containing a structured +type with one field:

    +
    >>> np.dtype([('f1', [('f1', np.int16)])])
    +dtype([('f1', [('f1', '<i2')])])
    +
    +
    +

    Structured type, two fields: the first field contains an unsigned int, the +second an int32:

    +
    >>> np.dtype([('f1', np.uint64), ('f2', np.int32)])
    +dtype([('f1', '<u8'), ('f2', '<i4')])
    +
    +
    +

    Using array-protocol type strings:

    +
    >>> np.dtype([('a','f8'),('b','S10')])
    +dtype([('a', '<f8'), ('b', 'S10')])
    +
    +
    +

    Using comma-separated field formats. The shape is (2,3):

    +
    >>> np.dtype("i4, (2,3)f8")
    +dtype([('f0', '<i4'), ('f1', '<f8', (2, 3))])
    +
    +
    +

    Using tuples. int is a fixed type, 3 the field's shape. void +is a flexible type, here of size 10:

    +
    >>> np.dtype([('hello',(np.int64,3)),('world',np.void,10)])
    +dtype([('hello', '<i8', (3,)), ('world', 'V10')])
    +
    +
    +

    Subdivide int16 into 2 int8's, called x and y. 0 and 1 are +the offsets in bytes:

    +
    >>> np.dtype((np.int16, {'x':(np.int8,0), 'y':(np.int8,1)}))
    +dtype((numpy.int16, [('x', 'i1'), ('y', 'i1')]))
    +
    +
    +

    Using dictionaries. Two fields named 'gender' and 'age':

    +
    >>> np.dtype({'names':['gender','age'], 'formats':['S1',np.uint8]})
    +dtype([('gender', 'S1'), ('age', 'u1')])
    +
    +
    +

    Offsets in bytes, here 0 and 25:

    +
    >>> np.dtype({'surname':('S25',0),'age':(np.uint8,25)})
    +dtype([('surname', 'S25'), ('age', 'u1')])
    +
    +
    +

    Methods

    +
    +
    +__getitem__(key, /)
    +

    Return self[key].

    +
    + +
    +
    +__len__()
    +

    Return len(self).

    +
    + +
    +
    +newbyteorder(new_order='S', /)
    +

    Return a new dtype with a different byte order.

    +

    Changes are also made in all fields and sub-arrays of the data type.

    +
    +
    Parameters:
    +

    new_order (string, optional) --

    Byte order to force; a value from the byte order specifications +below. The default value ('S') results in swapping the current +byte order. new_order codes can be any of:

    +
      +
    • 'S' - swap dtype from current to opposite endian

    • +
    • {'<', 'little'} - little endian

    • +
    • {'>', 'big'} - big endian

    • +
    • {'=', 'native'} - native order

    • +
    • {'|', 'I'} - ignore (no change to byte order)

    • +
    +

    +
    +
    Returns:
    +

    new_dtype -- New dtype object with the given change to the byte order.

    +
    +
    Return type:
    +

    dtype

    +
    +
    +

    Notes

    +

    Changes are also made in all fields and sub-arrays of the data type.

    +

    Examples

    +
    >>> import sys
    +>>> sys_is_le = sys.byteorder == 'little'
    +>>> native_code = sys_is_le and '<' or '>'
    +>>> swapped_code = sys_is_le and '>' or '<'
    +>>> native_dt = np.dtype(native_code+'i2')
    +>>> swapped_dt = np.dtype(swapped_code+'i2')
    +>>> native_dt.newbyteorder('S') == swapped_dt
    +True
    +>>> native_dt.newbyteorder() == swapped_dt
    +True
    +>>> native_dt == swapped_dt.newbyteorder('S')
    +True
    +>>> native_dt == swapped_dt.newbyteorder('=')
    +True
    +>>> native_dt == swapped_dt.newbyteorder('N')
    +True
    +>>> native_dt == native_dt.newbyteorder('|')
    +True
    +>>> np.dtype('<i2') == native_dt.newbyteorder('<')
    +True
    +>>> np.dtype('<i2') == native_dt.newbyteorder('L')
    +True
    +>>> np.dtype('>i2') == native_dt.newbyteorder('>')
    +True
    +>>> np.dtype('>i2') == native_dt.newbyteorder('B')
    +True
    +
    +
    +
    + +
    +
    +__eq__(value, /)
    +

    Return self==value.

    +
    + +
    +
    +__ne__(value, /)
    +

    Return self!=value.

    +
    + +
    +
    +__lt__(value, /)
    +

    Return self<value.

    +
    + +
    +
    +__le__(value, /)
    +

    Return self<=value.

    +
    + +
    +
    +__gt__(value, /)
    +

    Return self>value.

    +
    + +
    +
    +__ge__(value, /)
    +

    Return self>=value.

    +
    + +

    Attributes

    +
    +
    +alignment
    +

    The required alignment (bytes) of this data-type according to the compiler.

    +

    More information is available in the C-API section of the manual.

    +

    Examples

    +
    >>> x = np.dtype('i4')
    +>>> x.alignment
    +4
    +
    +
    +
    >>> x = np.dtype(float)
    +>>> x.alignment
    +8
    +
    +
    +
    + +
    +
    +base
    +

    Returns dtype for the base element of the subarrays, +regardless of their dimension or shape.

    +
    +

    See also

    +

    dtype.subdtype

    +
    +

    Examples

    +
    >>> x = numpy.dtype('8f')
    +>>> x.base
    +dtype('float32')
    +
    +
    +
    >>> x =  numpy.dtype('i2')
    +>>> x.base
    +dtype('int16')
    +
    +
    +
    + +
    +
    +byteorder
    +

    A character indicating the byte-order of this data-type object.

    +

    One of:

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

    '='

    native

    '<'

    little-endian

    '>'

    big-endian

    '|'

    not applicable

    +

    All built-in data-type objects have byteorder either '=' or '|'.

    +

    Examples

    +
    >>> dt = np.dtype('i2')
    +>>> dt.byteorder
    +'='
    +>>> # endian is not relevant for 8 bit numbers
    +>>> np.dtype('i1').byteorder
    +'|'
    +>>> # or ASCII strings
    +>>> np.dtype('S2').byteorder
    +'|'
    +>>> # Even if specific code is given, and it is native
    +>>> # '=' is the byteorder
    +>>> import sys
    +>>> sys_is_le = sys.byteorder == 'little'
    +>>> native_code = sys_is_le and '<' or '>'
    +>>> swapped_code = sys_is_le and '>' or '<'
    +>>> dt = np.dtype(native_code + 'i2')
    +>>> dt.byteorder
    +'='
    +>>> # Swapped code shows up as itself
    +>>> dt = np.dtype(swapped_code + 'i2')
    +>>> dt.byteorder == swapped_code
    +True
    +
    +
    +
    + +
    +
    +char
    +

    A unique character code for each of the 21 different built-in types.

    +

    Examples

    +
    >>> x = np.dtype(float)
    +>>> x.char
    +'d'
    +
    +
    +
    + +
    +
    +descr
    +

    __array_interface__ description of the data-type.

    +

    The format is that required by the 'descr' key in the +__array_interface__ attribute.

    +

    Warning: This attribute exists specifically for __array_interface__, +and passing it directly to np.dtype will not accurately reconstruct +some dtypes (e.g., scalar and subarray dtypes).

    +

    Examples

    +
    >>> x = np.dtype(float)
    +>>> x.descr
    +[('', '<f8')]
    +
    +
    +
    >>> dt = np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))])
    +>>> dt.descr
    +[('name', '<U16'), ('grades', '<f8', (2,))]
    +
    +
    +
    + +
    +
    +fields
    +

    Dictionary of named fields defined for this data type, or None.

    +

    The dictionary is indexed by keys that are the names of the fields. +Each entry in the dictionary is a tuple fully describing the field:

    +
    (dtype, offset[, title])
    +
    +
    +

    Offset is limited to C int, which is signed and usually 32 bits. +If present, the optional title can be any object (if it is a string +or unicode then it will also be a key in the fields dictionary, +otherwise it's meta-data). Notice also that the first two elements +of the tuple can be passed directly as arguments to the ndarray.getfield +and ndarray.setfield methods.

    +
    +

    See also

    +

    ndarray.getfield, ndarray.setfield

    +
    +

    Examples

    +
    >>> dt = np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))])
    +>>> print(dt.fields)
    +{'grades': (dtype(('float64',(2,))), 16), 'name': (dtype('|S16'), 0)}
    +
    +
    +
    + +
    +
    +flags
    +

    Bit-flags describing how this data type is to be interpreted.

    +

    Bit-masks are in numpy.core.multiarray as the constants +ITEM_HASOBJECT, LIST_PICKLE, ITEM_IS_POINTER, NEEDS_INIT, +NEEDS_PYAPI, USE_GETITEM, USE_SETITEM. A full explanation +of these flags is in C-API documentation; they are largely useful +for user-defined data-types.

    +

    The following example demonstrates that operations on this particular +dtype requires Python C-API.

    +

    Examples

    +
    >>> x = np.dtype([('a', np.int32, 8), ('b', np.float64, 6)])
    +>>> x.flags
    +16
    +>>> np.core.multiarray.NEEDS_PYAPI
    +16
    +
    +
    +
    + +
    +
    +hasobject
    +

    Boolean indicating whether this dtype contains any reference-counted +objects in any fields or sub-dtypes.

    +

    Recall that what is actually in the ndarray memory representing +the Python object is the memory address of that object (a pointer). +Special handling may be required, and this attribute is useful for +distinguishing data types that may contain arbitrary Python objects +and data-types that won't.

    +
    + +
    +
    +isalignedstruct
    +

    Boolean indicating whether the dtype is a struct which maintains +field alignment. This flag is sticky, so when combining multiple +structs together, it is preserved and produces new dtypes which +are also aligned.

    +
    + +
    +
    +isbuiltin
    +

    Integer indicating how this dtype relates to the built-in dtypes.

    +

    Read-only.

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

    0

    if this is a structured array type, with fields

    1

    if this is a dtype compiled into numpy (such as ints, floats etc)

    2

    if the dtype is for a user-defined numpy type +A user-defined type uses the numpy C-API machinery to extend +numpy to handle a new array type. See +User-defined data-types in the NumPy manual.

    +

    Examples

    +
    >>> dt = np.dtype('i2')
    +>>> dt.isbuiltin
    +1
    +>>> dt = np.dtype('f8')
    +>>> dt.isbuiltin
    +1
    +>>> dt = np.dtype([('field1', 'f8')])
    +>>> dt.isbuiltin
    +0
    +
    +
    +
    + +
    +
    +isnative
    +

    Boolean indicating whether the byte order of this dtype is native +to the platform.

    +
    + +
    +
    +itemsize
    +

    The element size of this data-type object.

    +

    For 18 of the 21 types this number is fixed by the data-type. +For the flexible data-types, this number can be anything.

    +

    Examples

    +
    >>> arr = np.array([[1, 2], [3, 4]])
    +>>> arr.dtype
    +dtype('int64')
    +>>> arr.itemsize
    +8
    +
    +
    +
    >>> dt = np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))])
    +>>> dt.itemsize
    +80
    +
    +
    +
    + +
    +
    +kind
    +

    A character code (one of 'biufcmMOSUV') identifying the general kind of data.

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

    b

    boolean

    i

    signed integer

    u

    unsigned integer

    f

    floating-point

    c

    complex floating-point

    m

    timedelta

    M

    datetime

    O

    object

    S

    (byte-)string

    U

    Unicode

    V

    void

    +

    Examples

    +
    >>> dt = np.dtype('i4')
    +>>> dt.kind
    +'i'
    +>>> dt = np.dtype('f8')
    +>>> dt.kind
    +'f'
    +>>> dt = np.dtype([('field1', 'f8')])
    +>>> dt.kind
    +'V'
    +
    +
    +
    + +
    +
    +metadata
    +

    Either None or a readonly dictionary of metadata (mappingproxy).

    +

    The metadata field can be set using any dictionary at data-type +creation. NumPy currently has no uniform approach to propagating +metadata; although some array operations preserve it, there is no +guarantee that others will.

    +
    +

    Warning

    +

    Although used in certain projects, this feature was long undocumented +and is not well supported. Some aspects of metadata propagation +are expected to change in the future.

    +
    +

    Examples

    +
    >>> dt = np.dtype(float, metadata={"key": "value"})
    +>>> dt.metadata["key"]
    +'value'
    +>>> arr = np.array([1, 2, 3], dtype=dt)
    +>>> arr.dtype.metadata
    +mappingproxy({'key': 'value'})
    +
    +
    +

    Adding arrays with identical datatypes currently preserves the metadata:

    +
    >>> (arr + arr).dtype.metadata
    +mappingproxy({'key': 'value'})
    +
    +
    +

    But if the arrays have different dtype metadata, the metadata may be +dropped:

    +
    >>> dt2 = np.dtype(float, metadata={"key2": "value2"})
    +>>> arr2 = np.array([3, 2, 1], dtype=dt2)
    +>>> (arr + arr2).dtype.metadata is None
    +True  # The metadata field is cleared so None is returned
    +
    +
    +
    + +
    +
    +name
    +

    A bit-width name for this data-type.

    +

    Un-sized flexible data-type objects do not have this attribute.

    +

    Examples

    +
    >>> x = np.dtype(float)
    +>>> x.name
    +'float64'
    +>>> x = np.dtype([('a', np.int32, 8), ('b', np.float64, 6)])
    +>>> x.name
    +'void640'
    +
    +
    +
    + +
    +
    +names
    +

    Ordered list of field names, or None if there are no fields.

    +

    The names are ordered according to increasing byte offset. This can be +used, for example, to walk through all of the named fields in offset order.

    +

    Examples

    +
    >>> dt = np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))])
    +>>> dt.names
    +('name', 'grades')
    +
    +
    +
    + +
    +
    +ndim
    +

    Number of dimensions of the sub-array if this data type describes a +sub-array, and 0 otherwise.

    +
    +

    Added in version 1.13.0.

    +
    +

    Examples

    +
    >>> x = np.dtype(float)
    +>>> x.ndim
    +0
    +
    +
    +
    >>> x = np.dtype((float, 8))
    +>>> x.ndim
    +1
    +
    +
    +
    >>> x = np.dtype(('i4', (3, 4)))
    +>>> x.ndim
    +2
    +
    +
    +
    + +
    +
    +num
    +

    A unique number for each of the 21 different built-in types.

    +

    These are roughly ordered from least-to-most precision.

    +

    Examples

    +
    >>> dt = np.dtype(str)
    +>>> dt.num
    +19
    +
    +
    +
    >>> dt = np.dtype(float)
    +>>> dt.num
    +12
    +
    +
    +
    + +
    +
    +shape
    +

    Shape tuple of the sub-array if this data type describes a sub-array, +and () otherwise.

    +

    Examples

    +
    >>> dt = np.dtype(('i4', 4))
    +>>> dt.shape
    +(4,)
    +
    +
    +
    >>> dt = np.dtype(('i4', (2, 3)))
    +>>> dt.shape
    +(2, 3)
    +
    +
    +
    + +
    +
    +str
    +

    The array-protocol typestring of this data-type object.

    +
    + +
    +
    +subdtype
    +

    Tuple (item_dtype, shape) if this dtype describes a sub-array, and +None otherwise.

    +

    The shape is the fixed shape of the sub-array described by this +data type, and item_dtype the data type of the array.

    +

    If a field whose dtype object has this attribute is retrieved, +then the extra dimensions implied by shape are tacked on to +the end of the retrieved array.

    +
    +

    See also

    +

    dtype.base

    +
    +

    Examples

    +
    >>> x = numpy.dtype('8f')
    +>>> x.subdtype
    +(dtype('float32'), (8,))
    +
    +
    +
    >>> x =  numpy.dtype('i2')
    +>>> x.subdtype
    +>>>
    +
    +
    +
    + +
    +
    +type = None
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ediff1d.html b/pull/2070/reference/generated/dpnp.ediff1d.html new file mode 100644 index 00000000000..60bec37674a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ediff1d.html @@ -0,0 +1,219 @@ + + + + + + + + + + + dpnp.ediff1d — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ediff1d

    +
    +
    +dpnp.ediff1d(ary, to_end=None, to_begin=None)[source]
    +

    The differences between consecutive elements of an array.

    +

    For full documentation refer to numpy.ediff1d.

    +
    +
    Parameters:
    +
      +
    • ary ({dpnp.ndarray, usm_ndarray}) -- If necessary, will be flattened before the differences are taken.

    • +
    • to_end (array_like, optional) -- Number(s) to append at the end of the returned differences. +Default: None.

    • +
    • to_begin (array_like, optional) -- Number(s) to prepend at the beginning of the returned differences. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- New array consisting differences among succeeding elements. +Loosely, this is ary.flat[1:] - ary.flat[:-1].

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.diff

    Calculate the n-th discrete difference along the given axis.

    +
    +
    dpnp.gradient

    Return the gradient of an N-dimensional array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 4, 7, 0])
    +>>> np.ediff1d(x)
    +array([ 1,  2,  3, -7])
    +
    +
    +
    >>> np.ediff1d(x, to_begin=-99, to_end=np.array([88, 99]))
    +array([-99,   1,   2,   3,  -7,  88,  99])
    +
    +
    +

    The returned array is always 1D.

    +
    >>> y = np.array([[1, 2, 4], [1, 6, 24]])
    +>>> np.ediff1d(y)
    +array([ 1,  2, -3,  5, 18])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.einsum.html b/pull/2070/reference/generated/dpnp.einsum.html new file mode 100644 index 00000000000..791ae95174c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.einsum.html @@ -0,0 +1,408 @@ + + + + + + + + + + + dpnp.einsum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.einsum

    +
    +
    +dpnp.einsum(subscripts, *operands, out=None, dtype=None, order='K', casting='same_kind', optimize=False)[source]
    +

    Evaluates the Einstein summation convention on the operands.

    +

    For full documentation refer to numpy.einsum.

    +
    +
    Parameters:
    +
      +
    • subscripts (str) -- Specifies the subscripts for summation as comma separated list of +subscript labels. An implicit (classical Einstein summation) +calculation is performed unless the explicit indicator '->' is +included as well as subscript labels of the precise output form.

    • +
    • *operands (sequence of {dpnp.ndarrays, usm_ndarray}) -- These are the arrays for the operation.

    • +
    • out ({dpnp.ndarrays, usm_ndarray, None}, optional) -- If provided, the calculation is done into this array.

    • +
    • dtype ({dtype, None}, optional) -- If provided, forces the calculation to use the data type specified. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Controls the memory layout of the output. "C" means it should be +C-contiguous. "F" means it should be F-contiguous, "A" means +it should be "F" if the inputs are all "F", "C" otherwise. +"K" means it should be as close to the layout as the inputs as +is possible, including arbitrarily permuted axes. +Default: "K".

    • +
    • casting ({"no", "equiv", "safe", "same_kind", "unsafe"}, optional) --

      Controls what kind of data casting may occur. Setting this to +"unsafe" is not recommended, as it can adversely affect +accumulations.

      +
      +
        +
      • "no" means the data types should not be cast at all.

      • +
      • "equiv" means only byte-order changes are allowed.

      • +
      • "safe" means only casts which can preserve values are allowed.

      • +
      • "same_kind" means only safe casts or casts within a kind, +like float64 to float32, are allowed.

      • +
      • "unsafe" means any data conversions may be done.

      • +
      +
      +

      Please note that, in contrast to NumPy, the default setting here is +"same_kind". This is to prevent errors that may occur when data +needs to be converted to float64, but the device does not support it. +In such cases, the data is instead converted to float32. +Default: "same_kind".

      +

    • +
    • optimize ({False, True, "greedy", "optimal"}, optional) -- Controls if intermediate optimization should occur. No optimization +will occur if False and True will default to the "greedy" +algorithm. Also accepts an explicit contraction list from the +dpnp.einsum_path function. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- The calculation based on the Einstein summation convention.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.einsum_path

    Evaluates the lowest cost contraction order for an einsum expression.

    +
    +
    dpnp.dot

    Returns the dot product of two arrays.

    +
    +
    dpnp.inner

    Returns the inner product of two arrays.

    +
    +
    dpnp.outer

    Returns the outer product of two arrays.

    +
    +
    dpnp.tensordot

    Sum products over arbitrary axes.

    +
    +
    dpnp.linalg.multi_dot

    Chained dot product.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(25).reshape(5,5)
    +>>> b = np.arange(5)
    +>>> c = np.arange(6).reshape(2,3)
    +
    +
    +

    Trace of a matrix:

    +
    >>> np.einsum("ii", a)
    +array(60)
    +>>> np.einsum(a, [0,0])
    +array(60)
    +>>> np.trace(a)
    +array(60)
    +
    +
    +

    Extract the diagonal (requires explicit form):

    +
    >>> np.einsum("ii->i", a)
    +array([ 0,  6, 12, 18, 24])
    +>>> np.einsum(a, [0, 0], [0])
    +array([ 0,  6, 12, 18, 24])
    +>>> np.diag(a)
    +array([ 0,  6, 12, 18, 24])
    +
    +
    +

    Sum over an axis (requires explicit form):

    +
    >>> np.einsum("ij->i", a)
    +array([ 10,  35,  60,  85, 110])
    +>>> np.einsum(a, [0, 1], [0])
    +array([ 10,  35,  60,  85, 110])
    +>>> np.sum(a, axis=1)
    +array([ 10,  35,  60,  85, 110])
    +
    +
    +

    For higher dimensional arrays summing a single axis can be done +with ellipsis:

    +
    >>> np.einsum("...j->...", a)
    +array([ 10,  35,  60,  85, 110])
    +>>> np.einsum(a, [Ellipsis,1], [Ellipsis])
    +array([ 10,  35,  60,  85, 110])
    +
    +
    +

    Compute a matrix transpose, or reorder any number of axes:

    +
    >>> np.einsum("ji", c)
    +array([[0, 3],
    +       [1, 4],
    +       [2, 5]])
    +>>> np.einsum("ij->ji", c)
    +array([[0, 3],
    +       [1, 4],
    +       [2, 5]])
    +>>> np.einsum(c, [1, 0])
    +array([[0, 3],
    +       [1, 4],
    +       [2, 5]])
    +>>> np.transpose(c)
    +array([[0, 3],
    +       [1, 4],
    +       [2, 5]])
    +
    +
    +

    Vector inner products:

    +
    >>> np.einsum("i,i", b, b)
    +array(30)
    +>>> np.einsum(b, [0], b, [0])
    +array(30)
    +>>> np.inner(b,b)
    +array(30)
    +
    +
    +

    Matrix vector multiplication:

    +
    >>> np.einsum("ij,j", a, b)
    +array([ 30,  80, 130, 180, 230])
    +>>> np.einsum(a, [0,1], b, [1])
    +array([ 30,  80, 130, 180, 230])
    +>>> np.dot(a, b)
    +array([ 30,  80, 130, 180, 230])
    +>>> np.einsum("...j,j", a, b)
    +array([ 30,  80, 130, 180, 230])
    +
    +
    +

    Broadcasting and scalar multiplication:

    +
    >>> np.einsum("..., ...", 3, c)
    +array([[ 0,  3,  6],
    +       [ 9, 12, 15]])
    +>>> np.einsum(",ij", 3, c)
    +array([[ 0,  3,  6],
    +       [ 9, 12, 15]])
    +>>> np.einsum(3, [Ellipsis], c, [Ellipsis])
    +array([[ 0,  3,  6],
    +       [ 9, 12, 15]])
    +>>> np.multiply(3, c)
    +array([[ 0,  3,  6],
    +       [ 9, 12, 15]])
    +
    +
    +

    Vector outer product:

    +
    >>> np.einsum("i,j", np.arange(2)+1, b)
    +array([[0, 1, 2, 3, 4],
    +       [0, 2, 4, 6, 8]])
    +>>> np.einsum(np.arange(2)+1, [0], b, [1])
    +array([[0, 1, 2, 3, 4],
    +       [0, 2, 4, 6, 8]])
    +>>> np.outer(np.arange(2)+1, b)
    +array([[0, 1, 2, 3, 4],
    +       [0, 2, 4, 6, 8]])
    +
    +
    +

    Tensor contraction:

    +
    >>> a = np.arange(60.).reshape(3, 4, 5)
    +>>> b = np.arange(24.).reshape(4, 3, 2)
    +>>> np.einsum("ijk,jil->kl", a, b)
    +array([[4400., 4730.],
    +       [4532., 4874.],
    +       [4664., 5018.],
    +       [4796., 5162.],
    +       [4928., 5306.]])
    +>>> np.einsum(a, [0, 1, 2], b, [1, 0, 3], [2, 3])
    +array([[4400., 4730.],
    +       [4532., 4874.],
    +       [4664., 5018.],
    +       [4796., 5162.],
    +       [4928., 5306.]])
    +>>> np.tensordot(a, b, axes=([1, 0],[0, 1]))
    +array([[4400., 4730.],
    +       [4532., 4874.],
    +       [4664., 5018.],
    +       [4796., 5162.],
    +       [4928., 5306.]])
    +
    +
    +

    Example of ellipsis use:

    +
    >>> a = np.arange(6).reshape((3, 2))
    +>>> b = np.arange(12).reshape((4, 3))
    +>>> np.einsum("ki,jk->ij", a, b)
    +array([[10, 28, 46, 64],
    +       [13, 40, 67, 94]])
    +>>> np.einsum("ki,...k->i...", a, b)
    +array([[10, 28, 46, 64],
    +       [13, 40, 67, 94]])
    +>>> np.einsum("k...,jk", a, b)
    +array([[10, 28, 46, 64],
    +       [13, 40, 67, 94]])
    +
    +
    +

    Chained array operations. For more complicated contractions, speed ups +might be achieved by repeatedly computing a "greedy" path or computing +the "optimal" path in advance and repeatedly applying it, using an +einsum_path insertion. Performance improvements can be particularly +significant with larger arrays:

    +
    >>> a = np.ones(64000).reshape(20, 40, 80)
    +
    +
    +

    Basic einsum: 119 ms ± 26 ms per loop (evaluated on 12th +Gen Intel® Core™ i7 processor)

    +
    >>> %timeit np.einsum("ijk,ilm,njm,nlk,abc->",a,a,a,a,a)
    +
    +
    +

    Sub-optimal einsum: 32.9 ms ± 5.1 ms per loop

    +
    >>> %timeit np.einsum("ijk,ilm,njm,nlk,abc->",a,a,a,a,a, optimize="optimal")
    +
    +
    +

    Greedy einsum: 28.6 ms ± 4.8 ms per loop

    +
    >>> %timeit np.einsum("ijk,ilm,njm,nlk,abc->",a,a,a,a,a, optimize="greedy")
    +
    +
    +

    Optimal einsum: 26.9 ms ± 6.3 ms per loop

    +
    >>> path = np.einsum_path(
    +    "ijk,ilm,njm,nlk,abc->",a,a,a,a,a, optimize="optimal"
    +)[0]
    +>>> %timeit np.einsum("ijk,ilm,njm,nlk,abc->",a,a,a,a,a, optimize=path)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.einsum_path.html b/pull/2070/reference/generated/dpnp.einsum_path.html new file mode 100644 index 00000000000..35eff5fc978 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.einsum_path.html @@ -0,0 +1,285 @@ + + + + + + + + + + + dpnp.einsum_path — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.einsum_path

    +
    +
    +dpnp.einsum_path(subscripts, *operands, optimize='greedy')[source]
    +

    Evaluates the lowest cost contraction order for an einsum expression +by considering the creation of intermediate arrays.

    +

    For full documentation refer to numpy.einsum_path.

    +
    +
    Parameters:
    +
      +
    • subscripts (str) -- Specifies the subscripts for summation.

    • +
    • *operands (sequence of arrays) -- These are the arrays for the operation in any form that can be +converted to an array. This includes scalars, lists, lists of +tuples, tuples, tuples of tuples, tuples of lists, and ndarrays.

    • +
    • optimize ({bool, list, tuple, None, "greedy", "optimal"}) --

      Choose the type of path. If a tuple is provided, the second argument is +assumed to be the maximum intermediate size created. If only a single +argument is provided the largest input or output array size is used +as a maximum intermediate size.

      +
        +
      • if a list is given that starts with einsum_path, uses this as the +contraction path

      • +
      • if False or None no optimization is taken

      • +
      • if True defaults to the "greedy" algorithm

      • +
      • "optimal" is an algorithm that combinatorially explores all +possible ways of contracting the listed tensors and chooses the +least costly path. Scales exponentially with the number of terms +in the contraction.

      • +
      • "greedy" is an algorithm that chooses the best pair contraction +at each step. Effectively, this algorithm searches the largest inner, +Hadamard, and then outer products at each step. Scales cubically with +the number of terms in the contraction. Equivalent to the +"optimal" path for most contractions.

      • +
      +

      Default: "greedy".

      +

    • +
    +
    +
    Returns:
    +

      +
    • path (list of tuples) -- A list representation of the einsum path.

    • +
    • string_repr (str) -- A printable representation of the einsum path.

    • +
    +

    +
    +
    +

    Notes

    +

    The resulting path indicates which terms of the input contraction should be +contracted first, the result of this contraction is then appended to the +end of the contraction list. This list can then be iterated over until all +intermediate contractions are complete.

    +
    +

    See also

    +
    +
    dpnp.einsum

    Evaluates the Einstein summation convention on the operands.

    +
    +
    dpnp.linalg.multi_dot

    Chained dot product.

    +
    +
    dpnp.dot

    Returns the dot product of two arrays.

    +
    +
    dpnp.inner

    Returns the inner product of two arrays.

    +
    +
    dpnp.outer

    Returns the outer product of two arrays.

    +
    +
    +
    +

    Examples

    +

    We can begin with a chain dot example. In this case, it is optimal to +contract the b and c tensors first as represented by the first +element of the path (1, 2). The resulting tensor is added to the end +of the contraction and the remaining contraction (0, 1) is then +completed.

    +
    >>> import dpnp as np
    +>>> np.random.seed(123)
    +>>> a = np.random.rand(2, 2)
    +>>> b = np.random.rand(2, 5)
    +>>> c = np.random.rand(5, 2)
    +>>> path_info = np.einsum_path("ij,jk,kl->il", a, b, c, optimize="greedy")
    +
    +
    +
    >>> print(path_info[0])
    +['einsum_path', (1, 2), (0, 1)]
    +
    +
    +
    >>> print(path_info[1])
    +  Complete contraction:  ij,jk,kl->il # may vary
    +         Naive scaling:  4
    +     Optimized scaling:  3
    +      Naive FLOP count:  1.200e+02
    +  Optimized FLOP count:  5.700e+01
    +   Theoretical speedup:  2.105
    +  Largest intermediate:  4.000e+00 elements
    +-------------------------------------------------------------------------
    +scaling                  current                                remaining
    +-------------------------------------------------------------------------
    +   3                   kl,jk->jl                                ij,jl->il
    +   3                   jl,ij->il                                   il->il
    +
    +
    +

    A more complex index transformation example.

    +
    >>> I = np.random.rand(10, 10, 10, 10)
    +>>> C = np.random.rand(10, 10)
    +>>> path_info = np.einsum_path(
    +        "ea,fb,abcd,gc,hd->efgh", C, C, I, C, C, optimize="greedy"
    +    )
    +>>> print(path_info[0])
    +['einsum_path', (0, 2), (0, 3), (0, 2), (0, 1)]
    +>>> print(path_info[1])
    +  Complete contraction:  ea,fb,abcd,gc,hd->efgh # may vary
    +         Naive scaling:  8
    +     Optimized scaling:  5
    +      Naive FLOP count:  5.000e+08
    +  Optimized FLOP count:  8.000e+05
    +   Theoretical speedup:  624.999
    +  Largest intermediate:  1.000e+04 elements
    +--------------------------------------------------------------------------
    +scaling                  current                                remaining
    +--------------------------------------------------------------------------
    +   5               abcd,ea->bcde                      fb,gc,hd,bcde->efgh
    +   5               bcde,fb->cdef                         gc,hd,cdef->efgh
    +   5               cdef,gc->defg                            hd,defg->efgh
    +   5               defg,hd->efgh                               efgh->efgh
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.empty.html b/pull/2070/reference/generated/dpnp.empty.html new file mode 100644 index 00000000000..bf104425694 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.empty.html @@ -0,0 +1,237 @@ + + + + + + + + + + + dpnp.empty — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.empty

    +
    +
    +dpnp.empty(shape, *, dtype=None, order='C', like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return a new array of given shape and type, without initializing entries.

    +

    For full documentation refer to numpy.empty.

    +
    +
    Parameters:
    +
      +
    • shape ({int, sequence of ints}) -- Shape of the new array, e.g., (2, 3) or 2.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of uninitialized data of the given shape, dtype, and order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.empty_like

    Return an empty array with shape and type of input.

    +
    +
    dpnp.ones

    Return a new array setting values to one.

    +
    +
    dpnp.zeros

    Return a new array setting values to zero.

    +
    +
    dpnp.full

    Return a new array of given shape filled with value.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.empty(4)
    +array([9.03088525e-312, 9.03088525e-312, 9.03088525e-312, 9.03088525e-312])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.empty((3, 3)) # default case
    +>>> x.shape, x.device, x.usm_type
    +((3, 3), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.empty((3, 3), device="cpu")
    +>>> y.shape, y.device, y.usm_type
    +((3, 3), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.empty((3, 3), usm_type="host")
    +>>> z.shape, z.device, z.usm_type
    +((3, 3), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.empty_like.html b/pull/2070/reference/generated/dpnp.empty_like.html new file mode 100644 index 00000000000..360b58511d4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.empty_like.html @@ -0,0 +1,242 @@ + + + + + + + + + + + dpnp.empty_like — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.empty_like

    +
    +
    +dpnp.empty_like(a, /, *, dtype=None, order='C', subok=False, shape=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return a new array with the same shape and type as a given array.

    +

    For full documentation refer to numpy.empty_like.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The shape and dtype of a define these same attributes +of the returned array.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • shape ({None, int, sequence of ints}) -- Overrides the shape of the result.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of uninitialized data with the same shape and type as prototype.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter order is supported only with values "C", "F" and +None. +Parameter subok is supported only with default value False. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.ones_like

    Return an array of ones with shape and type of input.

    +
    +
    dpnp.zeros_like

    Return an array of zeros with shape and type of input.

    +
    +
    dpnp.full_like

    Return a new array with shape of input filled with value.

    +
    +
    dpnp.empty

    Return a new uninitialized array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3])
    +>>> np.empty_like(a)
    +array([1, 2, 3])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.empty_like(a) # default case
    +>>> x.shape, x.device, x.usm_type
    +((3, ), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.empty_like(a, device="cpu")
    +>>> y.shape, y.device, y.usm_type
    +((3, ), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.empty_like(a, usm_type="host")
    +>>> z.shape, z.device, z.usm_type
    +((3, ), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.equal.html b/pull/2070/reference/generated/dpnp.equal.html new file mode 100644 index 00000000000..850f4842afd --- /dev/null +++ b/pull/2070/reference/generated/dpnp.equal.html @@ -0,0 +1,218 @@ + + + + + + + + + + + dpnp.equal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.equal

    +
    +
    +dpnp.equal(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates equality test results for each element x1_i of the input array x1 +with the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.equal.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array have the correct shape and the expected data type.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise equality comparison. +The returned array has a data type of bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.not_equal

    Return (x1 != x2) element-wise.

    +
    +
    dpnp.greater_equal

    Return the truth value of (x1 >= x2) element-wise.

    +
    +
    dpnp.less_equal

    Return the truth value of (x1 =< x2) element-wise.

    +
    +
    dpnp.greater

    Return the truth value of (x1 > x2) element-wise.

    +
    +
    dpnp.less

    Return the truth value of (x1 < x2) element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([0, 1, 3])
    +>>> x2 = np.arange(3)
    +>>> np.equal(x1, x2)
    +array([ True,  True, False])
    +
    +
    +

    What is compared are values, not types. So an int (1) and an array of +length one can evaluate as True:

    +
    >>> np.equal(1, np.ones(1))
    +array([ True])
    +
    +
    +

    The == operator can be used as a shorthand for equal on +dpnp.ndarray.

    +
    >>> a = np.array([2, 4, 6])
    +>>> b = np.array([2, 4, 2])
    +>>> a == b
    +array([ True,  True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.erf.html b/pull/2070/reference/generated/dpnp.erf.html new file mode 100644 index 00000000000..2d9f01f4e19 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.erf.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.erf — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.erf

    +
    +
    +dpnp.erf(in_array1)[source]
    +

    Returns the error function of complex argument.

    +

    For full documentation refer to scipy.special.erf.

    +

    Limitations

    +

    Parameter in_array1 is supported as dpnp.ndarray. +Otherwise the function will be executed sequentially on CPU. +Input array data types are limited by supported DPNP Available array data types.

    +
    +

    See also

    +

    math.erf

    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.linspace(2.0, 3.0, num=5)
    +>>> [i for i in x]
    +[2.0, 2.25, 2.5, 2.75, 3.0]
    +>>> out = np.erf(x)
    +>>> [i for i in out]
    +[0.99532227, 0.99853728, 0.99959305, 0.99989938, 0.99997791]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.exp.html b/pull/2070/reference/generated/dpnp.exp.html new file mode 100644 index 00000000000..90742faf24f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.exp.html @@ -0,0 +1,196 @@ + + + + + + + + + + + dpnp.exp — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.exp

    +
    +
    +dpnp.exp(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the exponent for each element x_i of input array x.

    +

    For full documentation refer to numpy.exp.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise exponent of x. +The data type of the returned array is determined by +the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.expm1

    Calculate exp(x) - 1 for all elements in the array.

    +
    +
    dpnp.exp2

    Calculate 2**x for all elements in the array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(3.)
    +>>> np.exp(x)
    +array([1.0, 2.718281828, 7.389056099])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.exp2.html b/pull/2070/reference/generated/dpnp.exp2.html new file mode 100644 index 00000000000..f2a705d7d69 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.exp2.html @@ -0,0 +1,198 @@ + + + + + + + + + + + dpnp.exp2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.exp2

    +
    +
    +dpnp.exp2(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the base-2 exponent for each element x_i for input array x.

    +

    For full documentation refer to numpy.exp2.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a floating-point data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise base-2 exponents. +The data type of the returned array is determined by +the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.exp

    Calculate exponent for all elements in the array.

    +
    +
    dpnp.expm1

    exp(x) - 1, the inverse of dpnp.log1p.

    +
    +
    dpnp.power

    First array elements raised to powers from second array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(3.)
    +>>> np.exp2(x)
    +array([1., 2., 4.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.expand_dims.html b/pull/2070/reference/generated/dpnp.expand_dims.html new file mode 100644 index 00000000000..6b580cf2a2a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.expand_dims.html @@ -0,0 +1,256 @@ + + + + + + + + + + + dpnp.expand_dims — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.expand_dims

    +
    +
    +dpnp.expand_dims(a, axis)[source]
    +

    Expand the shape of an array.

    +

    Insert a new axis that will appear at the axis position in the expanded +array shape.

    +

    For full documentation refer to numpy.expand_dims.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis (int or tuple of ints) -- Position in the expanded axes where the new axis (or axes) is placed.

    • +
    +
    +
    Returns:
    +

    out -- An array with the number of dimensions increased. +A view is returned whenever possible.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Notes

    +

    If a has rank (i.e, number of dimensions) N, a valid axis must reside +in the closed-interval [-N-1, N]. +If provided a negative axis, the axis position at which to insert a +singleton dimension is computed as N + axis + 1. +Hence, if provided -1, the resolved axis position is N (i.e., +a singleton dimension must be appended to the input array a). +If provided -N-1, the resolved axis position is 0 (i.e., a +singleton dimension is added to the input array a).

    +
    +

    See also

    +
    +
    dpnp.squeeze

    The inverse operation, removing singleton dimensions

    +
    +
    dpnp.reshape

    Insert, remove, and combine dimensions, and resize existing ones

    +
    +
    dpnp.atleast_1d

    Convert inputs to arrays with at least one dimension.

    +
    +
    dpnp.atleast_2d

    View inputs as arrays with at least two dimensions.

    +
    +
    dpnp.atleast_3d

    View inputs as arrays with at least three dimensions.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2])
    +>>> x.shape
    +(2,)
    +
    +
    +

    The following is equivalent to x[np.newaxis, :] or x[np.newaxis]:

    +
    >>> y = np.expand_dims(x, axis=0)
    +>>> y
    +array([[1, 2]])
    +>>> y.shape
    +(1, 2)
    +
    +
    +

    The following is equivalent to x[:, np.newaxis]:

    +
    >>> y = np.expand_dims(x, axis=1)
    +>>> y
    +array([[1],
    +       [2]])
    +>>> y.shape
    +(2, 1)
    +
    +
    +

    axis may also be a tuple:

    +
    >>> y = np.expand_dims(x, axis=(0, 1))
    +>>> y
    +array([[[1, 2]]])
    +
    +
    +
    >>> y = np.expand_dims(x, axis=(2, 0))
    +>>> y
    +array([[[1],
    +        [2]]])
    +
    +
    +

    Note that some examples may use None instead of np.newaxis. These +are the same objects:

    +
    >>> np.newaxis is None
    +True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.expm1.html b/pull/2070/reference/generated/dpnp.expm1.html new file mode 100644 index 00000000000..5cab815bd26 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.expm1.html @@ -0,0 +1,207 @@ + + + + + + + + + + + dpnp.expm1 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.expm1

    +
    +
    +dpnp.expm1(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the exponent minus 1 for each element x_i of input array x.

    +

    This function calculates exp(x) - 1.0 more accurately for small values of x.

    +

    For full documentation refer to numpy.expm1.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise exp(x) - 1 results. +The data type of the returned array is determined by the Type +Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.exp

    Calculate exponents for all elements in the array.

    +
    +
    dpnp.exp2

    Calculate 2**x for all elements in the array.

    +
    +
    dpnp.log1p

    Calculate log(1 + x), the inverse of dpnp.expm1.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(3.)
    +>>> np.expm1(x)
    +array([0.0, 1.718281828, 6.389056099])
    +
    +
    +
    >>> np.expm1(np.array(1e-10))
    +array(1.00000000005e-10)
    +
    +
    +
    >>> np.exp(np.array(1e-10)) - 1
    +array(1.000000082740371e-10)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.extract.html b/pull/2070/reference/generated/dpnp.extract.html new file mode 100644 index 00000000000..ce1cde63ca4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.extract.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.extract — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.extract

    +
    +
    +dpnp.extract(condition, a)[source]
    +

    Return the elements of an array that satisfy some condition.

    +

    This is equivalent to +dpnp.compress(dpnp.ravel(condition), dpnp.ravel(a)). If condition +is boolean dpnp.extract is equivalent to a[condition].

    +

    Note that dpnp.place does the exact opposite of dpnp.extract.

    +

    For full documentation refer to numpy.extract.

    +
    +
    Parameters:
    +
      +
    • condition ({array_like, scalar}) -- An array whose non-zero or True entries indicate the element of a +to extract.

    • +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array of the same size as condition.

    • +
    +
    +
    Returns:
    +

    out -- Rank 1 array of values from a where condition is True.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.take

    Take elements from an array along an axis.

    +
    +
    dpnp.put

    Replaces specified elements of an array with given values.

    +
    +
    dpnp.copyto

    Copies values from one array to another, broadcasting as necessary.

    +
    +
    dpnp.compress

    Return selected slices of an array along given axis.

    +
    +
    dpnp.place

    Change elements of an array based on conditional and input values.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(12).reshape((3, 4))
    +>>> a
    +array([[ 0,  1,  2,  3],
    +       [ 4,  5,  6,  7],
    +       [ 8,  9, 10, 11]])
    +>>> condition = np.mod(a, 3) == 0
    +>>> condition
    +array([[ True, False, False,  True],
    +       [False, False,  True, False],
    +       [False,  True, False, False]])
    +>>> np.extract(condition, a)
    +array([0, 3, 6, 9])
    +
    +
    +

    If condition is boolean:

    +
    >>> a[condition]
    +array([0, 3, 6, 9])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.eye.html b/pull/2070/reference/generated/dpnp.eye.html new file mode 100644 index 00000000000..00eb4b42c76 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.eye.html @@ -0,0 +1,248 @@ + + + + + + + + + + + dpnp.eye — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.eye

    +
    +
    +dpnp.eye(N, /, M=None, k=0, dtype=None, order='C', *, like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return a 2-D array with ones on the diagonal and zeros elsewhere.

    +

    For full documentation refer to numpy.eye.

    +
    +
    Parameters:
    +
      +
    • N (int) -- Number of rows in the output.

    • +
    • M ({None, int}, optional) -- Number of columns in the output. If None, defaults to N.

    • +
    • k (int, optional) -- Index of the diagonal: 0 (the default) refers to the main diagonal, +a positive value refers to an upper diagonal, and a negative value to +a lower diagonal.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- An array where all elements are equal to zero, except for the k-th +diagonal, whose values are equal to one.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.identity

    Return the identity array.

    +
    +
    dpnp.diag

    Extract a diagonal or construct a diagonal array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.eye(2, dtype=int)
    +array([[1, 0],
    +       [0, 1]])
    +
    +
    +
    >>> np.eye(3, k=1)
    +array([[0.,  1.,  0.],
    +       [0.,  0.,  1.],
    +       [0.,  0.,  0.]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.eye(2, dtype=int) # default case
    +>>> x, x.device, x.usm_type
    +(array([[1, 0],
    +        [0, 1]]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.eye(2, dtype=int, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([[1, 0],
    +        [0, 1]]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.eye(2, dtype=int, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([[1, 0],
    +        [0, 1]]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fabs.html b/pull/2070/reference/generated/dpnp.fabs.html new file mode 100644 index 00000000000..ed9c3f03f3a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fabs.html @@ -0,0 +1,194 @@ + + + + + + + + + + + dpnp.fabs — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.fabs

    +
    +
    +dpnp.fabs(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Compute the absolute values element-wise.

    +

    This function returns the absolute values (positive magnitude) of the data in +x. Complex values are not handled, use dpnp.absolute to find the +absolute values of complex data.

    +

    For full documentation refer to numpy.fabs.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- The array of numbers for which the absolute values are required.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- The absolute values of x, the returned values are always floats. +If x does not have a floating point data type, the returned array +will have a data type that depends on the capabilities of the device +on which the array resides.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.absolute

    Absolute values including complex types.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-1.2, 1.2])
    +>>> np.fabs(a)
    +array([1.2, 1.2])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.fft.html b/pull/2070/reference/generated/dpnp.fft.fft.html new file mode 100644 index 00000000000..b40df053aef --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.fft.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.fft.fft — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.fft

    +
    +
    +dpnp.fft.fft(a, n=None, axis=-1, norm=None, out=None)[source]
    +

    Compute the one-dimensional discrete Fourier Transform.

    +

    This function computes the one-dimensional n-point discrete Fourier +Transform (DFT) with the efficient Fast Fourier Transform (FFT) algorithm.

    +

    For full documentation refer to numpy.fft.fft.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, can be complex.

    • +
    • n ({None, int}, optional) -- Length of the transformed axis of the output. +If n is smaller than the length of the input, the input is cropped. +If it is larger, the input is padded with zeros. If n is not given, +the length of the input along the axis specified by axis is used. +Default: None.

    • +
    • axis (int, optional) -- Axis over which to compute the FFT. If not given, the last axis is +used. Default: -1.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate shape (consistent with the choice of n) and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axis +indicated by axis, or the last one if axis is not specified.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    For definition of the DFT and conventions used.

    +
    +
    dpnp.fft.ifft

    The inverse of dpnp.fft.fft.

    +
    +
    dpnp.fft.fft2

    The two-dimensional FFT.

    +
    +
    dpnp.fft.fftn

    The N-dimensional FFT.

    +
    +
    dpnp.fft.rfftn

    The N-dimensional FFT of real input.

    +
    +
    dpnp.fft.fftfreq

    Frequency bins for given FFT parameters.

    +
    +
    +
    +

    Notes

    +

    FFT (Fast Fourier Transform) refers to a way the discrete Fourier +Transform (DFT) can be calculated efficiently, by using symmetries in the +calculated terms. The symmetry is highest when n is a power of 2, and +the transform is therefore most efficient for these sizes.

    +

    The DFT is defined, with the conventions used in this implementation, +in the documentation for the dpnp.fft module.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.exp(2j * np.pi * np.arange(8) / 8)
    +>>> np.fft.fft(a)
    +array([-3.44509285e-16+1.14423775e-17j,  8.00000000e+00-8.52069395e-16j,
    +        2.33486982e-16+1.22464680e-16j,  0.00000000e+00+1.22464680e-16j,
    +        9.95799250e-17+2.33486982e-16j, -8.88178420e-16+1.17281316e-16j,
    +        1.14423775e-17+1.22464680e-16j,  0.00000000e+00+1.22464680e-16j])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.fft2.html b/pull/2070/reference/generated/dpnp.fft.fft2.html new file mode 100644 index 00000000000..ff9331dc43d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.fft2.html @@ -0,0 +1,249 @@ + + + + + + + + + + + dpnp.fft.fft2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.fft2

    +
    +
    +dpnp.fft.fft2(a, s=None, axes=(-2, -1), norm=None, out=None)[source]
    +

    Compute the 2-dimensional discrete Fourier Transform.

    +

    This function computes the N-dimensional discrete Fourier Transform over +any axes in an M-dimensional array by means of the Fast Fourier +Transform (FFT). By default, the transform is computed over the last two +axes of the input array, i.e., a 2-dimensional FFT.

    +

    For full documentation refer to numpy.fft.fft2.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, can be complex.

    • +
    • s ({None, sequence of ints}, optional) -- Shape (length of each transformed axis) of the output +(s[0] refers to axis 0, s[1] to axis 1, etc.). +This corresponds to n for fft(x, n). +Along each axis, if the given shape is smaller than that of the input, +the input is cropped. If it is larger, the input is padded with zeros. +If it is -1, the whole input is used (no padding/trimming). +If s is not given, the shape of the input along the axes specified +by axes is used. If s is not None, axes must not be None +either. Default: None.

    • +
    • axes ({None, sequence of ints}, optional) -- Axes over which to compute the FFT. If not given, the last two axes are +used. A repeated index in axes means the transform over that axis is +performed multiple times. If s is specified, the corresponding axes +to be transformed must be explicitly specified too. A one-element +sequence means that a one-dimensional FFT is performed. An empty +sequence means that no FFT is performed. +Default: (-2, -1).

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate shape (consistent with the choice of s) and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axes +indicated by axes, or the last two axes if axes is not given.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    Overall view of discrete Fourier transforms, with definitions and conventions used.

    +
    +
    dpnp.fft.ifft2

    The inverse two-dimensional FFT.

    +
    +
    dpnp.fft.fft

    The one-dimensional FFT.

    +
    +
    dpnp.fft.fftn

    The N-dimensional FFT.

    +
    +
    dpnp.fft.fftshift

    Shifts zero-frequency terms to the center of the array. For two-dimensional input, swaps first and third quadrants, and second and fourth quadrants.

    +
    +
    +
    +

    Notes

    +

    dpnp.fft.fft2 is just dpnp.fft.fftn with a different +default for axes.

    +

    The output, analogously to dpnp.fft.fft, contains the term for zero +frequency in the low-order corner of the transformed axes, the positive +frequency terms in the first half of these axes, the term for the Nyquist +frequency in the middle of the axes and the negative frequency terms in +the second half of the axes, in order of decreasingly negative frequency.

    +

    See dpnp.fft for details, definitions and conventions used.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.mgrid[:5, :5][0]
    +>>> np.fft.fft2(a)
    +array([[ 50.  +0.j        ,   0.  +0.j        ,   0.  +0.j        ,
    +          0.  +0.j        ,   0.  +0.j        ],
    +       [-12.5+17.20477401j,   0.  +0.j        ,   0.  +0.j        ,
    +          0.  +0.j        ,   0.  +0.j        ],
    +       [-12.5 +4.0614962j ,   0.  +0.j        ,   0.  +0.j        ,
    +          0.  +0.j        ,   0.  +0.j        ],
    +       [-12.5 -4.0614962j ,   0.  +0.j        ,   0.  +0.j        ,
    +          0.  +0.j        ,   0.  +0.j        ],
    +       [-12.5-17.20477401j,   0.  +0.j        ,   0.  +0.j        ,
    +          0.  +0.j        ,   0.  +0.j        ]])  # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.fftfreq.html b/pull/2070/reference/generated/dpnp.fft.fftfreq.html new file mode 100644 index 00000000000..c9e7461dd29 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.fftfreq.html @@ -0,0 +1,239 @@ + + + + + + + + + + + dpnp.fft.fftfreq — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.fftfreq

    +
    +
    +dpnp.fft.fftfreq(n, d=1.0, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return the Discrete Fourier Transform sample frequencies.

    +

    The returned float array f contains the frequency bin centers in cycles +per unit of the sample spacing (with zero at the start). For instance, if +the sample spacing is in seconds, then the frequency unit is cycles/second.

    +

    Given a window length n and a sample spacing d:

    +
    f = [0, 1, ...,   n/2-1,     -n/2, ..., -1] / (d*n)   if n is even
    +f = [0, 1, ..., (n-1)/2, -(n-1)/2, ..., -1] / (d*n)   if n is odd
    +
    +
    +

    For full documentation refer to numpy.fft.fftfreq.

    +
    +
    Parameters:
    +
      +
    • n (int) -- Window length.

    • +
    • d (scalar, optional) -- Sample spacing (inverse of the sampling rate). +Default: 1.0.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. +Default: None.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    f -- Array of length n containing the sample frequencies.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft.rfftfreq

    Return the Discrete Fourier Transform sample frequencies (for usage with dpnp.fft.rfft and dpnp.fft.irfft).

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5])
    +>>> fourier = np.fft.fft(signal)
    +>>> n = signal.size
    +>>> timestep = 0.1
    +>>> freq = np.fft.fftfreq(n, d=timestep)
    +>>> freq
    +array([ 0.  ,  1.25,  2.5 ,  3.75, -5.  , -3.75, -2.5 , -1.25])
    +
    +
    +

    Creating the output array on a different device or with a +specified usm_type:

    +
    >>> x = np.fft.fftfreq(n, d=timestep) # default case
    +>>> x.shape, x.device, x.usm_type
    +((8,), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.fft.fftfreq(n, d=timestep, device="cpu")
    +>>> y.shape, y.device, y.usm_type
    +((8,), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.fft.fftfreq(n, d=timestep, usm_type="host")
    +>>> z.shape, z.device, z.usm_type
    +((8,), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.fftn.html b/pull/2070/reference/generated/dpnp.fft.fftn.html new file mode 100644 index 00000000000..110bdf905cd --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.fftn.html @@ -0,0 +1,256 @@ + + + + + + + + + + + dpnp.fft.fftn — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.fftn

    +
    +
    +dpnp.fft.fftn(a, s=None, axes=None, norm=None, out=None)[source]
    +

    Compute the N-dimensional discrete Fourier Transform.

    +

    This function computes the N-dimensional discrete Fourier Transform over +any number of axes in an M-dimensional array by means of the +Fast Fourier Transform (FFT).

    +

    For full documentation refer to numpy.fft.fftn.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, can be complex.

    • +
    • s ({None, sequence of ints}, optional) -- Shape (length of each transformed axis) of the output +(s[0] refers to axis 0, s[1] to axis 1, etc.). +This corresponds to n for fft(x, n). +Along each axis, if the given shape is smaller than that of the input, +the input is cropped. If it is larger, the input is padded with zeros. +If it is -1, the whole input is used (no padding/trimming). +If s is not given, the shape of the input along the axes specified +by axes is used. If s is not None, axes must not be None +either. Default: None.

    • +
    • axes ({None, sequence of ints}, optional) -- Axes over which to compute the FFT. If not given, the last len(s) +axes are used, or all axes if s is also not specified. +Repeated indices in axes means that the transform over that axis is +performed multiple times. If s is specified, the corresponding axes +to be transformed must be explicitly specified too. A one-element +sequence means that a one-dimensional FFT is performed. An empty +sequence means that no FFT is performed. +Default: None.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate shape (consistent with the choice of s) and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axes +indicated by axes, or by a combination of s and a, +as explained in the parameters section above.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    Overall view of discrete Fourier transforms, with definitions and conventions used.

    +
    +
    dpnp.fft.ifftn

    The inverse N-dimensional FFT.

    +
    +
    dpnp.fft.fft

    The one-dimensional FFT.

    +
    +
    dpnp.fft.rfftn

    The N-dimensional FFT of real input.

    +
    +
    dpnp.fft.fft2

    The two-dimensional FFT.

    +
    +
    dpnp.fft.fftshift

    Shifts zero-frequency terms to the center of the array.

    +
    +
    +
    +

    Notes

    +

    The output, analogously to dpnp.fft.fft, contains the term for zero +frequency in the low-order corner of the transformed axes, the positive +frequency terms in the first half of these axes, the term for the Nyquist +frequency in the middle of the axes and the negative frequency terms in +the second half of the axes, in order of decreasingly negative frequency.

    +

    See dpnp.fft for details, definitions and conventions used.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.mgrid[:3, :3, :3][0]
    +>>> np.fft.fftn(a, axes=(1, 2))
    +array([[[ 0.+0.j,   0.+0.j,   0.+0.j], # may vary
    +        [ 0.+0.j,   0.+0.j,   0.+0.j],
    +        [ 0.+0.j,   0.+0.j,   0.+0.j]],
    +       [[ 9.+0.j,   0.+0.j,   0.+0.j],
    +        [ 0.+0.j,   0.+0.j,   0.+0.j],
    +        [ 0.+0.j,   0.+0.j,   0.+0.j]],
    +       [[18.+0.j,   0.+0.j,   0.+0.j],
    +        [ 0.+0.j,   0.+0.j,   0.+0.j],
    +        [ 0.+0.j,   0.+0.j,   0.+0.j]]])
    +
    +
    +
    >>> np.fft.fftn(a, (2, 2), axes=(0, 1))
    +array([[[ 2.+0.j,  2.+0.j,  2.+0.j], # may vary
    +        [ 0.+0.j,  0.+0.j,  0.+0.j]],
    +       [[-2.+0.j, -2.+0.j, -2.+0.j],
    +        [ 0.+0.j,  0.+0.j,  0.+0.j]]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.fftshift.html b/pull/2070/reference/generated/dpnp.fft.fftshift.html new file mode 100644 index 00000000000..4953cb1ead4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.fftshift.html @@ -0,0 +1,212 @@ + + + + + + + + + + + dpnp.fft.fftshift — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.fftshift

    +
    +
    +dpnp.fft.fftshift(x, axes=None)[source]
    +

    Shift the zero-frequency component to the center of the spectrum.

    +

    This function swaps half-spaces for all axes listed (defaults to all). +Note that out[0] is the Nyquist component only if len(x) is even.

    +

    For full documentation refer to numpy.fft.fftshift.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axes ({None, int, list or tuple of ints}, optional) -- Axes over which to shift. +Default is None, which shifts all axes.

    • +
    +
    +
    Returns:
    +

    out -- The shifted array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft.ifftshift

    The inverse of dpnp.fft.fftshift.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> freqs = np.fft.fftfreq(10, 0.1)
    +>>> freqs
    +array([ 0.,  1.,  2.,  3.,  4., -5., -4., -3., -2., -1.])
    +>>> np.fft.fftshift(freqs)
    +array([-5., -4., -3., -2., -1.,  0.,  1.,  2.,  3.,  4.])
    +
    +
    +

    Shift the zero-frequency component only along the second axis:

    +
    >>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3)
    +>>> freqs
    +array([[ 0.,  1.,  2.],
    +       [ 3.,  4., -4.],
    +       [-3., -2., -1.]])
    +>>> np.fft.fftshift(freqs, axes=(1,))
    +array([[ 2.,  0.,  1.],
    +       [-4.,  3.,  4.],
    +       [-1., -3., -2.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.hfft.html b/pull/2070/reference/generated/dpnp.fft.hfft.html new file mode 100644 index 00000000000..2cf794d7f28 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.hfft.html @@ -0,0 +1,251 @@ + + + + + + + + + + + dpnp.fft.hfft — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.hfft

    +
    +
    +dpnp.fft.hfft(a, n=None, axis=-1, norm=None, out=None)[source]
    +

    Compute the FFT of a signal that has Hermitian symmetry, i.e., +a real spectrum.

    +

    For full documentation refer to numpy.fft.hfft.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • n ({None, int}, optional) -- Length of the transformed axis of the output. +For n output points, n//2+1 input points are necessary. If the +input is longer than this, it is cropped. If it is shorter than this, +it is padded with zeros. If n is not given, it is taken to be +2*(m-1) where m is the length of the input along the axis +specified by axis. Default: None.

    • +
    • axis (int, optional) -- Axis over which to compute the FFT. If not given, the last axis is +used. Default: -1.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- If provided, the result will be placed in this array. It should be +of the appropriate shape and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axis +indicated by axis, or the last one if axis is not specified. +The length of the transformed axis is n, or, if n is not given, +2*(m-1) where m is the length of the transformed axis of the +input. To get an odd number of output points, n must be specified, +for instance as 2*m - 1 in the typical case.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    For definition of the DFT and conventions used.

    +
    +
    dpnp.fft.rfft

    The one-dimensional FFT of real input.

    +
    +
    dpnp.fft.ihfft

    The inverse of dpnp.fft.hfft.

    +
    +
    +
    +

    Notes

    +

    dpnp.fft.hfft/dpnp.fft.ihfft are a pair analogous to +dpnp.fft.rfft/dpnp.fft.irfft, but for the opposite case: +here the signal has Hermitian symmetry in the time domain and is real in +the frequency domain. So here it's dpnp.fft.hfft for which you must +supply the length of the result if it is to be odd.

    +
      +
    • even: ihfft(hfft(a, 2*len(a) - 2)) == a, within round-off error,

    • +
    • odd: ihfft(hfft(a, 2*len(a) - 1)) == a, within round-off error.

    • +
    +

    The correct interpretation of the Hermitian input depends on the length of +the original data, as given by n. This is because each input shape could +correspond to either an odd or even length signal. By default, +dpnp.fft.hfft assumes an even output length which puts the last +entry at the Nyquist frequency; aliasing with its symmetric counterpart. +By Hermitian symmetry, the value is thus treated as purely real. To avoid +losing information, the correct length of the real input must be given.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> signal = np.array([1, 2, 3, 4, 3, 2])
    +>>> np.fft.fft(signal)
    +array([15.+0.j, -4.+0.j,  0.+0.j, -1.-0.j,  0.+0.j, -4.+0.j])
    +>>> np.fft.hfft(signal[:4]) # Input first half of signal
    +array([15., -4.,  0., -1.,  0., -4.])
    +>>> np.fft.hfft(signal, 6)  # Input entire signal and truncate
    +array([15., -4.,  0., -1.,  0., -4.])
    +
    +
    +
    >>> signal = np.array([[1, 1.j], [-1.j, 2]])
    +>>> np.conj(signal.T) - signal   # check Hermitian symmetry
    +array([[ 0.-0.j, -0.+0.j], # may vary
    +       [ 0.+0.j,  0.-0.j]])
    +>>> freq_spectrum = np.fft.hfft(signal)
    +>>> freq_spectrum
    +array([[ 1.,  1.],
    +       [ 2., -2.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.ifft.html b/pull/2070/reference/generated/dpnp.fft.ifft.html new file mode 100644 index 00000000000..a697ed9f7bb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.ifft.html @@ -0,0 +1,237 @@ + + + + + + + + + + + dpnp.fft.ifft — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.ifft

    +
    +
    +dpnp.fft.ifft(a, n=None, axis=-1, norm=None, out=None)[source]
    +

    Compute the one-dimensional inverse discrete Fourier Transform.

    +

    This function computes the inverse of the one-dimensional n-point +discrete Fourier transform computed by dpnp.fft.fft. In other words, +ifft(fft(a)) == a to within numerical accuracy. +For a general description of the algorithm and definitions, +see dpnp.fft.

    +

    The input should be ordered in the same way as is returned by +dpnp.fft.fft, i.e.,

    +
      +
    • a[0] should contain the zero frequency term,

    • +
    • a[1:n//2] should contain the positive-frequency terms,

    • +
    • a[n//2 + 1:] should contain the negative-frequency terms, in +increasing order starting from the most negative frequency.

    • +
    +

    For an even number of input points, A[n//2] represents the sum of +the values at the positive and negative Nyquist frequencies, as the two +are aliased together.

    +

    For full documentation refer to numpy.fft.ifft.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, can be complex.

    • +
    • n ({None, int}, optional) -- Length of the transformed axis of the output. +If n is smaller than the length of the input, the input is cropped. +If it is larger, the input is padded with zeros. If n is not given, +the length of the input along the axis specified by axis is used. +Default: None.

    • +
    • axis (int, optional) -- Axis over which to compute the inverse FFT. If not given, the last +axis is used. Default: -1.

    • +
    • norm ({"backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate shape (consistent with the choice of n) and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axis +indicated by axis, or the last one if axis is not specified.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    For definition of the DFT and conventions used.

    +
    +
    dpnp.fft.fft

    The one-dimensional (forward) FFT, of which dpnp.fft.ifft is the inverse.

    +
    +
    dpnp.fft.ifft2

    The two-dimensional inverse FFT.

    +
    +
    dpnp.fft.ifftn

    The N-dimensional inverse FFT.

    +
    +
    +
    +

    Notes

    +

    If the input parameter n is larger than the size of the input, the input +is padded by appending zeros at the end. Even though this is the common +approach, it might lead to surprising results. If a different padding is +desired, it must be performed before calling dpnp.fft.ifft.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([0, 4, 0, 0])
    +>>> np.fft.ifft(a)
    +array([ 1.+0.j,  0.+1.j, -1.+0.j,  0.-1.j]) # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.ifft2.html b/pull/2070/reference/generated/dpnp.fft.ifft2.html new file mode 100644 index 00000000000..ae6152bcf7b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.ifft2.html @@ -0,0 +1,252 @@ + + + + + + + + + + + dpnp.fft.ifft2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.ifft2

    +
    +
    +dpnp.fft.ifft2(a, s=None, axes=(-2, -1), norm=None, out=None)[source]
    +

    Compute the 2-dimensional inverse discrete Fourier Transform.

    +

    This function computes the inverse of the 2-dimensional discrete Fourier +Transform over any number of axes in an M-dimensional array by means of +the Fast Fourier Transform (FFT). In other words, ifft2(fft2(a)) == a +to within numerical accuracy. By default, the inverse transform is +computed over the last two axes of the input array.

    +

    The input, analogously to dpnp.fft.ifft, should be ordered in the +same way as is returned by dpnp.fft.fft2, i.e. it should have the +term for zero frequency in the low-order corner of the two axes, the +positive frequency terms in the first half of these axes, the term for the +Nyquist frequency in the middle of the axes and the negative frequency +terms in the second half of both axes, in order of decreasingly negative +frequency.

    +

    For full documentation refer to numpy.fft.ifft2.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, can be complex.

    • +
    • s ({None, sequence of ints}, optional) -- Shape (length of each transformed axis) of the output +(s[0] refers to axis 0, s[1] to axis 1, etc.). +This corresponds to n for ifft(x, n). +Along each axis, if the given shape is smaller than that of the input, +the input is cropped. If it is larger, the input is padded with zeros. +If it is -1, the whole input is used (no padding/trimming). +If s is not given, the shape of the input along the axes specified +by axes is used. See notes for issue on dpnp.fft.ifft +zero padding. If s is not None, axes must not be None +either. Default: None.

    • +
    • axes ({None, sequence of ints}, optional) -- Axes over which to compute the inverse FFT. If not given, the last two +axes are used. A repeated index in axes means the transform over that +axis is performed multiple times. If s is specified, the +corresponding axes to be transformed must be explicitly specified +too. A one-element sequence means that a one-dimensional FFT is +performed. An empty sequence means that no FFT is performed. +Default: (-2, -1).

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate shape (consistent with the choice of s) and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axes +indicated by axes, or the last two axes if axes is not given.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    Overall view of discrete Fourier transforms, with definitions and conventions used.

    +
    +
    dpnp.fft.fft2

    The forward two-dimensional FFT, of which dpnp.fft.ifft2 is the inverse.

    +
    +
    dpnp.fft.ifftn

    The inverse of N-dimensional FFT.

    +
    +
    dpnp.fft.fft

    The one-dimensional FFT.

    +
    +
    dpnp.fft.ifft

    The one-dimensional inverse FFT.

    +
    +
    +
    +

    Notes

    +

    dpnp.fft.ifft2 is just dpnp.fft.ifftn with a different +default for axes. See dpnp.fft for details, definitions and +conventions used.

    +

    Zero-padding, analogously with dpnp.fft.ifft, is performed by +appending zeros to the input along the specified dimension. Although this +is the common approach, it might lead to surprising results. If another +form of zero padding is desired, it must be performed before +dpnp.fft.ifft2 is called.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = 4 * np.eye(4)
    +>>> np.fft.ifft2(a)
    +array([[1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j], # may vary
    +       [0.+0.j,  0.+0.j,  0.+0.j,  1.+0.j],
    +       [0.+0.j,  0.+0.j,  1.+0.j,  0.+0.j],
    +       [0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.ifftn.html b/pull/2070/reference/generated/dpnp.fft.ifftn.html new file mode 100644 index 00000000000..310112b4e24 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.ifftn.html @@ -0,0 +1,250 @@ + + + + + + + + + + + dpnp.fft.ifftn — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.ifftn

    +
    +
    +dpnp.fft.ifftn(a, s=None, axes=None, norm=None, out=None)[source]
    +

    Compute the N-dimensional inverse discrete Fourier Transform.

    +

    This function computes the inverse of the N-dimensional discrete +Fourier Transform over any number of axes in an M-dimensional array by +means of the Fast Fourier Transform (FFT). In other words, +ifftn(fftn(a)) == a to within numerical accuracy. For a description +of the definitions and conventions used, see dpnp.fft.

    +

    The input, analogously to dpnp.fft.ifft, should be ordered in the +same way as is returned by dpnp.fft.fftn, i.e. it should have the +term for zero frequency in all axes in the low-order corner, the positive +frequency terms in the first half of all axes, the term for the Nyquist +frequency in the middle of all axes and the negative frequency terms in +the second half of all axes, in order of decreasingly negative frequency.

    +

    For full documentation refer to numpy.fft.ifftn.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, can be complex.

    • +
    • s ({None, sequence of ints}, optional) -- Shape (length of each transformed axis) of the output +(s[0] refers to axis 0, s[1] to axis 1, etc.). +This corresponds to n for ifft(x, n). +Along each axis, if the given shape is smaller than that of the input, +the input is cropped. If it is larger, the input is padded with zeros. +If it is -1, the whole input is used (no padding/trimming). +if s is not given, the shape of the input along the axes specified +by axes is used. If s is not None, axes must not be None +either. Default: None.

    • +
    • axes ({None, sequence of ints}, optional) -- Axes over which to compute the inverse FFT. If not given, the last +len(s) axes are used, or all axes if s is also not specified. +Repeated indices in axes means that the transform over that axis is +performed multiple times. If s is specified, the corresponding axes +to be transformed must be explicitly specified too. A one-element +sequence means that a one-dimensional FFT is performed. An empty +sequence means that no FFT is performed. +Default: None.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate shape (consistent with the choice of s) and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axes +indicated by axes, or by a combination of s and a, +as explained in the parameters section above.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    Overall view of discrete Fourier transforms, with definitions and conventions used.

    +
    +
    dpnp.fft.fftn

    The N-dimensional FFT.

    +
    +
    dpnp.fft.ifft

    The one-dimensional inverse FFT.

    +
    +
    dpnp.fft.ifft2

    The two-dimensional inverse FFT.

    +
    +
    dpnp.fft.ifftshift

    Undoes dpnp.fft.fftshift, shifts zero-frequency terms to the center of the array.

    +
    +
    +
    +

    Notes

    +

    See dpnp.fft for details, definitions and conventions used.

    +

    Zero-padding, analogously with dpnp.fft.ifft, is performed by +appending zeros to the input along the specified dimension. Although this +is the common approach, it might lead to surprising results. If another +form of zero padding is desired, it must be performed before +dpnp.fft.ifftn is called.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.eye(4)
    +>>> np.fft.ifftn(np.fft.fftn(a, axes=(0,)), axes=(1,))
    +array([[1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j], # may vary
    +       [0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j],
    +       [0.+0.j,  0.+0.j,  1.+0.j,  0.+0.j],
    +       [0.+0.j,  0.+0.j,  0.+0.j,  1.+0.j]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.ifftshift.html b/pull/2070/reference/generated/dpnp.fft.ifftshift.html new file mode 100644 index 00000000000..89436745273 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.ifftshift.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.fft.ifftshift — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.ifftshift

    +
    +
    +dpnp.fft.ifftshift(x, axes=None)[source]
    +

    Inverse shift the zero-frequency component to the center of the spectrum.

    +

    Although identical for even-length x, the functions differ by one sample +for odd-length x.

    +

    For full documentation refer to numpy.fft.ifftshift.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axes ({None, int, list or tuple of ints}, optional) -- Axes over which to calculate. +Defaults to None, which shifts all axes.

    • +
    +
    +
    Returns:
    +

    out -- The shifted array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft.fftshift

    Shift zero-frequency component to the center of the spectrum.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3)
    +>>> freqs
    +array([[ 0.,  1.,  2.],
    +       [ 3.,  4., -4.],
    +       [-3., -2., -1.]])
    +>>> np.fft.ifftshift(np.fft.fftshift(freqs))
    +array([[ 0.,  1.,  2.],
    +       [ 3.,  4., -4.],
    +       [-3., -2., -1.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.ihfft.html b/pull/2070/reference/generated/dpnp.fft.ihfft.html new file mode 100644 index 00000000000..5ec22200a54 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.ihfft.html @@ -0,0 +1,228 @@ + + + + + + + + + + + dpnp.fft.ihfft — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.ihfft

    +
    +
    +dpnp.fft.ihfft(a, n=None, axis=-1, norm=None, out=None)[source]
    +

    Compute the inverse FFT of a signal that has Hermitian symmetry.

    +

    For full documentation refer to numpy.fft.ihfft.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • n ({None, int}, optional) -- Length of the inverse FFT, the number of points along +transformation axis in the input to use. If n is smaller than +the length of the input, the input is cropped. If it is larger, +the input is padded with zeros. If n is not given, the length of +the input along the axis specified by axis is used. +Default: None.

    • +
    • axis (int, optional) -- Axis over which to compute the FFT. If not given, the last axis is +used. Default: -1.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be +of the appropriate shape and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axis +indicated by axis, or the last one if axis is not specified. +The length of the transformed axis is n//2 + 1.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    For definition of the DFT and conventions used.

    +
    +
    dpnp.fft.hfft

    Compute the FFT of a signal that has Hermitian symmetry.

    +
    +
    dpnp.fft.irfft

    The inverse of dpnp.fft.rfft.

    +
    +
    +
    +

    Notes

    +

    dpnp.fft.hfft/dpnp.fft.ihfft are a pair analogous to +dpnp.fft.rfft/dpnp.fft.irfft, but for the opposite case: +here the signal has Hermitian symmetry in the time domain and is real in +the frequency domain. So here it's dpnp.fft.hfft for which you must +supply the length of the result if it is to be odd.

    +
      +
    • even: ihfft(hfft(a, 2*len(a) - 2)) == a, within round-off error,

    • +
    • odd: ihfft(hfft(a, 2*len(a) - 1)) == a, within round-off error.

    • +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> spectrum = np.array([ 15, -4, 0, -1, 0, -4])
    +>>> np.fft.ifft(spectrum)
    +array([1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j, 3.+0.j, 2.+0.j]) # may vary
    +>>> np.fft.ihfft(spectrum)
    +array([1.-0.j, 2.-0.j, 3.-0.j, 4.-0.j]) # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.irfft.html b/pull/2070/reference/generated/dpnp.fft.irfft.html new file mode 100644 index 00000000000..8eff5221734 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.irfft.html @@ -0,0 +1,254 @@ + + + + + + + + + + + dpnp.fft.irfft — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.irfft

    +
    +
    +dpnp.fft.irfft(a, n=None, axis=-1, norm=None, out=None)[source]
    +

    Computes the inverse of dpnp.fft.rfft.

    +

    This function computes the inverse of the one-dimensional n-point +discrete Fourier Transform of real input computed by dpnp.fft.rfft. +In other words, irfft(rfft(a), len(a)) == a to within numerical +accuracy. (See Notes below for why len(a) is necessary here.)

    +

    The input is expected to be in the form returned by dpnp.fft.rfft, +i.e. the real zero-frequency term followed by the complex positive +frequency terms in order of increasing frequency. Since the discrete +Fourier Transform of real input is Hermitian-symmetric, the negative +frequency terms are taken to be the complex conjugates of the corresponding +positive frequency terms.

    +

    For full documentation refer to numpy.fft.irfft.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • n ({None, int}, optional) -- Length of the transformed axis of the output. +For n output points, n//2+1 input points are necessary. If the +input is longer than this, it is cropped. If it is shorter than this, +it is padded with zeros. If n is not given, it is taken to be +2*(m-1) where m is the length of the input along the axis +specified by axis. Default: None.

    • +
    • axis (int, optional) -- Axis over which to compute the FFT. If not given, the last axis is +used. Default: -1.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- If provided, the result will be placed in this array. It should be +of the appropriate shape and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axis +indicated by axis, or the last one if axis is not specified. +The length of the transformed axis is n, or, if n is not given, +2*(m-1) where m is the length of the transformed axis of the +input. To get an odd number of output points, n must be specified.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    For definition of the DFT and conventions used.

    +
    +
    dpnp.fft.rfft

    The one-dimensional FFT of real input, of which dpnp.fft.irfft is inverse.

    +
    +
    dpnp.fft.fft

    The one-dimensional FFT of general (complex) input.

    +
    +
    dpnp.fft.irfft2

    The inverse of the two-dimensional FFT of real input.

    +
    +
    dpnp.fft.irfftn

    The inverse of the N-dimensional FFT of real input.

    +
    +
    +
    +

    Notes

    +

    Returns the real valued n-point inverse discrete Fourier transform +of a, where a contains the non-negative frequency terms of a +Hermitian-symmetric sequence. n is the length of the result, not the +input.

    +

    If you specify an n such that a must be zero-padded or truncated, the +extra/removed values will be added/removed at high frequencies. One can +thus re-sample a series to m points via Fourier interpolation by: +a_resamp = irfft(rfft(a), m).

    +

    The correct interpretation of the Hermitian input depends on the length of +the original data, as given by n. This is because each input shape could +correspond to either an odd or even length signal. By default, +dpnp.fft.irfft assumes an even output length which puts the last +entry at the Nyquist frequency; aliasing with its symmetric counterpart. +By Hermitian symmetry, the value is thus treated as purely real. To avoid +losing information, the correct length of the real input must be given.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, -1j, -1, 1j])
    +>>> np.fft.ifft(a)
    +array([0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j]) # may vary
    +>>> np.fft.irfft(a[:-1])
    +array([0.,  1.,  0.,  0.])
    +
    +
    +

    Notice how the last term in the input to the ordinary dpnp.fft.ifft +is the complex conjugate of the second term, and the output has zero +imaginary part everywhere. When calling dpnp.fft.irfft, the negative +frequencies are not specified, and the output array is purely real.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.irfft2.html b/pull/2070/reference/generated/dpnp.fft.irfft2.html new file mode 100644 index 00000000000..f3b78f6a517 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.irfft2.html @@ -0,0 +1,240 @@ + + + + + + + + + + + dpnp.fft.irfft2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.irfft2

    +
    +
    +dpnp.fft.irfft2(a, s=None, axes=(-2, -1), norm=None, out=None)[source]
    +

    Computes the inverse of dpnp.fft.rfft2.

    +

    For full documentation refer to numpy.fft.irfft2.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, can be complex.

    • +
    • s ({None, sequence of ints}, optional) -- Shape (length of each transformed axis) of the output +(s[0] refers to axis 0, s[1] to axis 1, etc.). s is also the +number of input points used along this axis, except for the last axis, +where s[-1]//2+1 points of the input are used. +Along each axis, if the given shape is smaller than that of the input, +the input is cropped. If it is larger, the input is padded with zeros. +If it is -1, the whole input is used (no padding/trimming). +If s is not given, the shape of the input along the axes +specified by axes is used. Except for the last axis which is taken to +be 2*(m-1) where m is the length of the input along that axis. +If s is not None, axes must not be None +Default: None.

    • +
    • axes ({None, sequence of ints}, optional) -- Axes over which to compute the inverse FFT. If not given, the last +len(s) axes are used, or all axes if s is also not specified. +Repeated indices in axes means that the transform over that axis is +performed multiple times. If s is specified, the corresponding axes +to be transformed must be explicitly specified too. A one-element +sequence means that a one-dimensional FFT is performed. An empty +sequence means that no FFT is performed. +Default: (-2, -1).

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate dtype and shape for the last transformation +(consistent with the choice of s). +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axes +indicated by axes, or the last two axes if axes is not given.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    Overall view of discrete Fourier transforms, with definitions and conventions used.

    +
    +
    dpnp.fft.rfft2

    The forward two-dimensional FFT of real input, of which dpnp.fft.irfft2 is the inverse.

    +
    +
    dpnp.fft.rfft

    The one-dimensional FFT for real input.

    +
    +
    dpnp.fft.irfft

    The inverse of the one-dimensional FFT of real input.

    +
    +
    dpnp.fft.irfftn

    The inverse of the N-dimensional FFT of real input.

    +
    +
    +
    +

    Notes

    +

    dpnp.fft.irfft2 is just dpnp.fft.irfftn with a different +default for axes. For more details see dpnp.fft.irfftn.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.mgrid[:5, :5][0]
    +>>> A = np.fft.rfft2(a)
    +>>> np.fft.irfft2(A, s=a.shape)
    +array([[0., 0., 0., 0., 0.],
    +       [1., 1., 1., 1., 1.],
    +       [2., 2., 2., 2., 2.],
    +       [3., 3., 3., 3., 3.],
    +       [4., 4., 4., 4., 4.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.irfftn.html b/pull/2070/reference/generated/dpnp.fft.irfftn.html new file mode 100644 index 00000000000..cb77aadd7ca --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.irfftn.html @@ -0,0 +1,267 @@ + + + + + + + + + + + dpnp.fft.irfftn — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.irfftn

    +
    +
    +dpnp.fft.irfftn(a, s=None, axes=None, norm=None, out=None)[source]
    +

    Computes the inverse of dpnp.fft.rfftn.

    +

    This function computes the inverse of the N-dimensional discrete Fourier +Transform for real input over any number of axes in an M-dimensional +array by means of the Fast Fourier Transform (FFT). In other words, +irfftn(rfftn(a), a.shape) == a to within numerical accuracy. (The +a.shape is necessary like len(a) is for dpnp.fft.irfft, +and for the same reason.)

    +

    The input should be ordered in the same way as is returned by +dpnp.fft.rfftn, i.e. as for dpnp.fft.irfft for the final +transformation axis, and as for dpnp.fft.irfftn along all the other +axes.

    +

    For full documentation refer to numpy.fft.irfftn.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, can be complex.

    • +
    • s ({None, sequence of ints}, optional) -- Shape (length of each transformed axis) of the output +(s[0] refers to axis 0, s[1] to axis 1, etc.). s is also the +number of input points used along this axis, except for the last axis, +where s[-1]//2+1 points of the input are used. +Along each axis, if the given shape is smaller than that of the input, +the input is cropped. If it is larger, the input is padded with zeros. +If it is -1, the whole input is used (no padding/trimming). +If s is not given, the shape of the input along the axes +specified by axes is used. Except for the last axis which is taken to +be 2*(m-1) where m is the length of the input along that axis. +If s is not None, axes must not be None +Default: None.

    • +
    • axes ({None, sequence of ints}, optional) -- Axes over which to compute the inverse FFT. If not given, the last +len(s) axes are used, or all axes if s is also not specified. +Repeated indices in axes means that the transform over that axis is +performed multiple times. If s is specified, the corresponding axes +to be transformed must be explicitly specified too. A one-element +sequence means that a one-dimensional FFT is performed. An empty +sequence means that no FFT is performed. +Default: None.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate dtype and shape for the last transformation +(consistent with the choice of s). +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axes +indicated by axes, or by a combination of s and a, +as explained in the parameters section above. +The length of each transformed axis is as given by the corresponding +element of s, or the length of the input in every axis except for the +last one if s is not given. In the final transformed axis the length +of the output when s is not given is 2*(m-1) where m is the +length of the final transformed axis of the input. To get an odd +number of output points in the final axis, s must be specified.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    Overall view of discrete Fourier transforms, with definitions and conventions used.

    +
    +
    dpnp.fft.rfftn

    The n-dimensional FFT of real input.

    +
    +
    dpnp.fft.fft

    The one-dimensional FFT, with definitions and conventions used.

    +
    +
    dpnp.fft.irfft

    The inverse of the one-dimensional FFT of real input.

    +
    +
    dpnp.fft.irfft2

    The inverse of the two-dimensional FFT of real input.

    +
    +
    +
    +

    Notes

    +

    See dpnp.fft for details, definitions and conventions used.

    +

    See dpnp.fft.rfft for definitions and conventions used for real +input.

    +

    The correct interpretation of the Hermitian input depends on the shape of +the original data, as given by s. This is because each input shape could +correspond to either an odd or even length signal. By default, +dpnp.fft.irfftn assumes an even output length which puts the last +entry at the Nyquist frequency; aliasing with its symmetric counterpart. +When performing the final complex to real transform, the last value is thus +treated as purely real. To avoid losing information, the correct shape of +the real input must be given.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.zeros((3, 2, 2))
    +>>> a[0, 0, 0] = 3 * 2 * 2
    +>>> np.fft.irfftn(a)
    +array([[[1.,  1.],
    +        [1.,  1.]],
    +       [[1.,  1.],
    +        [1.,  1.]],
    +       [[1.,  1.],
    +        [1.,  1.]]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.rfft.html b/pull/2070/reference/generated/dpnp.fft.rfft.html new file mode 100644 index 00000000000..1665c5be674 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.rfft.html @@ -0,0 +1,244 @@ + + + + + + + + + + + dpnp.fft.rfft — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.rfft

    +
    +
    +dpnp.fft.rfft(a, n=None, axis=-1, norm=None, out=None)[source]
    +

    Compute the one-dimensional discrete Fourier Transform for real input.

    +

    This function computes the one-dimensional n-point discrete Fourier +Transform (DFT) of a real-valued array by means of an efficient algorithm +called the Fast Fourier Transform (FFT).

    +

    For full documentation refer to numpy.fft.rfft.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, taken to be real.

    • +
    • n ({None, int}, optional) -- Number of points along transformation axis in the input to use. +If n is smaller than the length of the input, the input is cropped. +If it is larger, the input is padded with zeros. If n is not given, +the length of the input along the axis specified by axis is used. +Default: None.

    • +
    • axis (int, optional) -- Axis over which to compute the FFT. If not given, the last axis is +used. Default: -1.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be +of the appropriate shape and dtype. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axis +indicated by axis, or the last one if axis is not specified. +If n is even, the length of the transformed axis is (n/2)+1. +If n is odd, the length is (n+1)/2.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    For definition of the DFT and conventions used.

    +
    +
    dpnp.fft.irfft

    The inverse of dpnp.fft.rfft.

    +
    +
    dpnp.fft.fft

    The one-dimensional FFT of general (complex) input.

    +
    +
    dpnp.fft.fftn

    The N-dimensional FFT.

    +
    +
    dpnp.fft.rfftn

    The N-dimensional FFT of real input.

    +
    +
    +
    +

    Notes

    +

    When the DFT is computed for purely real input, the output is +Hermitian-symmetric, i.e. the negative frequency terms are just the complex +conjugates of the corresponding positive-frequency terms, and the +negative-frequency terms are therefore redundant. This function does not +compute the negative frequency terms, and the length of the transformed +axis of the output is therefore n//2 + 1.

    +

    When A = dpnp.fft.rfft(a) and fs is the sampling frequency, A[0] +contains the zero-frequency term 0*fs, which is real due to Hermitian +symmetry.

    +

    If n is even, A[-1] contains the term representing both positive +and negative Nyquist frequency (+fs/2 and -fs/2), and must also be purely +real. If n is odd, there is no term at fs/2; A[-1] contains +the largest positive frequency (fs/2*(n-1)/n), and is complex in the +general case.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([0, 1, 0, 0])
    +>>> np.fft.fft(a)
    +array([ 1.+0.j,  0.-1.j, -1.+0.j,  0.+1.j]) # may vary
    +>>> np.fft.rfft(a)
    +array([ 1.+0.j,  0.-1.j, -1.+0.j]) # may vary
    +
    +
    +

    Notice how the final element of the dpnp.fft.fft output is the +complex conjugate of the second element, for real input. +For dpnp.fft.rfft, this symmetry is exploited to compute only the +non-negative frequency terms.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.rfft2.html b/pull/2070/reference/generated/dpnp.fft.rfft2.html new file mode 100644 index 00000000000..a206c5e4765 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.rfft2.html @@ -0,0 +1,234 @@ + + + + + + + + + + + dpnp.fft.rfft2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.rfft2

    +
    +
    +dpnp.fft.rfft2(a, s=None, axes=(-2, -1), norm=None, out=None)[source]
    +

    Compute the 2-dimensional FFT of a real array.

    +

    For full documentation refer to numpy.fft.rfft2.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, taken to be real.

    • +
    • s ({None, sequence of ints}, optional) -- Shape (length of each transformed axis) to use from the input. +(s[0] refers to axis 0, s[1] to axis 1, etc.). +The final element of s corresponds to n for rfft(x, n), while +for the remaining axes, it corresponds to n for fft(x, n). +Along each axis, if the given shape is smaller than that of the input, +the input is cropped. If it is larger, the input is padded with zeros. +If it is -1, the whole input is used (no padding/trimming). +If s is not given, the shape of the input along the axes specified +by axes is used. If s is not None, axes must not be None +either. Default: None.

    • +
    • axes ({None, sequence of ints}, optional) -- Axes over which to compute the FFT. If not given, the last two axes are +used. A repeated index in axes means the transform over that axis is +performed multiple times. If s is specified, the corresponding axes +to be transformed must be explicitly specified too. A one-element +sequence means that a one-dimensional FFT is performed. An empty +sequence means that no FFT is performed. +Default: (-2, -1).

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate dtype and shape for the last transformation +(consistent with the choice of s). +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axes +indicated by axes, or the last two axes if axes is not given.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    Overall view of discrete Fourier transforms, with definitions and conventions used.

    +
    +
    dpnp.fft.rfft

    The one-dimensional FFT of real input.

    +
    +
    dpnp.fft.rfftn

    The n-dimensional FFT of real input.

    +
    +
    dpnp.fft.irfft2

    The inverse two-dimensional real FFT.

    +
    +
    +
    +

    Notes

    +

    This is just dpnp.fft.rfftn with different default behavior. +For more details see dpnp.fft.rfftn.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.mgrid[:5, :5][0]
    +>>> np.fft.rfft2(a)
    +array([[ 50.  +0.j        ,   0.  +0.j        ,   0.  +0.j        ],
    +       [-12.5+17.20477401j,   0.  +0.j        ,   0.  +0.j        ],
    +       [-12.5 +4.0614962j ,   0.  +0.j        ,   0.  +0.j        ],
    +       [-12.5 -4.0614962j ,   0.  +0.j        ,   0.  +0.j        ],
    +       [-12.5-17.20477401j,   0.  +0.j        ,   0.  +0.j        ]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.rfftfreq.html b/pull/2070/reference/generated/dpnp.fft.rfftfreq.html new file mode 100644 index 00000000000..8503224decd --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.rfftfreq.html @@ -0,0 +1,245 @@ + + + + + + + + + + + dpnp.fft.rfftfreq — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.rfftfreq

    +
    +
    +dpnp.fft.rfftfreq(n, d=1.0, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return the Discrete Fourier Transform sample frequencies +(for usage with dpnp.fft.rfft, dpnp.fft.irfft).

    +

    The returned float array f contains the frequency bin centers in cycles +per unit of the sample spacing (with zero at the start). For instance, if +the sample spacing is in seconds, then the frequency unit is cycles/second.

    +

    Given a window length n and a sample spacing d:

    +
    f = [0, 1, ...,     n/2-1,     n/2] / (d*n)   if n is even
    +f = [0, 1, ..., (n-1)/2-1, (n-1)/2] / (d*n)   if n is odd
    +
    +
    +

    Unlike dpnp.fft.fftfreq the Nyquist frequency component is +considered to be positive.

    +

    For full documentation refer to numpy.fft.rfftfreq.

    +
    +
    Parameters:
    +
      +
    • n (int) -- Window length.

    • +
    • d (scalar, optional) -- Sample spacing (inverse of the sampling rate). +Default: 1.0.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. +Default: None.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    f -- Array of length n//2 + 1 containing the sample frequencies.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft.fftfreq

    Return the Discrete Fourier Transform sample frequencies (for usage with dpnp.fft.fft and dpnp.fft.ifft).

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5, -3, 4])
    +>>> fourier = np.fft.fft(signal)
    +>>> n = signal.size
    +>>> sample_rate = 100
    +>>> freq = np.fft.fftfreq(n, d=1./sample_rate)
    +>>> freq
    +array([  0.,  10.,  20.,  30.,  40., -50., -40., -30., -20., -10.])
    +>>> freq = np.fft.rfftfreq(n, d=1./sample_rate)
    +>>> freq
    +array([ 0., 10., 20., 30., 40., 50.])
    +
    +
    +

    Creating the output array on a different device or with a +specified usm_type:

    +
    >>> x = np.fft.rfftfreq(n, d=1./sample_rate) # default case
    +>>> x.shape, x.device, x.usm_type
    +((6,), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.fft.rfftfreq(n, d=1./sample_rate, device="cpu")
    +>>> y.shape, y.device, y.usm_type
    +((6,), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.fft.rfftfreq(n, d=1./sample_rate, usm_type="host")
    +>>> z.shape, z.device, z.usm_type
    +((6,), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fft.rfftn.html b/pull/2070/reference/generated/dpnp.fft.rfftn.html new file mode 100644 index 00000000000..5f40a13bf5c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fft.rfftn.html @@ -0,0 +1,258 @@ + + + + + + + + + + + dpnp.fft.rfftn — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fft.rfftn

    +
    +
    +dpnp.fft.rfftn(a, s=None, axes=None, norm=None, out=None)[source]
    +

    Compute the N-dimensional discrete Fourier Transform for real input.

    +

    This function computes the N-dimensional discrete Fourier Transform over +any number of axes in an M-dimensional real array by means of the Fast +Fourier Transform (FFT). By default, all axes are transformed, with the +real transform performed over the last axis, while the remaining +transforms are complex.

    +

    For full documentation refer to numpy.fft.rfftn.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, taken to be real.

    • +
    • s ({None, sequence of ints}, optional) -- Shape (length of each transformed axis) to use from the input. +(s[0] refers to axis 0, s[1] to axis 1, etc.). +The final element of s corresponds to n for rfft(x, n), while +for the remaining axes, it corresponds to n for fft(x, n). +Along each axis, if the given shape is smaller than that of the input, +the input is cropped. If it is larger, the input is padded with zeros. +If it is -1, the whole input is used (no padding/trimming). +If s is not given, the shape of the input along the axes specified +by axes is used. If s is not None, axes must not be None +either. Default: None.

    • +
    • axes ({None, sequence of ints}, optional) -- Axes over which to compute the FFT. If not given, the last len(s) +axes are used, or all axes if s is also not specified. +Repeated indices in axes means that the transform over that axis is +performed multiple times. If s is specified, the corresponding axes +to be transformed must be explicitly specified too. A one-element +sequence means that a one-dimensional FFT is performed. An empty +sequence means that no FFT is performed. +Default: None.

    • +
    • norm ({None, "backward", "ortho", "forward"}, optional) -- Normalization mode (see dpnp.fft). +Indicates which direction of the forward/backward pair of transforms +is scaled and with what normalization factor. None is an alias of +the default option "backward". +Default: "backward".

    • +
    • out ({None, dpnp.ndarray or usm_ndarray of complex dtype}, optional) -- If provided, the result will be placed in this array. It should be of +the appropriate dtype and shape for the last transformation +(consistent with the choice of s). +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The truncated or zero-padded input, transformed along the axes +indicated by axes, or by a combination of s and a, +as explained in the parameters section above. +The length of the last axis transformed will be s[-1]//2+1, +while the remaining transformed axes will have lengths according to +s, or unchanged from the input.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fft

    Overall view of discrete Fourier transforms, with definitions and conventions used.

    +
    +
    dpnp.fft.irfftn

    The inverse of the N-dimensional FFT of real input.

    +
    +
    dpnp.fft.fft

    The one-dimensional FFT of general (complex) input.

    +
    +
    dpnp.fft.rfft

    The one-dimensional FFT of real input.

    +
    +
    dpnp.fft.fftn

    The N-dimensional FFT.

    +
    +
    dpnp.fft.fftn

    The two-dimensional FFT.

    +
    +
    +
    +

    Notes

    +

    The transform for real input is performed over the last transformation +axis, as by dpnp.fft.rfft, then the transform over the remaining +axes is performed as by dpnp.fft.fftn. The order of the output +is as for dpnp.fft.rfft for the final transformation axis, and +as for dpnp.fft.fftn for the remaining transformation axes.

    +

    See dpnp.fft for details, definitions and conventions used.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.ones((2, 2, 2))
    +>>> np.fft.rfftn(a)
    +array([[[8.+0.j,  0.+0.j], # may vary
    +        [0.+0.j,  0.+0.j]],
    +       [[0.+0.j,  0.+0.j],
    +        [0.+0.j,  0.+0.j]]])
    +
    +
    +
    >>> np.fft.rfftn(a, axes=(2, 0))
    +array([[[4.+0.j,  0.+0.j], # may vary
    +        [4.+0.j,  0.+0.j]],
    +       [[0.+0.j,  0.+0.j],
    +        [0.+0.j,  0.+0.j]]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fill_diagonal.html b/pull/2070/reference/generated/dpnp.fill_diagonal.html new file mode 100644 index 00000000000..161105ce6bd --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fill_diagonal.html @@ -0,0 +1,270 @@ + + + + + + + + + + + dpnp.fill_diagonal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fill_diagonal

    +
    +
    +dpnp.fill_diagonal(a, val, wrap=False)[source]
    +

    Fill the main diagonal of the given array of any dimensionality.

    +

    For an array a with a.ndim >= 2, the diagonal is the list of values +a[i, ..., i] with indices i all identical. This function modifies +the input array in-place without returning a value.

    +

    For full documentation refer to numpy.fill_diagonal.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Array whose diagonal is to be filled in-place. It must be at least 2-D.

    • +
    • val ({dpnp.ndarray, usm_ndarray, scalar}) -- Value(s) to write on the diagonal. If val is scalar, the value is +written along the diagonal. If array, the flattened val is +written along the diagonal, repeating if necessary to fill all +diagonal entries.

    • +
    • wrap (bool) -- It enables the diagonal "wrapped" after N columns. This affects only +tall matrices. Default: False.

    • +
    +
    +
    +
    +

    See also

    +
    +
    dpnp.diag_indices

    Return the indices to access the main diagonal of an array.

    +
    +
    dpnp.diag_indices_from

    Return the indices to access the main diagonal of an n-dimensional array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.zeros((3, 3), dtype=int)
    +>>> np.fill_diagonal(a, 5)
    +>>> a
    +array([[5, 0, 0],
    +       [0, 5, 0],
    +       [0, 0, 5]])
    +
    +
    +

    The same function can operate on a 4-D array:

    +
    >>> a = np.zeros((3, 3, 3, 3), dtype=int)
    +>>> np.fill_diagonal(a, 4)
    +
    +
    +

    We only show a few blocks for clarity:

    +
    >>> a[0, 0]
    +array([[4, 0, 0],
    +       [0, 0, 0],
    +       [0, 0, 0]])
    +>>> a[1, 1]
    +array([[0, 0, 0],
    +       [0, 4, 0],
    +       [0, 0, 0]])
    +>>> a[2, 2]
    +array([[0, 0, 0],
    +       [0, 0, 0],
    +       [0, 0, 4]])
    +
    +
    +

    The wrap option affects only tall matrices:

    +
    >>> # tall matrices no wrap
    +>>> a = np.zeros((5, 3), dtype=int)
    +>>> np.fill_diagonal(a, 4)
    +>>> a
    +array([[4, 0, 0],
    +       [0, 4, 0],
    +       [0, 0, 4],
    +       [0, 0, 0],
    +       [0, 0, 0]])
    +
    +
    +
    >>> # tall matrices wrap
    +>>> a = np.zeros((5, 3), dtype=int)
    +>>> np.fill_diagonal(a, 4, wrap=True)
    +>>> a
    +array([[4, 0, 0],
    +       [0, 4, 0],
    +       [0, 0, 4],
    +       [0, 0, 0],
    +       [4, 0, 0]])
    +
    +
    +
    >>> # wide matrices
    +>>> a = np.zeros((3, 5), dtype=int)
    +>>> np.fill_diagonal(a, 4, wrap=True)
    +>>> a
    +array([[4, 0, 0, 0, 0],
    +       [0, 4, 0, 0, 0],
    +       [0, 0, 4, 0, 0]])
    +
    +
    +

    The anti-diagonal can be filled by reversing the order of elements +using either dpnp.flipud or dpnp.fliplr.

    +
    >>> a = np.zeros((3, 3), dtype=int)
    +>>> val = np.array([1, 2, 3])
    +>>> np.fill_diagonal(np.fliplr(a), val)  # Horizontal flip
    +>>> a
    +array([[0, 0, 1],
    +       [0, 2, 0],
    +       [3, 0, 0]])
    +>>> np.fill_diagonal(np.flipud(a), val)  # Vertical flip
    +>>> a
    +array([[0, 0, 3],
    +       [0, 2, 0],
    +       [1, 0, 0]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.finfo.html b/pull/2070/reference/generated/dpnp.finfo.html new file mode 100644 index 00000000000..51df7e9ada4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.finfo.html @@ -0,0 +1,240 @@ + + + + + + + + + + + dpnp.finfo — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.finfo

    +
    +
    +dpnp.finfo(dtype)[source]
    +

    Returns machine limits for floating-point data types.

    +

    For full documentation refer to numpy.finfo.

    +
    +
    Parameters:
    +

    dtype (dtype, dpnp_array) -- Floating-point dtype or an array with floating point data type. +If complex, the information is about its component data type.

    +
    +
    Returns:
    +

    out -- An object have the following attributes

    +
      +
    • +
      bits: int

      number of bits occupied by dtype.

      +
      +
      +
    • +
    • +
      dtype: dtype

      real-valued floating-point data type.

      +
      +
      +
    • +
    • +
      eps: float

      difference between 1.0 and the next smallest representable +real-valued floating-point number larger than 1.0 according +to the IEEE-754 standard.

      +
      +
      +
    • +
    • +
      epsneg: float

      difference between 1.0 and the next smallest representable +real-valued floating-point number smaller than 1.0 according to +the IEEE-754 standard.

      +
      +
      +
    • +
    • +
      max: float

      largest representable real-valued number.

      +
      +
      +
    • +
    • +
      min: float

      smallest representable real-valued number.

      +
      +
      +
    • +
    • +
      precision: float

      the approximate number of decimal digits to which this kind of +floating point type is precise.

      +
      +
      +
    • +
    • +
      resolution: float

      the approximate decimal resolution of this type.

      +
      +
      +
    • +
    • +
      tiny: float

      an alias for smallest_normal

      +
      +
      +
    • +
    • +
      smallest_normal: float

      smallest positive real-valued floating-point number with +full precision.

      +
      +
      +
    • +
    +

    +
    +
    Return type:
    +

    finfo_object

    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fix.html b/pull/2070/reference/generated/dpnp.fix.html new file mode 100644 index 00000000000..bced1155ccf --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fix.html @@ -0,0 +1,226 @@ + + + + + + + + + + + dpnp.fix — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.fix

    +
    +
    +dpnp.fix(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Round to nearest integer towards zero.

    +

    Round an array of floats element-wise to nearest integer towards zero. +The rounded values are returned as floats.

    +

    For full documentation refer to numpy.fix.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- An array of floats to be rounded.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array with the rounded values and with the same dimensions as the input. +The returned array will have the default floating point data type for the +device where a is allocated. +If out is None then a float array is returned with the rounded values. +Otherwise the result is stored there and the return value out is +a reference to that array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.round

    Round to given number of decimals.

    +
    +
    dpnp.rint

    Round elements of the array to the nearest integer.

    +
    +
    dpnp.trunc

    Return the truncated value of the input, element-wise.

    +
    +
    dpnp.floor

    Return the floor of the input, element-wise.

    +
    +
    dpnp.ceil

    Return the ceiling of the input, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.fix(np.array(3.14))
    +array(3.)
    +>>> np.fix(np.array(3))
    +array(3.)
    +>>> a = np.array([2.1, 2.9, -2.1, -2.9])
    +>>> np.fix(a)
    +array([ 2.,  2., -2., -2.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.flatiter.html b/pull/2070/reference/generated/dpnp.flatiter.html new file mode 100644 index 00000000000..3f0bfc98c4e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.flatiter.html @@ -0,0 +1,223 @@ + + + + + + + + + + + dpnp.flatiter — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.flatiter

    +
    +
    +class dpnp.flatiter(X)[source]
    +

    Flat iterator object to iterate over arrays.

    +

    Methods

    +
    +
    +__getitem__(key)[source]
    +
    + +
    +
    +__setitem__(key, val)[source]
    +
    + +
    +
    +__next__()[source]
    +
    + +
    +
    +__iter__()[source]
    +
    + +
    +
    +__eq__(value, /)
    +

    Return self==value.

    +
    + +
    +
    +__ne__(value, /)
    +

    Return self!=value.

    +
    + +
    +
    +__lt__(value, /)
    +

    Return self<value.

    +
    + +
    +
    +__le__(value, /)
    +

    Return self<=value.

    +
    + +
    +
    +__gt__(value, /)
    +

    Return self>value.

    +
    + +
    +
    +__ge__(value, /)
    +

    Return self>=value.

    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.flatnonzero.html b/pull/2070/reference/generated/dpnp.flatnonzero.html new file mode 100644 index 00000000000..bf1b6f47f03 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.flatnonzero.html @@ -0,0 +1,203 @@ + + + + + + + + + + + dpnp.flatnonzero — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.flatnonzero

    +
    +
    +dpnp.flatnonzero(a)[source]
    +

    Return indices that are non-zero in the flattened version of a.

    +

    This is equivalent to dpnp.nonzero(dpnp.ravel(a))[0].

    +

    For full documentation refer to numpy.flatnonzero.

    +
    +
    Parameters:
    +

    a ({dpnp.ndarray, usm_ndarray}) -- Input data.

    +
    +
    Returns:
    +

    out -- Output array, containing the indices of the elements of a.ravel() +that are non-zero.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.nonzero

    Return the indices of the non-zero elements of the input array.

    +
    +
    dpnp.ravel

    Return a 1-D array containing the elements of the input array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(-2, 3)
    +>>> x
    +array([-2, -1,  0,  1,  2])
    +>>> np.flatnonzero(x)
    +array([0, 1, 3, 4])
    +
    +
    +

    Use the indices of the non-zero elements as an index array to extract +these elements:

    +
    >>> x.ravel()[np.flatnonzero(x)]
    +array([-2, -1,  1,  2])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.flip.html b/pull/2070/reference/generated/dpnp.flip.html new file mode 100644 index 00000000000..bd139f983d9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.flip.html @@ -0,0 +1,234 @@ + + + + + + + + + + + dpnp.flip — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.flip

    +
    +
    +dpnp.flip(m, axis=None)[source]
    +

    Reverse the order of elements in an array along the given axis.

    +

    The shape of the array is preserved, but the elements are reordered.

    +

    For full documentation refer to numpy.flip.

    +
    +
    Parameters:
    +
      +
    • m ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis (None or int or tuple of ints, optional) -- Axis or axes along which to flip over. The default, +axis=None, will flip over all of the axes of the input array. +If axis is negative it counts from the last to the first axis. +If axis is a tuple of integers, flipping is performed on all of +the axes specified in the tuple.

    • +
    +
    +
    Returns:
    +

    out -- A view of m with the entries of axis reversed.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.flipud

    Flip an array vertically (axis=0).

    +
    +
    dpnp.fliplr

    Flip an array horizontally (axis=1).

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> A = np.arange(8).reshape((2, 2, 2))
    +>>> A
    +array([[[0, 1],
    +        [2, 3]],
    +       [[4, 5],
    +        [6, 7]]])
    +>>> np.flip(A, 0)
    +array([[[4, 5],
    +        [6, 7]],
    +       [[0, 1],
    +        [2, 3]]])
    +>>> np.flip(A, 1)
    +array([[[2, 3],
    +        [0, 1]],
    +       [[6, 7],
    +        [4, 5]]])
    +>>> np.flip(A)
    +array([[[7, 6],
    +        [5, 4]],
    +       [[3, 2],
    +        [1, 0]]])
    +>>> np.flip(A, (0, 2))
    +array([[[5, 4],
    +        [7, 6]],
    +       [[1, 0],
    +        [3, 2]]])
    +>>> A = np.random.randn(3, 4, 5)
    +>>> np.all(np.flip(A, 2) == A[:, :, ::-1, ...])
    +array(True)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fliplr.html b/pull/2070/reference/generated/dpnp.fliplr.html new file mode 100644 index 00000000000..7c61d88fd37 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fliplr.html @@ -0,0 +1,216 @@ + + + + + + + + + + + dpnp.fliplr — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.fliplr

    +
    +
    +dpnp.fliplr(m)[source]
    +

    Reverse the order of elements along axis 1 (left/right).

    +

    For a 2-D array, this flips the entries in each row in the left/right +direction. Columns are preserved, but appear in a different order than +before.

    +

    For full documentation refer to numpy.fliplr.

    +
    +
    Parameters:
    +

    m ({dpnp.ndarray, usm_ndarray}) -- Input array, must be at least 2-D.

    +
    +
    Returns:
    +

    out -- A view of m with the columns reversed.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.flipud

    Flip an array vertically (axis=0).

    +
    +
    dpnp.flip

    Flip array in one or more dimensions.

    +
    +
    dpnp.rot90

    Rotate array counterclockwise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> A = np.diag(np.array([1., 2., 3.]))
    +>>> A
    +array([[1.,  0.,  0.],
    +       [0.,  2.,  0.],
    +       [0.,  0.,  3.]])
    +>>> np.fliplr(A)
    +array([[0.,  0.,  1.],
    +       [0.,  2.,  0.],
    +       [3.,  0.,  0.]])
    +
    +
    +
    >>> A = np.random.randn(2, 3, 5)
    +>>> np.all(np.fliplr(A) == A[:, ::-1, ...])
    +array(True)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.flipud.html b/pull/2070/reference/generated/dpnp.flipud.html new file mode 100644 index 00000000000..9353db1f7f2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.flipud.html @@ -0,0 +1,219 @@ + + + + + + + + + + + dpnp.flipud — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.flipud

    +
    +
    +dpnp.flipud(m)[source]
    +

    Reverse the order of elements along axis 0 (up/down).

    +

    For a 2-D array, this flips the entries in each column in the up/down +direction. Rows are preserved, but appear in a different order than before.

    +

    For full documentation refer to numpy.flipud.

    +
    +
    Parameters:
    +

    m ({dpnp.ndarray, usm_ndarray}) -- Input array.

    +
    +
    Returns:
    +

    out -- A view of m with the rows reversed.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.fliplr

    Flip array in the left/right direction.

    +
    +
    dpnp.flip

    Flip array in one or more dimensions.

    +
    +
    dpnp.rot90

    Rotate array counterclockwise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> A = np.diag(np.array([1., 2., 3.]))
    +>>> A
    +array([[1.,  0.,  0.],
    +       [0.,  2.,  0.],
    +       [0.,  0.,  3.]])
    +>>> np.flipud(A)
    +array([[0.,  0.,  3.],
    +       [0.,  2.,  0.],
    +       [1.,  0.,  0.]])
    +
    +
    +
    >>> A = np.random.randn(2, 3, 5)
    +>>> np.all(np.flipud(A) == A[::-1, ...])
    +array(True)
    +
    +
    +
    >>> np.flipud(np.array([1, 2]))
    +array([2, 1])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.float_power.html b/pull/2070/reference/generated/dpnp.float_power.html new file mode 100644 index 00000000000..a2fc32b8345 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.float_power.html @@ -0,0 +1,237 @@ + + + + + + + + + + + dpnp.float_power — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.float_power

    +
    +
    +dpnp.float_power(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates x1_i raised to x2_i for each element x1_i of the input array +x1 with the respective element x2_i of the input array x2.

    +

    This differs from the power function in that boolean, integers, and float16 are +promoted to floats with a minimum precision of float32 so that the result is +always inexact. The intent is that the function will return a usable result for +negative powers and seldom overflow for positive powers.

    +

    Negative values raised to a non-integral value will return NaN. To get +complex results, cast the input to complex, or specify the dtype to be one +of complex dtype.

    +

    For full documentation refer to numpy.float_power.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have floating-point data types. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to floating-point data types. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. Array must have the correct shape and +the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the bases in x1 raised to the exponents in x2 +element-wise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.power

    Power function that preserves type.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +
    +
    +

    Cube each element in an array:

    +
    >>> x1 = np.arange(6)
    +>>> x1
    +array([0, 1, 2, 3, 4, 5])
    +>>> np.float_power(x1, 3)
    +array([  0.,   1.,   8.,  27.,  64., 125.])
    +
    +
    +

    Raise the bases to different exponents:

    +
    >>> x2 = np.array([1.0, 2.0, 3.0, 3.0, 2.0, 1.0])
    +>>> np.float_power(x1, x2)
    +array([ 0.,  1.,  8., 27., 16.,  5.])
    +
    +
    +

    The effect of broadcasting:

    +
    >>> x2 = np.array([[1, 2, 3, 3, 2, 1], [1, 2, 3, 3, 2, 1]])
    +>>> x2
    +array([[1, 2, 3, 3, 2, 1],
    +       [1, 2, 3, 3, 2, 1]])
    +>>> np.float_power(x1, x2)
    +array([[ 0.,  1.,  8., 27., 16.,  5.],
    +       [ 0.,  1.,  8., 27., 16.,  5.]])
    +
    +
    +

    Negative values raised to a non-integral value will result in NaN:

    +
    >>> x3 = np.array([-1, -4])
    +>>> np.float_power(x3, 1.5)
    +array([nan, nan])
    +
    +
    +

    To get complex results, give the argument one of complex dtype, i.e. +dtype=np.complex64:

    +
    >>> np.float_power(x3, 1.5, dtype=np.complex64)
    +array([1.1924881e-08-1.j, 9.5399045e-08-8.j], dtype=complex64)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.floor.html b/pull/2070/reference/generated/dpnp.floor.html new file mode 100644 index 00000000000..15596e05348 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.floor.html @@ -0,0 +1,202 @@ + + + + + + + + + + + dpnp.floor — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.floor

    +
    +
    +dpnp.floor(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Returns the floor for each element x_i for input array x.

    +

    The floor of x_i is the largest integer n, such that n <= x_i.

    +

    For full documentation refer to numpy.floor.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real-valued data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise floor.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.ceil

    Compute the ceiling of the input, element-wise.

    +
    +
    dpnp.trunc

    Return the truncated value of the input, element-wise.

    +
    +
    dpnp.rint

    Round elements of the array to the nearest integer.

    +
    +
    dpnp.fix

    Round to nearest integer towards zero, element-wise.

    +
    +
    +
    +

    Notes

    +

    Some spreadsheet programs calculate the "floor-towards-zero", in other words floor(-2.5) == -2. +DPNP instead uses the definition of floor where floor(-2.5) == -3.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
    +>>> np.floor(a)
    +array([-2.0, -2.0, -1.0, 0.0, 1.0, 1.0, 2.0])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.floor_divide.html b/pull/2070/reference/generated/dpnp.floor_divide.html new file mode 100644 index 00000000000..12f71c67612 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.floor_divide.html @@ -0,0 +1,215 @@ + + + + + + + + + + + dpnp.floor_divide — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.floor_divide

    +
    +
    +dpnp.floor_divide(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the ratio for each element x1_i of the input array x1 with +the respective element x2_i of the input array x2 to the greatest +integer-value number that is not greater than the division result.

    +

    For full documentation refer to numpy.floor_divide.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise floor of division. +The data type of the returned array is determined by the Type +Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.remainder

    Remainder complementary to floor_divide.

    +
    +
    dpnp.divide

    Standard division.

    +
    +
    dpnp.floor

    Round a number to the nearest integer toward minus infinity.

    +
    +
    dpnp.ceil

    Round a number to the nearest integer toward infinity.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.floor_divide(np.array([1, -1, -2, -9]), -2)
    +array([-1,  0,  1,  4])
    +
    +
    +
    >>> np.floor_divide(np.array([1., 2., 3., 4.]), 2.5)
    +array([ 0.,  0.,  1.,  1.])
    +
    +
    +

    The // operator can be used as a shorthand for floor_divide on +dpnp.ndarray.

    +
    >>> x1 = np.array([1., 2., 3., 4.])
    +>>> x1 // 2.5
    +array([0., 0., 1., 1.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fmax.html b/pull/2070/reference/generated/dpnp.fmax.html new file mode 100644 index 00000000000..9eb1b35aad3 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fmax.html @@ -0,0 +1,231 @@ + + + + + + + + + + + dpnp.fmax — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.fmax

    +
    +
    +dpnp.fmax(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Compares two input arrays x1 and x2 and returns a new array containing the +element-wise maxima.

    +

    If one of the elements being compared is a NaN, then the non-NaN element is +returned. If both elements are NaNs then the first is returned. The latter +distinction is important for complex NaNs, which are defined as at least one of +the real or imaginary parts being a NaN. The net effect is that NaNs are +ignored when possible.

    +

    For full documentation refer to numpy.fmax.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise maxima. The data type of +the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.fmin

    Element-wise minimum of two arrays, ignores NaNs.

    +
    +
    dpnp.maximum

    Element-wise maximum of two arrays, propagates NaNs.

    +
    +
    dpnp.max

    The maximum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmax

    The maximum value of an array along a given axis, ignores NaNs.

    +
    +
    dpnp.minimum

    Element-wise minimum of two arrays, propagates NaNs.

    +
    +
    dpnp.min

    The minimum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmin

    The minimum value of an array along a given axis, ignores NaNs.

    +
    +
    +
    +

    Notes

    +

    fmax(x1, x2) is equivalent to dpnp.where(x1 >= x2, x1, x2) when neither +x1 nor x2 are NaNs, but it is faster and does proper broadcasting.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([2, 3, 4])
    +>>> x2 = np.array([1, 5, 2])
    +>>> np.fmax(x1, x2)
    +array([2, 5, 4])
    +
    +
    +
    >>> x1 = np.eye(2)
    +>>> x2 = np.array([0.5, 2])
    +>>> np.fmax(x1, x2)
    +array([[1. , 2. ],
    +       [0.5, 2. ]])
    +
    +
    +
    >>> x1 = np.array([np.nan, 0, np.nan])
    +>>> x2 = np.array([0, np.nan, np.nan])
    +>>> np.fmax(x1, x2)
    +array([ 0.,  0., nan])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fmin.html b/pull/2070/reference/generated/dpnp.fmin.html new file mode 100644 index 00000000000..3792aa7c1fe --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fmin.html @@ -0,0 +1,231 @@ + + + + + + + + + + + dpnp.fmin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.fmin

    +
    +
    +dpnp.fmin(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Compares two input arrays x1 and x2 and returns a new array containing the +element-wise minima.

    +

    If one of the elements being compared is a NaN, then the non-NaN element is +returned. If both elements are NaNs then the first is returned. The latter +distinction is important for complex NaNs, which are defined as at least one of +the real or imaginary parts being a NaN. The net effect is that NaNs are +ignored when possible.

    +

    For full documentation refer to numpy.fmin.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise minima. The data type of +the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.fmax

    Element-wise maximum of two arrays, ignores NaNs.

    +
    +
    dpnp.minimum

    Element-wise minimum of two arrays, propagates NaNs.

    +
    +
    dpnp.min

    The minimum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmin

    The minimum value of an array along a given axis, ignores NaNs.

    +
    +
    dpnp.maximum

    Element-wise maximum of two arrays, propagates NaNs.

    +
    +
    dpnp.max

    The maximum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmax

    The maximum value of an array along a given axis, ignores NaNs.

    +
    +
    +
    +

    Notes

    +

    fmin(x1, x2) is equivalent to dpnp.where(x1 <= x2, x1, x2) when neither +x1 nor x2 are NaNs, but it is faster and does proper broadcasting.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([2, 3, 4])
    +>>> x2 = np.array([1, 5, 2])
    +>>> np.fmin(x1, x2)
    +array([1, 3, 2])
    +
    +
    +
    >>> x1 = np.eye(2)
    +>>> x2 = np.array([0.5, 2])
    +>>> np.fmin(x1, x2)
    +array([[0.5, 0. ],
    +       [0. , 1. ]])
    +
    +
    +
    >>> x1 = np.array([np.nan, 0, np.nan])
    +>>> x2 = np.array([0, np.nan, np.nan])
    +>>> np.fmin(x1, x2)
    +array([ 0.,  0., nan])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fmod.html b/pull/2070/reference/generated/dpnp.fmod.html new file mode 100644 index 00000000000..214cc74ce18 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fmod.html @@ -0,0 +1,216 @@ + + + + + + + + + + + dpnp.fmod — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.fmod

    +
    +
    +dpnp.fmod(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the remainder of division for each element x1_i of the input array +x1 with the respective element x2_i of the input array x2.

    +

    This function is equivalent to the Matlab(TM) rem function and should not +be confused with the Python modulus operator x1 % x2.

    +

    For full documentation refer to numpy.fmod.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real-valued data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real-valued data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise remainders. The data type of the +returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.remainder

    Equivalent to the Python % operator.

    +
    +
    dpnp.divide

    Standard division.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-3, -2, -1, 1, 2, 3])
    +>>> np.fmod(a, 2)
    +array([-1,  0, -1,  1,  0,  1])
    +>>> np.remainder(a, 2)
    +array([1, 0, 1, 1, 0, 1])
    +
    +
    +
    >>> np.fmod(np.array([5, 3]), np.array([2, 2.]))
    +array([1., 1.])
    +>>> a = np.arange(-3, 3).reshape(3, 2)
    +>>> a
    +array([[-3, -2],
    +       [-1,  0],
    +       [ 1,  2]])
    +>>> np.fmod(a, np.array([2, 2]))
    +array([[-1,  0],
    +       [-1,  0],
    +       [ 1,  0]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.from_dlpack.html b/pull/2070/reference/generated/dpnp.from_dlpack.html new file mode 100644 index 00000000000..f07c52f8a2f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.from_dlpack.html @@ -0,0 +1,231 @@ + + + + + + + + + + + dpnp.from_dlpack — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.from_dlpack

    +
    +
    +dpnp.from_dlpack(obj, /, *, device=None, copy=None)[source]
    +

    Create a dpnp array from a Python object implementing the __dlpack__ +protocol.

    +

    See https://dmlc.github.io/dlpack/latest/ for more details.

    +
    +
    Parameters:
    +
      +
    • obj (object) -- A Python object representing an array that implements the __dlpack__ +and __dlpack_device__ methods.

    • +
    • device ({dpctl.SyclDevice, dpctl.SyclQueue,) -- dpctl.tensor.Device, tuple, None}, optional +Array API concept of a device where the output array is to be placed. +device can be None, an oneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +a dpctl.tensor.Device object returned by +dpctl.tensor.usm_ndarray.device, or a 2-tuple matching +the format of the output of the __dlpack_device__ method, +an integer enumerator representing the device type followed by +an integer representing the index of the device. +Default: None.

    • +
    • {bool (copy) --

      Boolean indicating whether or not to copy the input.

      +
        +
      • If copy``is ``True`, the input will always be copied.

      • +
      • If False, a BufferError will be raised if a copy is deemed +necessary.

      • +
      • If None, a copy will be made only if deemed necessary, otherwise, +the existing memory buffer will be reused.

      • +
      +

      Default: None.

      +

    • +
    • None} --

      Boolean indicating whether or not to copy the input.

      +
        +
      • If copy``is ``True`, the input will always be copied.

      • +
      • If False, a BufferError will be raised if a copy is deemed +necessary.

      • +
      • If None, a copy will be made only if deemed necessary, otherwise, +the existing memory buffer will be reused.

      • +
      +

      Default: None.

      +

    • +
    • optional --

      Boolean indicating whether or not to copy the input.

      +
        +
      • If copy``is ``True`, the input will always be copied.

      • +
      • If False, a BufferError will be raised if a copy is deemed +necessary.

      • +
      • If None, a copy will be made only if deemed necessary, otherwise, +the existing memory buffer will be reused.

      • +
      +

      Default: None.

      +

    • +
    +
    +
    Returns:
    +

    out -- Returns a new dpnp array containing the data from another array +(obj) with the __dlpack__ method on the same device as object.

    +
    +
    Return type:
    +

    dpnp_array

    +
    +
    Raises:
    +
      +
    • TypeError: -- if obj does not implement __dlpack__ method

    • +
    • ValueError: -- if the input array resides on an unsupported device

    • +
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.frombuffer.html b/pull/2070/reference/generated/dpnp.frombuffer.html new file mode 100644 index 00000000000..84a73c38b1f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.frombuffer.html @@ -0,0 +1,241 @@ + + + + + + + + + + + dpnp.frombuffer — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.frombuffer

    +
    +
    +dpnp.frombuffer(buffer, dtype=<class 'float'>, count=-1, offset=0, *, like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Interpret a buffer as a 1-dimensional array.

    +

    For full documentation refer to numpy.frombuffer.

    +
    +
    Parameters:
    +
      +
    • buffer (buffer_like) -- An object that exposes the buffer interface.

    • +
    • dtype (data-type, optional) -- Data-type of the returned array. +Default is the default floating point data type for the device where +the returned array is allocated.

    • +
    • count (int, optional) -- Number of items to read. -1 means all data in the buffer.

    • +
    • offset (int, optional) -- Start reading the buffer from this offset (in bytes). +Default: 0.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A 1-dimensional array created from input buffer object.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +

    Notes

    +

    This uses numpy.frombuffer and coerces the result to a DPNP array.

    +
    +

    See also

    +
    +
    dpnp.fromfile

    Construct array from data in a text or binary file.

    +
    +
    dpnp.fromiter

    Construct array from an iterable object.

    +
    +
    dpnp.fromstring

    Construct array from the text data in a string.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> s = b'\x01\x02\x03\x04'
    +>>> np.frombuffer(s, dtype=np.int32)
    +array([67305985], dtype=int32)
    +>>> np.frombuffer(b'\x01\x02\x03\x04\x05', dtype='u1', count=3)
    +array([1, 2, 3], dtype=uint8)
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.frombuffer(s, dtype=np.int32) # default case
    +>>> x.device, x.usm_type
    +(Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.frombuffer(s, dtype=np.int32, device='cpu')
    +>>> y.device, y.usm_type
    +(Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.frombuffer(s, dtype=np.int32, usm_type="host")
    +>>> z.device, z.usm_type
    +(Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fromfile.html b/pull/2070/reference/generated/dpnp.fromfile.html new file mode 100644 index 00000000000..9b93925411e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fromfile.html @@ -0,0 +1,269 @@ + + + + + + + + + + + dpnp.fromfile — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fromfile

    +
    +
    +dpnp.fromfile(file, dtype=<class 'float'>, count=-1, sep='', offset=0, *, like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Construct an array from data in a text or binary file.

    +

    A highly efficient way of reading binary data with a known data-type, +as well as parsing simply formatted text files. Data written using the +tofile method can be read using this function.

    +

    For full documentation refer to numpy.fromfile.

    +
    +
    Parameters:
    +
      +
    • file (file or str or Path) -- Open file object or filename.

    • +
    • dtype (data-type, optional) -- Data type of the returned array. +For binary files, it is used to determine the size and byte-order +of the items in the file. +Default is the default floating point data type for the device where +the returned array is allocated.

    • +
    • count (int, optional) -- Number of items to read. -1 means all items (i.e., the complete +file).

    • +
    • sep (str, optional) -- Separator between items if file is a text file. +Empty ("") separator means the file should be treated as binary. +Spaces (" ") in the separator match zero or more whitespace characters. +A separator consisting only of spaces must match at least one +whitespace.

    • +
    • offset (int, optional) -- The offset (in bytes) from the file's current position. Defaults to 0. +Only permitted for binary files.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A 1-dimensional array created from data in a text or binary file.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +

    Notes

    +

    This uses numpy.fromfile and coerces the result to a DPNP array.

    +
    +

    See also

    +
    +
    dpnp.frombuffer

    Construct array from the buffer data.

    +
    +
    dpnp.fromiter

    Construct array from an iterable object.

    +
    +
    dpnp.fromstring

    Construct array from the text data in a string.

    +
    +
    dpnp.load

    Load arrays or pickled objects from files.

    +
    +
    dpnp.save

    Save an array to a binary file.

    +
    +
    dpnp.ndarray.tofile

    Write array to a file as text or binary.

    +
    +
    dpnp.loadtxt

    More flexible way of loading data from a text file.

    +
    +
    +
    +

    Examples

    +

    Save the data to a temporary file:

    +
    >>> import tempfile
    +>>> fh = tempfile.TemporaryFile()
    +>>> fh.write(b"\x00\x01\x02\x03\x04")
    +>>> fh.flush()
    +>>> fh.seek(0)
    +
    +
    +

    Construct an array:

    +
    >>> import dpnp as np
    +>>> np.fromfile(fh, dtype="u1")
    +array([0, 1, 2, 3, 4], dtype=uint8)
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> fh.seek(0)
    +>>> x = np.fromfile(fh, dtype="u1") # default case
    +>>> x.device, x.usm_type
    +(Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> fh.seek(0)
    +>>> y = np.fromfile(fh, dtype="u1", device='cpu')
    +>>> y.device, y.usm_type
    +(Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> fh.seek(0)
    +>>> z = np.fromfile(fh, dtype="u1", usm_type="host")
    +>>> z.device, z.usm_type
    +(Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fromfunction.html b/pull/2070/reference/generated/dpnp.fromfunction.html new file mode 100644 index 00000000000..e5d62ae11d8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fromfunction.html @@ -0,0 +1,262 @@ + + + + + + + + + + + dpnp.fromfunction — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fromfunction

    +
    +
    +dpnp.fromfunction(function, shape, *, dtype=<class 'float'>, like=None, device=None, usm_type='device', sycl_queue=None, **kwargs)[source]
    +

    Construct an array by executing a function over each coordinate.

    +

    The resulting array therefore has a value fn(x, y, z) at +coordinate (x, y, z).

    +

    For full documentation refer to numpy.fromfunction.

    +
    +
    Parameters:
    +
      +
    • function (callable) -- The function is called with N parameters, where N is the rank of +shape. Each parameter represents the coordinates of the array varying +along a specific axis. For example, if shape were (2, 2), then +the parameters would be array([[0, 0], [1, 1]]) and +array([[0, 1], [0, 1]]).

    • +
    • shape ((N,) tuple of ints) -- Shape of the output array, which also determines the shape of +the coordinate arrays passed to function.

    • +
    • dtype (data-type, optional) -- Data-type of the coordinate arrays passed to function. +Default is the default floating point data type for the device where +the returned array is allocated.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The result of the call to function is passed back directly. +Therefore the shape of fromfunction is completely determined by +function.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +

    Notes

    +

    This uses numpy.fromfunction and coerces the result to a DPNP array. +Keywords other than dtype and like are passed to function.

    +
    +

    See also

    +
    +
    dpnp.indices

    Return an array representing the indices of a grid.

    +
    +
    dpnp.meshgrid

    Return coordinate matrices from coordinate vectors.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.fromfunction(lambda i, j: i, (2, 2), dtype=float)
    +array([[0., 0.],
    +       [1., 1.]])
    +
    +
    +
    >>> np.fromfunction(lambda i, j: j, (2, 2), dtype=float)
    +array([[0., 1.],
    +       [0., 1.]])
    +
    +
    +
    >>> np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int)
    +array([[ True, False, False],
    +       [False,  True, False],
    +       [False, False,  True]])
    +
    +
    +
    >>> np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int)
    +array([[0, 1, 2],
    +       [1, 2, 3],
    +       [2, 3, 4]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.fromfunction(lambda i, j: i - j, (3, 3)) # default case
    +>>> x.device, x.usm_type
    +(Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.fromfunction(lambda i, j: i - j, (3, 3), device='cpu')
    +>>> y.device, y.usm_type
    +(Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.fromfunction(lambda i, j: i - j, (3, 3), usm_type="host")
    +>>> z.device, z.usm_type
    +(Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fromiter.html b/pull/2070/reference/generated/dpnp.fromiter.html new file mode 100644 index 00000000000..86e7dc06f98 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fromiter.html @@ -0,0 +1,236 @@ + + + + + + + + + + + dpnp.fromiter — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fromiter

    +
    +
    +dpnp.fromiter(iter, dtype, count=-1, *, like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Create a new 1-dimensional array from an iterable object.

    +

    For full documentation refer to numpy.fromiter.

    +
    +
    Parameters:
    +
      +
    • iter (iterable object) -- An iterable object providing data for the array.

    • +
    • dtype (data-type) -- The data-type of the returned array.

    • +
    • count (int, optional) -- The number of items to read from iterable. The default is -1, +which means all data is read.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The output array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +

    Notes

    +

    This uses numpy.fromiter and coerces the result to a DPNP array.

    +
    +

    See also

    +
    +
    dpnp.frombuffer

    Construct array from the buffer data.

    +
    +
    dpnp.fromfile

    Construct array from data in a text or binary file.

    +
    +
    dpnp.fromstring

    Construct array from the text data in a string.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> iterable = (a * a for a in range(5))
    +>>> np.fromiter(iterable, float)
    +array([  0.,   1.,   4.,   9.,  16.])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.fromiter(iterable, np.int32) # default case
    +>>> x.device, x.usm_type
    +(Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.fromiter(iterable, np.int32, device='cpu')
    +>>> y.device, y.usm_type
    +(Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.fromiter(iterable, np.int32, usm_type="host")
    +>>> z.device, z.usm_type
    +(Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.fromstring.html b/pull/2070/reference/generated/dpnp.fromstring.html new file mode 100644 index 00000000000..0429fded6a8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.fromstring.html @@ -0,0 +1,226 @@ + + + + + + + + + + + dpnp.fromstring — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.fromstring

    +
    +
    +dpnp.fromstring(string, dtype=<class 'float'>, count=-1, *, sep, like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    A new 1-D array initialized from text data in a string.

    +

    For full documentation refer to numpy.fromstring.

    +
    +
    Parameters:
    +
      +
    • string (str) -- A string containing the data.

    • +
    • dtype (data-type, optional) -- The data type of the array. +For binary input data, the data must be in exactly this format. +Default is the default floating point data type for the device where +the returned array is allocated.

    • +
    • count (int, optional) -- Read this number of dtype elements from the data. If this is negative +(the default), the count will be determined from the length of the data.

    • +
    • sep (str, optional) -- The string separating numbers in the data; extra whitespace between +elements is also ignored.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The constructed array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +

    Notes

    +

    This uses numpy.fromstring and coerces the result to a DPNP array.

    +
    +

    See also

    +
    +
    dpnp.frombuffer

    Construct array from the buffer data.

    +
    +
    dpnp.fromfile

    Construct array from data in a text or binary file.

    +
    +
    dpnp.fromiter

    Construct array from an iterable object.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.fromstring('1 2', dtype=int, sep=' ')
    +array([1, 2])
    +>>> np.fromstring('1, 2', dtype=int, sep=',')
    +array([1, 2])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.full.html b/pull/2070/reference/generated/dpnp.full.html new file mode 100644 index 00000000000..22f0dabd3ae --- /dev/null +++ b/pull/2070/reference/generated/dpnp.full.html @@ -0,0 +1,240 @@ + + + + + + + + + + + dpnp.full — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.full

    +
    +
    +dpnp.full(shape, fill_value, *, dtype=None, order='C', like=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return a new array of given shape and type, filled with fill_value.

    +

    For full documentation refer to numpy.full.

    +
    +
    Parameters:
    +
      +
    • shape ({int, sequence of ints}) -- Shape of the new array, e.g., (2, 3) or 2.

    • +
    • fill_value ({scalar, array_like}) -- Fill value, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of fill_value with the given shape, dtype, and order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.full_like

    Return a new array with shape of input filled with value.

    +
    +
    dpnp.empty

    Return a new uninitialized array.

    +
    +
    dpnp.ones

    Return a new array setting values to one.

    +
    +
    dpnp.zeros

    Return a new array setting values to zero.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.full(4, 10)
    +array([10, 10, 10, 10])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.full(4, 10) # default case
    +>>> x, x.device, x.usm_type
    +(array([10, 10, 10, 10]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.full(4, 10, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([10, 10, 10, 10]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.full(4, 10, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([10, 10, 10, 10]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.full_like.html b/pull/2070/reference/generated/dpnp.full_like.html new file mode 100644 index 00000000000..d75649d5e92 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.full_like.html @@ -0,0 +1,245 @@ + + + + + + + + + + + dpnp.full_like — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.full_like

    +
    +
    +dpnp.full_like(a, /, fill_value, *, dtype=None, order='C', subok=False, shape=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return a full array with the same shape and type as a given array.

    +

    For full documentation refer to numpy.full_like.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The shape and dtype of a define these same attributes +of the returned array.

    • +
    • fill_value ({scalar, array_like}) -- Fill value, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • shape ({None, int, sequence of ints}) -- Overrides the shape of the result.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of fill_value with the same shape and type as a.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter order is supported only with values "C", "F" and +None. +Parameter subok is supported only with default value False. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.empty_like

    Return an empty array with shape and type of input.

    +
    +
    dpnp.ones_like

    Return an array of ones with shape and type of input.

    +
    +
    dpnp.zeros_like

    Return an array of zeros with shape and type of input.

    +
    +
    dpnp.full

    Return a new array of given shape filled with value.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(6)
    +>>> np.full_like(a, 1)
    +array([1, 1, 1, 1, 1, 1])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.full_like(a, 1) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 1, 1, 1, 1, 1]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.full_like(a, 1, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 1, 1, 1, 1, 1]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.full_like(a, 1, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 1, 1, 1, 1, 1]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.geomspace.html b/pull/2070/reference/generated/dpnp.geomspace.html new file mode 100644 index 00000000000..ed2d1bafa00 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.geomspace.html @@ -0,0 +1,258 @@ + + + + + + + + + + + dpnp.geomspace — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.geomspace

    +
    +
    +dpnp.geomspace(start, stop, /, num=50, *, dtype=None, device=None, usm_type=None, sycl_queue=None, endpoint=True, axis=0)[source]
    +

    Return numbers spaced evenly on a log scale (a geometric progression).

    +

    For full documentation refer to numpy.geomspace.

    +
    +
    Parameters:
    +
      +
    • start (array_like) -- The starting value of the sequence, in any form that can be converted +to an array. This includes scalars, lists, lists of tuples, tuples, +tuples of tuples, tuples of lists, and ndarrays.

    • +
    • stop (array_like) -- The final value of the sequence, in any form that can be converted to +an array. This includes scalars, lists, lists of tuples, tuples, tuples +of tuples, tuples of lists, and ndarrays. If endpoint is False +num + 1 values are spaced over the interval in log-space, of which +all but the last (a sequence of length num) are returned.

    • +
    • num (int, optional) -- Number of samples to generate. +Default: 50.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary).

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying.

    • +
    • endpoint (bool, optional) -- If True, stop is the last sample. Otherwise, it is not included. +Default: True.

    • +
    • axis (int, optional) -- The axis in the result to store the samples. Relevant only if start or +stop are array-like. By default (0), the samples will be along a new +axis inserted at the beginning. Use -1 to get an axis at the end.

    • +
    +
    +
    Returns:
    +

    out -- num samples, equally spaced on a log scale.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.logspace

    Similar to dpnp.geomspace, but with endpoints specified using log and base.

    +
    +
    dpnp.linspace

    Similar to dpnp.geomspace, but with arithmetic instead of geometric progression.

    +
    +
    dpnp.arange

    Similar to dpnp.linspace, with the step size specified instead of the number of samples.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.geomspace(1, 1000, num=4)
    +array([   1.,   10.,  100., 1000.])
    +>>> np.geomspace(1, 1000, num=3, endpoint=False)
    +array([  1.,  10., 100.])
    +>>> np.geomspace(1, 1000, num=4, endpoint=False)
    +array([  1.        ,   5.62341325,  31.6227766 , 177.827941  ])
    +>>> np.geomspace(1, 256, num=9)
    +array([  1.,   2.,   4.,   8.,  16.,  32.,  64., 128., 256.])
    +
    +
    +
    >>> np.geomspace(1, 256, num=9, dtype=int)
    +array([  1,   2,   4,   7,  16,  32,  63, 127, 256])
    +>>> np.around(np.geomspace(1, 256, num=9)).astype(int)
    +array([  1,   2,   4,   8,  16,  32,  64, 128, 256])
    +
    +
    +
    >>> np.geomspace(1000, 1, num=4)
    +array([1000.,  100.,   10.,    1.])
    +>>> np.geomspace(-1000, -1, num=4)
    +array([-1000.,  -100.,   -10.,    -1.])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.geomspace(1000, 1, num=4) # default case
    +>>> x, x.device, x.usm_type
    +(array([1000.,  100.,   10.,    1.]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.geomspace(1000, 1, num=4, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1000.,  100.,   10.,    1.]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.geomspace(1000, 1, num=4, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1000.,  100.,   10.,    1.]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.get_include.html b/pull/2070/reference/generated/dpnp.get_include.html new file mode 100644 index 00000000000..3e7fd275c7a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.get_include.html @@ -0,0 +1,153 @@ + + + + + + + + + + + dpnp.get_include — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.get_include

    +
    +
    +dpnp.get_include()[source]
    +

    Return the directory that contains *.h header files of dpnp C++ backend.

    +

    An extension module that needs to be compiled against dpnp backend +should use this function to locate the appropriate include directory.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.gradient.html b/pull/2070/reference/generated/dpnp.gradient.html new file mode 100644 index 00000000000..028854c58b8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.gradient.html @@ -0,0 +1,287 @@ + + + + + + + + + + + dpnp.gradient — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.gradient

    +
    +
    +dpnp.gradient(f, *varargs, axis=None, edge_order=1)[source]
    +

    Return the gradient of an N-dimensional array.

    +

    The gradient is computed using second order accurate central differences +in the interior points and either first or second order accurate one-sides +(forward or backwards) differences at the boundaries. +The returned gradient hence has the same shape as the input array.

    +

    For full documentation refer to numpy.gradient.

    +
    +
    Parameters:
    +
      +
    • f ({dpnp.ndarray, usm_ndarray}) -- An N-dimensional array containing samples of a scalar function.

    • +
    • varargs ({scalar, list of scalars, list of arrays}, optional) --

      Spacing between f values. Default unitary spacing for all dimensions. +Spacing can be specified using:

      +
        +
      1. Single scalar to specify a sample distance for all dimensions.

      2. +
      3. N scalars to specify a constant sample distance for each dimension. +i.e. dx, dy, dz, ...

      4. +
      5. N arrays to specify the coordinates of the values along each +dimension of f. The length of the array must match the size of +the corresponding dimension

      6. +
      7. Any combination of N scalars/arrays with the meaning of 2. and 3.

      8. +
      +

      If axis is given, the number of varargs must equal the number of +axes. +Default: 1.

      +

    • +
    • axis ({None, int, tuple of ints}, optional) -- Gradient is calculated only along the given axis or axes. +The default is to calculate the gradient for all the axes of the input +array. axis may be negative, in which case it counts from the last to +the first axis. +Default: None.

    • +
    • edge_order ({1, 2}, optional) -- Gradient is calculated using N-th order accurate differences +at the boundaries. +Default: 1.

    • +
    +
    +
    Returns:
    +

    gradient -- A list of dpnp.ndarray (or a single dpnp.ndarray if +there is only one dimension) corresponding to the derivatives of f +with respect to each dimension. +Each derivative has the same shape as f.

    +
    +
    Return type:
    +

    {dpnp.ndarray, list of ndarray}

    +
    +
    +
    +

    See also

    +
    +
    dpnp.diff

    Calculate the n-th discrete difference along the given axis.

    +
    +
    dpnp.ediff1d

    Calculate the differences between consecutive elements of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> f = np.array([1, 2, 4, 7, 11, 16], dtype=float)
    +>>> np.gradient(f)
    +array([1. , 1.5, 2.5, 3.5, 4.5, 5. ])
    +>>> np.gradient(f, 2)
    +array([0.5 , 0.75, 1.25, 1.75, 2.25, 2.5 ])
    +
    +
    +

    Spacing can be also specified with an array that represents the coordinates +of the values f along the dimensions. +For instance a uniform spacing:

    +
    >>> x = np.arange(f.size)
    +>>> np.gradient(f, x)
    +array([1. , 1.5, 2.5, 3.5, 4.5, 5. ])
    +
    +
    +

    Or a non uniform one:

    +
    >>> x = np.array([0., 1., 1.5, 3.5, 4., 6.], dtype=float)
    +>>> np.gradient(f, x)
    +array([1. , 3. , 3.5, 6.7, 6.9, 2.5])
    +
    +
    +

    For two dimensional arrays, the return will be two arrays ordered by +axis. In this example the first array stands for the gradient in +rows and the second one in columns direction:

    +
    >>> np.gradient(np.array([[1, 2, 6], [3, 4, 5]], dtype=float))
    +(array([[ 2.,  2., -1.],
    +        [ 2.,  2., -1.]]),
    + array([[1. , 2.5, 4. ],
    +        [1. , 1. , 1. ]]))
    +
    +
    +

    In this example the spacing is also specified: +uniform for axis=0 and non uniform for axis=1

    +
    >>> dx = 2.
    +>>> y = np.array([1., 1.5, 3.5])
    +>>> np.gradient(np.array([[1, 2, 6], [3, 4, 5]], dtype=float), dx, y)
    +(array([[ 1. ,  1. , -0.5],
    +        [ 1. ,  1. , -0.5]]),
    + array([[2. , 2. , 2. ],
    +        [2. , 1.7, 0.5]]))
    +
    +
    +

    It is possible to specify how boundaries are treated using edge_order

    +
    >>> x = np.array([0, 1, 2, 3, 4])
    +>>> f = x**2
    +>>> np.gradient(f, edge_order=1)
    +array([1., 2., 4., 6., 7.])
    +>>> np.gradient(f, edge_order=2)
    +array([0., 2., 4., 6., 8.])
    +
    +
    +

    The axis keyword can be used to specify a subset of axes of which the +gradient is calculated

    +
    >>> np.gradient(np.array([[1, 2, 6], [3, 4, 5]], dtype=float), axis=0)
    +array([[ 2.,  2., -1.],
    +       [ 2.,  2., -1.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.greater.html b/pull/2070/reference/generated/dpnp.greater.html new file mode 100644 index 00000000000..7366d080826 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.greater.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.greater — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.greater

    +
    +
    +dpnp.greater(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the greater-than test results for each element x1_i of +the input array x1 with the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.greater.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise greater-than comparison. +The returned array has a data type of bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.greater_equal

    Return the truth value of (x1 >= x2) element-wise.

    +
    +
    dpnp.less

    Return the truth value of (x1 < x2) element-wise.

    +
    +
    dpnp.less_equal

    Return the truth value of (x1 =< x2) element-wise.

    +
    +
    dpnp.equal

    Return (x1 == x2) element-wise.

    +
    +
    dpnp.not_equal

    Return (x1 != x2) element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([4, 2])
    +>>> x2 = np.array([2, 2])
    +>>> np.greater(x1, x2)
    +array([ True, False])
    +
    +
    +

    The > operator can be used as a shorthand for greater on +dpnp.ndarray.

    +
    >>> a = np.array([4, 2])
    +>>> b = np.array([2, 2])
    +>>> a > b
    +array([ True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.greater_equal.html b/pull/2070/reference/generated/dpnp.greater_equal.html new file mode 100644 index 00000000000..0555318e823 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.greater_equal.html @@ -0,0 +1,214 @@ + + + + + + + + + + + dpnp.greater_equal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.greater_equal

    +
    +
    +dpnp.greater_equal(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the greater-than or equal-to test results for each element x1_i of +the input array x1 with the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.greater_equal.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise greater-than or equal-to +comparison. +The returned array has a data type of bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.greater

    Return the truth value of (x1 > x2) element-wise.

    +
    +
    dpnp.less

    Return the truth value of (x1 < x2) element-wise.

    +
    +
    dpnp.less_equal

    Return the truth value of (x1 =< x2) element-wise.

    +
    +
    dpnp.equal

    Return (x1 == x2) element-wise.

    +
    +
    dpnp.not_equal

    Return (x1 != x2) element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([4, 2, 1])
    +>>> x2 = np.array([2, 2, 2])
    +>>> np.greater_equal(x1, x2)
    +array([ True,  True, False])
    +
    +
    +

    The >= operator can be used as a shorthand for greater_equal on +dpnp.ndarray.

    +
    >>> a = np.array([4, 2, 1])
    +>>> b = np.array([2, 2, 2])
    +>>> a >= b
    +array([ True,  True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.heaviside.html b/pull/2070/reference/generated/dpnp.heaviside.html new file mode 100644 index 00000000000..641ab6f0f7c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.heaviside.html @@ -0,0 +1,196 @@ + + + + + + + + + + + dpnp.heaviside — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.heaviside

    +
    +
    +dpnp.heaviside(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Compute the Heaviside step function.

    +

    The Heaviside step function is defined as:

    +
                          0   if x1 < 0
    +heaviside(x1, x2) =  x2   if x1 == 0
    +                      1   if x1 > 0
    +
    +
    +

    where x2 is often taken to be 0.5, but 0 and 1 are also sometimes used.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- Input values. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- The value of the function when x1 is 0. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- The output array, element-wise Heaviside step function of x1.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-1.5, 0, 2.0])
    +>>> np.heaviside(a, 0.5)
    +array([0. , 0.5, 1. ])
    +>>> np.heaviside(a, 1)
    +array([0., 1., 1.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.histogram.html b/pull/2070/reference/generated/dpnp.histogram.html new file mode 100644 index 00000000000..01ef8be9fac --- /dev/null +++ b/pull/2070/reference/generated/dpnp.histogram.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.histogram — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.histogram

    +
    +
    +dpnp.histogram(a, bins=10, range=None, density=None, weights=None)[source]
    +

    Compute the histogram of a data set.

    +

    For full documentation refer to numpy.histogram.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input data. The histogram is computed over the flattened array.

    • +
    • bins ({int, dpnp.ndarray, usm_ndarray, sequence of scalars}, optional) -- If bins is an int, it defines the number of equal-width bins in the +given range. +If bins is a sequence, it defines a monotonically increasing array +of bin edges, including the rightmost edge, allowing for non-uniform +bin widths. +Default: 10.

    • +
    • range ({None, 2-tuple of float}, optional) -- The lower and upper range of the bins. If not provided, range is simply +(a.min(), a.max()). Values outside the range are ignored. The first +element of the range must be less than or equal to the second. range +affects the automatic bin computation as well. While bin width is +computed to be optimal based on the actual data within range, the bin +count will fill the entire range including portions containing no data. +Default: None.

    • +
    • density ({None, bool}, optional) -- If False or None, the result will contain the number of samples +in each bin. If True, the result is the value of the probability +density function at the bin, normalized such that the integral over +the range is 1. Note that the sum of the histogram values will not +be equal to 1 unless bins of unity width are chosen; it is not +a probability mass function. +Default: None.

    • +
    • weights ({None, dpnp.ndarray, usm_ndarray}, optional) -- An array of weights, of the same shape as a. Each value in a only +contributes its associated weight towards the bin count (instead of 1). +If density is True, the weights are normalized, so that the +integral of the density over the range remains 1. +Please note that the dtype of weights will also become the +dtype of the returned accumulator (hist), so it must be large +enough to hold accumulated values as well. +Default: None.

    • +
    +
    +
    Returns:
    +

      +
    • hist ({dpnp.ndarray}) -- The values of the histogram. See density and weights for a +description of the possible semantics. If weights are given, +hist.dtype will be taken from weights.

    • +
    • bin_edges ({dpnp.ndarray of floating data type}) -- Return the bin edges (length(hist) + 1).

    • +
    +

    +
    +
    +
    +

    See also

    +
    +
    dpnp.histogramdd

    Compute the multidimensional histogram.

    +
    +
    dpnp.bincount

    Count number of occurrences of each value in array of non-negative integers.

    +
    +
    dpnp.searchsorted

    Find indices where elements should be inserted to maintain order.

    +
    +
    dpnp.digitize

    Return the indices of the bins to which each value in input array belongs.

    +
    +
    dpnp.histogram_bin_edges

    Return only the edges of the bins used by the obj:dpnp.histogram function.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.histogram(np.array([1, 2, 1]), bins=[0, 1, 2, 3])
    +(array([0, 2, 1]), array([0, 1, 2, 3]))
    +>>> np.histogram(np.arange(4), bins=np.arange(5), density=True)
    +(array([0.25, 0.25, 0.25, 0.25]), array([0, 1, 2, 3, 4]))
    +>>> np.histogram(np.array([[1, 2, 1], [1, 0, 1]]), bins=[0, 1, 2, 3])
    +(array([1, 4, 1]), array([0, 1, 2, 3]))
    +
    +
    +
    >>> a = np.arange(5)
    +>>> hist, bin_edges = np.histogram(a, density=True)
    +>>> hist
    +array([0.5, 0. , 0.5, 0. , 0. , 0.5, 0. , 0.5, 0. , 0.5])
    +>>> hist.sum()
    +array(2.5)
    +>>> np.sum(hist * np.diff(bin_edges))
    +array(1.)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.histogram_bin_edges.html b/pull/2070/reference/generated/dpnp.histogram_bin_edges.html new file mode 100644 index 00000000000..f3174a1f0fc --- /dev/null +++ b/pull/2070/reference/generated/dpnp.histogram_bin_edges.html @@ -0,0 +1,244 @@ + + + + + + + + + + + dpnp.histogram_bin_edges — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.histogram_bin_edges

    +
    +
    +dpnp.histogram_bin_edges(a, bins=10, range=None, weights=None)[source]
    +

    Function to calculate only the edges of the bins used by the +dpnp.histogram function.

    +

    For full documentation refer to numpy.histogram_bin_edges.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input data. The histogram is computed over the flattened array.

    • +
    • bins ({int, dpnp.ndarray, usm_ndarray, sequence of scalars}, optional) -- If bins is an int, it defines the number of equal-width bins in the +given range. +If bins is a sequence, it defines the bin edges, including the +rightmost edge, allowing for non-uniform bin widths. +Default: 10.

    • +
    • range ({None, 2-tuple of float}, optional) -- The lower and upper range of the bins. If not provided, range is simply +(a.min(), a.max()). Values outside the range are ignored. The first +element of the range must be less than or equal to the second. range +affects the automatic bin computation as well. While bin width is +computed to be optimal based on the actual data within range, the bin +count will fill the entire range including portions containing no data. +Default: None.

    • +
    • weights ({None, dpnp.ndarray, usm_ndarray}, optional) -- An array of weights, of the same shape as a. Each value in a only +contributes its associated weight towards the bin count (instead of 1). +This is currently not used by any of the bin estimators, but may be in +the future. +Default: None.

    • +
    +
    +
    Returns:
    +

    bin_edges -- The edges to pass into dpnp.histogram.

    +
    +
    Return type:
    +

    {dpnp.ndarray of floating data type}

    +
    +
    +
    +

    See also

    +
    +
    dpnp.histogram

    Compute the histogram of a data set.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> arr = np.array([0, 0, 0, 1, 2, 3, 3, 4, 5])
    +>>> np.histogram_bin_edges(arr, bins=2)
    +array([0. , 2.5, 5. ])
    +
    +
    +

    For consistency with histogram, an array of pre-computed bins is +passed through unmodified:

    +
    >>> np.histogram_bin_edges(arr, [1, 2])
    +array([1, 2])
    +
    +
    +

    This function allows one set of bins to be computed, and reused across +multiple histograms:

    +
    >>> shared_bins = np.histogram_bin_edges(arr, bins=5)
    +>>> shared_bins
    +array([0., 1., 2., 3., 4., 5.])
    +
    +
    +
    >>> gid = np.array([0, 1, 1, 0, 1, 1, 0, 1, 1])
    +>>> hist_0, _ = np.histogram(arr[gid == 0], bins=shared_bins)
    +>>> hist_1, _ = np.histogram(arr[gid == 1], bins=shared_bins)
    +
    +
    +
    >>> hist_0, hist_1
    +(array([1, 1, 0, 1, 0]), array([2, 0, 1, 1, 2]))
    +
    +
    +

    Which gives more easily comparable results than using separate bins for +each histogram:

    +
    >>> hist_0, bins_0 = np.histogram(arr[gid == 0], bins=3)
    +>>> hist_1, bins_1 = np.histogram(arr[gid == 1], bins=4)
    +>>> hist_0, hist_1
    +(array([1, 1, 1]), array([2, 1, 1, 2]))
    +>>> bins_0, bins_1
    +(array([0., 1., 2., 3.]), array([0.  , 1.25, 2.5 , 3.75, 5.  ]))
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.hsplit.html b/pull/2070/reference/generated/dpnp.hsplit.html new file mode 100644 index 00000000000..959d63cfe66 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.hsplit.html @@ -0,0 +1,254 @@ + + + + + + + + + + + dpnp.hsplit — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.hsplit

    +
    +
    +dpnp.hsplit(ary, indices_or_sections)[source]
    +

    Split an array into multiple sub-arrays horizontally (column-wise).

    +

    Please refer to the dpnp.split documentation. hsplit +is equivalent to dpnp.split with axis=1, the array is always +split along the second axis except for 1-D arrays, where it is split at +axis=0.

    +

    For full documentation refer to numpy.hsplit.

    +
    +
    Parameters:
    +
      +
    • ary ({dpnp.ndarray, usm_ndarray}) -- Array to be divided into sub-arrays.

    • +
    • indices_or_sections ({int, sequence of ints}) -- If indices_or_sections is an integer, N, the array will be divided +into N equal arrays along the second axis except for 1-D arrays, where +it is split at the first axis. If such a split is not possible, +an error is raised. +If indices_or_sections is a sequence of sorted integers, the entries +indicate where along the second axis the array is split. For 1-D arrays, +the entries indicate where along the first axis the array is split.

    • +
    +
    +
    Returns:
    +

    sub-arrays -- A list of sub arrays. Each array is a view of the corresponding input +array.

    +
    +
    Return type:
    +

    list of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.split

    Split array into multiple sub-arrays of equal size.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(16.0).reshape(4, 4)
    +>>> x
    +array([[ 0.,  1.,  2.,  3.],
    +       [ 4.,  5.,  6.,  7.],
    +       [ 8.,  9., 10., 11.],
    +       [12., 13., 14., 15.]])
    +>>> np.hsplit(x, 2)
    +[array([[ 0.,  1.],
    +        [ 4.,  5.],
    +        [ 8.,  9.],
    +        [12., 13.]]),
    + array([[ 2.,  3.],
    +        [ 6.,  7.],
    +        [10., 11.],
    +        [14., 15.]])]
    +>>> np.hsplit(x, np.array([3, 6]))
    +[array([[ 0.,  1.,  2.],
    +        [ 4.,  5.,  6.],
    +        [ 8.,  9., 10.],
    +        [12., 13., 14.]]),
    + array([[ 3.],
    +        [ 7.],
    +        [11.],
    +        [15.]]),
    + array([])]
    +
    +
    +

    With a higher dimensional array the split is still along the second axis.

    +
    >>> x = np.arange(8.0).reshape(2, 2, 2)
    +>>> x
    +array([[[0., 1.],
    +        [2., 3.]],
    +       [[4., 5.],
    +        [6., 7.]]])
    +>>> np.hsplit(x, 2)
    +[array([[[0., 1.]],
    +        [[4., 5.]]]),
    + array([[[2., 3.]],
    +        [[6., 7.]]])]
    +
    +
    +

    With a 1-D array, the split is along axis 0.

    +
    >>> x = np.array([0, 1, 2, 3, 4, 5])
    +>>> np.hsplit(x, 2)
    +[array([0, 1, 2]), array([3, 4, 5])]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.hstack.html b/pull/2070/reference/generated/dpnp.hstack.html new file mode 100644 index 00000000000..4dbe073b94a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.hstack.html @@ -0,0 +1,224 @@ + + + + + + + + + + + dpnp.hstack — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.hstack

    +
    +
    +dpnp.hstack(tup, *, dtype=None, casting='same_kind')[source]
    +

    Stack arrays in sequence horizontally (column wise).

    +

    For full documentation refer to numpy.hstack.

    +
    +
    Parameters:
    +
      +
    • tup ({dpnp.ndarray, usm_ndarray}) -- The arrays must have the same shape along all but the second axis, +except 1-D arrays which can be any length.

    • +
    • dtype (str or dtype) -- If provided, the destination array will have this dtype.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) -- Controls what kind of data casting may occur. Defaults to 'same_kind'.

    • +
    +
    +
    Returns:
    +

    out -- The stacked array which has one more dimension than the input arrays.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.concatenate

    Join a sequence of arrays along an existing axis.

    +
    +
    dpnp.stack

    Join a sequence of arrays along a new axis.

    +
    +
    dpnp.vstack

    Stack arrays in sequence vertically (row wise).

    +
    +
    dpnp.dstack

    Stack arrays in sequence depth wise (along third dimension).

    +
    +
    dpnp.column_stack

    Stack 1-D arrays as columns into a 2-D array.

    +
    +
    dpnp.block

    Assemble an ndarray from nested lists of blocks.

    +
    +
    dpnp.split

    Split array into a list of multiple sub-arrays of equal size.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array((1, 2, 3))
    +>>> b = np.array((4, 5, 6))
    +>>> np.hstack((a, b))
    +array([1, 2, 3, 4, 5, 6])
    +
    +
    +
    >>> a = np.array([[1], [2], [3]])
    +>>> b = np.array([[4], [5], [6]])
    +>>> np.hstack((a, b))
    +array([[1, 4],
    +       [2, 5],
    +       [3, 6]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.hypot.html b/pull/2070/reference/generated/dpnp.hypot.html new file mode 100644 index 00000000000..bd3bf102c27 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.hypot.html @@ -0,0 +1,207 @@ + + + + + + + + + + + dpnp.hypot — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.hypot

    +
    +
    +dpnp.hypot(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the hypotenuse for a right triangle with "legs" x1_i and x2_i of +input arrays x1 and x2.

    +

    For full documentation refer to numpy.hypot.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real-valued data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real-valued data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise hypotenuse. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.reduce_hypot

    The square root of the sum of squares of elements in the input array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = 3 * np.ones((3, 3))
    +>>> x2 = 4 * np.ones((3, 3))
    +>>> np.hypot(x1, x2)
    +array([[5., 5., 5.],
    +       [5., 5., 5.],
    +       [5., 5., 5.]])
    +
    +
    +

    Example showing broadcast of scalar argument:

    +
    >>> np.hypot(x1, 4)
    +array([[ 5.,  5.,  5.],
    +       [ 5.,  5.,  5.],
    +       [ 5.,  5.,  5.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.identity.html b/pull/2070/reference/generated/dpnp.identity.html new file mode 100644 index 00000000000..15368b57e0d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.identity.html @@ -0,0 +1,243 @@ + + + + + + + + + + + dpnp.identity — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.identity

    +
    +
    +dpnp.identity(n, /, dtype=None, *, like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return the identity array.

    +

    The identity array is a square array with ones on the main diagonal.

    +

    For full documentation refer to numpy.identity.

    +
    +
    Parameters:
    +
      +
    • n (int) -- Number of rows (and columns) in n x n output.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- n x n array with its main diagonal set to one, +and all other elements 0.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is currently not supported. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.eye

    Return a 2-D array with ones on the diagonal and zeros elsewhere.

    +
    +
    dpnp.ones

    Return a new array setting values to one.

    +
    +
    dpnp.diag

    Extract a diagonal or construct a diagonal array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.identity(3)
    +array([[1.,  0.,  0.],
    +       [0.,  1.,  0.],
    +       [0.,  0.,  1.]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.identity(3) # default case
    +>>> x, x.device, x.usm_type
    +(array([[1.,  0.,  0.],
    +        [0.,  1.,  0.],
    +        [0.,  0.,  1.]]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.identity(3, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([[1.,  0.,  0.],
    +        [0.,  1.,  0.],
    +        [0.,  0.,  1.]]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.identity(3, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([[1.,  0.,  0.],
    +        [0.,  1.,  0.],
    +        [0.,  0.,  1.]]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.iinfo.html b/pull/2070/reference/generated/dpnp.iinfo.html new file mode 100644 index 00000000000..6df1e34b9a0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.iinfo.html @@ -0,0 +1,203 @@ + + + + + + + + + + + dpnp.iinfo — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.iinfo

    +
    +
    +dpnp.iinfo(dtype)[source]
    +

    Returns machine limits for integer data types.

    +

    For full documentation refer to numpy.iinfo.

    +
    +
    Parameters:
    +

    dtype (dtype, dpnp_array) -- Integer dtype or an array with integer dtype.

    +
    +
    Returns:
    +

    out -- An object with the following attributes

    +
      +
    • +
      bits: int

      number of bits occupied by the data type

      +
      +
      +
    • +
    • +
      dtype: dtype

      integer data type.

      +
      +
      +
    • +
    • +
      max: int

      largest representable number.

      +
      +
      +
    • +
    • +
      min: int

      smallest representable number.

      +
      +
      +
    • +
    +

    +
    +
    Return type:
    +

    iinfo_object

    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.imag.html b/pull/2070/reference/generated/dpnp.imag.html new file mode 100644 index 00000000000..13bcbcb80a6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.imag.html @@ -0,0 +1,228 @@ + + + + + + + + + + + dpnp.imag — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.imag

    +
    +
    +dpnp.imag(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes imaginary part of each element x_i for input array x.

    +

    For full documentation refer to numpy.imag.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise imaginary component of input. +If the input is a real-valued data type, the returned array has +the same data type. If the input is a complex floating-point +data type, the returned array has a floating-point data type +with the same floating-point precision as complex input.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.real

    Return the real part of the complex argument.

    +
    +
    dpnp.angle

    Return the angle of the complex argument.

    +
    +
    dpnp.real_if_close

    Return the real part of the input is complex with all imaginary parts close to zero.

    +
    +
    dpnp.conj

    Return the complex conjugate, element-wise.

    +
    +
    dpnp.conjugate

    Return the complex conjugate, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1+2j, 3+4j, 5+6j])
    +>>> a.imag
    +array([2., 4., 6.])
    +
    +
    +
    >>> a.imag = np.array([8, 10, 12])
    +>>> a
    +array([1. +8.j, 3.+10.j, 5.+12.j])
    +
    +
    +
    >>> np.imag(np.array(1 + 1j))
    +array(1.)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.indices.html b/pull/2070/reference/generated/dpnp.indices.html new file mode 100644 index 00000000000..5ef8c848193 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.indices.html @@ -0,0 +1,252 @@ + + + + + + + + + + + dpnp.indices — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.indices

    +
    +
    +dpnp.indices(dimensions, dtype=<class 'int'>, sparse=False, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return an array representing the indices of a grid.

    +

    Compute an array where the subarrays contain index values 0, 1, … +varying only along the corresponding axis.

    +

    For full documentation refer to numpy.indices.

    +
    +
    Parameters:
    +
      +
    • dimensions (sequence of ints) -- The shape of the grid.

    • +
    • dtype ({None, dtype}, optional) -- Data type of the result.

    • +
    • sparse ({None, boolean}, optional) -- Return a sparse representation of the grid instead of a dense +representation. Default is False.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- If sparse is False: +Returns one array of grid indices, +grid.shape = (len(dimensions),) + tuple(dimensions).

    +

    If sparse is True: +Returns a tuple of arrays, +with grid[i].shape = (1, ..., 1, dimensions[i], 1, ..., 1) +with dimensions[i] in the i-th place.

    +

    +
    +
    Return type:
    +

    one dpnp.ndarray or tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.mgrid

    Return a dense multi-dimensional “meshgrid”.

    +
    +
    dpnp.ogrid

    Return an open multi-dimensional “meshgrid”.

    +
    +
    dpnp.meshgrid

    Return a tuple of coordinate matrices from coordinate vectors.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> grid = np.indices((2, 3))
    +>>> grid.shape
    +(2, 2, 3)
    +>>> grid[0]
    +array([[0, 0, 0],
    +       [1, 1, 1]])
    +>>> grid[1]
    +array([[0, 1, 2],
    +       [0, 1, 2]])
    +
    +
    +

    The indices can be used as an index into an array.

    +
    >>> x = np.arange(20).reshape(5, 4)
    +>>> row, col = np.indices((2, 3))
    +>>> x[row, col]
    +array([[0, 1, 2],
    +       [4, 5, 6]])
    +
    +
    +

    Note that it would be more straightforward in the above example to +extract the required elements directly with x[:2, :3]. +If sparse is set to True, the grid will be returned in a sparse +representation.

    +
    >>> i, j = np.indices((2, 3), sparse=True)
    +>>> i.shape
    +(2, 1)
    +>>> j.shape
    +(1, 3)
    +>>> i
    +array([[0],
    +       [1]])
    +>>> j
    +array([[0, 1, 2]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.inner.html b/pull/2070/reference/generated/dpnp.inner.html new file mode 100644 index 00000000000..e38dcd0e135 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.inner.html @@ -0,0 +1,234 @@ + + + + + + + + + + + dpnp.inner — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.inner

    +
    +
    +dpnp.inner(a, b)[source]
    +

    Returns the inner product of two arrays.

    +

    For full documentation refer to numpy.inner.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. Both inputs a and b can not be scalars +at the same time.

    • +
    • b ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. Both inputs a and b can not be scalars +at the same time.

    • +
    +
    +
    Returns:
    +

    out -- If either a or b is a scalar, the shape of the returned arrays +matches that of the array between a and b, whichever is an array. +If a and b are both 1-D arrays then a 0-d array is returned; +otherwise an array with a shape as +out.shape = (*a.shape[:-1], *b.shape[:-1]) is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.einsum

    Einstein summation convention..

    +
    +
    dpnp.dot

    Generalized matrix product, using second last dimension of b.

    +
    +
    dpnp.tensordot

    Sum products over arbitrary axes.

    +
    +
    +
    +

    Examples

    +

    # Ordinary inner product for vectors

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3])
    +>>> b = np.array([0, 1, 0])
    +>>> np.inner(a, b)
    +array(2)
    +
    +
    +

    # Some multidimensional examples

    +
    >>> a = np.arange(24).reshape((2,3,4))
    +>>> b = np.arange(4)
    +>>> c = np.inner(a, b)
    +>>> c.shape
    +(2, 3)
    +>>> c
    +array([[ 14,  38,  62],
    +       [86, 110, 134]])
    +
    +
    +
    >>> a = np.arange(2).reshape((1,1,2))
    +>>> b = np.arange(6).reshape((3,2))
    +>>> c = np.inner(a, b)
    +>>> c.shape
    +(1, 1, 3)
    +>>> c
    +array([[[1, 3, 5]]])
    +
    +
    +

    An example where b is a scalar

    +
    >>> np.inner(np.eye(2), 7)
    +array([[7., 0.],
    +       [0., 7.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.invert.html b/pull/2070/reference/generated/dpnp.invert.html new file mode 100644 index 00000000000..62f54ccd82d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.invert.html @@ -0,0 +1,212 @@ + + + + + + + + + + + dpnp.invert — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.invert

    +
    +
    +dpnp.invert(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Inverts (flips) each bit for each element x_i of the input array x.

    +

    Note that dpnp.bitwise_invert is an alias of dpnp.invert.

    +

    For full documentation refer to numpy.invert.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have integer or boolean data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. +The data type of the returned array is same as the data type of the +input array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.bitwise_and

    Compute the bit-wise AND of two arrays element-wise.

    +
    +
    dpnp.bitwise_or

    Compute the bit-wise OR of two arrays element-wise.

    +
    +
    dpnp.bitwise_xor

    Compute the bit-wise XOR of two arrays element-wise.

    +
    +
    dpnp.logical_not

    Compute the truth value of NOT x element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([13])
    +>>> np.invert(x)
    +-14
    +
    +
    +
    >>> a = np.array([True, False])
    +>>> np.invert(a)
    +array([False,  True])
    +
    +
    +

    The ~ operator can be used as a shorthand for invert on +dpnp.ndarray.

    +
    >>> ~a
    +array([False,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isclose.html b/pull/2070/reference/generated/dpnp.isclose.html new file mode 100644 index 00000000000..900824e2bcf --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isclose.html @@ -0,0 +1,251 @@ + + + + + + + + + + + dpnp.isclose — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.isclose

    +
    +
    +dpnp.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source]
    +

    Returns a boolean array where two arrays are element-wise equal within +a tolerance.

    +

    The tolerance values are positive, typically very small numbers. The +relative difference (rtol * abs(b)) and the absolute difference atol +are added together to compare against the absolute difference between a +and b.

    +

    NaNs are treated as equal if they are in the same place and if +equal_nan=True. Infs are treated as equal if they are in the same +place and of the same sign in both arrays.

    +

    For full documentation refer to numpy.isclose.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs a and b can not be scalars at the same time.

    • +
    • b ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs a and b can not be scalars at the same time.

    • +
    • rtol ({dpnp.ndarray, usm_ndarray, scalar}, optional) -- The relative tolerance parameter. Default: 1e-05.

    • +
    • atol ({dpnp.ndarray, usm_ndarray, scalar}, optional) -- The absolute tolerance parameter. Default: 1e-08.

    • +
    • equal_nan (bool) -- Whether to compare NaNs as equal. If True, NaNs in a will +be considered equal to NaNs in b in the output array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- Returns a boolean array of where a and b are equal within the given +tolerance.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.allclose

    Returns True if two arrays are element-wise equal within a tolerance.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1e10, 1e-7])
    +>>> b = np.array([1.00001e10, 1e-8])
    +>>> np.isclose(a, b)
    +array([ True, False])
    +
    +
    +
    >>> a = np.array([1e10, 1e-8])
    +>>> b = np.array([1.00001e10, 1e-9])
    +>>> np.isclose(a, b)
    +array([ True,  True])
    +
    +
    +
    >>> a = np.array([1e10, 1e-8])
    +>>> b = np.array([1.0001e10, 1e-9])
    +>>> np.isclose(a, b)
    +array([False,  True])
    +
    +
    +
    >>> a = np.array([1.0, np.nan])
    +>>> b = np.array([1.0, np.nan])
    +>>> np.isclose(a, b)
    +array([ True, False])
    +>>> np.isclose(a, b, equal_nan=True)
    +array([ True,  True])
    +
    +
    +
    >>> a = np.array([0.0, 0.0])
    +>>> b = np.array([1e-8, 1e-7])
    +>>> np.isclose(a, b)
    +array([ True, False])
    +>>> b = np.array([1e-100, 1e-7])
    +>>> np.isclose(a, b, atol=0.0)
    +array([False, False])
    +
    +
    +
    >>> a = np.array([1e-10, 1e-10])
    +>>> b = np.array([1e-20, 0.0])
    +>>> np.isclose(a, b)
    +array([ True,  True])
    +>>> b = np.array([1e-20, 0.999999e-10])
    +>>> np.isclose(a, b, atol=0.0)
    +array([False,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.iscomplex.html b/pull/2070/reference/generated/dpnp.iscomplex.html new file mode 100644 index 00000000000..9dfff6ce0fe --- /dev/null +++ b/pull/2070/reference/generated/dpnp.iscomplex.html @@ -0,0 +1,197 @@ + + + + + + + + + + + dpnp.iscomplex — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.iscomplex

    +
    +
    +dpnp.iscomplex(x)[source]
    +

    Returns a bool array, where True if input element is complex.

    +

    What is tested is whether the input has a non-zero imaginary part, not if +the input type is complex.

    +

    For full documentation refer to numpy.iscomplex.

    +
    +
    Parameters:
    +

    x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    +
    +
    Returns:
    +

    out -- Output array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.isreal

    Returns a bool array, where True if input element is real.

    +
    +
    dpnp.iscomplexobj

    Return True if x is a complex type or an array of complex numbers.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1+1j, 1+0j, 4.5, 3, 2, 2j])
    +>>> np.iscomplex(a)
    +array([ True, False, False, False, False,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.iscomplexobj.html b/pull/2070/reference/generated/dpnp.iscomplexobj.html new file mode 100644 index 00000000000..1b4706d10fc --- /dev/null +++ b/pull/2070/reference/generated/dpnp.iscomplexobj.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.iscomplexobj — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.iscomplexobj

    +
    +
    +dpnp.iscomplexobj(x)[source]
    +

    Check for a complex type or an array of complex numbers.

    +

    The type of the input is checked, not the value. Even if the input has an +imaginary part equal to zero, dpnp.iscomplexobj evaluates to +True.

    +

    For full documentation refer to numpy.iscomplexobj.

    +
    +
    Parameters:
    +

    x (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    +
    +
    Returns:
    +

    out -- The return value, True if x is of a complex type or has at least +one complex element.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    +

    See also

    +
    +
    dpnp.isrealobj

    Return True if x is a not complex type or an array of complex numbers.

    +
    +
    dpnp.iscomplex

    Returns a bool array, where True if input element is complex.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.iscomplexobj(1)
    +False
    +>>> np.iscomplexobj(1+0j)
    +True
    +>>> np.iscomplexobj([3, 1+0j, True])
    +True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isfinite.html b/pull/2070/reference/generated/dpnp.isfinite.html new file mode 100644 index 00000000000..d6c92b52212 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isfinite.html @@ -0,0 +1,202 @@ + + + + + + + + + + + dpnp.isfinite — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.isfinite

    +
    +
    +dpnp.isfinite(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Test if each element of input array is a finite number.

    +

    For full documentation refer to numpy.isfinite.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array which is True where x is not positive infinity, +negative infinity, or NaN, False otherwise. +The data type of the returned array is bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.isinf

    Test element-wise for positive or negative infinity.

    +
    +
    dpnp.isneginf

    Test element-wise for negative infinity, return result as bool array.

    +
    +
    dpnp.isposinf

    Test element-wise for positive infinity, return result as bool array.

    +
    +
    dpnp.isnan

    Test element-wise for NaN and return result as a boolean array.

    +
    +
    +
    +

    Notes

    +

    Not a Number, positive infinity and negative infinity are considered +to be non-finite.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([-np.inf, 0., np.inf])
    +>>> np.isfinite(x)
    +array([False,  True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isinf.html b/pull/2070/reference/generated/dpnp.isinf.html new file mode 100644 index 00000000000..4960d0271d8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isinf.html @@ -0,0 +1,198 @@ + + + + + + + + + + + dpnp.isinf — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.isinf

    +
    +
    +dpnp.isinf(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Test if each element of input array is an infinity.

    +

    For full documentation refer to numpy.isinf.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array which is True where x is positive or negative infinity, +False otherwise. The data type of the returned array is bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.isneginf

    Test element-wise for negative infinity, return result as bool array.

    +
    +
    dpnp.isposinf

    Test element-wise for positive infinity, return result as bool array.

    +
    +
    dpnp.isnan

    Test element-wise for NaN and return result as a boolean array.

    +
    +
    dpnp.isfinite

    Test element-wise for finiteness.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([-np.inf, 0., np.inf])
    +>>> np.isinf(x)
    +array([ True, False,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isnan.html b/pull/2070/reference/generated/dpnp.isnan.html new file mode 100644 index 00000000000..e82586fda99 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isnan.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.isnan — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.isnan

    +
    +
    +dpnp.isnan(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Test if each element of an input array is a NaN.

    +

    For full documentation refer to numpy.isnan.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array which is True where x is NaN, False otherwise. +The data type of the returned array is bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.isinf

    Test element-wise for positive or negative infinity.

    +
    +
    dpnp.isneginf

    Test element-wise for negative infinity, return result as bool array.

    +
    +
    dpnp.isposinf

    Test element-wise for positive infinity, return result as bool array.

    +
    +
    dpnp.isfinite

    Test element-wise for finiteness.

    +
    +
    dpnp.isnat

    Test element-wise for NaT (not a time) and return result as a boolean array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([np.inf, 0., np.nan])
    +>>> np.isnan(x)
    +array([False, False,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isneginf.html b/pull/2070/reference/generated/dpnp.isneginf.html new file mode 100644 index 00000000000..83e1981f20c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isneginf.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.isneginf — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.isneginf

    +
    +
    +dpnp.isneginf(x, out=None)[source]
    +

    Test element-wise for negative infinity, return result as bool array.

    +

    For full documentation refer to numpy.isneginf.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- A location into which the result is stored. If provided, it must have a +shape that the input broadcasts to and a boolean data type. +If not provided or None, a freshly-allocated boolean array +is returned. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Boolean array of same shape as x.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.isinf

    Test element-wise for positive or negative infinity.

    +
    +
    dpnp.isposinf

    Test element-wise for positive infinity, return result as bool array.

    +
    +
    dpnp.isnan

    Test element-wise for NaN and return result as a boolean array.

    +
    +
    dpnp.isfinite

    Test element-wise for finiteness.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array(np.inf)
    +>>> np.isneginf(-x)
    +array(True)
    +>>> np.isneginf(x)
    +array(False)
    +
    +
    +
    >>> x = np.array([-np.inf, 0., np.inf])
    +>>> np.isneginf(x)
    +array([ True, False, False])
    +
    +
    +
    >>> x = np.array([-np.inf, 0., np.inf])
    +>>> y = np.zeros(x.shape, dtype='bool')
    +>>> np.isneginf(x, y)
    +array([ True, False, False])
    +>>> y
    +array([ True, False, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isposinf.html b/pull/2070/reference/generated/dpnp.isposinf.html new file mode 100644 index 00000000000..257a2427112 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isposinf.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.isposinf — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.isposinf

    +
    +
    +dpnp.isposinf(x, out=None)[source]
    +

    Test element-wise for positive infinity, return result as bool array.

    +

    For full documentation refer to numpy.isposinf.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- A location into which the result is stored. If provided, it must have a +shape that the input broadcasts to and a boolean data type. +If not provided or None, a freshly-allocated boolean array +is returned. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Boolean array of same shape as x.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.isinf

    Test element-wise for positive or negative infinity.

    +
    +
    dpnp.isneginf

    Test element-wise for negative infinity, return result as bool array.

    +
    +
    dpnp.isnan

    Test element-wise for NaN and return result as a boolean array.

    +
    +
    dpnp.isfinite

    Test element-wise for finiteness.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array(np.inf)
    +>>> np.isposinf(x)
    +array(True)
    +>>> np.isposinf(-x)
    +array(False)
    +
    +
    +
    >>> x = np.array([-np.inf, 0., np.inf])
    +>>> np.isposinf(x)
    +array([False, False,  True])
    +
    +
    +
    >>> x = np.array([-np.inf, 0., np.inf])
    +>>> y = np.zeros(x.shape, dtype='bool')
    +>>> np.isposinf(x, y)
    +array([False, False,  True])
    +>>> y
    +array([False, False,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isreal.html b/pull/2070/reference/generated/dpnp.isreal.html new file mode 100644 index 00000000000..bb966e50a71 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isreal.html @@ -0,0 +1,197 @@ + + + + + + + + + + + dpnp.isreal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.isreal

    +
    +
    +dpnp.isreal(x)[source]
    +

    Returns a bool array, where True if input element is real.

    +

    If element has complex type with zero imaginary part, the return value +for that element is True.

    +

    For full documentation refer to numpy.isreal.

    +
    +
    Parameters:
    +

    x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    +
    +
    Returns:
    +

    out -- Boolean array of same shape as x.

    +
    +
    Return type:
    +

    : dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.iscomplex

    Returns a bool array, where True if input element is complex.

    +
    +
    dpnp.isrealobj

    Return True if x is not a complex type.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1+1j, 1+0j, 4.5, 3, 2, 2j])
    +>>> np.isreal(a)
    +array([False,  True,  True,  True,  True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isrealobj.html b/pull/2070/reference/generated/dpnp.isrealobj.html new file mode 100644 index 00000000000..327ed37476c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isrealobj.html @@ -0,0 +1,205 @@ + + + + + + + + + + + dpnp.isrealobj — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.isrealobj

    +
    +
    +dpnp.isrealobj(x)[source]
    +

    Return True if x is a not complex type or an array of complex numbers.

    +

    The type of the input is checked, not the value. So even if the input has +an imaginary part equal to zero, dpnp.isrealobj evaluates to +False if the data type is complex.

    +

    For full documentation refer to numpy.isrealobj.

    +
    +
    Parameters:
    +

    x (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    +
    +
    Returns:
    +

    out -- The return value, False if x is of a complex type.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    +

    See also

    +
    +
    dpnp.iscomplexobj

    Check for a complex type or an array of complex numbers.

    +
    +
    dpnp.isreal

    Returns a bool array, where True if input element is real.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.isrealobj(False)
    +True
    +>>> np.isrealobj(1)
    +True
    +>>> np.isrealobj(1+0j)
    +False
    +>>> np.isrealobj([3, 1+0j, True])
    +False
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.isscalar.html b/pull/2070/reference/generated/dpnp.isscalar.html new file mode 100644 index 00000000000..da920be96e1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.isscalar.html @@ -0,0 +1,193 @@ + + + + + + + + + + + dpnp.isscalar — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.isscalar

    +
    +
    +dpnp.isscalar(element)[source]
    +

    Returns True if the type of element is a scalar type.

    +

    For full documentation refer to numpy.isscalar.

    +
    +
    Parameters:
    +

    element (any) -- Input argument, can be of any type and shape.

    +
    +
    Returns:
    +

    out -- True if element is a scalar type, False if it is not.

    +
    +
    Return type:
    +

    bool

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.isscalar(3.1)
    +True
    +>>> np.isscalar(np.array(3.1))
    +False
    +>>> np.isscalar([3.1])
    +False
    +>>> np.isscalar(False)
    +True
    +>>> np.isscalar("dpnp")
    +True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.issubdtype.html b/pull/2070/reference/generated/dpnp.issubdtype.html new file mode 100644 index 00000000000..7fb83d0158d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.issubdtype.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.issubdtype — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.issubdtype

    +
    +
    +dpnp.issubdtype(arg1, arg2)[source]
    +

    Returns True if the first argument is a type code lower/equal +in type hierarchy.

    +

    For full documentation refer to numpy.issubdtype.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ix_.html b/pull/2070/reference/generated/dpnp.ix_.html new file mode 100644 index 00000000000..14ee284097b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ix_.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.ix_ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ix_

    +
    +
    +dpnp.ix_(*args)[source]
    +

    Construct an open mesh from multiple sequences.

    +

    This function takes N 1-D sequences and returns N outputs with N +dimensions each, such that the shape is 1 in all but one dimension +and the dimension with the non-unit shape value cycles through all +N dimensions.

    +

    Using dpnp.ix_ one can quickly construct index arrays that will +index the cross product. a[dpnp.ix_([1,3],[2,5])] returns the array +[[a[1,2] a[1,5]], [a[3,2] a[3,5]]].

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray}) -- 1-D sequences. Each sequence should be of integer or boolean type. +Boolean sequences will be interpreted as boolean masks for the +corresponding dimension (equivalent to passing in +dpnp.nonzero(boolean_sequence)).

    • +
    • x2 ({dpnp.ndarray, usm_ndarray}) -- 1-D sequences. Each sequence should be of integer or boolean type. +Boolean sequences will be interpreted as boolean masks for the +corresponding dimension (equivalent to passing in +dpnp.nonzero(boolean_sequence)).

    • +
    • ... ({dpnp.ndarray, usm_ndarray}) -- 1-D sequences. Each sequence should be of integer or boolean type. +Boolean sequences will be interpreted as boolean masks for the +corresponding dimension (equivalent to passing in +dpnp.nonzero(boolean_sequence)).

    • +
    • xn ({dpnp.ndarray, usm_ndarray}) -- 1-D sequences. Each sequence should be of integer or boolean type. +Boolean sequences will be interpreted as boolean masks for the +corresponding dimension (equivalent to passing in +dpnp.nonzero(boolean_sequence)).

    • +
    +
    +
    Returns:
    +

    out -- N arrays with N dimensions each, with N the number of input sequences. +Together these arrays form an open mesh.

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.mgrid

    Return a dense multi-dimensional “meshgrid”.

    +
    +
    dpnp.ogrid

    Return an open multi-dimensional “meshgrid”.

    +
    +
    dpnp.meshgrid

    Return a tuple of coordinate matrices from coordinate vectors.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(10).reshape(2, 5)
    +>>> a
    +array([[0, 1, 2, 3, 4],
    +       [5, 6, 7, 8, 9]])
    +>>> x1 = np.array([0, 1])
    +>>> x2 = np.array([2, 4])
    +>>> ixgrid = np.ix_(x1, x2)
    +>>> ixgrid
    +(array([[0],
    +       [1]]), array([[2, 4]]))
    +>>> ixgrid[0].shape, ixgrid[1].shape
    +((2, 1), (1, 2))
    +>>> a[ixgrid]
    +array([[2, 4],
    +       [7, 9]])
    +
    +
    +
    >>> x1 = np.array([True, True])
    +>>> x2 = np.array([2, 4])
    +>>> ixgrid = np.ix_(x1, x2)
    +>>> a[ixgrid]
    +array([[2, 4],
    +       [7, 9]])
    +>>> x1 = np.array([True, True])
    +>>> x2 = np.array([False, False, True, False, True])
    +>>> ixgrid = np.ix_(x1, x2)
    +>>> a[ixgrid]
    +array([[2, 4],
    +       [7, 9]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.kron.html b/pull/2070/reference/generated/dpnp.kron.html new file mode 100644 index 00000000000..0677b88bbc2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.kron.html @@ -0,0 +1,224 @@ + + + + + + + + + + + dpnp.kron — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.kron

    +
    +
    +dpnp.kron(a, b)[source]
    +

    Kronecker product of two arrays.

    +

    Computes the Kronecker product, a composite array made of blocks of the +second array scaled by the first.

    +

    For full documentation refer to numpy.kron.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. Both inputs a and b can not be scalars +at the same time.

    • +
    • b ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. Both inputs a and b can not be scalars +at the same time.

    • +
    +
    +
    Returns:
    +

    out -- Returns the Kronecker product.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.outer

    Returns the outer product of two arrays.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 10, 100])
    +>>> b = np.array([5, 6, 7])
    +>>> np.kron(a, b)
    +array([  5,   6,   7, ..., 500, 600, 700])
    +>>> np.kron(b, a)
    +array([  5,  50, 500, ...,   7,  70, 700])
    +
    +
    +
    >>> np.kron(np.eye(2), np.ones((2,2)))
    +array([[1.,  1.,  0.,  0.],
    +       [1.,  1.,  0.,  0.],
    +       [0.,  0.,  1.,  1.],
    +       [0.,  0.,  1.,  1.]])
    +
    +
    +
    >>> a = np.arange(100).reshape((2,5,2,5))
    +>>> b = np.arange(24).reshape((2,3,4))
    +>>> c = np.kron(a,b)
    +>>> c.shape
    +(2, 10, 6, 20)
    +>>> I = (1,3,0,2)
    +>>> J = (0,2,1)
    +>>> J1 = (0,) + J             # extend to ndim=4
    +>>> S1 = (1,) + b.shape
    +>>> K = tuple(np.array(I) * np.array(S1) + np.array(J1))
    +>>> c[K] == a[I]*b[J]
    +array(True)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.left_shift.html b/pull/2070/reference/generated/dpnp.left_shift.html new file mode 100644 index 00000000000..a6c497ff9c4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.left_shift.html @@ -0,0 +1,207 @@ + + + + + + + + + + + dpnp.left_shift — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.left_shift

    +
    +
    +dpnp.left_shift(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Shifts the bits of each element x1_i of the input array x1 to the left by +appending x2_i (i.e., the respective element in the input array x2) zeros to +the right of x1_i.

    +

    Note that dpnp.bitwise_left_shift is an alias of dpnp.left_shift.

    +

    For full documentation refer to numpy.left_shift.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have integer data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have integer data type. +Each element must be greater than or equal to 0. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.right_shift

    Shift the bits of an integer to the right.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([5])
    +>>> x2 = np.array([1, 2, 3])
    +>>> np.left_shift(x1, x2)
    +array([10, 20, 40])
    +
    +
    +

    The << operator can be used as a shorthand for left_shift on +dpnp.ndarray.

    +
    >>> x1 << x2
    +array([10, 20, 40])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.less.html b/pull/2070/reference/generated/dpnp.less.html new file mode 100644 index 00000000000..b1bf92af6b9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.less.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.less — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.less

    +
    +
    +dpnp.less(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the less-than test results for each element x1_i of +the input array x1 with the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.less.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise less-than comparison. +The returned array has a data type of bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.greater

    Return the truth value of (x1 > x2) element-wise.

    +
    +
    dpnp.less_equal

    Return the truth value of (x1 =< x2) element-wise.

    +
    +
    dpnp.greater_equal

    Return the truth value of (x1 >= x2) element-wise.

    +
    +
    dpnp.equal

    Return (x1 == x2) element-wise.

    +
    +
    dpnp.not_equal

    Return (x1 != x2) element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([1, 2])
    +>>> x2 = np.array([2, 2])
    +>>> np.less(x1, x2)
    +array([ True, False])
    +
    +
    +

    The < operator can be used as a shorthand for less on +dpnp.ndarray.

    +
    >>> a = np.array([1, 2])
    +>>> b = np.array([2, 2])
    +>>> a < b
    +array([ True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.less_equal.html b/pull/2070/reference/generated/dpnp.less_equal.html new file mode 100644 index 00000000000..12e22b10ce0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.less_equal.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.less_equal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.less_equal

    +
    +
    +dpnp.less_equal(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the less-than or equal-to test results for each element x1_i of +the input array x1 with the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.less_equal.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise less-than or equal-to +comparison. The returned array has a data type of bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.greater

    Return the truth value of (x1 > x2) element-wise.

    +
    +
    dpnp.less

    Return the truth value of (x1 < x2) element-wise.

    +
    +
    dpnp.greater_equal

    Return the truth value of (x1 >= x2) element-wise.

    +
    +
    dpnp.equal

    Return (x1 == x2) element-wise.

    +
    +
    dpnp.not_equal

    Return (x1 != x2) element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([4, 2, 1])
    +>>> x2 = np.array([2, 2, 2]
    +>>> np.less_equal(x1, x2)
    +array([False,  True,  True])
    +
    +
    +

    The <= operator can be used as a shorthand for less_equal on +dpnp.ndarray.

    +
    >>> a = np.array([4, 2, 1])
    +>>> b = np.array([2, 2, 2])
    +>>> a <= b
    +array([False,  True,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.cholesky.html b/pull/2070/reference/generated/dpnp.linalg.cholesky.html new file mode 100644 index 00000000000..ee7ad101513 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.cholesky.html @@ -0,0 +1,214 @@ + + + + + + + + + + + dpnp.linalg.cholesky — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.cholesky

    +
    +
    +dpnp.linalg.cholesky(a, upper=False)[source]
    +

    Cholesky decomposition.

    +

    Return the lower or upper Cholesky decomposition, L * L.H or +U.H * U, of the square matrix a, where L is lower-triangular, +U is upper-triangular, and .H is the conjugate transpose operator +(which is the ordinary transpose if a is real-valued). a must be +Hermitian (symmetric if real-valued) and positive-definite. No checking is +performed to verify whether a is Hermitian or not. In addition, only +the lower or upper-triangular and diagonal elements of a are used. +Only L or U is actually returned.

    +

    For full documentation refer to numpy.linalg.cholesky.

    +
    +
    Parameters:
    +
      +
    • a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- Hermitian (symmetric if all elements are real), positive-definite +input matrix.

    • +
    • upper ({bool}, optional) -- If True, the result must be the upper-triangular Cholesky factor. +If False, the result must be the lower-triangular Cholesky factor. +Default: False.

    • +
    +
    +
    Returns:
    +

    L -- Lower or upper-triangular Cholesky factor of a.

    +
    +
    Return type:
    +

    (..., M, M) dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> A = np.array([[1.0, 2.0],[2.0, 5.0]])
    +>>> A
    +array([[1., 2.],
    +       [2., 5.]])
    +>>> L = np.linalg.cholesky(A)
    +>>> L
    +array([[1., 0.],
    +       [2., 1.]])
    +>>> np.dot(L, L.T.conj()) # verify that L * L.H = A
    +array([[1., 2.],
    +       [2., 5.]])
    +
    +
    +

    The upper-triangular Cholesky factor can also be obtained:

    +
    >>> np.linalg.cholesky(A, upper=True)
    +array([[ 1.+0.j, -0.-2.j],
    +       [ 0.+0.j,  1.+0.j]]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.cond.html b/pull/2070/reference/generated/dpnp.linalg.cond.html new file mode 100644 index 00000000000..824204fc615 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.cond.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.linalg.cond — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.cond

    +
    +
    +dpnp.linalg.cond(x, p=None)[source]
    +

    Compute the condition number of a matrix.

    +

    For full documentation refer to numpy.linalg.cond.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- The matrix whose condition number is sought.

    • +
    • p ({None, 1, -1, 2, -2, inf, -inf, "fro"}, optional) -- Order of the norm used in the condition number computation. +inf means the dpnp.inf object, and the Frobenius norm is +the root-of-sum-of-squares norm. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The condition number of the matrix. May be infinite.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.linalg.norm

    Matrix or vector norm.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 0, -1], [0, 1, 0], [1, 0, 1]])
    +>>> a
    +array([[ 1,  0, -1],
    +       [ 0,  1,  0],
    +       [ 1,  0,  1]])
    +>>> np.linalg.cond(a)
    +array(1.41421356)
    +>>> np.linalg.cond(a, 'fro')
    +array(3.16227766)
    +>>> np.linalg.cond(a, np.inf)
    +array(2.)
    +>>> np.linalg.cond(a, -np.inf)
    +array(1.)
    +>>> np.linalg.cond(a, 1)
    +array(2.)
    +>>> np.linalg.cond(a, -1)
    +array(1.)
    +>>> np.linalg.cond(a, 2)
    +array(1.41421356)
    +>>> np.linalg.cond(a, -2)
    +array(0.70710678) # may vary
    +>>> x = min(np.linalg.svd(a, compute_uv=False))
    +>>> y = min(np.linalg.svd(np.linalg.inv(a), compute_uv=False))
    +>>> x * y
    +array(0.70710678) # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.det.html b/pull/2070/reference/generated/dpnp.linalg.det.html new file mode 100644 index 00000000000..f8a44beec33 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.det.html @@ -0,0 +1,202 @@ + + + + + + + + + + + dpnp.linalg.det — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.det

    +
    +
    +dpnp.linalg.det(a)[source]
    +

    Compute the determinant of an array.

    +

    For full documentation refer to numpy.linalg.det.

    +
    +
    Parameters:
    +

    a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- Input array to compute determinants for.

    +
    +
    Returns:
    +

    det -- Determinant of a.

    +
    +
    Return type:
    +

    (...) dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.linalg.slogdet

    Returns sign and logarithm of the determinant of an array.

    +
    +
    +
    +

    Examples

    +

    The determinant of a 2-D array [[a, b], [c, d]] is ad - bc:

    +
    >>> import dpnp as dp
    +>>> a = dp.array([[1, 2], [3, 4]])
    +>>> dp.linalg.det(a)
    +array(-2.)
    +
    +
    +

    Computing determinants for a stack of matrices:

    +
    >>> a = dp.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])
    +>>> a.shape
    +(3, 2, 2)
    +>>> dp.linalg.det(a)
    +array([-2., -3., -8.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.eig.html b/pull/2070/reference/generated/dpnp.linalg.eig.html new file mode 100644 index 00000000000..55ac0700523 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.eig.html @@ -0,0 +1,247 @@ + + + + + + + + + + + dpnp.linalg.eig — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.eig

    +
    +
    +dpnp.linalg.eig(a)[source]
    +

    Compute the eigenvalues and right eigenvectors of a square array.

    +

    For full documentation refer to numpy.linalg.eig.

    +
    +
    Parameters:
    +

    a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- Matrices for which the eigenvalues and right eigenvectors will +be computed.

    +
    +
    Returns:
    +

      +
    • eigenvalues ((..., M) dpnp.ndarray) -- The eigenvalues, each repeated according to its multiplicity. +The eigenvalues are not necessarily ordered. The resulting +array will be of complex type, unless the imaginary part is +zero in which case it will be cast to a real type. When a +is real the resulting eigenvalues will be real (0 imaginary +part) or occur in conjugate pairs

    • +
    • eigenvectors ((..., M, M) dpnp.ndarray) -- The normalized (unit "length") eigenvectors, such that the +column v[:,i] is the eigenvector corresponding to the +eigenvalue w[i].

    • +
    +

    +
    +
    +
    +

    Note

    +

    Since there is no proper OneMKL LAPACK function, DPNP will calculate +through a fallback on NumPy call.

    +
    +
    +

    See also

    +
    +
    dpnp.linalg.eigvals

    Compute the eigenvalues of a general matrix.

    +
    +
    dpnp.linalg.eigh

    Return the eigenvalues and eigenvectors of a complex Hermitian (conjugate symmetric) or a real symmetric matrix.

    +
    +
    dpnp.linalg.eigvalsh

    Compute the eigenvalues of a complex Hermitian or real symmetric matrix.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> from dpnp import linalg as LA
    +
    +
    +

    (Almost) trivial example with real eigenvalues and eigenvectors.

    +
    >>> w, v = LA.eig(np.diag((1, 2, 3)))
    +>>> w, v
    +(array([1., 2., 3.]),
    + array([[1., 0., 0.],
    +        [0., 1., 0.],
    +        [0., 0., 1.]]))
    +
    +
    +

    Real matrix possessing complex eigenvalues and eigenvectors; +note that the eigenvalues are complex conjugates of each other.

    +
    >>> w, v = LA.eig(np.array([[1, -1], [1, 1]]))
    +>>> w, v
    +(array([1.+1.j, 1.-1.j]),
    + array([[0.70710678+0.j        , 0.70710678-0.j        ],
    +        [0.        -0.70710678j, 0.        +0.70710678j]]))
    +
    +
    +

    Complex-valued matrix with real eigenvalues (but complex-valued +eigenvectors); note that a.conj().T == a, i.e., a is Hermitian.

    +
    >>> a = np.array([[1, 1j], [-1j, 1]])
    +>>> w, v = LA.eig(a)
    +>>> w, v
    +(array([2.+0.j, 0.+0.j]),
    + array([[ 0.        +0.70710678j,  0.70710678+0.j        ], # may vary
    +        [ 0.70710678+0.j        , -0.        +0.70710678j]])
    +
    +
    +

    Be careful about round-off error!

    +
    >>> a = np.array([[1 + 1e-9, 0], [0, 1 - 1e-9]])
    +>>> # Theor. eigenvalues are 1 +/- 1e-9
    +>>> w, v = LA.eig(a)
    +>>> w, v
    +(array([1., 1.]),
    + array([[1., 0.],
    +        [0., 1.]]))
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.eigh.html b/pull/2070/reference/generated/dpnp.linalg.eigh.html new file mode 100644 index 00000000000..eaeee820034 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.eigh.html @@ -0,0 +1,220 @@ + + + + + + + + + + + dpnp.linalg.eigh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.eigh

    +
    +
    +dpnp.linalg.eigh(a, UPLO='L')[source]
    +

    Return the eigenvalues and eigenvectors of a complex Hermitian +(conjugate symmetric) or a real symmetric matrix.

    +

    Returns two objects, a 1-D array containing the eigenvalues of a, and +a 2-D square array or matrix (depending on the input type) of the +corresponding eigenvectors (in columns).

    +

    For full documentation refer to numpy.linalg.eigh.

    +
    +
    Parameters:
    +
      +
    • a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- A complex- or real-valued array whose eigenvalues and eigenvectors are +to be computed.

    • +
    • UPLO ({"L", "U"}, optional) -- Specifies the calculation uses either the lower ("L") or upper ("U") +triangular part of the matrix. +Regardless of this choice, only the real parts of the diagonal are +considered to preserve the Hermite matrix property. +It therefore follows that the imaginary part of the diagonal +will always be treated as zero. +Default: "L".

    • +
    +
    +
    Returns:
    +

      +
    • w ((..., M) dpnp.ndarray) -- The eigenvalues in ascending order, each repeated according to +its multiplicity.

    • +
    • v ((..., M, M) dpnp.ndarray) -- The column v[:, i] is the normalized eigenvector corresponding +to the eigenvalue w[i].

    • +
    +

    +
    +
    +
    +

    See also

    +
    +
    dpnp.linalg.eigvalsh

    Compute the eigenvalues of a complex Hermitian or real symmetric matrix.

    +
    +
    dpnp.linalg.eig

    Compute the eigenvalues and right eigenvectors of a square array.

    +
    +
    dpnp.linalg.eigvals

    Compute the eigenvalues of a general matrix.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as dp
    +>>> a = dp.array([[1, -2j], [2j, 5]])
    +>>> a
    +array([[ 1.+0.j, -0.-2.j],
    +       [ 0.+2.j,  5.+0.j]])
    +>>> w, v = dp.linalg.eigh(a)
    +>>> w; v
    +array([0.17157288, 5.82842712]),
    +array([[-0.92387953-0.j        , -0.38268343+0.j        ], # may vary
    +       [ 0.        +0.38268343j,  0.        -0.92387953j]]))
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.eigvals.html b/pull/2070/reference/generated/dpnp.linalg.eigvals.html new file mode 100644 index 00000000000..69e3587f814 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.eigvals.html @@ -0,0 +1,223 @@ + + + + + + + + + + + dpnp.linalg.eigvals — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.eigvals

    +
    +
    +dpnp.linalg.eigvals(a)[source]
    +

    Compute the eigenvalues of a general matrix.

    +

    For full documentation refer to numpy.linalg.eigvals.

    +
    +
    Parameters:
    +

    a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- A complex- or real-valued matrix whose eigenvalues will be computed.

    +
    +
    Returns:
    +

    w -- The eigenvalues, each repeated according to its multiplicity. +They are not necessarily ordered, nor are they necessarily +real for real matrices.

    +
    +
    Return type:
    +

    (..., M) dpnp.ndarray

    +
    +
    +
    +

    Note

    +

    Since there is no proper OneMKL LAPACK function, DPNP will calculate +through a fallback on NumPy call.

    +
    +
    +

    See also

    +
    +
    dpnp.linalg.eig

    Compute the eigenvalues and right eigenvectors of a square array.

    +
    +
    dpnp.linalg.eigvalsh

    Compute the eigenvalues of a complex Hermitian or real symmetric matrix.

    +
    +
    dpnp.linalg.eigh

    Return the eigenvalues and eigenvectors of a complex Hermitian (conjugate symmetric) or a real symmetric matrix.

    +
    +
    +
    +

    Examples

    +

    Illustration, using the fact that the eigenvalues of a diagonal matrix +are its diagonal elements, that multiplying a matrix on the left +by an orthogonal matrix, Q, and on the right by Q.T (the transpose +of Q), preserves the eigenvalues of the "middle" matrix. In other words, +if Q is orthogonal, then Q * A * Q.T has the same eigenvalues as +A:

    +
    >>> import dpnp as np
    +>>> from dpnp import linalg as LA
    +>>> x = np.random.random()
    +>>> Q = np.array([[np.cos(x), -np.sin(x)], [np.sin(x), np.cos(x)]])
    +>>> LA.norm(Q[0, :]), LA.norm(Q[1, :]), np.dot(Q[0, :],Q[1, :])
    +(array(1.), array(1.), array(0.))
    +
    +
    +

    Now multiply a diagonal matrix by Q on one side and by Q.T on the +other:

    +
    >>> D = np.diag((-1,1))
    +>>> LA.eigvals(D)
    +array([-1.,  1.])
    +>>> A = np.dot(Q, D)
    +>>> A = np.dot(A, Q.T)
    +>>> LA.eigvals(A)
    +array([-1.,  1.]) # random
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.eigvalsh.html b/pull/2070/reference/generated/dpnp.linalg.eigvalsh.html new file mode 100644 index 00000000000..3724e9d0bd7 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.eigvalsh.html @@ -0,0 +1,210 @@ + + + + + + + + + + + dpnp.linalg.eigvalsh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.eigvalsh

    +
    +
    +dpnp.linalg.eigvalsh(a, UPLO='L')[source]
    +

    Compute the eigenvalues of a complex Hermitian or real symmetric matrix.

    +

    Main difference from dpnp.linalg.eigh: the eigenvectors are not +computed.

    +

    For full documentation refer to numpy.linalg.eigvalsh.

    +
    +
    Parameters:
    +
      +
    • a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- A complex- or real-valued array whose eigenvalues are to be computed.

    • +
    • UPLO ({"L", "U"}, optional) -- Specifies the calculation uses either the lower ("L") or upper ("U") +triangular part of the matrix. +Regardless of this choice, only the real parts of the diagonal are +considered to preserve the Hermite matrix property. +It therefore follows that the imaginary part of the diagonal +will always be treated as zero. +Default: "L".

    • +
    +
    +
    Returns:
    +

    w -- The eigenvalues in ascending order, each repeated according to +its multiplicity.

    +
    +
    Return type:
    +

    (..., M) dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.linalg.eigh

    Return the eigenvalues and eigenvectors of a complex Hermitian (conjugate symmetric) or a real symmetric matrix.

    +
    +
    dpnp.linalg.eigvals

    Compute the eigenvalues of a general matrix.

    +
    +
    dpnp.linalg.eig

    Compute the eigenvalues and right eigenvectors of a general matrix.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> from dpnp import linalg as LA
    +>>> a = np.array([[1, -2j], [2j, 5]])
    +>>> LA.eigvalsh(a)
    +array([0.17157288, 5.82842712])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.inv.html b/pull/2070/reference/generated/dpnp.linalg.inv.html new file mode 100644 index 00000000000..368019ef835 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.inv.html @@ -0,0 +1,209 @@ + + + + + + + + + + + dpnp.linalg.inv — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.inv

    +
    +
    +dpnp.linalg.inv(a)[source]
    +

    Compute the (multiplicative) inverse of a matrix.

    +

    Given a square matrix a, return the matrix ainv satisfying +dot(a, ainv) = dot(ainv, a) = eye(a.shape[0]).

    +

    For full documentation refer to numpy.linalg.inv.

    +
    +
    Parameters:
    +

    a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- Matrix to be inverted.

    +
    +
    Returns:
    +

    out -- (Multiplicative) inverse of the matrix a.

    +
    +
    Return type:
    +

    (..., M, M) dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.linalg.cond

    Compute the condition number of a matrix.

    +
    +
    dpnp.linalg.svd

    Compute the singular value decomposition.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1., 2.], [3., 4.]])
    +>>> ainv = np.linalg.inv(a)
    +>>> np.allclose(np.dot(a, ainv), np.eye(2))
    +array([ True])
    +>>> np.allclose(np.dot(ainv, a), np.eye(2))
    +array([ True])
    +
    +
    +

    Inverses of several matrices can be computed at once:

    +
    >>> a = np.array([[[1., 2.], [3., 4.]], [[1, 3], [3, 5]]])
    +>>> np.linalg.inv(a)
    +array([[[-2.  ,  1.  ],
    +        [ 1.5 , -0.5 ]],
    +       [[-1.25,  0.75],
    +        [ 0.75, -0.25]]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.lstsq.html b/pull/2070/reference/generated/dpnp.linalg.lstsq.html new file mode 100644 index 00000000000..f95e2179a30 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.lstsq.html @@ -0,0 +1,223 @@ + + + + + + + + + + + dpnp.linalg.lstsq — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.lstsq

    +
    +
    +dpnp.linalg.lstsq(a, b, rcond=None)[source]
    +

    Return the least-squares solution to a linear matrix equation.

    +

    For full documentation refer to numpy.linalg.lstsq.

    +
    +
    Parameters:
    +
      +
    • a ((M, N) {dpnp.ndarray, usm_ndarray}) -- "Coefficient" matrix.

    • +
    • b ({(M,), (M, K)} {dpnp.ndarray, usm_ndarray}) -- Ordinate or "dependent variable" values. +If b is two-dimensional, the least-squares solution +is calculated for each of the K columns of b.

    • +
    • rcond ({None, int, float}, optional) -- Cut-off ratio for small singular values of a. +For the purposes of rank determination, singular values are treated as +zero if they are smaller than rcond times the largest singular value +of a. +The default uses the machine precision times max(M, N). Passing +-1 will use machine precision. +Default: None.

    • +
    +
    +
    Returns:
    +

      +
    • x ({(N,), (N, K)} dpnp.ndarray) -- Least-squares solution. If b is two-dimensional, +the solutions are in the K columns of x.

    • +
    • residuals ({(1,), (K,), (0,)} dpnp.ndarray) -- Sums of squared residuals: Squared Euclidean 2-norm for each column in +b - a @ x. +If the rank of a is < N or M <= N, this is an empty array. +If b is 1-dimensional, this is a (1,) shape array. +Otherwise the shape is (K,).

    • +
    • rank (int) -- Rank of matrix a.

    • +
    • s ((min(M, N),) dpnp.ndarray) -- Singular values of a.

    • +
    +

    +
    +
    +

    Examples

    +

    Fit a line, y = mx + c, through some noisy data-points:

    +
    >>> import dpnp as np
    +>>> x = np.array([0, 1, 2, 3])
    +>>> y = np.array([-1, 0.2, 0.9, 2.1])
    +
    +
    +

    By examining the coefficients, we see that the line should have a +gradient of roughly 1 and cut the y-axis at, more or less, -1.

    +

    We can rewrite the line equation as y = Ap, where A = [[x 1]] +and p = [[m], [c]]. Now use lstsq to solve for p:

    +
    >>> A = np.vstack([x, np.ones(len(x))]).T
    +>>> A
    +array([[0., 1.],
    +       [1., 1.],
    +       [2., 1.],
    +       [3., 1.]])
    +
    +
    +
    >>> m, c = np.linalg.lstsq(A, y, rcond=None)[0]
    +>>> m, c
    +(array(1.), array(-0.95)) # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.matrix_power.html b/pull/2070/reference/generated/dpnp.linalg.matrix_power.html new file mode 100644 index 00000000000..0d09b0032a5 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.matrix_power.html @@ -0,0 +1,216 @@ + + + + + + + + + + + dpnp.linalg.matrix_power — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.matrix_power

    +
    +
    +dpnp.linalg.matrix_power(a, n)[source]
    +

    Raise a square matrix to the (integer) power n.

    +

    For full documentation refer to numpy.linalg.matrix_power.

    +
    +
    Parameters:
    +
      +
    • a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- Matrix to be "powered".

    • +
    • n (int) -- The exponent can be any integer or long integer, positive, negative, +or zero.

    • +
    +
    +
    Returns:
    +

    a**n -- The return value is the same shape and type as M; +if the exponent is positive or zero then the type of the +elements is the same as those of M. If the exponent is +negative the elements are floating-point.

    +
    +
    Return type:
    +

    (..., M, M) dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> i = np.array([[0, 1], [-1, 0]]) # matrix equiv. of the imaginary unit
    +>>> np.linalg.matrix_power(i, 3) # should = -i
    +array([[ 0, -1],
    +       [ 1,  0]])
    +>>> np.linalg.matrix_power(i, 0)
    +array([[1, 0],
    +       [0, 1]])
    +>>> np.linalg.matrix_power(i, -3) # should 1/(-i) = i, but w/ f.p. elements
    +array([[ 0.,  1.],
    +       [-1.,  0.]])
    +
    +
    +

    Somewhat more sophisticated example

    +
    >>> q = np.zeros((4, 4))
    +>>> q[0:2, 0:2] = -i
    +>>> q[2:4, 2:4] = i
    +>>> q # one of the three quaternion units not equal to 1
    +array([[ 0., -1.,  0.,  0.],
    +       [ 1.,  0.,  0.,  0.],
    +       [ 0.,  0.,  0.,  1.],
    +       [ 0.,  0., -1.,  0.]])
    +>>> np.linalg.matrix_power(q, 2) # = -np.eye(4)
    +array([[-1.,  0.,  0.,  0.],
    +       [ 0., -1.,  0.,  0.],
    +       [ 0.,  0., -1.,  0.],
    +       [ 0.,  0.,  0., -1.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.matrix_rank.html b/pull/2070/reference/generated/dpnp.linalg.matrix_rank.html new file mode 100644 index 00000000000..71d617e3f53 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.matrix_rank.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.linalg.matrix_rank — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.matrix_rank

    +
    +
    +dpnp.linalg.matrix_rank(A, tol=None, hermitian=False)[source]
    +

    Return matrix rank of array using SVD method.

    +

    Rank of the array is the number of singular values of the array that are +greater than tol.

    +
    +
    Parameters:
    +
      +
    • A ({(M,), (..., M, N)} {dpnp.ndarray, usm_ndarray}) -- Input vector or stack of matrices.

    • +
    • tol ((...) {float, dpnp.ndarray, usm_ndarray}, optional) -- Threshold below which SVD values are considered zero. If tol is +None, and S is an array with singular values for M, and +eps is the epsilon value for datatype of S, then tol is +set to S.max() * max(M.shape) * eps. +Default: None.

    • +
    • hermitian (bool, optional) -- If True, A is assumed to be Hermitian (symmetric if real-valued), +enabling a more efficient method for finding singular values. +Default: False.

    • +
    +
    +
    Returns:
    +

    rank -- Rank of A.

    +
    +
    Return type:
    +

    (...) dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.linalg.svd

    Singular Value Decomposition.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> from dpnp.linalg import matrix_rank
    +>>> matrix_rank(np.eye(4)) # Full rank matrix
    +array(4)
    +>>> I=np.eye(4); I[-1,-1] = 0. # rank deficient matrix
    +>>> matrix_rank(I)
    +array(3)
    +>>> matrix_rank(np.ones((4,))) # 1 dimension - rank 1 unless all 0
    +array(1)
    +>>> matrix_rank(np.zeros((4,)))
    +array(0)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.multi_dot.html b/pull/2070/reference/generated/dpnp.linalg.multi_dot.html new file mode 100644 index 00000000000..6ba9f25f4ac --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.multi_dot.html @@ -0,0 +1,222 @@ + + + + + + + + + + + dpnp.linalg.multi_dot — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.multi_dot

    +
    +
    +dpnp.linalg.multi_dot(arrays, *, out=None)[source]
    +

    Compute the dot product of two or more arrays in a single function call.

    +

    For full documentation refer to numpy.linalg.multi_dot.

    +
    +
    Parameters:
    +
      +
    • arrays (sequence of dpnp.ndarray or usm_ndarray) -- If the first argument is 1-D it is treated as row vector. +If the last argument is 1-D it is treated as column vector. +The other arguments must be 2-D.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output argument. This must have the exact kind that would be returned +if it was not used. In particular, it must have the right type, must be +C-contiguous, and its dtype must be the dtype that would be returned +for dot(a, b). If these conditions are not met, an exception is +raised, instead of attempting to be flexible. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Returns the dot product of the supplied arrays.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.dot

    Returns the dot product of two arrays.

    +
    +
    dpnp.inner

    Returns the inner product of two arrays.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> from dpnp.linalg import multi_dot
    +>>> A = np.random.random((10000, 100))
    +>>> B = np.random.random((100, 1000))
    +>>> C = np.random.random((1000, 5))
    +>>> D = np.random.random((5, 333))
    +
    +
    +

    the actual dot multiplication

    +
    >>> multi_dot([A, B, C, D]).shape
    +(10000, 333)
    +
    +
    +

    instead of

    +
    >>> np.dot(np.dot(np.dot(A, B), C), D).shape
    +(10000, 333)
    +
    +
    +

    or

    +
    >>> A.dot(B).dot(C).dot(D).shape
    +(10000, 333)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.norm.html b/pull/2070/reference/generated/dpnp.linalg.norm.html new file mode 100644 index 00000000000..395231eb6d6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.norm.html @@ -0,0 +1,265 @@ + + + + + + + + + + + dpnp.linalg.norm — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.norm

    +
    +
    +dpnp.linalg.norm(x, ord=None, axis=None, keepdims=False)[source]
    +

    Matrix or vector norm.

    +

    For full documentation refer to numpy.linalg.norm.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array. If axis is None, x must be 1-D or 2-D, unless +ord is None. If both axis and ord are None, the 2-norm +of x.ravel will be returned.

    • +
    • ord ({int, float, inf, -inf, "fro", "nuc"}, optional) -- Norm type. inf means dpnp's inf object. The default is None.

    • +
    • axis ({None, int, 2-tuple of ints}, optional) -- If axis is an integer, it specifies the axis of x along which to +compute the vector norms. If axis is a 2-tuple, it specifies the +axes that hold 2-D matrices, and the matrix norms of these matrices +are computed. If axis is None then either a vector norm (when +x is 1-D) or a matrix norm (when x is 2-D) is returned. +Default: False.

    • +
    • keepdims (bool, optional) -- If this is set to True, the axes which are normed over are left in +the result as dimensions with size one. With this option the result +will broadcast correctly against the original x. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- Norm of the matrix or vector(s).

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(9) - 4
    +>>> a
    +array([-4, -3, -2, -1,  0,  1,  2,  3,  4])
    +>>> b = a.reshape((3, 3))
    +>>> b
    +array([[-4, -3, -2],
    +       [-1,  0,  1],
    +       [ 2,  3,  4]])
    +
    +
    +
    >>> np.linalg.norm(a)
    +array(7.74596669)
    +>>> np.linalg.norm(b)
    +array(7.74596669)
    +>>> np.linalg.norm(b, 'fro')
    +array(7.74596669)
    +>>> np.linalg.norm(a, np.inf)
    +array(4.)
    +>>> np.linalg.norm(b, np.inf)
    +array(9.)
    +>>> np.linalg.norm(a, -np.inf)
    +array(0.)
    +>>> np.linalg.norm(b, -np.inf)
    +array(2.)
    +
    +
    +
    >>> np.linalg.norm(a, 1)
    +array(20.)
    +>>> np.linalg.norm(b, 1)
    +array(7.)
    +>>> np.linalg.norm(a, -1)
    +array(0.)
    +>>> np.linalg.norm(b, -1)
    +array(6.)
    +>>> np.linalg.norm(a, 2)
    +array(7.74596669)
    +>>> np.linalg.norm(b, 2)
    +array(7.34846923)
    +
    +
    +
    >>> np.linalg.norm(a, -2)
    +array(0.)
    +>>> np.linalg.norm(b, -2)
    +array(4.35106603e-18) # may vary
    +>>> np.linalg.norm(a, 3)
    +array(5.84803548) # may vary
    +>>> np.linalg.norm(a, -3)
    +array(0.)
    +
    +
    +

    Using the axis argument to compute vector norms:

    +
    >>> c = np.array([[ 1, 2, 3],
    +...               [-1, 1, 4]])
    +>>> np.linalg.norm(c, axis=0)
    +array([ 1.41421356,  2.23606798,  5.        ])
    +>>> np.linalg.norm(c, axis=1)
    +array([ 3.74165739,  4.24264069])
    +>>> np.linalg.norm(c, ord=1, axis=1)
    +array([ 6.,  6.])
    +
    +
    +

    Using the axis argument to compute matrix norms:

    +
    >>> m = np.arange(8).reshape(2,2,2)
    +>>> np.linalg.norm(m, axis=(1,2))
    +array([  3.74165739,  11.22497216])
    +>>> np.linalg.norm(m[0, :, :]), np.linalg.norm(m[1, :, :])
    +(array(3.74165739), array(11.22497216))
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.pinv.html b/pull/2070/reference/generated/dpnp.linalg.pinv.html new file mode 100644 index 00000000000..533298c490a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.pinv.html @@ -0,0 +1,202 @@ + + + + + + + + + + + dpnp.linalg.pinv — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.pinv

    +
    +
    +dpnp.linalg.pinv(a, rcond=1e-15, hermitian=False)[source]
    +

    Compute the (Moore-Penrose) pseudo-inverse of a matrix.

    +

    Calculate the generalized inverse of a matrix using its +singular-value decomposition (SVD) and including all large singular values.

    +

    For full documentation refer to numpy.linalg.inv.

    +
    +
    Parameters:
    +
      +
    • a ((..., M, N) {dpnp.ndarray, usm_ndarray}) -- Matrix or stack of matrices to be pseudo-inverted.

    • +
    • rcond ({float, dpnp.ndarray, usm_ndarray}, optional) -- Cutoff for small singular values. +Singular values less than or equal to rcond * largest_singular_value +are set to zero. Broadcasts against the stack of matrices. +Default: 1e-15.

    • +
    • hermitian (bool, optional) -- If True, a is assumed to be Hermitian (symmetric if real-valued), +enabling a more efficient method for finding singular values. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- The pseudo-inverse of a.

    +
    +
    Return type:
    +

    (..., N, M) dpnp.ndarray

    +
    +
    +

    Examples

    +

    The following example checks that a * a+ * a == a and +a+ * a * a+ == a+:

    +
    >>> import dpnp as np
    +>>> a = np.random.randn(9, 6)
    +>>> B = np.linalg.pinv(a)
    +>>> np.allclose(a, np.dot(a, np.dot(B, a)))
    +array([ True])
    +>>> np.allclose(B, np.dot(B, np.dot(a, B)))
    +array([ True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.qr.html b/pull/2070/reference/generated/dpnp.linalg.qr.html new file mode 100644 index 00000000000..71363c2e2eb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.qr.html @@ -0,0 +1,222 @@ + + + + + + + + + + + dpnp.linalg.qr — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.qr

    +
    +
    +dpnp.linalg.qr(a, mode='reduced')[source]
    +

    Compute the qr factorization of a matrix.

    +

    Factor the matrix a as qr, where q is orthonormal and r is +upper-triangular.

    +

    For full documentation refer to numpy.linalg.qr.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The input array with the dimensionality of at least 2.

    • +
    • mode ({"reduced", "complete", "r", "raw"}, optional) --

      If K = min(M, N), then

      +
        +
      • "reduced" : returns Q, R with dimensions (…, M, K), (…, K, N)

      • +
      • "complete" : returns Q, R with dimensions (…, M, M), (…, M, N)

      • +
      • "r" : returns R only with dimensions (…, K, N)

      • +
      • "raw" : returns h, tau with dimensions (…, N, M), (…, K,)

      • +
      +

      Default: "reduced".

      +

    • +
    +
    +
    Returns:
    +

      +
    • When mode is "reduced" or "complete", the result will be a namedtuple with

    • +
    • the attributes Q and R.

    • +
    • Q (dpnp.ndarray) -- A matrix with orthonormal columns. +When mode = "complete" the result is an orthogonal/unitary matrix +depending on whether or not a is real/complex. +The determinant may be either +/- 1 in that case. +In case the number of dimensions in the input array is greater +than 2 then a stack of the matrices with above properties is returned.

    • +
    • R (dpnp.ndarray) -- The upper-triangular matrix or a stack of upper-triangular matrices +if the number of dimensions in the input array is greater than 2.

    • +
    • (h, tau) (tuple of dpnp.ndarray) -- The h array contains the Householder reflectors that generate Q along +with R. The tau array contains scaling factors for the reflectors.

    • +
    +

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.random.randn(9, 6)
    +>>> Q, R = np.linalg.qr(a)
    +>>> np.allclose(a, np.dot(Q, R))  # a does equal QR
    +array([ True])
    +>>> R2 = np.linalg.qr(a, mode='r')
    +>>> np.allclose(R, R2)  # mode='r' returns the same R as mode='full'
    +array([ True])
    +>>> a = np.random.normal(size=(3, 2, 2)) # Stack of 2 x 2 matrices as input
    +>>> Q, R = np.linalg.qr(a)
    +>>> Q.shape
    +(3, 2, 2)
    +>>> R.shape
    +(3, 2, 2)
    +>>> np.allclose(a, np.matmul(Q, R))
    +array([ True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.slogdet.html b/pull/2070/reference/generated/dpnp.linalg.slogdet.html new file mode 100644 index 00000000000..317b49b425c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.slogdet.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.linalg.slogdet — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.slogdet

    +
    +
    +dpnp.linalg.slogdet(a)[source]
    +

    Compute the sign and (natural) logarithm of the determinant of an array.

    +

    For full documentation refer to numpy.linalg.slogdet.

    +
    +
    Parameters:
    +

    a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- Input array, has to be a square 2-D array.

    +
    +
    Returns:
    +

      +
    • sign ((...) dpnp.ndarray) -- A number representing the sign of the determinant. For a real matrix, +this is 1, 0, or -1. For a complex matrix, this is a complex number +with absolute value 1 (i.e., it is on the unit circle), or else 0.

    • +
    • logabsdet ((...) dpnp.ndarray) -- The natural log of the absolute value of the determinant.

    • +
    +

    +
    +
    +
    +

    See also

    +
    +
    dpnp.det

    Returns the determinant of an array.

    +
    +
    +
    +

    Examples

    +

    The determinant of a 2-D array [[a, b], [c, d]] is ad - bc:

    +
    >>> import dpnp as dp
    +>>> a = dp.array([[1, 2], [3, 4]])
    +>>> (sign, logabsdet) = dp.linalg.slogdet(a)
    +>>> (sign, logabsdet)
    +(array(-1.), array(0.69314718))
    +>>> sign * dp.exp(logabsdet)
    +array(-2.)
    +
    +
    +

    Computing log-determinants for a stack of matrices:

    +
    >>> a = dp.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])
    +>>> a.shape
    +(3, 2, 2)
    +>>> sign, logabsdet = dp.linalg.slogdet(a)
    +>>> (sign, logabsdet)
    +(array([-1., -1., -1.]), array([0.69314718, 1.09861229, 2.07944154]))
    +>>> sign * dp.exp(logabsdet)
    +array([-2., -3., -8.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.solve.html b/pull/2070/reference/generated/dpnp.linalg.solve.html new file mode 100644 index 00000000000..4fa1dc46965 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.solve.html @@ -0,0 +1,203 @@ + + + + + + + + + + + dpnp.linalg.solve — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.solve

    +
    +
    +dpnp.linalg.solve(a, b)[source]
    +

    Solve a linear matrix equation, or system of linear scalar equations.

    +

    For full documentation refer to numpy.linalg.solve.

    +
    +
    Parameters:
    +
      +
    • a ((..., M, M) {dpnp.ndarray, usm_ndarray}) -- Coefficient matrix.

    • +
    • b ({(, M,), (, M, K)} {dpnp.ndarray, usm_ndarray}) -- Ordinate or "dependent variable" values.

    • +
    +
    +
    Returns:
    +

    out -- Solution to the system ax = b. Returned shape is identical to b.

    +
    +
    Return type:
    +

    {(…, M,), (…, M, K)} dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.dot

    Returns the dot product of two arrays.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as dp
    +>>> a = dp.array([[1, 2], [3, 5]])
    +>>> b = dp.array([1, 2])
    +>>> x = dp.linalg.solve(a, b)
    +>>> x
    +array([-1.,  1.])
    +
    +
    +

    Check that the solution is correct:

    +
    >>> dp.allclose(dp.dot(a, x), b)
    +array([ True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.svd.html b/pull/2070/reference/generated/dpnp.linalg.svd.html new file mode 100644 index 00000000000..1a644f55dab --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.svd.html @@ -0,0 +1,250 @@ + + + + + + + + + + + dpnp.linalg.svd — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.svd

    +
    +
    +dpnp.linalg.svd(a, full_matrices=True, compute_uv=True, hermitian=False)[source]
    +

    Singular Value Decomposition.

    +

    For full documentation refer to numpy.linalg.svd.

    +
    +
    Parameters:
    +
      +
    • a ((..., M, N) {dpnp.ndarray, usm_ndarray}) -- Input array with a.ndim >= 2.

    • +
    • full_matrices ({bool}, optional) -- If True, it returns u and Vh with full-sized matrices. +If False, the matrices are reduced in size. +Default: True.

    • +
    • compute_uv ({bool}, optional) -- If False, it only returns singular values. +Default: True.

    • +
    • hermitian ({bool}, optional) -- If True, a is assumed to be Hermitian (symmetric if real-valued), +enabling a more efficient method for finding singular values. +Default: False.

    • +
    +
    +
    Returns:
    +

      +
    • u ({ (…, M, M), (…, M, K) } dpnp.ndarray) -- Unitary matrix, where M is the number of rows of the input array a. +The shape of the matrix u depends on the value of full_matrices. +If full_matrices is True, u has the shape (…, M, M). +If full_matrices is False, u has the shape (…, M, K), where +K = min(M, N), and N is the number of columns of the input array a. +If compute_uv is False, neither u or Vh are computed.

    • +
    • s ((…, K) dpnp.ndarray) -- Vector containing the singular values of a, sorted in descending +order. The length of s is min(M, N).

    • +
    • Vh ({ (…, N, N), (…, K, N) } dpnp.ndarray) -- Unitary matrix, where N is the number of columns of the input array a. +The shape of the matrix Vh depends on the value of full_matrices. +If full_matrices is True, Vh has the shape (…, N, N). +If full_matrices is False, Vh has the shape (…, K, N). +If compute_uv is False, neither u or Vh are computed.

    • +
    +

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.random.randn(9, 6) + 1j*np.random.randn(9, 6)
    +>>> b = np.random.randn(2, 7, 8, 3) + 1j*np.random.randn(2, 7, 8, 3)
    +
    +
    +

    Reconstruction based on full SVD, 2D case:

    +
    >>> u, s, vh = np.linalg.svd(a, full_matrices=True)
    +>>> u.shape, s.shape, vh.shape
    +((9, 9), (6,), (6, 6))
    +>>> np.allclose(a, np.dot(u[:, :6] * s, vh))
    +array([ True])
    +>>> smat = np.zeros((9, 6), dtype=complex)
    +>>> smat[:6, :6] = np.diag(s)
    +>>> np.allclose(a, np.dot(u, np.dot(smat, vh)))
    +array([ True])
    +
    +
    +

    Reconstruction based on reduced SVD, 2D case:

    +
    >>> u, s, vh = np.linalg.svd(a, full_matrices=False)
    +>>> u.shape, s.shape, vh.shape
    +((9, 6), (6,), (6, 6))
    +>>> np.allclose(a, np.dot(u * s, vh))
    +array([ True])
    +>>> smat = np.diag(s)
    +>>> np.allclose(a, np.dot(u, np.dot(smat, vh)))
    +array([ True])
    +
    +
    +

    Reconstruction based on full SVD, 4D case:

    +
    >>> u, s, vh = np.linalg.svd(b, full_matrices=True)
    +>>> u.shape, s.shape, vh.shape
    +((2, 7, 8, 8), (2, 7, 3), (2, 7, 3, 3))
    +>>> np.allclose(b, np.matmul(u[..., :3] * s[..., None, :], vh))
    +array([ True])
    +>>> np.allclose(b, np.matmul(u[..., :3], s[..., None] * vh))
    +array([ True])
    +
    +
    +

    Reconstruction based on reduced SVD, 4D case:

    +
    >>> u, s, vh = np.linalg.svd(b, full_matrices=False)
    +>>> u.shape, s.shape, vh.shape
    +((2, 7, 8, 3), (2, 7, 3), (2, 7, 3, 3))
    +>>> np.allclose(b, np.matmul(u * s[..., None, :], vh))
    +array([ True])
    +>>> np.allclose(b, np.matmul(u, s[..., None] * vh))
    +array([ True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.tensorinv.html b/pull/2070/reference/generated/dpnp.linalg.tensorinv.html new file mode 100644 index 00000000000..3006d845c0d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.tensorinv.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.linalg.tensorinv — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.tensorinv

    +
    +
    +dpnp.linalg.tensorinv(a, ind=2)[source]
    +

    Compute the 'inverse' of an N-dimensional array.

    +

    For full documentation refer to numpy.linalg.tensorinv.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Tensor to invert. Its shape must be 'square', i. e., +prod(a.shape[:ind]) == prod(a.shape[ind:]).

    • +
    • ind (int, optional) -- Number of first indices that are involved in the inverse sum. +Must be a positive integer. +Default: 2.

    • +
    +
    +
    Returns:
    +

    out -- The inverse of a tensor whose shape is equivalent to +a.shape[ind:] + a.shape[:ind].

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.linalg.tensordot

    Compute tensor dot product along specified axes.

    +
    +
    dpnp.linalg.tensorsolve

    Solve the tensor equation a x = b for x.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.eye(4*6)
    +>>> a.shape = (4, 6, 8, 3)
    +>>> ainv = np.linalg.tensorinv(a, ind=2)
    +>>> ainv.shape
    +(8, 3, 4, 6)
    +
    +
    +
    >>> a = np.eye(4*6)
    +>>> a.shape = (24, 8, 3)
    +>>> ainv = np.linalg.tensorinv(a, ind=1)
    +>>> ainv.shape
    +(8, 3, 24)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linalg.tensorsolve.html b/pull/2070/reference/generated/dpnp.linalg.tensorsolve.html new file mode 100644 index 00000000000..bbe01b2532e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linalg.tensorsolve.html @@ -0,0 +1,212 @@ + + + + + + + + + + + dpnp.linalg.tensorsolve — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linalg.tensorsolve

    +
    +
    +dpnp.linalg.tensorsolve(a, b, axes=None)[source]
    +

    Solve the tensor equation a x = b for x.

    +

    For full documentation refer to numpy.linalg.tensorsolve.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Coefficient tensor, of shape b.shape + Q. Q, a tuple, equals +the shape of that sub-tensor of a consisting of the appropriate +number of its rightmost indices, and must be such that +prod(Q) == prod(b.shape) (in which sense a is said to be +'square').

    • +
    • b ({dpnp.ndarray, usm_ndarray}) -- Right-hand tensor, which can be of any shape.

    • +
    • axes ({None, tuple of ints}, optional) -- Axes in a to reorder to the right, before inversion. +If None , no reordering is done. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- The tensor with shape Q such that b.shape + Q == a.shape.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.linalg.tensordot

    Compute tensor dot product along specified axes.

    +
    +
    dpnp.linalg.tensorinv

    Compute the 'inverse' of an N-dimensional array.

    +
    +
    dpnp.einsum

    Evaluates the Einstein summation convention on the operands.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.eye(2*3*4)
    +>>> a.shape = (2*3, 4, 2, 3, 4)
    +>>> b = np.random.randn(2*3, 4)
    +>>> x = np.linalg.tensorsolve(a, b)
    +>>> x.shape
    +(2, 3, 4)
    +>>> np.allclose(np.tensordot(a, x, axes=3), b)
    +array([ True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.linspace.html b/pull/2070/reference/generated/dpnp.linspace.html new file mode 100644 index 00000000000..9abba2429ff --- /dev/null +++ b/pull/2070/reference/generated/dpnp.linspace.html @@ -0,0 +1,252 @@ + + + + + + + + + + + dpnp.linspace — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.linspace

    +
    +
    +dpnp.linspace(start, stop, /, num, *, dtype=None, device=None, usm_type=None, sycl_queue=None, endpoint=True, retstep=False, axis=0)[source]
    +

    Return evenly spaced numbers over a specified interval.

    +

    For full documentation refer to numpy.linspace.

    +
    +
    Parameters:
    +
      +
    • start (array_like) -- The starting value of the sequence, in any form that can be converted +to an array. This includes scalars, lists, lists of tuples, tuples, +tuples of tuples, tuples of lists, and ndarrays.

    • +
    • stop (array_like) -- The end value of the sequence, in any form that can be converted to +an array. This includes scalars, lists, lists of tuples, tuples, tuples +of tuples, tuples of lists, and ndarrays. If endpoint is set to +False the sequence consists of all but the last of num + 1 +evenly spaced samples, so that stop is excluded.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary).

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying.

    • +
    • endpoint (bool, optional) -- If True, stop is the last sample. Otherwise, it is not included. +Default: True.

    • +
    • retstep (bool, optional) -- If True, return (samples, step), where step is the spacing between +samples.

    • +
    • axis (int, optional) -- The axis in the result to store the samples. Relevant only if start or +stop are array-like. By default (0), the samples will be along a new +axis inserted at the beginning. Use -1 to get an axis at the end.

    • +
    +
    +
    Returns:
    +

      +
    • out (dpnp.ndarray) -- There are num equally spaced samples in the closed interval +[start, stop] or the half-open interval [start, stop) +(depending on whether endpoint is True or False).

    • +
    • step (float, optional) -- Only returned if retstep is True. +Size of spacing between samples.

    • +
    +

    +
    +
    +
    +

    See also

    +
    +
    dpnp.arange

    Similar to dpnp.linspace, but uses a step size (instead of the number of samples).

    +
    +
    dpnp.geomspace

    Similar to dpnp.linspace, but with numbers spaced evenly on a log scale (a geometric progression).

    +
    +
    dpnp.logspace

    Similar to dpnp.geomspace, but with the end points specified as logarithms.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.linspace(2.0, 3.0, num=5)
    +array([2.  , 2.25, 2.5 , 2.75, 3.  ])
    +
    +
    +
    >>> np.linspace(2.0, 3.0, num=5, endpoint=False)
    +array([2. , 2.2, 2.4, 2.6, 2.8])
    +
    +
    +
    >>> np.linspace(2.0, 3.0, num=5, retstep=True)
    +(array([2.  , 2.25, 2.5 , 2.75, 3.  ]), array(0.25))
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.linspace(2.0, 3.0, num=3) # default case
    +>>> x, x.device, x.usm_type
    +(array([2. , 2.5, 3. ]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.linspace(2.0, 3.0, num=3, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([2. , 2.5, 3. ]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.linspace(2.0, 3.0, num=3, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([2. , 2.5, 3. ]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.loadtxt.html b/pull/2070/reference/generated/dpnp.loadtxt.html new file mode 100644 index 00000000000..53c4e2cfa89 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.loadtxt.html @@ -0,0 +1,249 @@ + + + + + + + + + + + dpnp.loadtxt — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.loadtxt

    +
    +
    +dpnp.loadtxt(fname, dtype=<class 'float'>, like=None, device=None, usm_type='device', sycl_queue=None, **kwargs)[source]
    +

    Load data from a text file.

    +

    For full documentation refer to numpy.loadtxt.

    +
    +
    Parameters:
    +
      +
    • fname (file, str, pathlib.Path, list of str, generator) -- File, filename, list, or generator to read. If the filename extension +is .gz or .bz2, the file is first decompressed. Note that +generators must return bytes or strings. The strings in a list or +produced by a generator are treated as lines.

    • +
    • dtype (data-type, optional) -- Data-type of the resulting array. +Default is the default floating point data type for the device where +the returned array is allocated. +A structured data-type is not supported.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Data read from the text file.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +

    Notes

    +

    This uses numpy.loadtxt and coerces the result to a DPNP array.

    +
    +

    See also

    +
    +
    dpnp.frombuffer

    Construct array from the buffer data.

    +
    +
    dpnp.fromstring

    Construct array from the text data in a string.

    +
    +
    dpnp.fromregex

    Construct an array from a text file, using regular expression parsing.

    +
    +
    dpnp.load

    Load arrays or pickled objects from files.

    +
    +
    dpnp.genfromtxt

    Load data with missing values handled as specified.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> from io import StringIO   # StringIO behaves like a file object
    +>>> c = StringIO("0 1\n2 3")
    +>>> np.loadtxt(c)
    +array([[0., 1.],
    +       [2., 3.]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> c = StringIO("0 1\n2 3")
    +>>> x = np.loadtxt(c, dtype=np.int32) # default case
    +>>> x.device, x.usm_type
    +(Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> c = StringIO("0 1\n2 3")
    +>>> y = np.loadtxt(c, dtype=np.int32, device='cpu')
    +>>> y.device, y.usm_type
    +(Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> c = StringIO("0 1\n2 3")
    +>>> z = np.loadtxt(c, dtype=np.int32, usm_type="host")
    +>>> z.device, z.usm_type
    +(Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.log.html b/pull/2070/reference/generated/dpnp.log.html new file mode 100644 index 00000000000..0943f78673c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.log.html @@ -0,0 +1,197 @@ + + + + + + + + + + + dpnp.log — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.log

    +
    +
    +dpnp.log(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the natural logarithm for each element x_i of input array x.

    +

    For full documentation refer to numpy.log.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise natural logarithm values. +The data type of the returned array is determined by the Type +Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.log10

    Return the base 10 logarithm of the input array, element-wise.

    +
    +
    dpnp.log2

    Base-2 logarithm of x.

    +
    +
    dpnp.log1p

    Return the natural logarithm of one plus the input array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, np.e, np.e**2, 0])
    +>>> np.log(x)
    +array([  0.,   1.,   2., -inf])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.log10.html b/pull/2070/reference/generated/dpnp.log10.html new file mode 100644 index 00000000000..3aee36851b1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.log10.html @@ -0,0 +1,202 @@ + + + + + + + + + + + dpnp.log10 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.log10

    +
    +
    +dpnp.log10(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the base-10 logarithm for each element x_i of input array x.

    +

    For full documentation refer to numpy.log10.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise base-10 logarithm of x. +The data type of the returned array is determined by the +Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.log

    Natural logarithm, element-wise.

    +
    +
    dpnp.log2

    Return the base-2 logarithm of the input array, element-wise.

    +
    +
    dpnp.log1p

    Return the natural logarithm of one plus the input array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(3.)
    +>>> np.log10(x)
    +array([-inf, 0.0, 0.30102999566])
    +
    +
    +
    >>> np.log10(np.array([1e-15, -3.]))
    +array([-15.,  nan])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.log1p.html b/pull/2070/reference/generated/dpnp.log1p.html new file mode 100644 index 00000000000..e8f3301d4ff --- /dev/null +++ b/pull/2070/reference/generated/dpnp.log1p.html @@ -0,0 +1,209 @@ + + + + + + + + + + + dpnp.log1p — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.log1p

    +
    +
    +dpnp.log1p(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the natural logarithm of (1 + x) for each element x_i of input +array x.

    +

    This function calculates log(1 + x) more accurately for small values of x.

    +

    For full documentation refer to numpy.log1p.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise log(1 + x) results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.expm1

    exp(x) - 1, the inverse of dpnp.log1p.

    +
    +
    dpnp.log

    Natural logarithm, element-wise.

    +
    +
    dpnp.log10

    Return the base 10 logarithm of the input array, element-wise.

    +
    +
    dpnp.log2

    Return the base-2 logarithm of the input array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(3.)
    +>>> np.log1p(x)
    +array([0.0, 0.69314718, 1.09861229])
    +
    +
    +
    >>> np.log1p(array(1e-99))
    +array(1e-99)
    +
    +
    +
    >>> np.log(array(1 + 1e-99))
    +array(0.0)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.log2.html b/pull/2070/reference/generated/dpnp.log2.html new file mode 100644 index 00000000000..41849349772 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.log2.html @@ -0,0 +1,203 @@ + + + + + + + + + + + dpnp.log2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.log2

    +
    +
    +dpnp.log2(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the base-2 logarithm for each element x_i of input array x.

    +

    For full documentation refer to numpy.log2.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise base-2 logarithm of x. +The data type of the returned array is determined by the +Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.log

    Natural logarithm, element-wise.

    +
    +
    dpnp.log10

    Return the base 10 logarithm of the input array, element-wise.

    +
    +
    dpnp.log1p

    Return the natural logarithm of one plus the input array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, 1, 2, 2**4])
    +>>> np.log2(x)
    +array([-inf, 0.0, 1.0, 4.0])
    +
    +
    +
    >>> xi = np.array([0+1.j, 1, 2+0.j, 4.j])
    +>>> np.log2(xi)
    +array([ 0.+2.26618007j,  0.+0.j        ,  1.+0.j        ,  2.+2.26618007j])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.logaddexp.html b/pull/2070/reference/generated/dpnp.logaddexp.html new file mode 100644 index 00000000000..94b52caf1d2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.logaddexp.html @@ -0,0 +1,212 @@ + + + + + + + + + + + dpnp.logaddexp — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.logaddexp

    +
    +
    +dpnp.logaddexp(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the natural logarithm of the sum of exponents for each element x1_i +of the input array x1 with the respective element x2_i of the input +array x2.

    +

    This function calculates log(exp(x1) + exp(x2)) more accurately for small +values of x.

    +

    For full documentation refer to numpy.logaddexp.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real-valued floating-point +data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real-valued +floating-point data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword arguments kwargs are currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.log

    Natural logarithm, element-wise.

    +
    +
    dpnp.exp

    Exponential, element-wise.

    +
    +
    dpnp.logaddexp2

    Logarithm of the sum of exponentiation of inputs in base-2, element-wise.

    +
    +
    dpnp.logsumexp

    Logarithm of the sum of exponents of elements in the input array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> prob1 = np.log(np.array(1e-50))
    +>>> prob2 = np.log(np.array(2.5e-50))
    +>>> prob12 = np.logaddexp(prob1, prob2)
    +>>> prob12
    +array(-113.87649168)
    +>>> np.exp(prob12)
    +array(3.5e-50)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.logaddexp2.html b/pull/2070/reference/generated/dpnp.logaddexp2.html new file mode 100644 index 00000000000..d3fd4702643 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.logaddexp2.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.logaddexp2 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.logaddexp2

    +
    +
    +dpnp.logaddexp2(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the logarithm of the sum of exponents in base-2 for each element +x1_i of the input array x1 with the respective element x2_i of the input +array x2.

    +

    This function calculates log2(2**x1 + 2**x2). It is useful in machine +learning when the calculated probabilities of events may be so small as +to exceed the range of normal floating point numbers. In such cases the base-2 +logarithm of the calculated probability can be used instead. This function +allows adding probabilities stored in such a fashion.

    +

    For full documentation refer to numpy.logaddexp2.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real-valued floating-point +data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real-valued +floating-point data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword arguments kwargs are currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.logaddexp

    Natural logarithm of the sum of exponentiation of inputs, element-wise.

    +
    +
    dpnp.logsumexp

    Logarithm of the sum of exponentiation of the inputs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> prob1 = np.log2(np.array(1e-50))
    +>>> prob2 = np.log2(np.array(2.5e-50))
    +>>> prob12 = np.logaddexp2(prob1, prob2)
    +>>> prob1, prob2, prob12
    +(array(-166.09640474), array(-164.77447665), array(-164.28904982))
    +>>> 2**prob12
    +array(3.5e-50)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.logical_and.html b/pull/2070/reference/generated/dpnp.logical_and.html new file mode 100644 index 00000000000..3629c00b65d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.logical_and.html @@ -0,0 +1,215 @@ + + + + + + + + + + + dpnp.logical_and — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.logical_and

    +
    +
    +dpnp.logical_and(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the logical AND for each element x1_i of the input array x1 with +the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.logical_and.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise logical AND results.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.logical_or

    Compute the truth value of x1 OR x2 element-wise.

    +
    +
    dpnp.logical_not

    Compute the truth value of NOT x element-wise.

    +
    +
    dpnp.logical_xor

    Compute the truth value of x1 XOR x2, element-wise.

    +
    +
    dpnp.bitwise_and

    Compute the bit-wise AND of two arrays element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([True, False])
    +>>> x2 = np.array([False, False])
    +>>> np.logical_and(x1, x2)
    +array([False, False])
    +
    +
    +
    >>> x = np.arange(5)
    +>>> np.logical_and(x > 1, x < 4)
    +array([False, False,  True,  True, False])
    +
    +
    +

    The & operator can be used as a shorthand for logical_and on +boolean dpnp.ndarray.

    +
    >>> a = np.array([True, False])
    +>>> b = np.array([False, False])
    +>>> a & b
    +array([False, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.logical_not.html b/pull/2070/reference/generated/dpnp.logical_not.html new file mode 100644 index 00000000000..a9477d66e60 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.logical_not.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.logical_not — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.logical_not

    +
    +
    +dpnp.logical_not(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the logical NOT for each element x_i of input array x.

    +

    For full documentation refer to numpy.logical_not.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise logical NOT results.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.logical_and

    Compute the truth value of x1 AND x2 element-wise.

    +
    +
    dpnp.logical_or

    Compute the truth value of x1 OR x2 element-wise.

    +
    +
    dpnp.logical_xor

    Compute the truth value of x1 XOR x2, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([True, False, 0, 1])
    +>>> np.logical_not(x)
    +array([False,  True,  True, False])
    +
    +
    +
    >>> x = np.arange(5)
    +>>> np.logical_not(x < 3)
    +array([False, False, False,  True,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.logical_or.html b/pull/2070/reference/generated/dpnp.logical_or.html new file mode 100644 index 00000000000..6a4421ff5b7 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.logical_or.html @@ -0,0 +1,215 @@ + + + + + + + + + + + dpnp.logical_or — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.logical_or

    +
    +
    +dpnp.logical_or(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the logical OR for each element x1_i of the input array x1 +with the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.logical_or.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise logical OR results.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.logical_and

    Compute the truth value of x1 AND x2 element-wise.

    +
    +
    dpnp.logical_not

    Compute the truth value of NOT x element-wise.

    +
    +
    dpnp.logical_xor

    Compute the truth value of x1 XOR x2, element-wise.

    +
    +
    dpnp.bitwise_or

    Compute the bit-wise OR of two arrays element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([True, False])
    +>>> x2 = np.array([False, False])
    +>>> np.logical_or(x1, x2)
    +array([ True, False])
    +
    +
    +
    >>> x = np.arange(5)
    +>>> np.logical_or(x < 1, x > 3)
    +array([ True, False, False, False,  True])
    +
    +
    +

    The | operator can be used as a shorthand for logical_or on +boolean dpnp.ndarray.

    +
    >>> a = np.array([True, False])
    +>>> b = np.array([False, False])
    +>>> a | b
    +array([ True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.logical_xor.html b/pull/2070/reference/generated/dpnp.logical_xor.html new file mode 100644 index 00000000000..9be9b8413d3 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.logical_xor.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.logical_xor — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.logical_xor

    +
    +
    +dpnp.logical_xor(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the logical XOR for each element x1_i of the input array x1 +with the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.logical_xor.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise logical XOR results.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.logical_and

    Compute the truth value of x1 AND x2 element-wise.

    +
    +
    dpnp.logical_or

    Compute the truth value of x1 OR x2 element-wise.

    +
    +
    dpnp.logical_not

    Compute the truth value of NOT x element-wise.

    +
    +
    dpnp.bitwise_xor

    Compute the bit-wise XOR of two arrays element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([True, True, False, False])
    +>>> x2 = np.array([True, False, True, False])
    +>>> np.logical_xor(x1, x2)
    +array([False,  True,  True, False])
    +
    +
    +
    >>> x = np.arange(5)
    +>>> np.logical_xor(x < 1, x > 3)
    +array([ True, False, False, False,  True])
    +
    +
    +

    Simple example showing support of broadcasting

    +
    >>> np.logical_xor(0, np.eye(2))
    +array([[ True, False],
    +       [False,  True]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.logspace.html b/pull/2070/reference/generated/dpnp.logspace.html new file mode 100644 index 00000000000..f62c07c8d67 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.logspace.html @@ -0,0 +1,263 @@ + + + + + + + + + + + dpnp.logspace — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.logspace

    +
    +
    +dpnp.logspace(start, stop, /, num=50, *, device=None, usm_type=None, sycl_queue=None, endpoint=True, base=10.0, dtype=None, axis=0)[source]
    +

    Return numbers spaced evenly on a log scale.

    +

    For full documentation refer to numpy.logspace.

    +
    +
    Parameters:
    +
      +
    • start (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays. base ** start is the starting value +of the sequence.

    • +
    • stop (array_like) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays. base ** stop is the final value of +the sequence, unless endpoint is False. In that case, num + 1 +values are spaced over the interval in log-space, of which all but +the last (a sequence of length num) are returned.

    • +
    • num (int, optional) -- Number of samples to generate. +Default: 50.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying.

    • +
    • endpoint ({bool}, optional) -- If True, stop is the last sample. Otherwise, it is not included. +Default: True.

    • +
    • base ({array_like}, optional) -- Input data, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays. The base of the log space, in any form +that can be converted to an array.This includes scalars, lists, lists +of tuples, tuples, tuples of tuples, tuples of lists, and ndarrays. +The step size between the elements in ln(samples) / ln(base) +(or log_base(samples)) is uniform. +Default: 10.0.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array. If not given, a default dtype will be +used that can represent the values (by considering Promotion Type Rule +and device capabilities when necessary).

    • +
    • axis (int, optional) -- The axis in the result to store the samples. Relevant only if start, +stop, or base are array-like. By default (0), the samples will be along +a new axis inserted at the beginning. Use -1 to get an axis at the end.

    • +
    +
    +
    Returns:
    +

    out -- num samples, equally spaced on a log scale.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.arange

    Similar to dpnp.linspace, with the step size specified instead of the number of samples. Note that, when used with a float endpoint, the endpoint may or may not be included.

    +
    +
    dpnp.linspace

    Similar to dpnp.logspace, but with the samples uniformly distributed in linear space, instead of log space.

    +
    +
    dpnp.geomspace

    Similar to dpnp.logspace, but with endpoints specified directly.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.logspace(2.0, 3.0, num=4)
    +array([ 100.        ,  215.443469  ,  464.15888336, 1000.        ])
    +
    +
    +
    >>> np.logspace(2.0, 3.0, num=4, endpoint=False)
    +array([100.        , 177.827941  , 316.22776602, 562.34132519])
    +
    +
    +
    >>> np.logspace(2.0, 3.0, num=4, base=2.0)
    +array([4.        , 5.0396842 , 6.34960421, 8.        ])
    +
    +
    +
    >>> np.logspace(2.0, 3.0, num=4, base=[2.0, 3.0], axis=-1)
    +array([[ 4.        ,  5.0396842 ,  6.34960421,  8.        ],
    +       [ 9.        , 12.98024613, 18.72075441, 27.        ]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.logspace(1.0, 3.0, num=3) # default case
    +>>> x, x.device, x.usm_type
    +(array([  10.,  100., 1000.]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.logspace(1.0, 3.0, num=3, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([  10.,  100., 1000.]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.logspace(1.0, 3.0, num=3, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([  10.,  100., 1000.]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.logsumexp.html b/pull/2070/reference/generated/dpnp.logsumexp.html new file mode 100644 index 00000000000..fd7748b58ab --- /dev/null +++ b/pull/2070/reference/generated/dpnp.logsumexp.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.logsumexp — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.logsumexp

    +
    +
    +dpnp.logsumexp(x, /, *, axis=None, dtype=None, keepdims=False, out=None)[source]
    +

    Calculates the logarithm of the sum of exponents of elements in +the input array.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real-valued data type.

    • +
    • axis ({None, int or tuple of ints}, optional) -- Axis or axes along which values must be computed. If a tuple of unique +integers, values are computed over multiple axes. If None, the +result is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) --

      Data type of the returned array. If None, the default data type is +inferred from the "kind" of the input array data type.

      +
        +
      • If x has a real-valued floating-point data type, the returned array +will have the same data type as x.

      • +
      • If x has a boolean or integral data type, the returned array will +have the default floating point data type for the device where input +array x is allocated.

      • +
      • If x has a complex-valued floating-point data type, an error is +raised.

      • +
      +

      If the data type (either specified or resolved) differs from the data +type of x, the input array elements are cast to the specified data +type before computing the result. +Default: None.

      +

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains compatible +with the input arrays according to Array Broadcasting rules. Otherwise, +if False, the reduced axes are not included in the returned array. +Default: False.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- The array into which the result is written. The data type of out must +match the expected shape and the expected data type of the result or +(if provided) dtype. If None then a new array is returned. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the results. If the result was computed over the +entire array, a zero-dimensional array is returned. The returned array +has the data type as described in the dtype parameter description +above.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    Note

    +

    This function is equivalent of numpy.logaddexp.reduce.

    +
    +
    +

    See also

    +
    +
    dpnp.log

    Natural logarithm, element-wise.

    +
    +
    dpnp.exp

    Exponential, element-wise.

    +
    +
    dpnp.logaddexp

    Logarithm of the sum of exponents of the inputs, element-wise.

    +
    +
    dpnp.logaddexp2

    Logarithm of the sum of exponents of the inputs in base-2, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.ones(10)
    +>>> np.logsumexp(a)
    +array(3.30258509)
    +>>> np.log(np.sum(np.exp(a)))
    +array(3.30258509)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.mask_indices.html b/pull/2070/reference/generated/dpnp.mask_indices.html new file mode 100644 index 00000000000..29a660e1e2d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.mask_indices.html @@ -0,0 +1,244 @@ + + + + + + + + + + + dpnp.mask_indices — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.mask_indices

    +
    +
    +dpnp.mask_indices(n, mask_func, k=0, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return the indices to access (n, n) arrays, given a masking function.

    +

    Assume mask_func is a function that, for a square array a of size +(n, n) with a possible offset argument k, when called as +mask_func(a, k=k) returns a new array with zeros in certain locations +(functions like dpnp.triu or dpnp.tril do precisely this). +Then this function returns the indices where the non-zero values would be +located.

    +
    +
    Parameters:
    +
      +
    • n (int) -- The returned indices will be valid to access arrays of shape (n, n).

    • +
    • mask_func (callable) -- A function whose call signature is similar to that of dpnp.triu, +dpnp.tril. That is, mask_func(x, k=k) returns a boolean +array, shaped like x.`k` is an optional argument to the function.

    • +
    • k (scalar) -- An optional argument which is passed through to mask_func. Functions +like dpnp.triu, dpnp.tril take a second argument that is +interpreted as an offset. Default: 0.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    indices -- The n arrays of indices corresponding to the locations where +mask_func(np.ones((n, n)), k) is True.

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.tril

    Return lower triangle of an array.

    +
    +
    dpnp.triu

    Return upper triangle of an array.

    +
    +
    dpnp.triu_indices

    Return the indices for the upper-triangle of an (n, m) array.

    +
    +
    dpnp.tril_indices

    Return the indices for the lower-triangle of an (n, m) array.

    +
    +
    +
    +

    Examples

    +

    These are the indices that would allow you to access the upper triangular +part of any 3x3 array:

    +
    >>> import dpnp as np
    +>>> iu = np.mask_indices(3, np.triu)
    +
    +
    +

    For example, if a is a 3x3 array:

    +
    >>> a = np.arange(9).reshape(3, 3)
    +>>> a
    +array([[0, 1, 2],
    +       [3, 4, 5],
    +       [6, 7, 8]])
    +>>> a[iu]
    +array([0, 1, 2, 4, 5, 8])
    +
    +
    +

    An offset can be passed also to the masking function. This gets us the +indices starting on the first diagonal right of the main one:

    +
    >>> iu1 = np.mask_indices(3, np.triu, 1)
    +
    +
    +

    with which we now extract only three elements:

    +
    >>> a[iu1]
    +array([1, 2, 5])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.matmul.html b/pull/2070/reference/generated/dpnp.matmul.html new file mode 100644 index 00000000000..796a44cc243 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.matmul.html @@ -0,0 +1,249 @@ + + + + + + + + + + + dpnp.matmul — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.matmul

    +
    +
    +dpnp.matmul(x1, x2, /, out=None, *, casting='same_kind', order='K', dtype=None, subok=True, signature=None, extobj=None, axes=None, axis=None)[source]
    +

    Matrix product of two arrays.

    +

    For full documentation refer to numpy.matmul.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray}) -- First input array.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray}) -- Second input array.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +a shape that matches the signature (n,k),(k,m)->(n,m) but the type +(of the calculated values) will be cast if necessary. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type to use in computing the matrix product. By default, the returned +array will have data type that is determined by considering +Promotion Type Rule and device capabilities.

    • +
    • casting ({"no", "equiv", "safe", "same_kind", "unsafe"}, optional) -- Controls what kind of data casting may occur. +Default: "same_kind".

    • +
    • order ({"C", "F", "A", "K", None}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    • axes ({list of tuples}, optional) -- A list of tuples with indices of axes the matrix product should operate +on. For instance, for the signature of (i,j),(j,k)->(i,k), the base +elements are 2d matrices and these are taken to be stored in the two +last axes of each argument. The corresponding axes keyword would be +[(-2, -1), (-2, -1), (-2, -1)]. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Returns the matrix product of the inputs. +This is a 0-d array only when both x1, x2 are 1-d vectors.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Keyword arguments subok, signature, extobj, and axis are +only supported with their default value. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.vdot

    Complex-conjugating dot product.

    +
    +
    dpnp.tensordot

    Sum products over arbitrary axes.

    +
    +
    dpnp.einsum

    Einstein summation convention.

    +
    +
    dpnp.dot

    Alternative matrix product with different broadcasting rules.

    +
    +
    +
    +

    Examples

    +

    For 2-D arrays it is the matrix product:

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 0], [0, 1]])
    +>>> b = np.array([[4, 1], [2, 2]])
    +>>> np.matmul(a, b)
    +array([[4, 1],
    +       [2, 2]])
    +
    +
    +

    For 2-D mixed with 1-D, the result is the usual.

    +
    >>> a = np.array([[1, 0], [0, 1]])
    +>>> b = np.array([1, 2])
    +>>> np.matmul(a, b)
    +array([1, 2])
    +>>> np.matmul(b, a)
    +array([1, 2])
    +
    +
    +

    Broadcasting is conventional for stacks of arrays

    +
    >>> a = np.arange(2 * 2 * 4).reshape((2, 2, 4))
    +>>> b = np.arange(2 * 2 * 4).reshape((2, 4, 2))
    +>>> np.matmul(a,b).shape
    +(2, 2, 2)
    +>>> np.matmul(a, b)[0, 1, 1]
    +array(98)
    +>>> np.sum(a[0, 1, :] * b[0 , :, 1])
    +array(98)
    +
    +
    +

    Vector, vector returns the scalar inner product, but neither argument +is complex-conjugated:

    +
    >>> x1 = np.array([2j, 3j])
    +>>> x2 = np.array([2j, 3j])
    +>>> np.matmul(x1, x2)
    +array(-13+0j)
    +
    +
    +

    The @ operator can be used as a shorthand for matmul on +dpnp.ndarray.

    +
    >>> x1 @ x2
    +array(-13+0j)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.max.html b/pull/2070/reference/generated/dpnp.max.html new file mode 100644 index 00000000000..a30c5190f57 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.max.html @@ -0,0 +1,243 @@ + + + + + + + + + + + dpnp.max — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.max

    +
    +
    +dpnp.max(a, axis=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the maximum of an array or maximum along an axis.

    +

    For full documentation refer to numpy.max.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int or tuple of ints}, optional) -- Axis or axes along which to operate. By default, flattened input is +used. If this is a tuple of integers, the minimum is selected over +multiple axes, instead of a single axis or all the axes as before. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. Must be of the +same shape and buffer length as the expected output. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the input array. +Default: False.

    • +
    +
    +
    Returns:
    +

      +
    • out (dpnp.ndarray) -- Maximum of a. If axis is None, the result is a zero-dimensional +array. If axis is an integer, the result is an array of dimension +a.ndim - 1. If axis is a tuple, the result is an array of +dimension a.ndim - len(axis).

    • +
    • Limitations

    • +
    • -----------.

    • +
    • Parameters where, and initial are only supported with their default

    • +
    • values. Otherwise NotImplementedError exception will be raised.

    • +
    +

    +
    +
    +
    +

    See also

    +
    +
    dpnp.min

    Return the minimum of an array.

    +
    +
    dpnp.maximum

    Element-wise maximum of two arrays, propagates NaNs.

    +
    +
    dpnp.fmax

    Element-wise maximum of two arrays, ignores NaNs.

    +
    +
    dpnp.amax

    The maximum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmax

    The maximum value of an array along a given axis, ignores NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(4).reshape((2,2))
    +>>> a
    +array([[0, 1],
    +       [2, 3]])
    +>>> np.max(a)
    +array(3)
    +
    +
    +
    >>> np.max(a, axis=0)   # Maxima along the first axis
    +array([2, 3])
    +>>> np.max(a, axis=1)   # Maxima along the second axis
    +array([1, 3])
    +
    +
    +
    >>> b = np.arange(5, dtype=float)
    +>>> b[2] = np.nan
    +>>> np.max(b)
    +array(nan)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.maximum.html b/pull/2070/reference/generated/dpnp.maximum.html new file mode 100644 index 00000000000..6bd92b6e2b3 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.maximum.html @@ -0,0 +1,231 @@ + + + + + + + + + + + dpnp.maximum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.maximum

    +
    +
    +dpnp.maximum(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Compares two input arrays x1 and x2 and returns a new array containing the +element-wise maxima.

    +

    If one of the elements being compared is a NaN, then that element is returned. +If both elements are NaNs then the first is returned. The latter distinction is +important for complex NaNs, which are defined as at least one of the real or +imaginary parts being a NaN. The net effect is that NaNs are propagated.

    +

    For full documentation refer to numpy.maximum.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise maxima. The data type of +the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.minimum

    Element-wise minimum of two arrays, propagates NaNs.

    +
    +
    dpnp.fmax

    Element-wise maximum of two arrays, ignores NaNs.

    +
    +
    dpnp.max

    The maximum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmax

    The maximum value of an array along a given axis, ignores NaNs.

    +
    +
    dpnp.fmin

    Element-wise minimum of two arrays, ignores NaNs.

    +
    +
    dpnp.min

    The minimum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmin

    The minimum value of an array along a given axis, ignores NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([2, 3, 4])
    +>>> x2 = np.array([1, 5, 2])
    +>>> np.maximum(x1, x2)
    +array([2, 5, 4])
    +
    +
    +
    >>> x1 = np.eye(2)
    +>>> x2 = np.array([0.5, 2])
    +>>> np.maximum(x1, x2) # broadcasting
    +array([[1. , 2. ],
    +       [0.5, 2. ]])
    +
    +
    +
    >>> x1 = np.array([np.nan, 0, np.nan])
    +>>> x2 = np.array([0, np.nan, np.nan])
    +>>> np.maximum(x1, x2)
    +array([nan, nan, nan])
    +
    +
    +
    >>> np.maximum(np.array(np.inf), 1)
    +array(inf)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.mean.html b/pull/2070/reference/generated/dpnp.mean.html new file mode 100644 index 00000000000..851dceb1a4b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.mean.html @@ -0,0 +1,231 @@ + + + + + + + + + + + dpnp.mean — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.mean

    +
    +
    +dpnp.mean(a, /, axis=None, dtype=None, out=None, keepdims=False, *, where=True)[source]
    +

    Compute the arithmetic mean along the specified axis.

    +

    For full documentation refer to numpy.mean.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which the arithmetic means must be computed. If +a tuple of unique integers, the means are computed over multiple +axes. If None, the mean is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type to use in computing the mean. By default, if a has a +floating-point data type, the returned array will have +the same data type as a. +If a has a boolean or integral data type, the returned array +will have the default floating point data type for the device +where input array a is allocated.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output but the type (of the calculated +values) will be cast if necessary. Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the arithmetic means along the specified axis(axes). +If the input is a zero-size array, an array containing NaN values is +returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter where is only supported with its default value. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.average

    Weighted average.

    +
    +
    dpnp.std

    Compute the standard deviation along the specified axis.

    +
    +
    dpnp.var

    Compute the variance along the specified axis.

    +
    +
    dpnp.nanmean

    Compute the arithmetic mean along the specified axis, ignoring NaNs.

    +
    +
    dpnp.nanstd

    Compute the standard deviation along the specified axis, while ignoring NaNs.

    +
    +
    dpnp.nanvar

    Compute the variance along the specified axis, while ignoring NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> np.mean(a)
    +array(2.5)
    +>>> np.mean(a, axis=0)
    +array([2., 3.])
    +>>> np.mean(a, axis=1)
    +array([1.5, 3.5])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.median.html b/pull/2070/reference/generated/dpnp.median.html new file mode 100644 index 00000000000..9f2e9314dba --- /dev/null +++ b/pull/2070/reference/generated/dpnp.median.html @@ -0,0 +1,191 @@ + + + + + + + + + + + dpnp.median — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.median

    +
    +
    +dpnp.median(x1, axis=None, out=None, overwrite_input=False, keepdims=False)[source]
    +

    Compute the median along the specified axis.

    +

    For full documentation refer to numpy.median.

    +

    Limitations

    +

    Input array is supported as dpnp.ndarray. +Parameter axis is supported only with default value None. +Parameter out is supported only with default value None. +Parameter overwrite_input is supported only with default value False. +Parameter keepdims is supported only with default value False. +Otherwise the function will be executed sequentially on CPU. +Input array data types are limited by supported DPNP Available array data types.

    +
    +

    See also

    +
    +
    dpnp.mean

    Compute the arithmetic mean along the specified axis.

    +
    +
    dpnp.percentile

    Compute the q-th percentile of the data along the specified axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[10, 7, 4], [3, 2, 1]])
    +>>> np.median(a)
    +3.5
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.meshgrid.html b/pull/2070/reference/generated/dpnp.meshgrid.html new file mode 100644 index 00000000000..42581de92ec --- /dev/null +++ b/pull/2070/reference/generated/dpnp.meshgrid.html @@ -0,0 +1,229 @@ + + + + + + + + + + + dpnp.meshgrid — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.meshgrid

    +
    +
    +dpnp.meshgrid(*xi, copy=True, sparse=False, indexing='xy')[source]
    +

    Return coordinate matrices from coordinate vectors.

    +

    Make N-D coordinate arrays for vectorized evaluations of +N-D scalar/vector fields over N-D grids, given +one-dimensional coordinate arrays x1, x2,..., xn.

    +

    For full documentation refer to numpy.meshgrid.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray}) -- 1-D arrays representing the coordinates of a grid.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray}) -- 1-D arrays representing the coordinates of a grid.

    • +
    • ... ({dpnp.ndarray, usm_ndarray}) -- 1-D arrays representing the coordinates of a grid.

    • +
    • xn ({dpnp.ndarray, usm_ndarray}) -- 1-D arrays representing the coordinates of a grid.

    • +
    • indexing ({'xy', 'ij'}, optional) -- Cartesian ('xy', default) or matrix ('ij') indexing of output.

    • +
    • sparse (bool, optional) -- If True the shape of the returned coordinate array for dimension i +is reduced from (N1, ..., Ni, ... Nn) to +(1, ..., 1, Ni, 1, ..., 1). +Default: False.

    • +
    • copy (bool, optional) -- If False, a view into the original arrays are returned in order to +conserve memory. +Default: True.

    • +
    +
    +
    Returns:
    +

    X1, X2,..., XN -- For vectors x1, x2,..., xn with lengths Ni=len(xi), returns +(N1, N2, N3,..., Nn) shaped arrays if indexing='ij' or +(N2, N1, N3,..., Nn) shaped arrays if indexing='xy' with +the elements of xi repeated to fill the matrix along the first +dimension for x1, the second for x2 and so on.

    +
    +
    Return type:
    +

    tuple of dpnp.ndarrays

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> nx, ny = (3, 2)
    +>>> x = np.linspace(0, 1, nx)
    +>>> y = np.linspace(0, 1, ny)
    +>>> xv, yv = np.meshgrid(x, y)
    +>>> xv
    +array([[0. , 0.5, 1. ],
    +       [0. , 0.5, 1. ]])
    +>>> yv
    +array([[0.,  0.,  0.],
    +       [1.,  1.,  1.]])
    +>>> xv, yv = np.meshgrid(x, y, sparse=True)  # make sparse output arrays
    +>>> xv
    +array([[0. ,  0.5,  1. ]])
    +>>> yv
    +array([[0.],
    +       [1.]])
    +
    +
    +

    meshgrid is very useful to evaluate functions on a grid.

    +
    >>> import matplotlib.pyplot as plt
    +>>> x = np.arange(-5, 5, 0.1)
    +>>> y = np.arange(-5, 5, 0.1)
    +>>> xx, yy = np.meshgrid(x, y, sparse=True)
    +>>> z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
    +>>> h = plt.contourf(x,y,z)
    +>>> plt.show()
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.mgrid.html b/pull/2070/reference/generated/dpnp.mgrid.html new file mode 100644 index 00000000000..ee6e406f577 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.mgrid.html @@ -0,0 +1,225 @@ + + + + + + + + + + + dpnp.mgrid — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.mgrid

    +
    +
    +dpnp.mgrid = <dpnp.dpnp_iface_arraycreation.MGridClass object>
    +

    Construct a dense multi-dimensional "meshgrid".

    +

    For full documentation refer to numpy.mgrid.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Returns one array of grid indices, +grid.shape = (len(dimensions),) + tuple(dimensions).

    +
    +
    Return type:
    +

    one dpnp.ndarray or tuple of dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.mgrid[0:5,0:5]
    +array([[[0, 0, 0, 0, 0],
    +        [1, 1, 1, 1, 1],
    +        [2, 2, 2, 2, 2],
    +        [3, 3, 3, 3, 3],
    +        [4, 4, 4, 4, 4]],
    +       [[0, 1, 2, 3, 4],
    +        [0, 1, 2, 3, 4],
    +        [0, 1, 2, 3, 4],
    +        [0, 1, 2, 3, 4],
    +        [0, 1, 2, 3, 4]]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.mgrid[-1:1:5j] # default case
    +>>> x, x.device, x.usm_type
    +(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.mgrid(device="cpu")[-1:1:5j]
    +>>> y, y.device, y.usm_type
    +(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.mgrid(usm_type="host")[-1:1:5j]
    +>>> z, z.device, z.usm_type
    +(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.min.html b/pull/2070/reference/generated/dpnp.min.html new file mode 100644 index 00000000000..481796cb723 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.min.html @@ -0,0 +1,242 @@ + + + + + + + + + + + dpnp.min — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.min

    +
    +
    +dpnp.min(a, axis=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the minimum of an array or maximum along an axis.

    +

    For full documentation refer to numpy.min.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int or tuple of ints}, optional) -- Axis or axes along which to operate. By default, flattened input is +used. If this is a tuple of integers, the minimum is selected over +multiple axes, instead of a single axis or all the axes as before. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. Must be of the +same shape and buffer length as the expected output. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the input array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- Minimum of a. If axis is None, the result is a zero-dimensional +array. If axis is an integer, the result is an array of dimension +a.ndim - 1. If axis is a tuple, the result is an array of +dimension a.ndim - len(axis).

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where, and initial are only supported with their default +values. Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.max

    Return the maximum of an array.

    +
    +
    dpnp.minimum

    Element-wise minimum of two arrays, propagates NaNs.

    +
    +
    dpnp.fmin

    Element-wise minimum of two arrays, ignores NaNs.

    +
    +
    dpnp.amin

    The minimum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmin

    The minimum value of an array along a given axis, ignores NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(4).reshape((2,2))
    +>>> a
    +array([[0, 1],
    +       [2, 3]])
    +>>> np.min(a)
    +array(0)
    +
    +
    +
    >>> np.min(a, axis=0)   # Minima along the first axis
    +array([0, 1])
    +>>> np.min(a, axis=1)   # Minima along the second axis
    +array([0, 2])
    +
    +
    +
    >>> b = np.arange(5, dtype=float)
    +>>> b[2] = np.nan
    +>>> np.min(b)
    +array(nan)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.minimum.html b/pull/2070/reference/generated/dpnp.minimum.html new file mode 100644 index 00000000000..bc66795bd1c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.minimum.html @@ -0,0 +1,231 @@ + + + + + + + + + + + dpnp.minimum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.minimum

    +
    +
    +dpnp.minimum(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Compares two input arrays x1 and x2 and returns a new array containing the +element-wise minima.

    +

    If one of the elements being compared is a NaN, then that element is returned. +If both elements are NaNs then the first is returned. The latter distinction is +important for complex NaNs, which are defined as at least one of the real or +imaginary parts being a NaN. The net effect is that NaNs are propagated.

    +

    For full documentation refer to numpy.minimum.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise minima. The data type of +the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.maximum

    Element-wise maximum of two arrays, propagates NaNs.

    +
    +
    dpnp.fmin

    Element-wise minimum of two arrays, ignores NaNs.

    +
    +
    dpnp.min

    The minimum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmin

    The minimum value of an array along a given axis, ignores NaNs.

    +
    +
    dpnp.fmax

    Element-wise maximum of two arrays, ignores NaNs.

    +
    +
    dpnp.max

    The maximum value of an array along a given axis, propagates NaNs.

    +
    +
    dpnp.nanmax

    The maximum value of an array along a given axis, ignores NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([2, 3, 4])
    +>>> x2 = np.array([1, 5, 2])
    +>>> np.minimum(x1, x2)
    +array([1, 3, 2])
    +
    +
    +
    >>> x1 = np.eye(2)
    +>>> x2 = np.array([0.5, 2])
    +>>> np.minimum(x1, x2) # broadcasting
    +array([[0.5, 0. ],
    +       [0. , 1. ]]
    +
    +
    +
    >>> x1 = np.array([np.nan, 0, np.nan])
    +>>> x2 = np.array([0, np.nan, np.nan])
    +>>> np.minimum(x1, x2)
    +array([nan, nan, nan])
    +
    +
    +
    >>> np.minimum(np.array(-np.inf), 1)
    +array(-inf)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.mod.html b/pull/2070/reference/generated/dpnp.mod.html new file mode 100644 index 00000000000..01975de0ce6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.mod.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.mod — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.mod

    +
    +
    +dpnp.mod(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the remainder of division for each element x1_i of the input array +x1 with the respective element x2_i of the input array x2.

    +

    This function is equivalent to the Python modulus operator.

    +

    For full documentation refer to numpy.remainder.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real-valued data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real-valued data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise remainders. Each remainder has the +same sign as respective element x2_i. The data type of the returned +array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.fmod

    Calculate the element-wise remainder of division.

    +
    +
    dpnp.divide

    Standard division.

    +
    +
    dpnp.floor

    Round a number to the nearest integer toward minus infinity.

    +
    +
    dpnp.floor_divide

    Compute the largest integer smaller or equal to the division of the inputs.

    +
    +
    dpnp.mod

    Calculate the element-wise remainder of division.

    +
    +
    +
    +

    Notes

    +

    Returns 0 when x2 is 0 and both x1 and x2 are (arrays of) +integers. +dpnp.mod is an alias of dpnp.remainder.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.remainder(np.array([4, 7]), np.array([2, 3]))
    +array([0, 1])
    +
    +
    +
    >>> np.remainder(np.arange(7), 5)
    +array([0, 1, 2, 3, 4, 0, 1])
    +
    +
    +

    The % operator can be used as a shorthand for remainder on +dpnp.ndarray.

    +
    >>> x1 = np.arange(7)
    +>>> x1 % 5
    +array([0, 1, 2, 3, 4, 0, 1])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.modf.html b/pull/2070/reference/generated/dpnp.modf.html new file mode 100644 index 00000000000..da151969e5a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.modf.html @@ -0,0 +1,169 @@ + + + + + + + + + + + dpnp.modf — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.modf

    +
    +
    +dpnp.modf(x1, **kwargs)[source]
    +

    Return the fractional and integral parts of an array, element-wise.

    +

    For full documentation refer to numpy.modf.

    +

    Limitations

    +

    Parameter x is supported as dpnp.ndarray. +Keyword argument kwargs is currently unsupported. +Otherwise the function will be executed sequentially on CPU. +Input array data types are limited by supported DPNP Available array data types.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2])
    +>>> result = np.modf(a)
    +>>> [[x for x in y] for y in result ]
    +[[1.0, 2.0], [0.0, 0.0]]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.moveaxis.html b/pull/2070/reference/generated/dpnp.moveaxis.html new file mode 100644 index 00000000000..38e8145271f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.moveaxis.html @@ -0,0 +1,208 @@ + + + + + + + + + + + dpnp.moveaxis — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.moveaxis

    +
    +
    +dpnp.moveaxis(a, source, destination)[source]
    +

    Move axes of an array to new positions. Other axes remain in their original +order.

    +

    For full documentation refer to numpy.moveaxis.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The array whose axes should be reordered.

    • +
    • source (int or sequence of int) -- Original positions of the axes to move. These must be unique.

    • +
    • destination (int or sequence of int) -- Destination positions for each of the original axes. These must also be +unique.

    • +
    +
    +
    Returns:
    +

    out -- Array with moved axes. This array is a view of the input array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.transpose

    Permute the dimensions of an array.

    +
    +
    dpnp.swapaxes

    Interchange two axes of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.zeros((3, 4, 5))
    +>>> np.moveaxis(x, 0, -1).shape
    +(4, 5, 3)
    +>>> np.moveaxis(x, -1, 0).shape
    +(5, 3, 4)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.multiply.html b/pull/2070/reference/generated/dpnp.multiply.html new file mode 100644 index 00000000000..9794284adec --- /dev/null +++ b/pull/2070/reference/generated/dpnp.multiply.html @@ -0,0 +1,208 @@ + + + + + + + + + + + dpnp.multiply — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.multiply

    +
    +
    +dpnp.multiply(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the product for each element x1_i of the input array x1 with the +respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.multiply.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise products. The data type of +the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Equivalent to x1 * x2 in terms of array broadcasting.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3, 4, 5])
    +>>> np.multiply(a, a)
    +array([ 1,  4,  9, 16, 25])]
    +
    +
    +
    >>> x1 = np.arange(9.0).reshape((3, 3))
    +>>> x2 = np.arange(3.0)
    +>>> np.multiply(x1, x2)
    +array([[  0.,   1.,   4.],
    +       [  0.,   4.,  10.],
    +       [  0.,   7.,  16.]])
    +
    +
    +

    The * operator can be used as a shorthand for multiply on +dpnp.ndarray.

    +
    >>> x1 * x2
    +array([[  0.,   1.,   4.],
    +       [  0.,   4.,  10.],
    +       [  0.,   7.,  16.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nan_to_num.html b/pull/2070/reference/generated/dpnp.nan_to_num.html new file mode 100644 index 00000000000..635d7a58fc6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nan_to_num.html @@ -0,0 +1,252 @@ + + + + + + + + + + + dpnp.nan_to_num — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.nan_to_num

    +
    +
    +dpnp.nan_to_num(x, copy=True, nan=0.0, posinf=None, neginf=None)[source]
    +

    Replace NaN with zero and infinity with large finite numbers (default +behavior) or with the numbers defined by the user using the nan, +posinf and/or neginf keywords.

    +

    If x is inexact, NaN is replaced by zero or by the user defined value +in nan keyword, infinity is replaced by the largest finite floating point +values representable by x.dtype or by the user defined value in +posinf keyword and -infinity is replaced by the most negative finite +floating point values representable by x.dtype or by the user defined +value in neginf keyword.

    +

    For complex dtypes, the above is applied to each of the real and +imaginary components of x separately.

    +

    If x is not inexact, then no replacements are made.

    +

    For full documentation refer to numpy.nan_to_num.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input data.

    • +
    • copy (bool, optional) -- Whether to create a copy of x (True) or to replace values +in-place (False). The in-place operation only occurs if casting to +an array does not require a copy.

    • +
    • nan ({int, float, bool}, optional) -- Value to be used to fill NaN values. +Default: 0.0.

    • +
    • posinf ({int, float, bool, None}, optional) -- Value to be used to fill positive infinity values. If no value is +passed then positive infinity values will be replaced with a very +large number. +Default: None.

    • +
    • neginf ({int, float, bool, None} optional) -- Value to be used to fill negative infinity values. If no value is +passed then negative infinity values will be replaced with a very +small (or negative) number. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- x, with the non-finite values replaced. If copy is False, this +may be x itself.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.isinf

    Shows which elements are positive or negative infinity.

    +
    +
    dpnp.isneginf

    Shows which elements are negative infinity.

    +
    +
    dpnp.isposinf

    Shows which elements are positive infinity.

    +
    +
    dpnp.isnan

    Shows which elements are Not a Number (NaN).

    +
    +
    dpnp.isfinite

    Shows which elements are finite (not NaN, not infinity)

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.nan_to_num(np.array(np.inf))
    +array(1.79769313e+308)
    +>>> np.nan_to_num(np.array(-np.inf))
    +array(-1.79769313e+308)
    +>>> np.nan_to_num(np.array(np.nan))
    +array(0.)
    +>>> x = np.array([np.inf, -np.inf, np.nan, -128, 128])
    +>>> np.nan_to_num(x)
    +array([ 1.79769313e+308, -1.79769313e+308,  0.00000000e+000,
    +       -1.28000000e+002,  1.28000000e+002])
    +>>> np.nan_to_num(x, nan=-9999, posinf=33333333, neginf=33333333)
    +array([ 3.3333333e+07,  3.3333333e+07, -9.9990000e+03, -1.2800000e+02,
    +        1.2800000e+02])
    +>>> y = np.array([complex(np.inf, np.nan), np.nan, complex(np.nan, np.inf)])
    +>>> np.nan_to_num(y)
    +array([1.79769313e+308 +0.00000000e+000j, # may vary
    +       0.00000000e+000 +0.00000000e+000j,
    +       0.00000000e+000 +1.79769313e+308j])
    +>>> np.nan_to_num(y, nan=111111, posinf=222222)
    +array([222222.+111111.j, 111111.     +0.j, 111111.+222222.j])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nanargmax.html b/pull/2070/reference/generated/dpnp.nanargmax.html new file mode 100644 index 00000000000..a055cb7e40f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nanargmax.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.nanargmax — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.nanargmax

    +
    +
    +dpnp.nanargmax(a, axis=None, out=None, *, keepdims=False)[source]
    +

    Returns the indices of the maximum values along an axis ignoring NaNs.

    +

    For full documentation refer to numpy.nanargmax.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int}, optional) -- Axis along which to operate. By default flattened input is used. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- If provided, the result will be inserted into this array. It should be +of the appropriate shape and dtype. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- If axis is None, a zero-dimensional array containing the index of +the first occurrence of the maximum value ignoring NaNs; otherwise, +a non-zero-dimensional array containing the indices of the minimum +values ignoring NaNs. The returned array must have the default array +index data type. +For all-NaN slices ValueError is raised. +Warning: the results cannot be trusted if a slice contains only NaNs +and -Infs.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Input array is only supported as either dpnp.ndarray +or dpctl.tensor.usm_ndarray. +Input array data types are limited by supported DPNP Available array data types.

    +
    +

    See also

    +
    +
    dpnp.nanargmin

    Returns the indices of the minimum values along an axis, ignoring NaNs.

    +
    +
    dpnp.argmax

    Returns the indices of the maximum values along an axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[np.nan, 4], [2, 3]])
    +>>> np.argmax(a)
    +array(0)
    +>>> np.nanargmax(a)
    +array(1)
    +>>> np.nanargmax(a, axis=0)
    +array([1, 0])
    +>>> np.nanargmax(a, axis=1)
    +array([1, 1])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nanargmin.html b/pull/2070/reference/generated/dpnp.nanargmin.html new file mode 100644 index 00000000000..318aee86e4e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nanargmin.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.nanargmin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.nanargmin

    +
    +
    +dpnp.nanargmin(a, axis=None, out=None, *, keepdims=False)[source]
    +

    Returns the indices of the minimum values along an axis ignoring NaNs.

    +

    For full documentation refer to numpy.nanargmin.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int}, optional) -- Axis along which to operate. By default flattened input is used. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- If provided, the result will be inserted into this array. It should be +of the appropriate shape and dtype. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- If axis is None, a zero-dimensional array containing the index of +the first occurrence of the minimum value ignoring NaNs; otherwise, +a non-zero-dimensional array containing the indices of the minimum +values ignoring NaNs. The returned array must have the default array +index data type. +For all-NaN slices ValueError is raised. +Warning: the results cannot be trusted if a slice contains only NaNs +and Infs.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Input and output arrays are only supported as either dpnp.ndarray +or dpctl.tensor.usm_ndarray. +Input array data types are limited by supported DPNP Available array data types.

    +
    +

    See also

    +
    +
    dpnp.nanargmax

    Returns the indices of the maximum values along an axis, ignoring NaNs.

    +
    +
    dpnp.argmin

    Returns the indices of the minimum values along an axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[np.nan, 4], [2, 3]])
    +>>> np.argmin(a)
    +array(0)
    +>>> np.nanargmin(a)
    +array(2)
    +>>> np.nanargmin(a, axis=0)
    +array([1, 1])
    +>>> np.nanargmin(a, axis=1)
    +array([1, 0])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nancumprod.html b/pull/2070/reference/generated/dpnp.nancumprod.html new file mode 100644 index 00000000000..e12b9e5ad0c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nancumprod.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.nancumprod — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.nancumprod

    +
    +
    +dpnp.nancumprod(a, axis=None, dtype=None, out=None)[source]
    +

    Return the cumulative product of array elements over a given axis treating +Not a Numbers (NaNs) as zero. The cumulative product does not change when +NaNs are encountered and leading NaNs are replaced by ones.

    +

    For full documentation refer to numpy.nancumprod.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int}, optional) -- Axis along which the cumulative product is computed. The default +(None) is to compute the cumulative product over the flattened +array.

    • +
    • dtype ({None, dtype}, optional) -- Type of the returned array and of the accumulator in which the elements +are summed. If dtype is not specified, it defaults to the dtype of +a, unless a has an integer dtype with a precision less than that of +the default platform integer. In that case, the default platform +integer is used.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have the +same shape and buffer length as the expected output but the type will +be cast if necessary.

    • +
    +
    +
    Returns:
    +

    out -- A new array holding the result is returned unless out is specified as +dpnp.ndarray, in which case a reference to out is returned. +The result has the same size as a, and the same shape as a if axis +is not None or a is a 1-d array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.cumprod

    Cumulative product across array propagating NaNs.

    +
    +
    dpnp.isnan

    Show which elements are NaN.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.nancumprod(np.array(1))
    +array(1)
    +>>> np.nancumprod(np.array([1]))
    +array([1])
    +>>> np.nancumprod(np.array([1, np.nan]))
    +array([1., 1.])
    +>>> a = np.array([[1, 2], [3, np.nan]])
    +>>> np.nancumprod(a)
    +array([1., 2., 6., 6.])
    +>>> np.nancumprod(a, axis=0)
    +array([[1., 2.],
    +       [3., 2.]])
    +>>> np.nancumprod(a, axis=1)
    +array([[1., 2.],
    +       [3., 3.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nancumsum.html b/pull/2070/reference/generated/dpnp.nancumsum.html new file mode 100644 index 00000000000..3b42d57b712 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nancumsum.html @@ -0,0 +1,231 @@ + + + + + + + + + + + dpnp.nancumsum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.nancumsum

    +
    +
    +dpnp.nancumsum(a, axis=None, dtype=None, out=None)[source]
    +

    Return the cumulative sum of array elements over a given axis treating +Not a Numbers (NaNs) as zero. The cumulative sum does not change when NaNs +are encountered and leading NaNs are replaced by zeros.

    +

    For full documentation refer to numpy.nancumsum.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int}, optional) -- Axis along which the cumulative sum is computed. The default (None) +is to compute the cumulative sum over the flattened array.

    • +
    • dtype ({None, dtype}, optional) -- Type of the returned array and of the accumulator in which the elements +are summed. If dtype is not specified, it defaults to the dtype of +a, unless a has an integer dtype with a precision less than that of +the default platform integer. In that case, the default platform +integer is used.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have the +same shape and buffer length as the expected output but the type will +be cast if necessary.

    • +
    +
    +
    Returns:
    +

    out -- A new array holding the result is returned unless out is specified as +dpnp.ndarray, in which case a reference to out is returned. +The result has the same size as a, and the same shape as a if axis +is not None or a is a 1-d array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.cumsum

    Cumulative sum across array propagating NaNs.

    +
    +
    dpnp.isnan

    Show which elements are NaN.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.nancumsum(np.array(1))
    +array(1)
    +>>> np.nancumsum(np.array([1]))
    +array([1])
    +>>> np.nancumsum(np.array([1, np.nan]))
    +array([1., 1.])
    +>>> a = np.array([[1, 2], [3, np.nan]])
    +>>> np.nancumsum(a)
    +array([1., 3., 6., 6.])
    +>>> np.nancumsum(a, axis=0)
    +array([[1., 2.],
    +       [4., 2.]])
    +>>> np.nancumsum(a, axis=1)
    +array([[1., 3.],
    +       [3., 3.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nanmax.html b/pull/2070/reference/generated/dpnp.nanmax.html new file mode 100644 index 00000000000..dc2195483e6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nanmax.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.nanmax — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.nanmax

    +
    +
    +dpnp.nanmax(a, axis=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the maximum of an array or maximum along an axis, ignoring any NaNs.

    +

    For full documentation refer to numpy.nanmax.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which maximum values must be computed. By default, +the maximum value must be computed over the entire array. If a tuple +of integers, maximum values must be computed over multiple axes. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- If provided, the result will be inserted into this array. It should +be of the appropriate shape and dtype.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) must be included in the +result as singleton dimensions, and, accordingly, the result must be +compatible with the input array. Otherwise, if False, the reduced +axes (dimensions) must not be included in the result. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- If the maximum value was computed over the entire array, +a zero-dimensional array containing the maximum value ignoring NaNs; +otherwise, a non-zero-dimensional array containing the maximum values +ignoring NaNs. The returned array must have the same data type as a. +When all-NaN slices are encountered a RuntimeWarning is raised and +NaN is returned for that slice.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Input array is only supported as either dpnp.ndarray +or dpctl.tensor.usm_ndarray. +Parameters where, and initial are only supported with their default +values. +Otherwise NotImplementedError exception will be raised. +Input array data types are limited by supported DPNP Available array data types.

    +
    +

    See also

    +
    +
    dpnp.nanmin

    The minimum value of an array along a given axis, ignoring any NaNs.

    +
    +
    dpnp.max

    The maximum value of an array along a given axis, propagating any NaNs.

    +
    +
    dpnp.fmax

    Element-wise maximum of two arrays, ignoring any NaNs.

    +
    +
    dpnp.maximum

    Element-wise maximum of two arrays, propagating any NaNs.

    +
    +
    dpnp.isnan

    Shows which elements are Not a Number (NaN).

    +
    +
    dpnp.isfinite

    Shows which elements are neither NaN nor infinity.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, np.nan]])
    +>>> np.nanmax(a)
    +array(3.)
    +>>> np.nanmax(a, axis=0)
    +array([3.,  2.])
    +>>> np.nanmax(a, axis=1)
    +array([2.,  3.])
    +
    +
    +

    When positive infinity and negative infinity are present:

    +
    >>> np.nanmax(np.array([1, 2, np.nan, -np.inf]))
    +array(2.)
    +>>> np.nanmax(np.array([1, 2, np.nan, np.inf]))
    +array(inf)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nanmean.html b/pull/2070/reference/generated/dpnp.nanmean.html new file mode 100644 index 00000000000..05fb1b32a88 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nanmean.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.nanmean — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.nanmean

    +
    +
    +dpnp.nanmean(a, axis=None, dtype=None, out=None, keepdims=False, *, where=True)[source]
    +

    Compute the arithmetic mean along the specified axis, ignoring NaNs.

    +

    For full documentation refer to numpy.nanmean.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which the arithmetic means must be computed. If +a tuple of unique integers, the means are computed over multiple +axes. If None, the mean is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type to use in computing the mean. By default, if a has a +floating-point data type, the returned array will have +the same data type as a. +If a has a boolean or integral data type, the returned array +will have the default floating point data type for the device +where input array a is allocated.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output but the type (of the calculated +values) will be cast if necessary. Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the arithmetic means along the specified axis(axes). +If the input is a zero-size array, an array containing NaN values is +returned. In addition, NaN is returned for slices that contain only +NaNs.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter where is only supported with its default value. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.average

    Weighted average.

    +
    +
    dpnp.mean

    Compute the arithmetic mean along the specified axis.

    +
    +
    dpnp.var

    Compute the variance along the specified axis.

    +
    +
    dpnp.nanvar

    Compute the variance along the specified axis, while ignoring NaNs.

    +
    +
    dpnp.std

    Compute the standard deviation along the specified axis.

    +
    +
    dpnp.nanstd

    Compute the standard deviation along the specified axis, while ignoring NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, np.nan], [3, 4]])
    +>>> np.nanmean(a)
    +array(2.6666666666666665)
    +>>> np.nanmean(a, axis=0)
    +array([2., 4.])
    +>>> np.nanmean(a, axis=1)
    +array([1., 3.5]) # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nanmin.html b/pull/2070/reference/generated/dpnp.nanmin.html new file mode 100644 index 00000000000..5a621dd7146 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nanmin.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.nanmin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.nanmin

    +
    +
    +dpnp.nanmin(a, axis=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the minimum of an array or minimum along an axis, ignoring any NaNs.

    +

    For full documentation refer to numpy.nanmin.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which minimum values must be computed. By default, +the minimum value must be computed over the entire array. If a tuple +of integers, minimum values must be computed over multiple axes. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- If provided, the result will be inserted into this array. It should +be of the appropriate shape and dtype.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) must be included in the +result as singleton dimensions, and, accordingly, the result must be +compatible with the input array. Otherwise, if False, the reduced +axes (dimensions) must not be included in the result. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- If the minimum value was computed over the entire array, +a zero-dimensional array containing the minimum value ignoring NaNs; +otherwise, a non-zero-dimensional array containing the minimum values +ignoring NaNs. The returned array must have the same data type as a. +When all-NaN slices are encountered a RuntimeWarning is raised and +NaN is returned for that slice.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Input array is only supported as either dpnp.ndarray +or dpctl.tensor.usm_ndarray. +Parameters where, and initial are only supported with their default +values. +Otherwise NotImplementedError exception will be raised. +Input array data types are limited by supported DPNP Available array data types.

    +
    +

    See also

    +
    +
    dpnp.nanmax

    The maximum value of an array along a given axis, ignoring any NaNs.

    +
    +
    dpnp.min

    The minimum value of an array along a given axis, propagating any NaNs.

    +
    +
    dpnp.fmin

    Element-wise minimum of two arrays, ignoring any NaNs.

    +
    +
    dpnp.minimum

    Element-wise minimum of two arrays, propagating any NaNs.

    +
    +
    dpnp.isnan

    Shows which elements are Not a Number (NaN).

    +
    +
    dpnp.isfinite

    Shows which elements are neither NaN nor infinity.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, np.nan]])
    +>>> np.nanmin(a)
    +array(1.)
    +>>> np.nanmin(a, axis=0)
    +array([1.,  2.])
    +>>> np.nanmin(a, axis=1)
    +array([1.,  3.])
    +
    +
    +

    When positive infinity and negative infinity are present:

    +
    >>> np.nanmin(np.array([1, 2, np.nan, np.inf]))
    +array(1.)
    +>>> np.nanmin(np.array([1, 2, np.nan, -np.inf]))
    +array(-inf)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nanprod.html b/pull/2070/reference/generated/dpnp.nanprod.html new file mode 100644 index 00000000000..2d83cc01188 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nanprod.html @@ -0,0 +1,240 @@ + + + + + + + + + + + dpnp.nanprod — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.nanprod

    +
    +
    +dpnp.nanprod(a, axis=None, dtype=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the product of array elements over a given axis treating +Not a Numbers (NaNs) as ones.

    +

    For full documentation refer to numpy.nanprod.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int or tuple of ints}, optional) -- Axis or axes along which the product is computed. The default is to +compute the product of the flattened array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- The type of the returned array and of the accumulator in which the +elements are multiplied. By default, the dtype of a is used. An +exception is when a has an integer type with less precision than +the platform (u)intp. In that case, the default will be either (u)int32 +or (u)int64 depending on whether the platform is 32 or 64 bits. For +inexact inputs, dtype must be inexact. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternate output array in which to place the result. If provided, it +must have the same shape as the expected output, but the type will be +cast if necessary. The casting of NaN to integer +can yield unexpected results. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If True, the axes which are reduced are left in the result as +dimensions with size one. With this option, the result will broadcast +correctly against the original a. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- A new array holding the result is returned unless out is specified, +in which case it is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.prod

    Returns product across array propagating NaNs.

    +
    +
    dpnp.isnan

    Test element-wise for NaN and return result as a boolean array.

    +
    +
    +
    +

    Limitations

    +

    Input array is only supported as either dpnp.ndarray or +dpctl.tensor.usm_ndarray. +Parameters initial, and where are only supported with their default +values. +Otherwise the function will be executed sequentially on CPU. +Input array data types are limited by supported DPNP Available array data types.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.nanprod(np.array(1))
    +array(1)
    +>>> np.nanprod(np.array([1]))
    +array(1)
    +>>> np.nanprod(np.array([1, np.nan]))
    +array(1.0)
    +>>> a = np.array([[1, 2], [3, np.nan]])
    +>>> np.nanprod(a)
    +array(6.0)
    +>>> np.nanprod(a, axis=0)
    +array([3., 2.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nanstd.html b/pull/2070/reference/generated/dpnp.nanstd.html new file mode 100644 index 00000000000..57d491e1dd2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nanstd.html @@ -0,0 +1,239 @@ + + + + + + + + + + + dpnp.nanstd — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.nanstd

    +
    +
    +dpnp.nanstd(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)[source]
    +

    Compute the standard deviation along the specified axis, +while ignoring NaNs.

    +

    For full documentation refer to numpy.nanstd.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which the standard deviations must be computed. +If a tuple of unique integers is given, the standard deviations +are computed over multiple axes. If None, the standard deviation +is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type to use in computing the standard deviation. By default, +if a has a floating-point data type, the returned array +will have the same data type as a. +If a has a boolean or integral data type, the returned array +will have the default floating point data type for the device +where input array a is allocated.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output but the type (of the calculated +values) will be cast if necessary.

    • +
    • ddof ({int, float}, optional) -- Means Delta Degrees of Freedom. The divisor used in calculations +is N - ddof, where N the number of non-NaN elements. +Default: 0.0.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the standard deviations. If the standard +deviation was computed over the entire array, a zero-dimensional +array is returned. If ddof is >= the number of non-NaN elements +in a slice or the slice contains only NaNs, then the result for +that slice is NaN.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where is only supported with its default value. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Note that, for complex numbers, the absolute value is taken before +squaring, so that the result is always real and non-negative.

    +
    +

    See also

    +
    +
    dpnp.var

    Compute the variance along the specified axis.

    +
    +
    dpnp.mean

    Compute the arithmetic mean along the specified axis.

    +
    +
    dpnp.std

    Compute the standard deviation along the specified axis.

    +
    +
    dpnp.nanmean

    Compute the arithmetic mean along the specified axis, ignoring NaNs.

    +
    +
    dpnp.nanvar

    Compute the variance along the specified axis, while ignoring NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, np.nan], [3, 4]])
    +>>> np.nanstd(a)
    +array(1.247219128924647)
    +>>> np.nanstd(a, axis=0)
    +array([1.,  0.])
    +>>> np.nanstd(a, axis=1)
    +array([0.,  0.5])  # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nansum.html b/pull/2070/reference/generated/dpnp.nansum.html new file mode 100644 index 00000000000..11a7390ef13 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nansum.html @@ -0,0 +1,247 @@ + + + + + + + + + + + dpnp.nansum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.nansum

    +
    +
    +dpnp.nansum(a, axis=None, dtype=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the sum of array elements over a given axis treating +Not a Numbers (NaNs) as zero.

    +

    For full documentation refer to numpy.nansum.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int or tuple of ints}, optional) -- Axis or axes along which the sum is computed. The default is to compute +the sum of the flattened array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- The type of the returned array and of the accumulator in which the +elements are summed. By default, the dtype of a is used. An exception +is when a has an integer type with less precision than the platform +(u)intp. In that case, the default will be either (u)int32 or (u)int64 +depending on whether the platform is 32 or 64 bits. For inexact inputs, +dtype must be inexact. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternate output array in which to place the result. If provided, it +must have the same shape as the expected output, but the type will be +cast if necessary. The casting of NaN to integer can yield unexpected +results. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the original a. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- A new array holding the result is returned unless out is specified, +in which it is returned. The result has the same size as a, and the +same shape as a if axis is not None or a is a 1-d array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters initial and where are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.sum

    Sum across array propagating NaNs.

    +
    +
    dpnp.isnan

    Show which elements are NaN.

    +
    +
    dpnp.isfinite

    Show which elements are not NaN or +/-inf.

    +
    +
    +
    +

    Notes

    +

    If both positive and negative infinity are present, the sum will be Not +A Number (NaN).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.nansum(np.array([1]))
    +array(1)
    +>>> np.nansum(np.array([1, np.nan]))
    +array(1.)
    +>>> a = np.array([[1, 1], [1, np.nan]])
    +>>> np.nansum(a)
    +array(3.)
    +>>> np.nansum(a, axis=0)
    +array([2.,  1.])
    +>>> np.nansum(np.array([1, np.nan, np.inf]))
    +array(inf)
    +>>> np.nansum(np.array([1, np.nan, -np.inf]))
    +array(-inf)
    +>>> # both +/- infinity present
    +>>> np.nansum(np.array([1, np.nan, np.inf, -np.inf]))
    +array(nan)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nanvar.html b/pull/2070/reference/generated/dpnp.nanvar.html new file mode 100644 index 00000000000..ece0ecfe155 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nanvar.html @@ -0,0 +1,234 @@ + + + + + + + + + + + dpnp.nanvar — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.nanvar

    +
    +
    +dpnp.nanvar(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)[source]
    +

    Compute the variance along the specified axis, while ignoring NaNs.

    +

    For full documentation refer to numpy.nanvar.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- axis or axes along which the variances must be computed. If a tuple +of unique integers is given, the variances are computed over multiple +axes. If None, the variance is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type to use in computing the variance. By default, if a has a +floating-point data type, the returned array will have +the same data type as a. +If a has a boolean or integral data type, the returned array +will have the default floating point data type for the device +where input array a is allocated.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output but the type (of the calculated +values) will be cast if necessary.

    • +
    • ddof ({int, float}, optional) -- Means Delta Degrees of Freedom. The divisor used in calculations +is N - ddof, where N represents the number of non-NaN elements. +Default: 0.0.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the variances. If the variance was computed +over the entire array, a zero-dimensional array is returned. +If ddof is >= the number of non-NaN elements in a slice or the +slice contains only NaNs, then the result for that slice is NaN.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where is only supported with its default value. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Note that, for complex numbers, the absolute value is taken before squaring, +so that the result is always real and non-negative.

    +
    +

    See also

    +
    +
    dpnp.var

    Compute the variance along the specified axis.

    +
    +
    dpnp.std

    Compute the standard deviation along the specified axis.

    +
    +
    dpnp.nanmean

    Compute the arithmetic mean along the specified axis, ignoring NaNs.

    +
    +
    dpnp.nanstd

    Compute the standard deviation along the specified axis, while ignoring NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, np.nan], [3, 4]])
    +>>> np.nanvar(a)
    +array(1.5555555555555554)
    +>>> np.nanvar(a, axis=0)
    +array([1.,  0.])
    +>>> np.nanvar(a, axis=1)
    +array([0.,  0.25])  # may vary
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.T.html b/pull/2070/reference/generated/dpnp.ndarray.T.html new file mode 100644 index 00000000000..4044a9e3a32 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.T.html @@ -0,0 +1,168 @@ + + + + + + + + + + + dpnp.ndarray.T — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__abs__.html b/pull/2070/reference/generated/dpnp.ndarray.__abs__.html new file mode 100644 index 00000000000..19d7675fec4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__abs__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__abs__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__abs__

    +
    +
    +ndarray.__abs__()
    +

    Return \|self\|.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__add__.html b/pull/2070/reference/generated/dpnp.ndarray.__add__.html new file mode 100644 index 00000000000..3439f8954c8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__add__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__add__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__add__

    +
    +
    +ndarray.__add__(other)
    +

    Return self+value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__and__.html b/pull/2070/reference/generated/dpnp.ndarray.__and__.html new file mode 100644 index 00000000000..4bcf2bbed5e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__and__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__and__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__and__

    +
    +
    +ndarray.__and__(other)
    +

    Return self&value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__bool__.html b/pull/2070/reference/generated/dpnp.ndarray.__bool__.html new file mode 100644 index 00000000000..d5e436734c7 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__bool__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__bool__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__bool__

    +
    +
    +ndarray.__bool__()
    +

    True if self else False.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__complex__.html b/pull/2070/reference/generated/dpnp.ndarray.__complex__.html new file mode 100644 index 00000000000..ba43c683e28 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__complex__.html @@ -0,0 +1,173 @@ + + + + + + + + + + + dpnp.ndarray.__complex__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__copy__.html b/pull/2070/reference/generated/dpnp.ndarray.__copy__.html new file mode 100644 index 00000000000..1b040074fa1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__copy__.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.ndarray.__copy__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__eq__.html b/pull/2070/reference/generated/dpnp.ndarray.__eq__.html new file mode 100644 index 00000000000..bc6f995e896 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__eq__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__eq__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__eq__

    +
    +
    +ndarray.__eq__(other)
    +

    Return self==value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__float__.html b/pull/2070/reference/generated/dpnp.ndarray.__float__.html new file mode 100644 index 00000000000..648cd2ada5e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__float__.html @@ -0,0 +1,173 @@ + + + + + + + + + + + dpnp.ndarray.__float__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__floordiv__.html b/pull/2070/reference/generated/dpnp.ndarray.__floordiv__.html new file mode 100644 index 00000000000..f44035e2391 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__floordiv__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__floordiv__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__floordiv__

    +
    +
    +ndarray.__floordiv__(other)
    +

    Return self//value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__ge__.html b/pull/2070/reference/generated/dpnp.ndarray.__ge__.html new file mode 100644 index 00000000000..7257d5468c4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__ge__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__ge__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__ge__

    +
    +
    +ndarray.__ge__(other)
    +

    Return self>=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__getitem__.html b/pull/2070/reference/generated/dpnp.ndarray.__getitem__.html new file mode 100644 index 00000000000..6efa2998788 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__getitem__.html @@ -0,0 +1,174 @@ + + + + + + + + + + + dpnp.ndarray.__getitem__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__gt__.html b/pull/2070/reference/generated/dpnp.ndarray.__gt__.html new file mode 100644 index 00000000000..c6cbb2b30e1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__gt__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__gt__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__gt__

    +
    +
    +ndarray.__gt__(other)
    +

    Return self>value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__iadd__.html b/pull/2070/reference/generated/dpnp.ndarray.__iadd__.html new file mode 100644 index 00000000000..1fe86ab42a5 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__iadd__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__iadd__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__iadd__

    +
    +
    +ndarray.__iadd__(other)
    +

    Return self+=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__iand__.html b/pull/2070/reference/generated/dpnp.ndarray.__iand__.html new file mode 100644 index 00000000000..368f0df76ea --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__iand__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__iand__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__iand__

    +
    +
    +ndarray.__iand__(other)
    +

    Return self&=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__ifloordiv__.html b/pull/2070/reference/generated/dpnp.ndarray.__ifloordiv__.html new file mode 100644 index 00000000000..ae2d7c38bc6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__ifloordiv__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__ifloordiv__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__ifloordiv__

    +
    +
    +ndarray.__ifloordiv__(other)
    +

    Return self//=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__ilshift__.html b/pull/2070/reference/generated/dpnp.ndarray.__ilshift__.html new file mode 100644 index 00000000000..08ab8867fa1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__ilshift__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__ilshift__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__ilshift__

    +
    +
    +ndarray.__ilshift__(other)
    +

    Return self<<=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__imod__.html b/pull/2070/reference/generated/dpnp.ndarray.__imod__.html new file mode 100644 index 00000000000..e9f3c450826 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__imod__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__imod__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__imod__

    +
    +
    +ndarray.__imod__(other)
    +

    Return self%=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__imul__.html b/pull/2070/reference/generated/dpnp.ndarray.__imul__.html new file mode 100644 index 00000000000..3d25fed4701 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__imul__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__imul__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__imul__

    +
    +
    +ndarray.__imul__(other)
    +

    Return self*=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__int__.html b/pull/2070/reference/generated/dpnp.ndarray.__int__.html new file mode 100644 index 00000000000..27abea33866 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__int__.html @@ -0,0 +1,173 @@ + + + + + + + + + + + dpnp.ndarray.__int__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__invert__.html b/pull/2070/reference/generated/dpnp.ndarray.__invert__.html new file mode 100644 index 00000000000..b0b39f78ce1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__invert__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__invert__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__invert__

    +
    +
    +ndarray.__invert__()
    +

    Return ~self.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__ior__.html b/pull/2070/reference/generated/dpnp.ndarray.__ior__.html new file mode 100644 index 00000000000..0b8f082543e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__ior__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__ior__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__ior__

    +
    +
    +ndarray.__ior__(other)
    +

    Return self|=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__ipow__.html b/pull/2070/reference/generated/dpnp.ndarray.__ipow__.html new file mode 100644 index 00000000000..7f74a7f7c03 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__ipow__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__ipow__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__ipow__

    +
    +
    +ndarray.__ipow__(other)
    +

    Return self**=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__irshift__.html b/pull/2070/reference/generated/dpnp.ndarray.__irshift__.html new file mode 100644 index 00000000000..607359b9e2c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__irshift__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__irshift__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__irshift__

    +
    +
    +ndarray.__irshift__(other)
    +

    Return self>>=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__isub__.html b/pull/2070/reference/generated/dpnp.ndarray.__isub__.html new file mode 100644 index 00000000000..897bf9f7adb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__isub__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__isub__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__isub__

    +
    +
    +ndarray.__isub__(other)
    +

    Return self-=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__itruediv__.html b/pull/2070/reference/generated/dpnp.ndarray.__itruediv__.html new file mode 100644 index 00000000000..fa369839185 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__itruediv__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__itruediv__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__itruediv__

    +
    +
    +ndarray.__itruediv__(other)
    +

    Return self/=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__ixor__.html b/pull/2070/reference/generated/dpnp.ndarray.__ixor__.html new file mode 100644 index 00000000000..79faae30b46 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__ixor__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__ixor__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__ixor__

    +
    +
    +ndarray.__ixor__(other)
    +

    Return self^=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__le__.html b/pull/2070/reference/generated/dpnp.ndarray.__le__.html new file mode 100644 index 00000000000..1d913f92aa4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__le__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__le__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__le__

    +
    +
    +ndarray.__le__(other)
    +

    Return self<=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__len__.html b/pull/2070/reference/generated/dpnp.ndarray.__len__.html new file mode 100644 index 00000000000..c3ce6ab820c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__len__.html @@ -0,0 +1,174 @@ + + + + + + + + + + + dpnp.ndarray.__len__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__lshift__.html b/pull/2070/reference/generated/dpnp.ndarray.__lshift__.html new file mode 100644 index 00000000000..aa4b6a06144 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__lshift__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__lshift__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__lshift__

    +
    +
    +ndarray.__lshift__(other)
    +

    Return self<<value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__lt__.html b/pull/2070/reference/generated/dpnp.ndarray.__lt__.html new file mode 100644 index 00000000000..c756ce88b8a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__lt__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__lt__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__lt__

    +
    +
    +ndarray.__lt__(other)
    +

    Return self<value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__matmul__.html b/pull/2070/reference/generated/dpnp.ndarray.__matmul__.html new file mode 100644 index 00000000000..6668ff969f8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__matmul__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__matmul__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__matmul__

    +
    +
    +ndarray.__matmul__(other)
    +

    Return self@value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__mod__.html b/pull/2070/reference/generated/dpnp.ndarray.__mod__.html new file mode 100644 index 00000000000..ec8509b2a8e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__mod__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__mod__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__mod__

    +
    +
    +ndarray.__mod__(other)
    +

    Return self%value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__mul__.html b/pull/2070/reference/generated/dpnp.ndarray.__mul__.html new file mode 100644 index 00000000000..5e54cd5dae2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__mul__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__mul__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__mul__

    +
    +
    +ndarray.__mul__(other)
    +

    Return self*value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__ne__.html b/pull/2070/reference/generated/dpnp.ndarray.__ne__.html new file mode 100644 index 00000000000..d8f367fda01 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__ne__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__ne__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__ne__

    +
    +
    +ndarray.__ne__(other)
    +

    Return self!=value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__neg__.html b/pull/2070/reference/generated/dpnp.ndarray.__neg__.html new file mode 100644 index 00000000000..8c30993676c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__neg__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__neg__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__neg__

    +
    +
    +ndarray.__neg__()
    +

    Return -self.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__new__.html b/pull/2070/reference/generated/dpnp.ndarray.__new__.html new file mode 100644 index 00000000000..5f47c742c19 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__new__.html @@ -0,0 +1,173 @@ + + + + + + + + + + + dpnp.ndarray.__new__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__or__.html b/pull/2070/reference/generated/dpnp.ndarray.__or__.html new file mode 100644 index 00000000000..2125feca44e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__or__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__or__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__or__

    +
    +
    +ndarray.__or__(other)
    +

    Return self|value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__pos__.html b/pull/2070/reference/generated/dpnp.ndarray.__pos__.html new file mode 100644 index 00000000000..11fdcf658c8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__pos__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__pos__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__pos__

    +
    +
    +ndarray.__pos__()
    +

    Return +self.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__pow__.html b/pull/2070/reference/generated/dpnp.ndarray.__pow__.html new file mode 100644 index 00000000000..b42fd005ed8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__pow__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__pow__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__pow__

    +
    +
    +ndarray.__pow__(other)
    +

    Return self**value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__repr__.html b/pull/2070/reference/generated/dpnp.ndarray.__repr__.html new file mode 100644 index 00000000000..c3c610d9ff8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__repr__.html @@ -0,0 +1,174 @@ + + + + + + + + + + + dpnp.ndarray.__repr__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__rshift__.html b/pull/2070/reference/generated/dpnp.ndarray.__rshift__.html new file mode 100644 index 00000000000..6d67308786f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__rshift__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__rshift__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__rshift__

    +
    +
    +ndarray.__rshift__(other)
    +

    Return self>>value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__setitem__.html b/pull/2070/reference/generated/dpnp.ndarray.__setitem__.html new file mode 100644 index 00000000000..86994971eae --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__setitem__.html @@ -0,0 +1,174 @@ + + + + + + + + + + + dpnp.ndarray.__setitem__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__str__.html b/pull/2070/reference/generated/dpnp.ndarray.__str__.html new file mode 100644 index 00000000000..49ac2e3ebba --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__str__.html @@ -0,0 +1,174 @@ + + + + + + + + + + + dpnp.ndarray.__str__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__sub__.html b/pull/2070/reference/generated/dpnp.ndarray.__sub__.html new file mode 100644 index 00000000000..9929ebb5376 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__sub__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__sub__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__sub__

    +
    +
    +ndarray.__sub__(other)
    +

    Return self-value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__truediv__.html b/pull/2070/reference/generated/dpnp.ndarray.__truediv__.html new file mode 100644 index 00000000000..dd1cc1f5670 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__truediv__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__truediv__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__truediv__

    +
    +
    +ndarray.__truediv__(other)
    +

    Return self/value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.__xor__.html b/pull/2070/reference/generated/dpnp.ndarray.__xor__.html new file mode 100644 index 00000000000..82bdd13da1a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.__xor__.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.ndarray.__xor__ — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.__xor__

    +
    +
    +ndarray.__xor__(other)
    +

    Return self^value.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.all.html b/pull/2070/reference/generated/dpnp.ndarray.all.html new file mode 100644 index 00000000000..fc78e621f92 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.all.html @@ -0,0 +1,190 @@ + + + + + + + + + + + dpnp.ndarray.all — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ndarray.all

    +
    +
    +ndarray.all(axis=None, out=None, keepdims=False, *, where=True)
    +

    Returns True if all elements evaluate to True.

    +

    Refer to dpnp.all for full documentation.

    +
    +

    See also

    +
    +
    dpnp.all

    equivalent function

    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.any.html b/pull/2070/reference/generated/dpnp.ndarray.any.html new file mode 100644 index 00000000000..59ef52e7cc2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.any.html @@ -0,0 +1,190 @@ + + + + + + + + + + + dpnp.ndarray.any — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ndarray.any

    +
    +
    +ndarray.any(axis=None, out=None, keepdims=False, *, where=True)
    +

    Returns True if any of the elements of a evaluate to True.

    +

    Refer to dpnp.any for full documentation.

    +
    +

    See also

    +
    +
    dpnp.any

    equivalent function

    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.argmax.html b/pull/2070/reference/generated/dpnp.ndarray.argmax.html new file mode 100644 index 00000000000..de4c15a33a4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.argmax.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.argmax — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.argmax

    +
    +
    +ndarray.argmax(axis=None, out=None, *, keepdims=False)
    +

    Returns array of indices of the maximum values along the given axis.

    +

    Refer to dpnp.argmax for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.argmin.html b/pull/2070/reference/generated/dpnp.ndarray.argmin.html new file mode 100644 index 00000000000..b2c446b3cd3 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.argmin.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.argmin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.argmin

    +
    +
    +ndarray.argmin(axis=None, out=None, *, keepdims=False)
    +

    Return array of indices to the minimum values along the given axis.

    +

    Refer to dpnp.argmin for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.argsort.html b/pull/2070/reference/generated/dpnp.ndarray.argsort.html new file mode 100644 index 00000000000..3b7723b52fb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.argsort.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.ndarray.argsort — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.astype.html b/pull/2070/reference/generated/dpnp.ndarray.astype.html new file mode 100644 index 00000000000..2d7a6cfc01e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.astype.html @@ -0,0 +1,223 @@ + + + + + + + + + + + dpnp.ndarray.astype — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.astype

    +
    +
    +ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True, device=None)
    +

    Copy the array with data type casting.

    +

    Refer to dpnp.astype for full documentation.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray}) -- Array data type casting.

    • +
    • dtype (dtype) -- Target data type.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Row-major (C-style) or column-major (Fortran-style) order. +When order is 'A', it uses 'F' if a is column-major and uses 'C' otherwise. +And when order is 'K', it keeps strides as closely as possible.

    • +
    • copy ({bool}, optional) -- If it is False and no cast happens, then this method returns the array itself. +Otherwise, a copy is returned.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) --

      Controls what kind of data casting may occur. +Defaults to 'unsafe' for backwards compatibility.

      +
        +
      • 'no' means the data types should not be cast at all.

      • +
      • 'equiv' means only byte-order changes are allowed.

      • +
      • 'safe' means only casts which can preserve values are allowed.

      • +
      • 'same_kind' means only safe casts or casts within a kind, like +float64 to float32, are allowed.

      • +
      • 'unsafe' means any data conversions may be done.

      • +
      +

    • +
    • copy -- By default, astype always returns a newly allocated array. If +this is set to False, and the dtype, order, and subok +requirements are satisfied, the input array is returned instead of +a copy.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. Default: None.

    • +
    +
    +
    Returns:
    +

    arr_t -- Unless copy is False and the other conditions for returning the input array +are satisfied, arr_t is a new array of the same shape as the input array, +with dtype, order given by dtype, order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter subok is supported with default value. +Otherwise NotImplementedError exception will be raised.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 2.5])
    +>>> x
    +array([1. , 2. , 2.5])
    +>>> x.astype(int)
    +array([1, 2, 2])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.choose.html b/pull/2070/reference/generated/dpnp.ndarray.choose.html new file mode 100644 index 00000000000..0ee88e3ac8b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.choose.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.ndarray.choose — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.clip.html b/pull/2070/reference/generated/dpnp.ndarray.clip.html new file mode 100644 index 00000000000..4e2a0a1627f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.clip.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.clip — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.clip

    +
    +
    +ndarray.clip(min=None, max=None, out=None, **kwargs)
    +

    Clip (limit) the values in an array.

    +

    Refer to dpnp.clip for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.conj.html b/pull/2070/reference/generated/dpnp.ndarray.conj.html new file mode 100644 index 00000000000..56c54bd8a32 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.conj.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.conj — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.conj

    +
    +
    +ndarray.conj()
    +

    Complex-conjugate all elements.

    +

    Refer to dpnp.conjugate for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.conjugate.html b/pull/2070/reference/generated/dpnp.ndarray.conjugate.html new file mode 100644 index 00000000000..7317afe3e65 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.conjugate.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.conjugate — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.conjugate

    +
    +
    +ndarray.conjugate()
    +

    Return the complex conjugate, element-wise.

    +

    Refer to dpnp.conjugate for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.copy.html b/pull/2070/reference/generated/dpnp.ndarray.copy.html new file mode 100644 index 00000000000..c244a06a02f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.copy.html @@ -0,0 +1,231 @@ + + + + + + + + + + + dpnp.ndarray.copy — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.copy

    +
    +
    +ndarray.copy(order='C', device=None, usm_type=None, sycl_queue=None)
    +

    Return a copy of the array.

    +

    Refer to dpnp.copy for full documentation.

    +
    +
    Parameters:
    +
      +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter +selector string, an instance of dpctl.SyclDevice +corresponding to a non-partitioned SYCL device, an instance of +dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property. +Default: None.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A copy of the array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.copy

    Similar function with different default behavior

    +
    +
    dpnp.copyto

    Copies values from one array to another.

    +
    +
    +
    +

    Notes

    +

    This function is the preferred method for creating an array copy. +The function dpnp.copy() is similar, but it defaults to using +order "K".

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[1, 2, 3], [4, 5, 6]], order='F')
    +>>> y = x.copy()
    +>>> x.fill(0)
    +
    +
    +
    >>> x
    +array([[0, 0, 0],
    +       [0, 0, 0]])
    +
    +
    +
    >>> y
    +array([[1, 2, 3],
    +       [4, 5, 6]])
    +
    +
    +
    >>> y.flags['C_CONTIGUOUS']
    +True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.cumprod.html b/pull/2070/reference/generated/dpnp.ndarray.cumprod.html new file mode 100644 index 00000000000..ec6591428fa --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.cumprod.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.cumprod — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.cumprod

    +
    +
    +ndarray.cumprod(axis=None, dtype=None, out=None)
    +

    Return the cumulative product of the elements along the given axis.

    +

    Refer to dpnp.cumprod for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.cumsum.html b/pull/2070/reference/generated/dpnp.ndarray.cumsum.html new file mode 100644 index 00000000000..ce730b4c28f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.cumsum.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.cumsum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.cumsum

    +
    +
    +ndarray.cumsum(axis=None, dtype=None, out=None)
    +

    Return the cumulative sum of the elements along the given axis.

    +

    Refer to dpnp.cumsum for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.diagonal.html b/pull/2070/reference/generated/dpnp.ndarray.diagonal.html new file mode 100644 index 00000000000..b3b93a34d6c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.diagonal.html @@ -0,0 +1,189 @@ + + + + + + + + + + + dpnp.ndarray.diagonal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.diagonal

    +
    +
    +ndarray.diagonal(offset=0, axis1=0, axis2=1)
    +

    Return specified diagonals.

    +

    Refer to dpnp.diagonal for full documentation.

    +
    +

    See also

    +
    +
    dpnp.diagonal

    Equivalent function.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(4).reshape(2,2)
    +>>> a.diagonal()
    +array([0, 3])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.dtype.html b/pull/2070/reference/generated/dpnp.ndarray.dtype.html new file mode 100644 index 00000000000..e4c3727ec40 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.dtype.html @@ -0,0 +1,165 @@ + + + + + + + + + + + dpnp.ndarray.dtype — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.dtype

    +
    +
    +property ndarray.dtype
    +

    Returns NumPy's dtype corresponding to the type of the array elements.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.fill.html b/pull/2070/reference/generated/dpnp.ndarray.fill.html new file mode 100644 index 00000000000..d22707b222e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.fill.html @@ -0,0 +1,184 @@ + + + + + + + + + + + dpnp.ndarray.fill — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.fill

    +
    +
    +ndarray.fill(value)
    +

    Fill the array with a scalar value.

    +
    +
    Parameters:
    +

    value (scalar) -- All elements of a will be assigned this value.

    +
    +
    +

    Examples

    +
    >>> a = np.array([1, 2])
    +>>> a.fill(0)
    +>>> a
    +array([0, 0])
    +>>> a = np.empty(2)
    +>>> a.fill(1)
    +>>> a
    +array([1.,  1.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.flags.html b/pull/2070/reference/generated/dpnp.ndarray.flags.html new file mode 100644 index 00000000000..12215729f00 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.flags.html @@ -0,0 +1,171 @@ + + + + + + + + + + + dpnp.ndarray.flags — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.flat.html b/pull/2070/reference/generated/dpnp.ndarray.flat.html new file mode 100644 index 00000000000..f27313c327d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.flat.html @@ -0,0 +1,168 @@ + + + + + + + + + + + dpnp.ndarray.flat — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.flatten.html b/pull/2070/reference/generated/dpnp.ndarray.flatten.html new file mode 100644 index 00000000000..45ffde7af7e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.flatten.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.ndarray.flatten — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.flatten

    +
    +
    +ndarray.flatten(order='C')
    +

    Return a copy of the array collapsed into one dimension.

    +

    For full documentation refer to numpy.ndarray.flatten.

    +
    +
    Parameters:
    +

    order ({"C", "F"}, optional) --

    Read the elements using this index order, and place the elements +into the reshaped array using this index order.

    +
    +
      +
    • "C" means to read / write the elements using C-like index +order, with the last axis index changing fastest, back to the +first axis index changing slowest.

    • +
    • "F" means to read / write the elements using Fortran-like +index order, with the first index changing fastest, and the +last index changing slowest.

    • +
    +
    +

    Default: "C".

    +

    +
    +
    Returns:
    +

    out -- A copy of the input array, flattened to one dimension.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ravel

    Return a flattened array.

    +
    +
    dpnp.flat

    A 1-D flat iterator over the array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> a.flatten()
    +array([1, 2, 3, 4])
    +>>> a.flatten("F")
    +array([1, 3, 2, 4])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.html b/pull/2070/reference/generated/dpnp.ndarray.html new file mode 100644 index 00000000000..675a35033d2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.html @@ -0,0 +1,168 @@ + + + + + + + + + + + dpnp.ndarray — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.imag.html b/pull/2070/reference/generated/dpnp.ndarray.imag.html new file mode 100644 index 00000000000..79eab974611 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.imag.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.ndarray.imag — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.imag

    +
    +
    +property ndarray.imag
    +

    The imaginary part of the array.

    +

    For full documentation refer to numpy.ndarray.imag.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.sqrt(np.array([1+0j, 0+1j]))
    +>>> x.imag
    +array([0.        , 0.70710677])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.item.html b/pull/2070/reference/generated/dpnp.ndarray.item.html new file mode 100644 index 00000000000..d9a95b46079 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.item.html @@ -0,0 +1,186 @@ + + + + + + + + + + + dpnp.ndarray.item — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.item

    +
    +
    +ndarray.item(id=None)
    +

    Copy an element of an array to a standard Python scalar and return it.

    +

    For full documentation refer to numpy.ndarray.item.

    +

    Examples

    +
    >>> np.random.seed(123)
    +>>> x = np.random.randint(9, size=(3, 3))
    +>>> x
    +array([[2, 2, 6],
    +       [1, 3, 6],
    +       [1, 0, 1]])
    +>>> x.item(3)
    +1
    +>>> x.item(7)
    +0
    +>>> x.item((0, 1))
    +2
    +>>> x.item((2, 2))
    +1
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.itemsize.html b/pull/2070/reference/generated/dpnp.ndarray.itemsize.html new file mode 100644 index 00000000000..cc61cf51ff8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.itemsize.html @@ -0,0 +1,171 @@ + + + + + + + + + + + dpnp.ndarray.itemsize — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.max.html b/pull/2070/reference/generated/dpnp.ndarray.max.html new file mode 100644 index 00000000000..4a3af2f15ee --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.max.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.max — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ndarray.max

    +
    +
    +ndarray.max(axis=None, out=None, keepdims=False, initial=None, where=True)
    +

    Return the maximum along an axis.

    +

    Refer to dpnp.max for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.mean.html b/pull/2070/reference/generated/dpnp.ndarray.mean.html new file mode 100644 index 00000000000..24654695a9b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.mean.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.mean — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.mean

    +
    +
    +ndarray.mean(axis=None, dtype=None, out=None, keepdims=False, *, where=True)
    +

    Returns the average of the array elements.

    +

    Refer to dpnp.mean for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.min.html b/pull/2070/reference/generated/dpnp.ndarray.min.html new file mode 100644 index 00000000000..06443f92b54 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.min.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.min — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ndarray.min

    +
    +
    +ndarray.min(axis=None, out=None, keepdims=False, initial=None, where=True)
    +

    Return the minimum along a given axis.

    +

    Refer to dpnp.min for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.nbytes.html b/pull/2070/reference/generated/dpnp.ndarray.nbytes.html new file mode 100644 index 00000000000..3406b03fcd4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.nbytes.html @@ -0,0 +1,171 @@ + + + + + + + + + + + dpnp.ndarray.nbytes — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.ndim.html b/pull/2070/reference/generated/dpnp.ndarray.ndim.html new file mode 100644 index 00000000000..254812d8a13 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.ndim.html @@ -0,0 +1,201 @@ + + + + + + + + + + + dpnp.ndarray.ndim — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.ndim

    +
    +
    +property ndarray.ndim
    +

    Return the number of dimensions of an array.

    +

    For full documentation refer to numpy.ndarray.ndim.

    +
    +
    Returns:
    +

    number_of_dimensions -- The number of dimensions in a.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndim

    Equivalent method for any array-like input.

    +
    +
    dpnp.shape

    Return the shape of an array.

    +
    +
    dpnp.ndarray.shape

    Return the shape of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 3])
    +>>> x.ndim
    +1
    +>>> y = np.zeros((2, 3, 4))
    +>>> y.ndim
    +3
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.nonzero.html b/pull/2070/reference/generated/dpnp.ndarray.nonzero.html new file mode 100644 index 00000000000..9b3e75ad8b3 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.nonzero.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.ndarray.nonzero — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.partition.html b/pull/2070/reference/generated/dpnp.ndarray.partition.html new file mode 100644 index 00000000000..3f6409f92e7 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.partition.html @@ -0,0 +1,196 @@ + + + + + + + + + + + dpnp.ndarray.partition — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.partition

    +
    +
    +ndarray.partition(kth, axis=-1, kind='introselect', order=None)
    +

    Return a partitioned copy of an array.

    +

    Rearranges the elements in the array in such a way that the value of +the element in kth position is in the position it would be in +a sorted array.

    +

    All elements smaller than the kth element are moved before this +element and all equal or greater are moved behind it. The ordering +of the elements in the two partitions is undefined.

    +

    Refer to dpnp.partition for full documentation.

    +
    +

    See also

    +
    +
    dpnp.partition

    Return a partitioned copy of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([3, 4, 2, 1])
    +>>> a.partition(3)
    +>>> a
    +array([1, 2, 3, 4])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.prod.html b/pull/2070/reference/generated/dpnp.ndarray.prod.html new file mode 100644 index 00000000000..04e6ab4b4a9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.prod.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.prod — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.prod

    +
    +
    +ndarray.prod(axis=None, dtype=None, out=None, keepdims=False, initial=None, where=True)
    +

    Returns the prod along a given axis.

    +

    Refer to dpnp.prod for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.put.html b/pull/2070/reference/generated/dpnp.ndarray.put.html new file mode 100644 index 00000000000..225d2331cec --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.put.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.ndarray.put — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.ravel.html b/pull/2070/reference/generated/dpnp.ndarray.ravel.html new file mode 100644 index 00000000000..e317aeca527 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.ravel.html @@ -0,0 +1,171 @@ + + + + + + + + + + + dpnp.ndarray.ravel — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.real.html b/pull/2070/reference/generated/dpnp.ndarray.real.html new file mode 100644 index 00000000000..5f1b7d7d1ec --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.real.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.ndarray.real — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.real

    +
    +
    +property ndarray.real
    +

    The real part of the array.

    +

    For full documentation refer to numpy.ndarray.real.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.sqrt(np.array([1+0j, 0+1j]))
    +>>> x.real
    +array([1.        , 0.70710677])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.repeat.html b/pull/2070/reference/generated/dpnp.ndarray.repeat.html new file mode 100644 index 00000000000..2bfc76d986c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.repeat.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.ndarray.repeat — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.reshape.html b/pull/2070/reference/generated/dpnp.ndarray.reshape.html new file mode 100644 index 00000000000..b6cbbe00c77 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.reshape.html @@ -0,0 +1,192 @@ + + + + + + + + + + + dpnp.ndarray.reshape — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.reshape

    +
    +
    +ndarray.reshape(*sh, **kwargs)
    +

    Returns an array containing the same data with a new shape.

    +

    Refer to dpnp.reshape for full documentation.

    +
    +
    Returns:
    +

    y -- This will be a new view object if possible; +otherwise, it will be a copy.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.reshape

    Equivalent function.

    +
    +
    +
    +

    Notes

    +

    Unlike the free function dpnp.reshape, this method on ndarray allows +the elements of the shape parameter to be passed in as separate arguments. +For example, a.reshape(10, 11) is equivalent to +a.reshape((10, 11)).

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.round.html b/pull/2070/reference/generated/dpnp.ndarray.round.html new file mode 100644 index 00000000000..cc9c2b55ceb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.round.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.round — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.round

    +
    +
    +ndarray.round(decimals=0, out=None)
    +

    Return array with each element rounded to the given number of decimals.

    +

    Refer to dpnp.round for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.searchsorted.html b/pull/2070/reference/generated/dpnp.ndarray.searchsorted.html new file mode 100644 index 00000000000..b7960a7f397 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.searchsorted.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.ndarray.searchsorted — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.searchsorted

    +
    +
    +ndarray.searchsorted(v, side='left', sorter=None)
    +

    Find indices where elements of v should be inserted in a +to maintain order.

    +

    Refer to dpnp.searchsorted for full documentation

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.shape.html b/pull/2070/reference/generated/dpnp.ndarray.shape.html new file mode 100644 index 00000000000..75afb9994b2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.shape.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.ndarray.shape — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.shape

    +
    +
    +property ndarray.shape
    +

    Tuple of array dimensions.

    +

    The shape property is usually used to get the current shape of an array, +but may also be used to reshape the array in-place by assigning a tuple +of array dimensions to it. Unlike dpnp.reshape, only non-negative +values are supported to be set as new shape. Reshaping an array in-place +will fail if a copy is required.

    +

    For full documentation refer to numpy.ndarray.shape.

    +
    +

    Note

    +

    Using dpnp.ndarray.reshape or dpnp.reshape is the +preferred approach to set new shape of an array.

    +
    +
    +

    See also

    +
    +
    dpnp.shape

    Equivalent getter function.

    +
    +
    dpnp.reshape

    Function similar to setting shape.

    +
    +
    dpnp.ndarray.reshape

    Method similar to setting shape.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2, 3, 4])
    +>>> x.shape
    +(4,)
    +>>> y = np.zeros((2, 3, 4))
    +>>> y.shape
    +(2, 3, 4)
    +
    +
    +
    >>> y.shape = (3, 8)
    +>>> y
    +array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
    +       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
    +       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])
    +>>> y.shape = (3, 6)
    +...
    +TypeError: Can not reshape array of size 24 into (3, 6)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.size.html b/pull/2070/reference/generated/dpnp.ndarray.size.html new file mode 100644 index 00000000000..92b02286aa2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.size.html @@ -0,0 +1,197 @@ + + + + + + + + + + + dpnp.ndarray.size — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.size

    +
    +
    +property ndarray.size
    +

    Number of elements in the array.

    +
    +
    Returns:
    +

    element_count -- Number of elements in the array.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    +

    See also

    +
    +
    dpnp.size

    Return the number of elements along a given axis.

    +
    +
    dpnp.shape

    Return the shape of an array.

    +
    +
    dpnp.ndarray.shape

    Return the shape of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.zeros((3, 5, 2), dtype=np.complex64)
    +>>> x.size
    +30
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.sort.html b/pull/2070/reference/generated/dpnp.ndarray.sort.html new file mode 100644 index 00000000000..e6d1c7a201c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.sort.html @@ -0,0 +1,195 @@ + + + + + + + + + + + dpnp.ndarray.sort — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.sort

    +
    +
    +ndarray.sort(axis=-1, kind=None, order=None)
    +

    Sort an array in-place.

    +

    Refer to dpnp.sort for full documentation.

    +
    +

    Note

    +

    axis in dpnp.sort could be integer or None. If None, +the array is flattened before sorting. However, axis in +dpnp.ndarray.sort can only be integer since it sorts an array +in-place.

    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1,4],[3,1]])
    +>>> a.sort(axis=1)
    +>>> a
    +array([[1, 4],
    +      [1, 3]])
    +>>> a.sort(axis=0)
    +>>> a
    +array([[1, 1],
    +      [3, 4]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.squeeze.html b/pull/2070/reference/generated/dpnp.ndarray.squeeze.html new file mode 100644 index 00000000000..acba3d6e13b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.squeeze.html @@ -0,0 +1,171 @@ + + + + + + + + + + + dpnp.ndarray.squeeze — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.std.html b/pull/2070/reference/generated/dpnp.ndarray.std.html new file mode 100644 index 00000000000..416e7de338e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.std.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.std — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ndarray.std

    +
    +
    +ndarray.std(axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)
    +

    Returns the standard deviation of the array elements, along given axis.

    +

    Refer to dpnp.std for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.strides.html b/pull/2070/reference/generated/dpnp.ndarray.strides.html new file mode 100644 index 00000000000..bd88af7b54e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.strides.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.ndarray.strides — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.strides

    +
    +
    +property ndarray.strides
    +

    Returns memory displacement in array elements, upon unit +change of respective index.

    +

    For example, for strides (s1, s2, s3) and multi-index +(i1, i2, i3) position of the respective element relative +to zero multi-index element is s1*s1 + s2*i2 + s3*i3.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.sum.html b/pull/2070/reference/generated/dpnp.ndarray.sum.html new file mode 100644 index 00000000000..69e1008adc9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.sum.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.sum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ndarray.sum

    +
    +
    +ndarray.sum(axis=None, dtype=None, out=None, keepdims=False, initial=None, where=True)
    +

    Returns the sum along a given axis.

    +

    Refer to dpnp.sum for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.swapaxes.html b/pull/2070/reference/generated/dpnp.ndarray.swapaxes.html new file mode 100644 index 00000000000..04ecf6b259a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.swapaxes.html @@ -0,0 +1,171 @@ + + + + + + + + + + + dpnp.ndarray.swapaxes — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.take.html b/pull/2070/reference/generated/dpnp.ndarray.take.html new file mode 100644 index 00000000000..667abbf94a6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.take.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.ndarray.take — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.trace.html b/pull/2070/reference/generated/dpnp.ndarray.trace.html new file mode 100644 index 00000000000..653f6be0ff0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.trace.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.trace — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.trace

    +
    +
    +ndarray.trace(offset=0, axis1=0, axis2=1, dtype=None, out=None)
    +

    Return the sum along diagonals of the array.

    +

    Refer to dpnp.trace for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.transpose.html b/pull/2070/reference/generated/dpnp.ndarray.transpose.html new file mode 100644 index 00000000000..e2ec5dacc22 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.transpose.html @@ -0,0 +1,223 @@ + + + + + + + + + + + dpnp.ndarray.transpose — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ndarray.transpose

    +
    +
    +ndarray.transpose(*axes)
    +

    Returns a view of the array with axes transposed.

    +

    For full documentation refer to numpy.ndarray.transpose.

    +
    +
    Parameters:
    +

    axes (None, tuple or list of ints, n ints, optional) --

      +
    • None or no argument: reverses the order of the axes.

    • +
    • tuple or list of ints: i in the j-th place in the +tuple/list means that the array’s i-th axis becomes the +transposed array’s j-th axis.

    • +
    • n ints: same as an n-tuple/n-list of the same integers (this +form is intended simply as a “convenience” alternative to the +tuple form).

    • +
    +

    +
    +
    Returns:
    +

    out -- View of the array with its axes suitably permuted.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.transpose

    Equivalent function.

    +
    +
    dpnp.ndarray.ndarray.T

    Array property returning the array transposed.

    +
    +
    dpnp.ndarray.reshape

    Give a new shape to an array without changing its data.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> a
    +array([[1, 2],
    +       [3, 4]])
    +>>> a.transpose()
    +array([[1, 3],
    +       [2, 4]])
    +>>> a.transpose((1, 0))
    +array([[1, 3],
    +       [2, 4]])
    +
    +
    +
    >>> a = np.array([1, 2, 3, 4])
    +>>> a
    +array([1, 2, 3, 4])
    +>>> a.transpose()
    +array([1, 2, 3, 4])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndarray.var.html b/pull/2070/reference/generated/dpnp.ndarray.var.html new file mode 100644 index 00000000000..fd31bcf1018 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndarray.var.html @@ -0,0 +1,183 @@ + + + + + + + + + + + dpnp.ndarray.var — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ndarray.var

    +
    +
    +ndarray.var(axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)
    +

    Returns the variance of the array elements, along given axis.

    +

    Refer to dpnp.var for full documentation.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ndim.html b/pull/2070/reference/generated/dpnp.ndim.html new file mode 100644 index 00000000000..f338da115fe --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ndim.html @@ -0,0 +1,207 @@ + + + + + + + + + + + dpnp.ndim — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ndim

    +
    +
    +dpnp.ndim(a)[source]
    +

    Return the number of dimensions of array-like input.

    +

    For full documentation refer to numpy.ndim.

    +
    +
    Parameters:
    +

    a (array_like) -- Input data.

    +
    +
    Returns:
    +

    number_of_dimensions -- The number of dimensions in a. Scalars are zero-dimensional.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.ndim

    Equivalent method for dpnp.ndarray or usm_ndarray input.

    +
    +
    dpnp.shape

    Return the shape of an array.

    +
    +
    dpnp.ndarray.shape

    Return the shape of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = [[1, 2, 3], [4, 5, 6]]
    +>>> np.ndim(a)
    +2
    +>>> a = np.asarray(a)
    +>>> np.ndim(a)
    +2
    +>>> np.ndim(1)
    +0
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.negative.html b/pull/2070/reference/generated/dpnp.negative.html new file mode 100644 index 00000000000..7010bcc9d78 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.negative.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.negative — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.negative

    +
    +
    +dpnp.negative(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the numerical negative for each element x_i of input array x.

    +

    For full documentation refer to numpy.negative.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the negative of x.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.positive

    Return the numerical positive of each element of x.

    +
    +
    dpnp.copysign

    Change the sign of x1 to that of x2, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.negative(np.array([1, -1]))
    +array([-1, 1])
    +
    +
    +

    The - operator can be used as a shorthand for negative on +dpnp.ndarray.

    +
    >>> x = np.array([1., -1.])
    +>>> -x
    +array([-1.,  1.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nextafter.html b/pull/2070/reference/generated/dpnp.nextafter.html new file mode 100644 index 00000000000..394d9fe4d64 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nextafter.html @@ -0,0 +1,197 @@ + + + + + + + + + + + dpnp.nextafter — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.nextafter

    +
    +
    +dpnp.nextafter(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Return the next floating-point value after x1 towards x2, element-wise.

    +

    For full documentation refer to numpy.nextafter.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- Values to find the next representable value of. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- The direction where to look for the next representable value of x1. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. Array must have the correct shape and +the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- The next representable values of x1 in the direction of x2. The data +type of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array(1, dtype=np.float32)
    +>>> eps = np.finfo(a.dtype).eps
    +>>> np.nextafter(a, 2) == eps + 1
    +array(True)
    +
    +
    +
    >>> a = np.array([1, 2], dtype=np.float32)
    +>>> b = np.array([2, 1], dtype=np.float32)
    +>>> c = np.array([eps + 1, 2 - eps])
    +>>> np.nextafter(a, b) == c
    +array([ True,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.nonzero.html b/pull/2070/reference/generated/dpnp.nonzero.html new file mode 100644 index 00000000000..3344436b0f7 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.nonzero.html @@ -0,0 +1,243 @@ + + + + + + + + + + + dpnp.nonzero — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.nonzero

    +
    +
    +dpnp.nonzero(a)[source]
    +

    Return the indices of the elements that are non-zero.

    +

    Returns a tuple of arrays, one for each dimension of a, containing +the indices of the non-zero elements in that dimension. The values in a +are always tested and returned in row-major, C-style order.

    +

    To group the indices by element, rather than dimension, use +dpnp.argwhere, which returns a row for each non-zero element.

    +

    For full documentation refer to numpy.nonzero.

    +
    +
    Parameters:
    +

    a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    +
    +
    Returns:
    +

    out -- Indices of elements that are non-zero.

    +
    +
    Return type:
    +

    tuple[dpnp.ndarray]

    +
    +
    +
    +

    See also

    +
    +
    dpnp.flatnonzero

    Return indices that are non-zero in the flattened version of the input array.

    +
    +
    dpnp.ndarray.nonzero

    Equivalent ndarray method.

    +
    +
    dpnp.count_nonzero

    Counts the number of non-zero elements in the input array.

    +
    +
    +
    +

    Notes

    +

    While the nonzero values can be obtained with a[nonzero(a)], it is +recommended to use a[a.astype(bool)] or a[a != 0] instead, which +will correctly handle 0-d arrays.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[3, 0, 0], [0, 4, 0], [5, 6, 0]])
    +>>> x
    +array([[3, 0, 0],
    +       [0, 4, 0],
    +       [5, 6, 0]])
    +>>> np.nonzero(x)
    +(array([0, 1, 2, 2]), array([0, 1, 0, 1]))
    +
    +
    +
    >>> x[np.nonzero(x)]
    +array([3, 4, 5, 6])
    +>>> np.stack(np.nonzero(x)).T
    +array([[0, 0],
    +       [1, 1],
    +       [2, 0],
    +       [2, 1]])
    +
    +
    +

    A common use for nonzero is to find the indices of an array, where +a condition is True. Given an array a, the condition a > 3 is +a boolean array and since False is interpreted as 0, +np.nonzero(a > 3) yields the indices of the a where the condition is +true.

    +
    >>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    +>>> a > 3
    +array([[False, False, False],
    +       [ True,  True,  True],
    +       [ True,  True,  True]])
    +>>> np.nonzero(a > 3)
    +(array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))
    +
    +
    +

    Using this result to index a is equivalent to using the mask directly:

    +
    >>> a[np.nonzero(a > 3)]
    +array([4, 5, 6, 7, 8, 9])
    +>>> a[a > 3]  # prefer this spelling
    +array([4, 5, 6, 7, 8, 9])
    +
    +
    +

    nonzero can also be called as a method of the array.

    +
    >>> (a > 3).nonzero()
    +(array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.not_equal.html b/pull/2070/reference/generated/dpnp.not_equal.html new file mode 100644 index 00000000000..3fca198b554 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.not_equal.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.not_equal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.not_equal

    +
    +
    +dpnp.not_equal(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates inequality test results for each element x1_i of the +input array x1 with the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.not_equal.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise inequality comparison. +The returned array has a data type of bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.equal

    Return (x1 == x2) element-wise.

    +
    +
    dpnp.greater

    Return the truth value of (x1 > x2) element-wise.

    +
    +
    dpnp.greater_equal

    Return the truth value of (x1 >= x2) element-wise.

    +
    +
    dpnp.less

    Return the truth value of (x1 < x2) element-wise.

    +
    +
    dpnp.less_equal

    Return the truth value of (x1 =< x2) element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([1., 2.])
    +>>> x2 = np.arange(1., 3.)
    +>>> np.not_equal(x1, x2)
    +array([False, False])
    +
    +
    +

    The != operator can be used as a shorthand for not_equal on +dpnp.ndarray.

    +
    >>> a = np.array([1., 2.])
    +>>> b = np.array([1., 3.])
    +>>> a != b
    +array([False,  True])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ogrid.html b/pull/2070/reference/generated/dpnp.ogrid.html new file mode 100644 index 00000000000..7839a6fd1a1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ogrid.html @@ -0,0 +1,220 @@ + + + + + + + + + + + dpnp.ogrid — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ogrid

    +
    +
    +dpnp.ogrid = <dpnp.dpnp_iface_arraycreation.OGridClass object>
    +

    Construct an open multi-dimensional "meshgrid".

    +

    For full documentation refer to numpy.ogrid.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Returns a tuple of arrays, +with grid[i].shape = (1, ..., 1, dimensions[i], 1, ..., 1) +with dimensions[i] in the i-th place.

    +
    +
    Return type:
    +

    one dpnp.ndarray or tuple of dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.ogrid[0:5, 0:5]
    +[array([[0],
    +        [1],
    +        [2],
    +        [3],
    +        [4]]), array([[0, 1, 2, 3, 4]])]
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.ogrid[-1:1:5j] # default case
    +>>> x, x.device, x.usm_type
    +(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.ogrid(device="cpu")[-1:1:5j]
    +>>> y, y.device, y.usm_type
    +(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.ogrid(usm_type="host")[-1:1:5j]
    +>>> z, z.device, z.usm_type
    +(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ones.html b/pull/2070/reference/generated/dpnp.ones.html new file mode 100644 index 00000000000..b948fa55442 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ones.html @@ -0,0 +1,243 @@ + + + + + + + + + + + dpnp.ones — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ones

    +
    +
    +dpnp.ones(shape, *, dtype=None, order='C', like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return a new array of given shape and type, filled with ones.

    +

    For full documentation refer to numpy.ones.

    +
    +
    Parameters:
    +
      +
    • shape ({int, sequence of ints}) -- Shape of the new array, e.g., (2, 3) or 2.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of ones with the given shape, dtype, and order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.ones_like

    Return an array of ones with shape and type of input.

    +
    +
    dpnp.empty

    Return a new uninitialized array.

    +
    +
    dpnp.zeros

    Return a new array setting values to zero.

    +
    +
    dpnp.full

    Return a new array of given shape filled with value.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.ones(5)
    +array([1., 1., 1., 1., 1.])
    +>>> x = np.ones((2, 1))
    +>>> x.ndim, x.size, x.shape
    +(2, 2, (2, 1))
    +>>> x
    +array([[1.],
    +       [1.]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.ones(3) # default case
    +>>> x, x.device, x.usm_type
    +(array([1., 1., 1.]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.ones(3, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1., 1., 1.]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.ones(3, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1., 1., 1.]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ones_like.html b/pull/2070/reference/generated/dpnp.ones_like.html new file mode 100644 index 00000000000..903fc437341 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ones_like.html @@ -0,0 +1,244 @@ + + + + + + + + + + + dpnp.ones_like — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ones_like

    +
    +
    +dpnp.ones_like(a, /, *, dtype=None, order='C', subok=False, shape=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return an array of ones with the same shape and type as a given array.

    +

    For full documentation refer to numpy.ones_like.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The shape and dtype of a define these same attributes +of the returned array.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • shape ({None, int, sequence of ints}) -- Overrides the shape of the result.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of ones with the same shape and type as a.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter order is supported only with values "C", "F" and +None. +Parameter subok is supported only with default value False. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.empty_like

    Return an empty array with shape and type of input.

    +
    +
    dpnp.zeros_like

    Return an array of zeros with shape and type of input.

    +
    +
    dpnp.full_like

    Return a new array with shape of input filled with value.

    +
    +
    dpnp.ones

    Return a new array setting values to one.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x0 = np.arange(6)
    +>>> x0
    +array([0, 1, 2, 3, 4, 5])
    +>>> np.ones_like(x0)
    +array([1, 1, 1, 1, 1, 1])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.ones_like(x0) # default case
    +>>> x, x.device, x.usm_type
    +(array([1, 1, 1, 1, 1, 1]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.ones_like(x0, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([1, 1, 1, 1, 1, 1]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.ones_like(x0, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([1, 1, 1, 1, 1, 1]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.outer.html b/pull/2070/reference/generated/dpnp.outer.html new file mode 100644 index 00000000000..e0a0aced701 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.outer.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.outer — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.outer

    +
    +
    +dpnp.outer(a, b, out=None)[source]
    +

    Returns the outer product of two arrays.

    +

    For full documentation refer to numpy.outer.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- First input vector. Input is flattened if not already 1-dimensional.

    • +
    • b ({dpnp.ndarray, usm_ndarray}) -- Second input vector. Input is flattened if not already 1-dimensional.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- A location where the result is stored

    • +
    +
    +
    Returns:
    +

    out -- out[i, j] = a[i] * b[j]

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.einsum

    Evaluates the Einstein summation convention on the operands.

    +
    +
    dpnp.inner

    Returns the inner product of two arrays.

    +
    +
    dpnp.tensordot

    dpnp.tensordot(a.ravel(), b.ravel(), axes=((), ())) is the equivalent.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 1, 1])
    +>>> b = np.array([1, 2, 3])
    +>>> np.outer(a, b)
    +array([[1, 2, 3],
    +       [1, 2, 3],
    +       [1, 2, 3]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.partition.html b/pull/2070/reference/generated/dpnp.partition.html new file mode 100644 index 00000000000..0ec8fcac29f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.partition.html @@ -0,0 +1,171 @@ + + + + + + + + + + + dpnp.partition — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.partition

    +
    +
    +dpnp.partition(x1, kth, axis=-1, kind='introselect', order=None)[source]
    +

    Return a partitioned copy of an array.

    +

    For full documentation refer to numpy.partition.

    +

    Limitations

    +

    Input array is supported as dpnp.ndarray. +Input kth is supported as int. +Parameters axis, kind and order are supported only with default +values.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.permute_dims.html b/pull/2070/reference/generated/dpnp.permute_dims.html new file mode 100644 index 00000000000..7217f6b880b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.permute_dims.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.permute_dims — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.permute_dims

    +
    +
    +dpnp.permute_dims(a, axes=None)
    +

    Returns an array with axes transposed.

    +

    Note that dpnp.permute_dims is an alias of dpnp.transpose.

    +

    For full documentation refer to numpy.transpose.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axes (None, tuple or list of ints, optional) -- If specified, it must be a tuple or list which contains a permutation +of [0, 1, ..., N-1] where N is the number of axes of a. +The i'th axis of the returned array will correspond to the axis +numbered axes[i] of the input. If not specified or None, +defaults to range(a.ndim)[::-1], which reverses the order of +the axes.

    • +
    +
    +
    Returns:
    +

    out -- a with its axes permuted. A view is returned whenever possible.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.transpose

    Equivalent method.

    +
    +
    dpnp.moveaxis

    Move array axes to new positions.

    +
    +
    dpnp.argsort

    Returns the indices that would sort an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> a
    +array([[1, 2],
    +       [3, 4]])
    +>>> np.transpose(a)
    +array([[1, 3],
    +       [2, 4]])
    +
    +
    +
    >>> a = np.array([1, 2, 3, 4])
    +>>> a
    +array([1, 2, 3, 4])
    +>>> np.transpose(a)
    +array([1, 2, 3, 4])
    +
    +
    +
    >>> a = np.ones((1, 2, 3))
    +>>> np.transpose(a, (1, 0, 2)).shape
    +(2, 1, 3)
    +
    +
    +
    >>> a = np.ones((2, 3, 4, 5))
    +>>> np.transpose(a).shape
    +(5, 4, 3, 2)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.place.html b/pull/2070/reference/generated/dpnp.place.html new file mode 100644 index 00000000000..bc802dfe7a5 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.place.html @@ -0,0 +1,206 @@ + + + + + + + + + + + dpnp.place — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.place

    +
    +
    +dpnp.place(a, mask, vals)[source]
    +

    Change elements of an array based on conditional and input values.

    +

    Similar to dpnp.copyto(a, vals, where=mask), the difference is that +dpnp.place uses the first N elements of vals, where N is +the number of True values in mask, while dpnp.copyto uses +the elements where mask is True.

    +

    Note that dpnp.extract does the exact opposite of dpnp.place.

    +

    For full documentation refer to numpy.place.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Array to put data into.

    • +
    • mask ({array_like, scalar}) -- Boolean mask array. Must have the same size as a.

    • +
    • vals ({array_like, scalar}) -- Values to put into a. Only the first N elements are used, where N is +the number of True values in mask. If vals is smaller than N, +it will be repeated, and if elements of a are to be masked, this +sequence must be non-empty.

    • +
    +
    +
    +
    +

    See also

    +
    +
    dpnp.copyto

    Copies values from one array to another.

    +
    +
    dpnp.put

    Replaces specified elements of an array with given values.

    +
    +
    dpnp.take

    Take elements from an array along an axis.

    +
    +
    dpnp.extract

    Return the elements of an array that satisfy some condition.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(6).reshape(2, 3)
    +>>> np.place(a, a > 2, [44, 55])
    +>>> a
    +array([[ 0,  1,  2],
    +       [44, 55, 44]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.positive.html b/pull/2070/reference/generated/dpnp.positive.html new file mode 100644 index 00000000000..48c435a5562 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.positive.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.positive — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.positive

    +
    +
    +dpnp.positive(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the numerical positive for each element x_i of input array x.

    +

    For full documentation refer to numpy.positive.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the positive of x.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.negative

    Return the numerical negative of each element of x.

    +
    +
    dpnp.copysign

    Change the sign of x1 to that of x2, element-wise.

    +
    +
    +
    +
    +

    Note

    +

    Equivalent to x.copy(), but only defined for types that support arithmetic.

    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.positive(np.array([1., -1.]))
    +array([ 1., -1.])
    +
    +
    +

    The + operator can be used as a shorthand for positive on +dpnp.ndarray.

    +
    >>> x = np.array([1., -1.])
    +>>> +x
    +array([ 1., -1.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.pow.html b/pull/2070/reference/generated/dpnp.pow.html new file mode 100644 index 00000000000..cdbb47770c5 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.pow.html @@ -0,0 +1,251 @@ + + + + + + + + + + + dpnp.pow — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.pow

    +
    +
    +dpnp.pow(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates x1_i raised to x2_i for each element x1_i of the input array +x1 with the respective element x2_i of the input array x2.

    +

    Note that dpnp.pow is an alias of dpnp.power.

    +

    For full documentation refer to numpy.power.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. Array must have the correct shape and +the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the bases in x1 raised to the exponents in x2 +element-wise. The data type of the returned array is determined by the +Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.fmax

    Element-wise maximum of array elements.

    +
    +
    dpnp.fmin

    Element-wise minimum of array elements.

    +
    +
    dpnp.fmod

    Calculate the element-wise remainder of division.

    +
    +
    dpnp.float_power

    Power function that promotes integers to floats.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as dp
    +>>> a = dp.arange(6)
    +>>> dp.power(a, 3)
    +array([  0,   1,   8,  27,  64, 125])
    +
    +
    +

    Raise the bases to different exponents.

    +
    >>> b = dp.array([1.0, 2.0, 3.0, 3.0, 2.0, 1.0])
    +>>> dp.power(a, b)
    +array([ 0.,  1.,  8., 27., 16.,  5.])
    +
    +
    +

    The effect of broadcasting.

    +
    >>> c = dp.array([[1, 2, 3, 3, 2, 1], [1, 2, 3, 3, 2, 1]])
    +>>> dp.power(a, c)
    +array([[ 0,  1,  8, 27, 16,  5],
    +        [ 0,  1,  8, 27, 16,  5]])
    +
    +
    +

    The ** operator can be used as a shorthand for power on +dpnp.ndarray.

    +
    >>> b = dp.array([1, 2, 3, 3, 2, 1])
    +>>> a = dp.arange(6)
    +>>> a ** b
    +array([ 0,  1,  8, 27, 16,  5])
    +
    +
    +

    Negative values raised to a non-integral value will result in nan.

    +
    >>> d = dp.array([-1.0, -4.0])
    +>>> dp.power(d, 1.5)
    +array([nan, nan])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.power.html b/pull/2070/reference/generated/dpnp.power.html new file mode 100644 index 00000000000..327550550e4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.power.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.power — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.power

    +
    +
    +dpnp.power(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates x1_i raised to x2_i for each element x1_i of the input array +x1 with the respective element x2_i of the input array x2.

    +

    Note that dpnp.pow is an alias of dpnp.power.

    +

    For full documentation refer to numpy.power.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. Array must have the correct shape and +the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the bases in x1 raised to the exponents in x2 +element-wise. The data type of the returned array is determined by the +Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.fmax

    Element-wise maximum of array elements.

    +
    +
    dpnp.fmin

    Element-wise minimum of array elements.

    +
    +
    dpnp.fmod

    Calculate the element-wise remainder of division.

    +
    +
    dpnp.float_power

    Power function that promotes integers to floats.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as dp
    +>>> a = dp.arange(6)
    +>>> dp.power(a, 3)
    +array([  0,   1,   8,  27,  64, 125])
    +
    +
    +

    Raise the bases to different exponents.

    +
    >>> b = dp.array([1.0, 2.0, 3.0, 3.0, 2.0, 1.0])
    +>>> dp.power(a, b)
    +array([ 0.,  1.,  8., 27., 16.,  5.])
    +
    +
    +

    The effect of broadcasting.

    +
    >>> c = dp.array([[1, 2, 3, 3, 2, 1], [1, 2, 3, 3, 2, 1]])
    +>>> dp.power(a, c)
    +array([[ 0,  1,  8, 27, 16,  5],
    +        [ 0,  1,  8, 27, 16,  5]])
    +
    +
    +

    The ** operator can be used as a shorthand for power on +dpnp.ndarray.

    +
    >>> b = dp.array([1, 2, 3, 3, 2, 1])
    +>>> a = dp.arange(6)
    +>>> a ** b
    +array([ 0,  1,  8, 27, 16,  5])
    +
    +
    +

    Negative values raised to a non-integral value will result in nan.

    +
    >>> d = dp.array([-1.0, -4.0])
    +>>> dp.power(d, 1.5)
    +array([nan, nan])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.prod.html b/pull/2070/reference/generated/dpnp.prod.html new file mode 100644 index 00000000000..81f2c126418 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.prod.html @@ -0,0 +1,247 @@ + + + + + + + + + + + dpnp.prod — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.prod

    +
    +
    +dpnp.prod(a, axis=None, dtype=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Return the product of array elements over a given axis.

    +

    For full documentation refer to numpy.prod.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int or tuple of ints}, optional) -- Axis or axes along which a product is performed. The default, +axis=None, will calculate the product of all the elements in the +input array. If axis is negative it counts from the last to the first +axis. +If axis is a tuple of integers, a product is performed on all of the +axes specified in the tuple instead of a single axis or all the axes as +before. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- The type of the returned array, as well as of the accumulator in which +the elements are multiplied. The dtype of a is used by default unless +a has an integer dtype of less precision than the default platform +integer. In that case, if a is signed then the platform integer is +used while if a is unsigned then an unsigned integer of the same +precision as the platform integer is used. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output, but the type of the output +values will be cast if necessary. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the input array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array with the same shape as a, with the specified axis removed. +If a is a 0-d array, or if axis is None, a zero-dimensional +array is returned. If an output array is specified, a reference to +out is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters initial and where are only supported with their default +values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.nanprod

    Return the product of array elements over a given axis treating Not a Numbers (NaNs) as ones.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.prod(np.array([1, 2]))
    +array(2)
    +
    +
    +
    >>> a = np.array([[1, 2], [3, 4]])
    +>>> np.prod(a)
    +array(24)
    +
    +
    +
    >>> np.prod(a, axis=1)
    +array([ 2, 12])
    +>>> np.prod(a, axis=0)
    +array([3, 8])
    +
    +
    +
    >>> x = np.array([1, 2, 3], dtype=np.int8)
    +>>> np.prod(x).dtype == int
    +True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.proj.html b/pull/2070/reference/generated/dpnp.proj.html new file mode 100644 index 00000000000..c97aaf71473 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.proj.html @@ -0,0 +1,196 @@ + + + + + + + + + + + dpnp.proj — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.proj

    +
    +
    +dpnp.proj(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes projection of each element x_i for input array x.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise projection.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where' and `subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.absolute

    Returns the magnitude of a complex number, element-wise.

    +
    +
    dpnp.conj

    Return the complex conjugate, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.proj(np.array([1, -2.3, 2.1-1.7j]))
    +array([ 1. +0.j, -2.3+0.j,  2.1-1.7.j])
    +
    +
    +
    >>> np.proj(np.array([complex(1,np.inf), complex(1,-np.inf), complex(np.inf,-1),]))
    +array([inf+0.j, inf-0.j, inf-0.j])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ptp.html b/pull/2070/reference/generated/dpnp.ptp.html new file mode 100644 index 00000000000..cd3585db488 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ptp.html @@ -0,0 +1,193 @@ + + + + + + + + + + + dpnp.ptp — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ptp

    +
    +
    +dpnp.ptp(a, /, axis=None, out=None, keepdims=False)[source]
    +

    Range of values (maximum - minimum) along an axis.

    +

    For full documentation refer to numpy.ptp.

    +
    +
    Returns:
    +

    ptp -- The range of a given array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Input array is supported as dpnp.dpnp.ndarray or +dpctl.tensor.usm_ndarray.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[4, 9, 2, 10],[6, 9, 7, 12]])
    +>>> np.ptp(x, axis=1)
    +array([8, 6])
    +
    +
    +
    >>> np.ptp(x, axis=0)
    +array([2, 0, 5, 2])
    +
    +
    +
    >>> np.ptp(x)
    +array(10)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.put.html b/pull/2070/reference/generated/dpnp.put.html new file mode 100644 index 00000000000..ab98f854374 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.put.html @@ -0,0 +1,217 @@ + + + + + + + + + + + dpnp.put — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.put

    +
    +
    +dpnp.put(a, ind, v, /, *, axis=None, mode='wrap')[source]
    +

    Puts values of an array into another array along a given axis.

    +

    For full documentation refer to numpy.put.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The array the values will be put into.

    • +
    • ind ({array_like}) -- Target indices, interpreted as integers.

    • +
    • v ({scalar, array_like}) -- Values to be put into a. Must be broadcastable to the result shape +a.shape[:axis] + ind.shape + a.shape[axis+1:].

    • +
    • axis ({None, int}, optional) -- The axis along which the values will be placed. If a is 1-D array, +this argument is optional. +Default: None.

    • +
    • mode ({'wrap', 'clip'}, optional) --

      Specifies how out-of-bounds indices will behave.

      +
        +
      • 'wrap': clamps indices to (-n <= i < n), then wraps negative +indices.

      • +
      • 'clip': clips indices to (0 <= i < n).

      • +
      +

      Default: 'wrap'.

      +

    • +
    +
    +
    +
    +

    See also

    +
    +
    dpnp.putmask

    Changes elements of an array based on conditional and input values.

    +
    +
    dpnp.place

    Change elements of an array based on conditional and input values.

    +
    +
    dpnp.put_along_axis

    Put values into the destination array by matching 1d index and data slices.

    +
    +
    +
    +

    Notes

    +

    In contrast to numpy.put wrap mode which wraps indices around +the array for cyclic operations, dpnp.put wrap mode clamps indices +to a fixed range within the array boundaries (-n <= i < n).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(5)
    +>>> np.put(a, [0, 2], [-44, -55])
    +>>> a
    +array([-44,   1, -55,   3,   4])
    +
    +
    +
    >>> a = np.arange(5)
    +>>> np.put(a, 22, -5, mode='clip')
    +>>> a
    +array([ 0,  1,  2,  3, -5])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.put_along_axis.html b/pull/2070/reference/generated/dpnp.put_along_axis.html new file mode 100644 index 00000000000..dd8ab5f3dfc --- /dev/null +++ b/pull/2070/reference/generated/dpnp.put_along_axis.html @@ -0,0 +1,212 @@ + + + + + + + + + + + dpnp.put_along_axis — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.put_along_axis

    +
    +
    +dpnp.put_along_axis(a, ind, values, axis)[source]
    +

    Put values into the destination array by matching 1d index and data slices.

    +

    This iterates over matching 1d slices oriented along the specified axis in +the index and data arrays, and uses the former to place values into the +latter. These slices can be different lengths.

    +

    Functions returning an index along an axis, like dpnp.argsort and +dpnp.argpartition, produce suitable indices for this function.

    +

    For full documentation refer to numpy.put_along_axis.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}, (Ni..., M, Nk...)) -- Destination array.

    • +
    • ind ({dpnp.ndarray, usm_ndarray}, (Ni..., J, Nk...)) -- Indices to change along each 1d slice of a. This must match the +dimension of input array, but dimensions in Ni and Nj +may be 1 to broadcast against a.

    • +
    • values ({scalar, array_like}, (Ni..., J, Nk...)) -- Values to insert at those indices. Its shape and dimension are +broadcast to match that of ind.

    • +
    • axis (int) -- The axis to take 1d slices along. If axis is None, the destination +array is treated as if a flattened 1d view had been created of it.

    • +
    +
    +
    +
    +

    See also

    +
    +
    dpnp.put

    Put values along an axis, using the same indices for every 1d slice.

    +
    +
    dpnp.take_along_axis

    Take values from the input array by matching 1d index and data slices.

    +
    +
    +
    +

    Examples

    +

    For this sample array

    +
    >>> import dpnp as np
    +>>> a = np.array([[10, 30, 20], [60, 40, 50]])
    +
    +
    +

    We can replace the maximum values with:

    +
    >>> ai = np.argmax(a, axis=1, keepdims=True)
    +>>> ai
    +array([[1],
    +       [0]])
    +>>> np.put_along_axis(a, ai, 99, axis=1)
    +>>> a
    +array([[10, 99, 20],
    +       [99, 40, 50]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.putmask.html b/pull/2070/reference/generated/dpnp.putmask.html new file mode 100644 index 00000000000..a6414c9f89b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.putmask.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.putmask — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.putmask

    +
    +
    +dpnp.putmask(x1, mask, values)[source]
    +

    Changes elements of an array based on conditional and input values.

    +

    For full documentation refer to numpy.putmask.

    +

    Limitations

    +

    Input arrays arr, mask and values are supported +as dpnp.ndarray.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.rad2deg.html b/pull/2070/reference/generated/dpnp.rad2deg.html new file mode 100644 index 00000000000..30cf116b964 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.rad2deg.html @@ -0,0 +1,199 @@ + + + + + + + + + + + dpnp.rad2deg — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.rad2deg

    +
    +
    +dpnp.rad2deg(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Convert angles from radians to degrees.

    +

    For full documentation refer to numpy.rad2deg.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Angle in radians.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- The corresponding angle in degrees. The data type of the returned array is +determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.deg2rad

    Convert angles from degrees to radians.

    +
    +
    dpnp.unwrap

    Remove large jumps in angle by wrapping.

    +
    +
    dpnp.degrees

    Equivalent function.

    +
    +
    +
    +

    Notes

    +

    dpnp.rad2deg(x) is 180 * x / pi.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array(np.pi / 2)
    +>>> np.rad2deg(x)
    +array(90.)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.radians.html b/pull/2070/reference/generated/dpnp.radians.html new file mode 100644 index 00000000000..9511cb28b71 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.radians.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.radians — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.radians

    +
    +
    +dpnp.radians(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Convert angles from degrees to radians.

    +

    For full documentation refer to numpy.radians.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array in degrees.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- The corresponding radian values. The data type of the returned array is +determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.deg2rad

    Equivalent function.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> deg = np.arange(12.) * 30.
    +
    +
    +

    Convert a degree array to radians:

    +
    >>> np.radians(deg)
    +array([0.        , 0.52359878, 1.04719755, 1.57079633, 2.0943951 ,
    +       2.61799388, 3.14159265, 3.66519143, 4.1887902 , 4.71238898,
    +       5.23598776, 5.75958653])
    +
    +
    +
    >>> out = np.zeros_like(deg)
    +>>> ret = np.radians(deg, out)
    +>>> ret is out
    +True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.RandomState.html b/pull/2070/reference/generated/dpnp.random.RandomState.html new file mode 100644 index 00000000000..d1470f94d9d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.RandomState.html @@ -0,0 +1,530 @@ + + + + + + + + + + + dpnp.random.RandomState — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.RandomState

    +
    +
    +class dpnp.random.RandomState(seed=None, device=None, sycl_queue=None)[source]
    +

    A container for the Mersenne Twister pseudo-random number generator.

    +

    For full documentation refer to numpy.random.RandomState.

    +
    +
    Parameters:
    +
      +
    • seed ({None, int, array_like}, optional) -- A random seed to initialize the pseudo-random number generator. +The seed can be None (the default), an integer scalar, or +an array of at most three integer scalars.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    +

    Methods

    +
    +
    +get_state()[source]
    +

    Return an internal state of the generator.

    +

    For full documentation refer to numpy.random.RandomState.get_state.

    +
    +
    Returns:
    +

    out -- An object representing the internal state of the generator.

    +
    +
    Return type:
    +

    object

    +
    +
    +
    + +
    +
    +get_sycl_device()[source]
    +

    Return an instance of dpctl.SyclDevice used within the generator to allocate data on.

    +
    +
    Returns:
    +

    device -- A SYCL device used to allocate data on.

    +
    +
    Return type:
    +

    dpctl.SyclDevice

    +
    +
    +
    + +
    +
    +get_sycl_queue()[source]
    +

    Return an instance of dpctl.SyclQueue used within the generator for data allocation.

    +
    +
    Returns:
    +

    queue -- A SYCL queue used for data allocation.

    +
    +
    Return type:
    +

    dpctl.SyclQueue

    +
    +
    +
    + +
    +
    +normal(loc=0.0, scale=1.0, size=None, dtype=None, usm_type='device')[source]
    +

    Draw random samples from a normal (Gaussian) distribution.

    +

    For full documentation refer to numpy.random.RandomState.normal.

    +
    +
    Parameters:
    +

    usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    +
    +
    Returns:
    +

    out -- Drawn samples from the parameterized normal distribution. +Output array data type is the same as input dtype. If dtype is None (the default), +dpnp.float64 type will be used if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters loc and scale are supported as a scalar. Otherwise, +numpy.random.RandomState.normal(loc, scale, size) samples are drawn. +Parameter dtype is supported only as dpnp.float32, dpnp.float64 or None.

    +

    Examples

    +
    >>> s = dpnp.random.RandomState().normal(loc=3.7, scale=2.5, size=(2, 4))
    +>>> print(s)
    +[[ 1.58997253 -0.84288406  2.33836967  4.16394577]
    + [ 4.40882036  5.39295758  6.48927254  6.74921661]]
    +
    +
    + +
    + +
    +
    +rand(*args, usm_type='device')[source]
    +

    Draw random values in a given shape.

    +

    Create an array of the given shape and populate it with random samples +from a uniform distribution over [0, 1).

    +

    For full documentation refer to numpy.random.RandomState.rand.

    +
    +
    Parameters:
    +

    usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    +
    +
    Returns:
    +

    out -- Random values in a given shape. +Output array data type is dpnp.float64 if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.RandomState().rand(5, 2)
    +>>> print(s)
    +[[0.13436424 0.56920387]
    + [0.84743374 0.80226506]
    + [0.76377462 0.06310682]
    + [0.25506903 0.1179187 ]
    + [0.49543509 0.76096244]]
    +
    +
    + +
    + +
    +
    +randint(low, high=None, size=None, dtype=<class 'int'>, usm_type='device')[source]
    +

    Draw random integers from low (inclusive) to high (exclusive).

    +

    Return random integers from the “discrete uniform” distribution of the specified type +in the “half-open” interval [low, high).

    +

    For full documentation refer to numpy.random.RandomState.randint.

    +
    +
    Parameters:
    +

    usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    +
    +
    Returns:
    +

    out -- size-shaped array of random integers from the appropriate distribution, +or a single such random int if size is not provided. +Output array data type is the same as input dtype.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters low and high are supported only as a scalar. +Parameter dtype is supported only as dpnp.int32 or int, +but int value is considered to be exactly equivalent to dpnp.int32. +Otherwise, numpy.random.RandomState.randint(low, high, size, dtype) samples are drawn.

    +

    Examples

    +
    >>> s = dpnp.random.RandomState().randint(2, size=10)
    +>>> print(s)
    +[0 1 1 1 1 0 0 0 0 1]
    +
    +
    +
    +

    See also

    +
    +
    dpnp.random.RandomState.random_integers

    similar to randint, only for the closed interval [low, high], and 1 is the lowest value if high is omitted.

    +
    +
    +
    +
    + +
    +
    +randn(*args, usm_type='device')[source]
    +

    Return a sample (or samples) from the "standard normal" distribution.

    +

    For full documentation refer to numpy.random.RandomState.randn.

    +
    +
    Parameters:
    +

    usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    +
    +
    Returns:
    +

    out -- A (d0, d1, ..., dn)-shaped array of floating-point samples from +the standard normal distribution, or a single such float if +no parameters were supplied. +Output array data type is dpnp.float64 if device supports it, +or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.RandomState().randn()
    +>>> print(s)
    +-0.84401099
    +
    +
    +

    Two-by-four array of samples from the normal distribution with +mean 3 and standard deviation 2.5:

    +
    >>> s = dpnp.random.RandomState().randn(2, 4)
    +>>> print(s)
    +[[ 0.88997253 -1.54288406  1.63836967  3.46394577]
    + [ 3.70882036  4.69295758  5.78927254  6.04921661]]
    +
    +
    + +
    + +
    +
    +random_sample(size=None, usm_type='device')[source]
    +

    Draw random floats in the half-open interval [0.0, 1.0).

    +

    Results are from the “continuous uniform” distribution over the interval.

    +

    For full documentation refer to numpy.random.RandomState.random_sample.

    +
    +
    Parameters:
    +

    usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    +
    +
    Returns:
    +

    out -- Array of random floats of shape size (if size=None, +zero dimension array with a single float is returned). +Output array data type is dpnp.float64 if device supports it, +or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.RandomState().random_sample(size=(4,))
    +>>> print(s)
    +[0.13436424 0.56920387 0.84743374 0.80226506]
    +
    +
    + +
    + +
    +
    +standard_normal(size=None, usm_type='device')[source]
    +

    Draw samples from a standard Normal distribution (mean=0, stdev=1).

    +

    For full documentation refer to numpy.random.RandomState.standard_normal.

    +
    +
    Parameters:
    +

    usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    +
    +
    Returns:
    +

    out -- A floating-point array of shape size of drawn samples, or a +single sample if size was not specified. +Output array data type is dpnp.float64 if device supports it, +or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.RandomState().standard_normal(size=(3, 5))
    +>>> print(s)
    +[[-0.84401099 -1.81715362 -0.54465213  0.18557831  0.28352814]
    + [ 0.67718303  1.11570901  1.21968665 -1.18236388  0.08156915]
    + [ 0.21941987 -1.24544512  0.63522211 -0.673174    0.        ]]
    +
    +
    + +
    + +
    +
    +uniform(low=0.0, high=1.0, size=None, dtype=None, usm_type='device')[source]
    +

    Draw samples from a uniform distribution.

    +

    Samples are uniformly distributed over the half-open interval [low, high) (includes low, but excludes high). +In other words, any value within the given interval is equally likely to be drawn by uniform.

    +

    For full documentation refer to numpy.random.RandomState.uniform.

    +
    +
    Parameters:
    +

    usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    +
    +
    Returns:
    +

    out -- Drawn samples from the parameterized uniform distribution. +Output array data type is the same as input dtype. If dtype is None (the default), +dpnp.float64 type will be used if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters low and high are supported as a scalar. Otherwise, +numpy.random.RandomState.uniform(low, high, size) samples are drawn. +Parameter dtype is supported only as dpnp.int32, dpnp.float32, dpnp.float64 or None.

    +

    Examples

    +
    >>> low, high = 1.23, 10.54    # low and high
    +>>> s = dpnp.random.RandomState().uniform(low, high, 5)
    +>>> print(s)
    +[2.48093112 6.52928804 9.1196081  8.6990877  8.34074171]
    +
    +
    +
    +

    See also

    +
    +
    dpnp.random.RandomState.randint

    Discrete uniform distribution, yielding integers.

    +
    +
    dpnp.random.RandomState.random_integers

    Discrete uniform distribution over the closed interval [low, high].

    +
    +
    dpnp.random.RandomState.random_sample

    Floats uniformly distributed over [0, 1).

    +
    +
    dpnp.random.RandomState.random

    Alias for dpnp.random.RandomState.random_sample.

    +
    +
    dpnp.random.RandomState.rand

    Convenience function that accepts dimensions as input, e.g., rand(2, 2) would generate a 2-by-2 array of floats, uniformly distributed over [0, 1).

    +
    +
    +
    +
    + +
    +
    +__eq__(value, /)
    +

    Return self==value.

    +
    + +
    +
    +__ne__(value, /)
    +

    Return self!=value.

    +
    + +
    +
    +__lt__(value, /)
    +

    Return self<value.

    +
    + +
    +
    +__le__(value, /)
    +

    Return self<=value.

    +
    + +
    +
    +__gt__(value, /)
    +

    Return self>value.

    +
    + +
    +
    +__ge__(value, /)
    +

    Return self>=value.

    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.beta.html b/pull/2070/reference/generated/dpnp.random.beta.html new file mode 100644 index 00000000000..8c54bb1eea9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.beta.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.beta — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.random.beta

    +
    +
    +dpnp.random.beta(a, b, size=None)[source]
    +

    Draw samples from a Beta distribution.

    +

    For full documentation refer to numpy.random.beta.

    +

    Limitations

    +

    Parameters a and b are supported as scalar. +Otherwise, numpy.random.beta(a, b, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> a, b = .4, .5  # alpha, beta
    +>>> s = dpnp.random.beta(a, b, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.binomial.html b/pull/2070/reference/generated/dpnp.random.binomial.html new file mode 100644 index 00000000000..116c71ec7cd --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.binomial.html @@ -0,0 +1,185 @@ + + + + + + + + + + + dpnp.random.binomial — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.binomial

    +
    +
    +dpnp.random.binomial(n, p, size=None)[source]
    +

    Draw samples from a binomial distribution.

    +

    For full documentation refer to numpy.random.binomial.

    +

    Limitations

    +

    Output array data type is dpnp.int32. +Parameters n and p are supported as scalar. +Otherwise, numpy.random.binomial(n, p, size) samples are drawn.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> n, p = 10, .5  # number of trials, probability of each trial
    +>>> s = dpnp.random.binomial(n, p, 1000)
    +# result of flipping a coin 10 times, tested 1000 times.
    +A real world example. A company drills 9 wild-cat oil exploration
    +wells, each with an estimated probability of success of 0.1. All nine
    +wells fail. What is the probability of that happening?
    +Let's do 20,000 trials of the model, and count the number that
    +generate zero positive results.
    +>>> sum(dpnp.random.binomial(9, 0.1, 20000) == 0)/20000.
    +# answer = 0.38885, or 38%.
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.bytes.html b/pull/2070/reference/generated/dpnp.random.bytes.html new file mode 100644 index 00000000000..aeb754d5b18 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.bytes.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.random.bytes — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.bytes

    +
    +
    +dpnp.random.bytes(length)[source]
    +

    Return random bytes.

    +

    For full documentation refer to numpy.random.bytes.

    +

    Notes

    +

    The function uses numpy.random.bytes on the backend and will be +executed on fallback backend.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.chisquare.html b/pull/2070/reference/generated/dpnp.random.chisquare.html new file mode 100644 index 00000000000..2777945a521 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.chisquare.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.random.chisquare — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.chisquare

    +
    +
    +dpnp.random.chisquare(df, size=None)[source]
    +

    Draw samples from a chi-square distribution.

    +

    For full documentation refer to numpy.random.chisquare.

    +

    Limitations

    +

    Parameter df is supported as a scalar. +Otherwise, numpy.random.chisquare(df, size) samples are drawn. +Output array data type is default float type.

    +

    Examples

    +
    >>> dpnp.random.chisquare(2,4)
    +array([ 1.89920014,  9.00867716,  3.13710533,  5.62318272]) # random
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.choice.html b/pull/2070/reference/generated/dpnp.random.choice.html new file mode 100644 index 00000000000..175fa0ecc98 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.choice.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.random.choice — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.choice

    +
    +
    +dpnp.random.choice(a, size=None, replace=True, p=None)[source]
    +

    Generates a random sample from a given 1-D array.

    +

    For full documentation refer to numpy.random.choice.

    +

    Notes

    +

    The function uses numpy.random.choice on the backend and will be +executed on fallback backend.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.dirichlet.html b/pull/2070/reference/generated/dpnp.random.dirichlet.html new file mode 100644 index 00000000000..4999124ea0b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.dirichlet.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.random.dirichlet — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.dirichlet

    +
    +
    +dpnp.random.dirichlet(alpha, size=None)[source]
    +

    Draw samples from the Dirichlet distribution.

    +

    For full documentation refer to numpy.random.dirichlet.

    +

    Notes

    +

    The function uses numpy.random.dirichlet on the backend and will be +executed on fallback backend.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.exponential.html b/pull/2070/reference/generated/dpnp.random.exponential.html new file mode 100644 index 00000000000..c7e78c49d54 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.exponential.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.exponential — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.exponential

    +
    +
    +dpnp.random.exponential(scale=1.0, size=None)[source]
    +

    Draw samples from an exponential distribution.

    +

    For full documentation refer to numpy.random.exponential.

    +

    Limitations

    +

    Parameter scale is supported as a scalar. +Otherwise, numpy.random.exponential(scale, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> scale = .5  # alpha
    +>>> s = dpnp.random.exponential(scale, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.f.html b/pull/2070/reference/generated/dpnp.random.f.html new file mode 100644 index 00000000000..a951bfa385c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.f.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.random.f — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.random.f

    +
    +
    +dpnp.random.f(dfnum, dfden, size=None)[source]
    +

    Draw samples from an F distribution.

    +

    For full documentation refer to numpy.random.f.

    +

    Limitations

    +

    Parameters dfnum and dfden are supported as scalar. +Otherwise, numpy.random.f(dfnum, dfden, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +
    >>> dfnum, dfden = 3., 2.
    +>>> s = dpnp.random.f(dfnum, dfden, size)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.gamma.html b/pull/2070/reference/generated/dpnp.random.gamma.html new file mode 100644 index 00000000000..a771eb54333 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.gamma.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.gamma — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.gamma

    +
    +
    +dpnp.random.gamma(shape, scale=1.0, size=None)[source]
    +

    Draw samples from a Gamma distribution.

    +

    For full documentation refer to numpy.random.gamma.

    +

    Limitations

    +

    Parameters shape and scale are supported as scalar. +Otherwise, numpy.random.gamma(shape, scale, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> shape, scale = 0, 0.1  # shape and scale
    +>>> s = dpnp.random.gamma(shape, scale, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.geometric.html b/pull/2070/reference/generated/dpnp.random.geometric.html new file mode 100644 index 00000000000..a34e7d439aa --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.geometric.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.geometric — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.geometric

    +
    +
    +dpnp.random.geometric(p, size=None)[source]
    +

    Draw samples from the geometric distribution.

    +

    For full documentation refer to numpy.random.geometric.

    +

    Limitations

    +

    Parameter p is supported as a scalar. +Otherwise, numpy.random.geometric(p, size) samples are drawn. +Output array data type is dpnp.int32.

    +

    Examples

    +

    Draw ten thousand values from the geometric distribution, +with the probability of an individual success equal to 0.35:

    +
    >>> z = dpnp.random.geometric(p=0.35, size=10000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.gumbel.html b/pull/2070/reference/generated/dpnp.random.gumbel.html new file mode 100644 index 00000000000..3a93ba83f39 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.gumbel.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.gumbel — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.gumbel

    +
    +
    +dpnp.random.gumbel(loc=0.0, scale=1.0, size=None)[source]
    +

    Draw samples from a Gumbel distribution.

    +

    For full documentation refer to numpy.random.gumbel.

    +

    Limitations

    +

    Parameters loc and scale are supported as scalar. +Otherwise, numpy.random.gumbel(loc, scale, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> mu, beta = 0, 0.1 # location and scale
    +>>> s = dpnp.random.gumbel(mu, beta, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.hypergeometric.html b/pull/2070/reference/generated/dpnp.random.hypergeometric.html new file mode 100644 index 00000000000..bb15beaba2e --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.hypergeometric.html @@ -0,0 +1,179 @@ + + + + + + + + + + + dpnp.random.hypergeometric — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.hypergeometric

    +
    +
    +dpnp.random.hypergeometric(ngood, nbad, nsample, size=None)[source]
    +

    Draw samples from a Hypergeometric distribution.

    +

    For full documentation refer to numpy.random.hypergeometric.

    +

    Limitations

    +

    Parameters ngood, nbad and nsample are supported as scalar. +Otherwise, numpy.random.hypergeometric(shape, scale, size) samples +are drawn. +Output array data type is dpnp.int32.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> ngood, nbad, nsamp = 100, 2, 10
    +# number of good, number of bad, and number of samples
    +>>> s = dpnp.random.hypergeometric(ngood, nbad, nsamp, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.laplace.html b/pull/2070/reference/generated/dpnp.random.laplace.html new file mode 100644 index 00000000000..83502d7c035 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.laplace.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.laplace — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.laplace

    +
    +
    +dpnp.random.laplace(loc=0.0, scale=1.0, size=None)[source]
    +

    Draw samples from the Laplace or double exponential distribution with +specified location (or mean) and scale (decay).

    +

    For full documentation refer to numpy.random.laplace.

    +

    Limitations

    +

    Parameters loc and scale are supported as scalar. +Otherwise, numpy.random.laplace(loc, scale, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +
    >>> loc, scale = 0., 1.
    +>>> s = dpnp.random.laplace(loc, scale, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.logistic.html b/pull/2070/reference/generated/dpnp.random.logistic.html new file mode 100644 index 00000000000..b95596edbda --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.logistic.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.random.logistic — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.logistic

    +
    +
    +dpnp.random.logistic(loc=0.0, scale=1.0, size=None)[source]
    +

    Draw samples from a logistic distribution.

    +

    For full documentation refer to numpy.random.logistic.

    +

    Limitations

    +

    Parameters loc and scale are supported as scalar. +Otherwise, numpy.random.logistic(loc, scale, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +
    >>> loc, scale = 0., 1.
    +>>> s = dpnp.random.logistic(loc, scale, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.lognormal.html b/pull/2070/reference/generated/dpnp.random.lognormal.html new file mode 100644 index 00000000000..ade95a30cd2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.lognormal.html @@ -0,0 +1,178 @@ + + + + + + + + + + + dpnp.random.lognormal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.lognormal

    +
    +
    +dpnp.random.lognormal(mean=0.0, sigma=1.0, size=None)[source]
    +

    Draw samples from a log-normal distribution.

    +

    For full documentation refer to numpy.random.lognormal.

    +

    Limitations

    +

    Parameters mean and sigma are supported as scalar. +Otherwise, numpy.random.lognormal(mean, sigma, size) samples +are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> mu, sigma = 3., 1. # mean and standard deviation
    +>>> s = dpnp.random.lognormal(mu, sigma, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.logseries.html b/pull/2070/reference/generated/dpnp.random.logseries.html new file mode 100644 index 00000000000..8f331884534 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.logseries.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.random.logseries — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.logseries

    +
    +
    +dpnp.random.logseries(p, size=None)[source]
    +

    Draw samples from a logarithmic series distribution.

    +

    For full documentation refer to numpy.random.logseries.

    +

    Notes

    +

    The function uses numpy.random.logseries on the backend and will be +executed on fallback backend.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.multinomial.html b/pull/2070/reference/generated/dpnp.random.multinomial.html new file mode 100644 index 00000000000..ed694dc35a2 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.multinomial.html @@ -0,0 +1,179 @@ + + + + + + + + + + + dpnp.random.multinomial — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.multinomial

    +
    +
    +dpnp.random.multinomial(n, pvals, size=None)[source]
    +

    Draw samples from a multinomial distribution.

    +

    For full documentation refer to numpy.random.multinomial.

    +

    Limitations

    +

    Parameter n limited with int32 max. See, numpy.iinfo(numpy.int32).max. +Sum of pvals, sum(pvals) should be between (0, 1). +Otherwise, numpy.random.multinomial(n, pvals, size) +samples are drawn.

    +

    Examples

    +

    Throw a dice 20 times:

    +
    >>> s = dpnp.random.multinomial(20, [1/6.]*6, size=1)
    +>>> s.shape
    +(1, 6)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.multivariate_normal.html b/pull/2070/reference/generated/dpnp.random.multivariate_normal.html new file mode 100644 index 00000000000..775b7224c3b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.multivariate_normal.html @@ -0,0 +1,179 @@ + + + + + + + + + + + dpnp.random.multivariate_normal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.multivariate_normal

    +
    +
    +dpnp.random.multivariate_normal(mean, cov, size=None, check_valid='warn', tol=1e-08)[source]
    +

    Draw random samples from a multivariate normal distribution.

    +

    For full documentation refer to numpy.random.multivariate_normal.

    +

    Limitations

    +

    Parameters check_valid and tol are not supported. +Otherwise, numpy.random.multivariate_normal(mean, cov, size, check_valid, tol) +samples are drawn.

    +

    Examples

    +
    >>> mean = (1, 2)
    +>>> cov = [[1, 0], [0, 1]]
    +>>> x = dpnp.random.multivariate_normal(mean, cov, (3, 3))
    +>>> x.shape
    +(3, 3, 2)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.negative_binomial.html b/pull/2070/reference/generated/dpnp.random.negative_binomial.html new file mode 100644 index 00000000000..422aac8bf9f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.negative_binomial.html @@ -0,0 +1,185 @@ + + + + + + + + + + + dpnp.random.negative_binomial — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.negative_binomial

    +
    +
    +dpnp.random.negative_binomial(n, p, size=None)[source]
    +

    Draw samples from a negative binomial distribution.

    +

    For full documentation refer to numpy.random.negative_binomial.

    +

    Limitations

    +

    Parameters n and p are supported as scalar. +Otherwise, numpy.random.negative_binomial(n, p, size) samples +are drawn. +Output array data type is dpnp.int32.

    +

    Examples

    +

    Draw samples from the distribution: +A real world example. A company drills wild-cat oil +exploration wells, each with an estimated probability of +success of 0.1. What is the probability of having one success +for each successive well, that is what is the probability of a +single success after drilling 5 wells, after 6 wells, etc.?

    +
    >>> s = dpnp.random.negative_binomial(1, 0.1, 100000)
    +>>> for i in range(1, 11):
    +...    probability = sum(s<i) / 100000.
    +...    print(i, "wells drilled, probability of one success =", probability)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.noncentral_chisquare.html b/pull/2070/reference/generated/dpnp.random.noncentral_chisquare.html new file mode 100644 index 00000000000..a279a4b76ef --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.noncentral_chisquare.html @@ -0,0 +1,168 @@ + + + + + + + + + + + dpnp.random.noncentral_chisquare — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.noncentral_chisquare

    +
    +
    +dpnp.random.noncentral_chisquare(df, nonc, size=None)[source]
    +

    Draw samples from a non-central chi-square distribution.

    +

    For full documentation refer to numpy.random.noncentral_chisquare.

    +

    TODO

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.noncentral_f.html b/pull/2070/reference/generated/dpnp.random.noncentral_f.html new file mode 100644 index 00000000000..8defa571bc0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.noncentral_f.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.random.noncentral_f — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.noncentral_f

    +
    +
    +dpnp.random.noncentral_f(dfnum, dfden, nonc, size=None)[source]
    +

    Draw samples from the non-central F distribution.

    +

    For full documentation refer to numpy.random.noncentral_f.

    +

    Notes

    +

    The function uses numpy.random.noncentral_f on the backend and +will be executed on fallback backend.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.normal.html b/pull/2070/reference/generated/dpnp.random.normal.html new file mode 100644 index 00000000000..3b7308bdba6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.normal.html @@ -0,0 +1,202 @@ + + + + + + + + + + + dpnp.random.normal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.normal

    +
    +
    +dpnp.random.normal(loc=0.0, scale=1.0, size=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Draw random samples from a normal (Gaussian) distribution.

    +

    For full documentation refer to numpy.random.normal.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Drawn samples from the parameterized normal distribution. +Output array data type is the same as input dtype. If dtype is None (the default), +dpnp.float64 type will be used if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters loc and scale are supported as scalar. +Otherwise, numpy.random.normal(loc, scale, size) samples are drawn. +Parameter dtype is supported only as dpnp.float32, dpnp.float64 or None.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> mu, sigma = 0, 0.1 # mean and standard deviation
    +>>> s = dpnp.random.normal(mu, sigma, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.pareto.html b/pull/2070/reference/generated/dpnp.random.pareto.html new file mode 100644 index 00000000000..35ce1c54c7b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.pareto.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.pareto — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.pareto

    +
    +
    +dpnp.random.pareto(a, size=None)[source]
    +

    Draw samples from a Pareto II or Lomax distribution with specified shape.

    +

    For full documentation refer to numpy.random.pareto.

    +

    Limitations

    +

    Parameter a is supported as a scalar. +Otherwise, numpy.random.pareto(a, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> a = .5  # alpha
    +>>> s = dpnp.random.pareto(a, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.permutation.html b/pull/2070/reference/generated/dpnp.random.permutation.html new file mode 100644 index 00000000000..bbd6f365bc9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.permutation.html @@ -0,0 +1,186 @@ + + + + + + + + + + + dpnp.random.permutation — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.permutation

    +
    +
    +dpnp.random.permutation(x)[source]
    +

    Randomly permute a sequence, or return a permuted range.

    +

    For full documentation refer to numpy.random.permutation.

    +

    Examples

    +
    >>> arr = dpnp.random.permutation(10)
    +>>> print(arr)
    +[3 8 7 9 0 6 1 2 4 5] # random
    +
    +
    +
    >>> arr = dpnp.random.permutation([1, 4, 9, 12, 15])
    +>>> print(arr)
    +[12  1  4  9 15] # random
    +
    +
    +
    >>> arr = dpnp.arange(9).reshape((3, 3))
    +>>> dpnp.random.permutation(arr)
    +>>> print(arr)
    +[[0 1 2]
    + [3 4 5]
    + [6 7 8]]  # random
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.poisson.html b/pull/2070/reference/generated/dpnp.random.poisson.html new file mode 100644 index 00000000000..29d39e4cab4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.poisson.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.poisson — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.poisson

    +
    +
    +dpnp.random.poisson(lam=1.0, size=None)[source]
    +

    Draw samples from a Poisson distribution.

    +

    For full documentation refer to numpy.random.poisson.

    +

    Limitations

    +

    Parameter lam is supported as a scalar. +Otherwise, numpy.random.poisson(lam, size) samples are drawn. +Output array data type is dpnp.int32.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> import numpy as np
    +>>> s = dpnp.random.poisson(5, 10000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.power.html b/pull/2070/reference/generated/dpnp.random.power.html new file mode 100644 index 00000000000..9eeae8cb7ef --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.power.html @@ -0,0 +1,178 @@ + + + + + + + + + + + dpnp.random.power — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.power

    +
    +
    +dpnp.random.power(a, size=None)[source]
    +

    Draws samples in [0, 1] from a power distribution with positive +exponent a - 1.

    +

    For full documentation refer to numpy.random.power.

    +

    Limitations

    +

    Parameter a is supported as a scalar. +Otherwise, numpy.random.power(a, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> a = .5  # alpha
    +>>> s = dpnp.random.power(a, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.rand.html b/pull/2070/reference/generated/dpnp.random.rand.html new file mode 100644 index 00000000000..48fb566cc5d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.rand.html @@ -0,0 +1,201 @@ + + + + + + + + + + + dpnp.random.rand — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.random.rand

    +
    +
    +dpnp.random.rand(d0, *dn, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Random values in a given shape.

    +

    Create an array of the given shape and populate it with random samples +from a uniform distribution over [0, 1).

    +

    For full documentation refer to numpy.random.rand.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Random values in a given shape. +Output array data type is dpnp.float64 if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.rand(3, 2)
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.randint.html b/pull/2070/reference/generated/dpnp.random.randint.html new file mode 100644 index 00000000000..ddb72c6e81b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.randint.html @@ -0,0 +1,210 @@ + + + + + + + + + + + dpnp.random.randint — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.randint

    +
    +
    +dpnp.random.randint(low, high=None, size=None, dtype=<class 'int'>, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return random integers from low (inclusive) to high (exclusive).

    +

    For full documentation refer to numpy.random.randint.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- size-shaped array of random integers from the appropriate distribution, +or a single such random int if size is not provided. +Output array data type is the same as input dtype.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters low and high are supported only as a scalar. +Parameter dtype is supported only as dpnp.int32 or int, +but int value is considered to be exactly equivalent to dpnp.int32. +Otherwise, numpy.random.RandomState.randint(low, high, size, dtype) samples are drawn.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> low, high = 3, 11 # low and high
    +>>> s = dpnp.random.randint(low, high, 1000, dtype=dpnp.int32)
    +
    +
    +
    +

    See also

    +
    +
    dpnp.random.random_integers

    similar to randint, only for the closed interval [low, high], and 1 is the lowest value if high is omitted.

    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.randn.html b/pull/2070/reference/generated/dpnp.random.randn.html new file mode 100644 index 00000000000..7bf4888207a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.randn.html @@ -0,0 +1,205 @@ + + + + + + + + + + + dpnp.random.randn — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.randn

    +
    +
    +dpnp.random.randn(d0, *dn, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return a sample (or samples) from the "standard normal" distribution.

    +

    For full documentation refer to numpy.random.randn.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A (d0, d1, ..., dn)-shaped array of floating-point samples from +the standard normal distribution, or a single such float if no parameters were supplied. +Output array data type is dpnp.float64 if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> dpnp.random.randn()
    +2.1923875335537315  # random
    +
    +
    +

    Two-by-four array of samples from N(3, 6.25):

    +
    >>> s = 3 + 2.5 * dpnp.random.randn(2, 4)
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.random.html b/pull/2070/reference/generated/dpnp.random.random.html new file mode 100644 index 00000000000..14944d1984a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.random.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.random.random — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.random

    +
    +
    +dpnp.random.random(size=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return random floats in the half-open interval [0.0, 1.0).

    +

    Alias for random_sample.

    +

    For full documentation refer to numpy.random.random.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of random floats of shape size (if size=None, zero dimension array with a single float is returned). +Output array data type is dpnp.float64 if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.random(1000)
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.random_integers.html b/pull/2070/reference/generated/dpnp.random.random_integers.html new file mode 100644 index 00000000000..bdb73eb542a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.random_integers.html @@ -0,0 +1,198 @@ + + + + + + + + + + + dpnp.random.random_integers — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.random_integers

    +
    +
    +dpnp.random.random_integers(low, high=None, size=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Random integers between low and high, inclusive.

    +

    For full documentation refer to numpy.random.random_integers.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- size-shaped array of random integers from the appropriate distribution, +or a single such random int if size is not provided.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters low and high are supported as scalar. +Otherwise, numpy.random.random_integers(low, high, size) samples are drawn.

    +
    +

    See also

    +

    dpnp.random.randint

    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.random_sample.html b/pull/2070/reference/generated/dpnp.random.random_sample.html new file mode 100644 index 00000000000..07563c4dd17 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.random_sample.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.random.random_sample — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.random_sample

    +
    +
    +dpnp.random.random_sample(size=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return random floats in the half-open interval [0.0, 1.0).

    +

    Results are from the “continuous uniform” distribution over the interval.

    +

    For full documentation refer to numpy.random.random_sample.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of random floats of shape size (if size=None, zero dimension array with a single float is returned). +Output array data type is dpnp.float64 if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.random_sample((5,))
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.ranf.html b/pull/2070/reference/generated/dpnp.random.ranf.html new file mode 100644 index 00000000000..89f71a15154 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.ranf.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.random.ranf — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.random.ranf

    +
    +
    +dpnp.random.ranf(size=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return random floats in the half-open interval [0.0, 1.0).

    +

    This is an alias of random_sample.

    +

    For full documentation refer to numpy.random.ranf.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of random floats of shape size (if size=None, zero dimension array with a single float is returned). +Output array data type is dpnp.float64 if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.ranf(1000)
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.rayleigh.html b/pull/2070/reference/generated/dpnp.random.rayleigh.html new file mode 100644 index 00000000000..0d751627244 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.rayleigh.html @@ -0,0 +1,177 @@ + + + + + + + + + + + dpnp.random.rayleigh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.rayleigh

    +
    +
    +dpnp.random.rayleigh(scale=1.0, size=None)[source]
    +

    Draw samples from a Rayleigh distribution.

    +

    For full documentation refer to numpy.random.rayleigh.

    +

    Limitations

    +

    Parameter scale is supported as a scalar. +Otherwise, numpy.random.rayleigh(scale, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> import numpy as np
    +>>> s = dpnp.random.rayleigh(1.0, 10000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.sample.html b/pull/2070/reference/generated/dpnp.random.sample.html new file mode 100644 index 00000000000..3393135bc84 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.sample.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.random.sample — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.sample

    +
    +
    +dpnp.random.sample(size=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return random floats in the half-open interval [0.0, 1.0).

    +

    This is an alias of random_sample.

    +

    For full documentation refer to numpy.random.sample.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of random floats of shape size (if size=None, zero dimension array with a single float is returned). +Output array data type is dpnp.float64 if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> s = dpnp.random.sample(1000)
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.seed.html b/pull/2070/reference/generated/dpnp.random.seed.html new file mode 100644 index 00000000000..e1a0ea6c118 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.seed.html @@ -0,0 +1,182 @@ + + + + + + + + + + + dpnp.random.seed — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.random.seed

    +
    +
    +dpnp.random.seed(seed=None, device=None, sycl_queue=None)[source]
    +

    Reseed a legacy MT19937 random number generator engine.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where an array with generated numbers +will be created. The device can be None (the default), an OneAPI +filter selector string, an instance of dpctl.SyclDevice +corresponding to a non-partitioned SYCL device, an instance of +dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for an array with generated numbers.

    • +
    +
    +
    +

    Limitations

    +

    The seed parameter is supported as a scalar or an array of at most three +integer scalars.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.shuffle.html b/pull/2070/reference/generated/dpnp.random.shuffle.html new file mode 100644 index 00000000000..7fadc64c1f8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.shuffle.html @@ -0,0 +1,170 @@ + + + + + + + + + + + dpnp.random.shuffle — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.shuffle

    +
    +
    +dpnp.random.shuffle(x1)[source]
    +

    Modify a sequence in-place by shuffling its contents.

    +

    For full documentation refer to numpy.random.shuffle.

    +

    Limitations

    +

    Otherwise, the function will use numpy.random.shuffle on the backend +and will be executed on fallback backend.

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.standard_cauchy.html b/pull/2070/reference/generated/dpnp.random.standard_cauchy.html new file mode 100644 index 00000000000..d5fafdb1d82 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.standard_cauchy.html @@ -0,0 +1,178 @@ + + + + + + + + + + + dpnp.random.standard_cauchy — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.standard_cauchy

    +
    +
    +dpnp.random.standard_cauchy(size=None)[source]
    +

    Draw samples from a standard Cauchy distribution with mode = 0.

    +

    Also known as the Lorentz distribution.

    +

    Limitations

    +

    Output array data type is default float type.

    +

    Examples

    +

    Draw samples and plot the distribution:

    +
    >>> import matplotlib.pyplot as plt
    +>>> s = dpnp.random.standard_cauchy(1000000)
    +>>> s = s[(s>-25) & (s<25)]  # truncate distribution so it plots well
    +>>> plt.hist(s, bins=100)
    +>>> plt.show()
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.standard_exponential.html b/pull/2070/reference/generated/dpnp.random.standard_exponential.html new file mode 100644 index 00000000000..2ee3aefb714 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.standard_exponential.html @@ -0,0 +1,175 @@ + + + + + + + + + + + dpnp.random.standard_exponential — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.standard_exponential

    +
    +
    +dpnp.random.standard_exponential(size=None)[source]
    +

    Draw samples from the standard exponential distribution.

    +

    standard_exponential is identical to the exponential distribution +with a scale parameter of 1.

    +

    Limitations

    +

    Output array data type is default float type.

    +

    Examples

    +

    Output a 3x8000 array:

    +
    >>> n = dpnp.random.standard_exponential((3, 8000))
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.standard_gamma.html b/pull/2070/reference/generated/dpnp.random.standard_gamma.html new file mode 100644 index 00000000000..f641cc1904a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.standard_gamma.html @@ -0,0 +1,178 @@ + + + + + + + + + + + dpnp.random.standard_gamma — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.standard_gamma

    +
    +
    +dpnp.random.standard_gamma(shape, size=None)[source]
    +

    Draw samples from a standard Gamma distribution.

    +

    For full documentation refer to numpy.random.standard_gamma.

    +

    Limitations

    +

    Parameter shape is supported as a scalar. +Otherwise, numpy.random.standard_gamma(shape, size) samples +are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> shape = 2.
    +>>> s = dpnp.random.standard_gamma(shape, 1000000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.standard_normal.html b/pull/2070/reference/generated/dpnp.random.standard_normal.html new file mode 100644 index 00000000000..5bf159d0790 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.standard_normal.html @@ -0,0 +1,197 @@ + + + + + + + + + + + dpnp.random.standard_normal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.standard_normal

    +
    +
    +dpnp.random.standard_normal(size=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Draw samples from a standard Normal distribution (mean=0, stdev=1).

    +

    For full documentation refer to numpy.random.standard_normal.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- A floating-point array of shape size of drawn samples, or a +single sample if size was not specified. +Output array data type is dpnp.float64 if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> s = dpnp.random.standard_normal(1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.standard_t.html b/pull/2070/reference/generated/dpnp.random.standard_t.html new file mode 100644 index 00000000000..46162f140ba --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.standard_t.html @@ -0,0 +1,179 @@ + + + + + + + + + + + dpnp.random.standard_t — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.standard_t

    +
    +
    +dpnp.random.standard_t(df, size=None)[source]
    +

    Draw samples from a standard Student’s t distribution with +df degrees of freedom.

    +

    For full documentation refer to numpy.random.standard_t.

    +

    Limitations

    +

    Parameter df is supported as a scalar. +Otherwise, numpy.random.standard_t(df, size) samples +are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> df = 2.
    +>>> s = dpnp.random.standard_t(df, 1000000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.triangular.html b/pull/2070/reference/generated/dpnp.random.triangular.html new file mode 100644 index 00000000000..f5482a1aca4 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.triangular.html @@ -0,0 +1,179 @@ + + + + + + + + + + + dpnp.random.triangular — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.triangular

    +
    +
    +dpnp.random.triangular(left, mode, right, size=None)[source]
    +

    Draw samples from the triangular distribution over the interval +[left, right].

    +

    For full documentation refer to numpy.random.triangular.

    +

    Limitations

    +

    Parameters left, mode and right are supported as scalar. +Otherwise, numpy.random.triangular(left, mode, right, size) +samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> df = 2.
    +>>> s = dpnp.random.triangular(-3, 0, 8, 1000000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.uniform.html b/pull/2070/reference/generated/dpnp.random.uniform.html new file mode 100644 index 00000000000..c38218beb55 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.uniform.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.random.uniform — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.uniform

    +
    +
    +dpnp.random.uniform(low=0.0, high=1.0, size=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Draw samples from a uniform distribution.

    +

    Samples are uniformly distributed over the half-open interval [low, high) (includes low, but excludes high). +In other words, any value within the given interval is equally likely to be drawn by uniform.

    +

    For full documentation refer to numpy.random.uniform.

    +
    +
    Parameters:
    +
      +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector string, +an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, +an instance of dpctl.SyclQueue, or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Drawn samples from the parameterized uniform distribution. +Output array data type is the same as input dtype. If dtype is None (the default), +dpnp.float64 type will be used if device supports it, or dpnp.float32 otherwise.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters low and high are supported as a scalar. Otherwise, +numpy.random.uniform(low, high, size) samples are drawn. +Parameter dtype is supported only as dpnp.int32, dpnp.float32, dpnp.float64 or None.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> low, high = 0, 0.1 # low and high
    +>>> s = dpnp.random.uniform(low, high, 10000)
    +
    +
    +
    +

    See also

    +
    +
    dpnp.random.random

    Floats uniformly distributed over [0, 1).

    +
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.vonmises.html b/pull/2070/reference/generated/dpnp.random.vonmises.html new file mode 100644 index 00000000000..56be964b37c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.vonmises.html @@ -0,0 +1,178 @@ + + + + + + + + + + + dpnp.random.vonmises — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.vonmises

    +
    +
    +dpnp.random.vonmises(mu, kappa, size=None)[source]
    +

    Draw samples from a von Mises distribution.

    +

    For full documentation refer to numpy.random.vonmises.

    +

    Limitations

    +

    Parameters mu and kappa are supported as scalar. +Otherwise, numpy.random.vonmises(mu, kappa, size) +samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +

    Draw samples from the distribution:

    +
    >>> mu, kappa = 0.0, 4.0 # mean and dispersion
    +>>> s = dpnp.random.vonmises(mu, kappa, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.wald.html b/pull/2070/reference/generated/dpnp.random.wald.html new file mode 100644 index 00000000000..34070f524cf --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.wald.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.random.wald — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.random.wald

    +
    +
    +dpnp.random.wald(mean, scale, size=None)[source]
    +

    Draw samples from a Wald, or inverse Gaussian, distribution.

    +

    For full documentation refer to numpy.random.wald.

    +

    Limitations

    +

    Parameters mean and scale are supported as scalar. +Otherwise, numpy.random.wald(mean, scale, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +
    >>> loc, scale = 3., 2.
    +>>> s = dpnp.random.wald(loc, scale, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.weibull.html b/pull/2070/reference/generated/dpnp.random.weibull.html new file mode 100644 index 00000000000..2c693fbbc4c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.weibull.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.random.weibull — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.random.weibull

    +
    +
    +dpnp.random.weibull(a, size=None)[source]
    +

    Draw samples from a Weibull distribution.

    +

    For full documentation refer to numpy.random.weibull.

    +

    Limitations

    +

    Parameter a is supported as a scalar. +Otherwise, numpy.random.weibull(a, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +
    >>> a = 5. # shape
    +>>> s = np.random.weibull(a, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.random.zipf.html b/pull/2070/reference/generated/dpnp.random.zipf.html new file mode 100644 index 00000000000..087eabd1a40 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.random.zipf.html @@ -0,0 +1,176 @@ + + + + + + + + + + + dpnp.random.zipf — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.random.zipf

    +
    +
    +dpnp.random.zipf(a, size=None)[source]
    +

    Returns an array of samples drawn from the Zipf distribution.

    +

    For full documentation refer to numpy.random.zipf.

    +

    Limitations

    +

    Parameter a` is supported as a scalar. +Otherwise, numpy.zipf.weibull(a, size) samples are drawn. +Output array data type is dpnp.float64.

    +

    Examples

    +
    >>> a = 2. # parameter
    +>>> s = np.random.zipf(a, 1000)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ravel.html b/pull/2070/reference/generated/dpnp.ravel.html new file mode 100644 index 00000000000..728014e3a20 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ravel.html @@ -0,0 +1,215 @@ + + + + + + + + + + + dpnp.ravel — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.ravel

    +
    +
    +dpnp.ravel(a, order='C')[source]
    +

    Return a contiguous flattened array.

    +

    For full documentation refer to numpy.ravel.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array. The elements in a are read in the order specified by +order, and packed as a 1-D array.

    • +
    • order ({"C", "F"}, optional) -- The elements of a are read using this index order. "C" means to +index the elements in row-major, C-style order, with the last axis +index changing fastest, back to the first axis index changing slowest. +"F" means to index the elements in column-major, Fortran-style +order, with the first index changing fastest, and the last index +changing slowest. By default, "C" index order is used.

    • +
    +
    +
    Returns:
    +

    out -- A contiguous 1-D array of the same subtype as a, with shape (a.size,).

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.reshape

    Change the shape of an array without changing its data.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[1, 2, 3], [4, 5, 6]])
    +>>> np.ravel(x)
    +array([1, 2, 3, 4, 5, 6])
    +
    +
    +
    >>> x.reshape(-1)
    +array([1, 2, 3, 4, 5, 6])
    +
    +
    +
    >>> np.ravel(x, order='F')
    +array([1, 4, 2, 5, 3, 6])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.ravel_multi_index.html b/pull/2070/reference/generated/dpnp.ravel_multi_index.html new file mode 100644 index 00000000000..924a8771251 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.ravel_multi_index.html @@ -0,0 +1,222 @@ + + + + + + + + + + + dpnp.ravel_multi_index — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.ravel_multi_index

    +
    +
    +dpnp.ravel_multi_index(multi_index, dims, mode='raise', order='C')[source]
    +

    Converts a tuple of index arrays into an array of flat indices, applying +boundary modes to the multi-index.

    +

    For full documentation refer to numpy.ravel_multi_index.

    +
    +
    Parameters:
    +
      +
    • multi_index (tuple of {dpnp.ndarray, usm_ndarray}) -- A tuple of integer arrays, one array for each dimension.

    • +
    • dims (tuple or list of ints) -- The shape of array into which the indices from multi_index apply.

    • +
    • mode ({"raise", "wrap" or "clip'}, optional) --

      Specifies how out-of-bounds indices are handled. Can specify either +one mode or a tuple of modes, one mode per index:

      +
        +
      • "raise" -- raise an error

      • +
      • "wrap" -- wrap around

      • +
      • "clip" -- clip to the range

      • +
      +

      In "clip" mode, a negative index which would normally wrap will +clip to 0 instead. +Default: "raise".

      +

    • +
    • order ({None, "C", "F"}, optional) -- Determines whether the multi-index should be viewed as indexing in +row-major (C-style) or column-major (Fortran-style) order. +Default: "C".

    • +
    +
    +
    Returns:
    +

    raveled_indices -- An array of indices into the flattened version of an array of +dimensions dims.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.unravel_index

    Converts array of flat indices into a tuple of coordinate arrays.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> arr = np.array([[3, 6, 6], [4, 5, 1]])
    +>>> np.ravel_multi_index(arr, (7, 6))
    +array([22, 41, 37])
    +>>> np.ravel_multi_index(arr, (7, 6), order="F")
    +array([31, 41, 13])
    +>>> np.ravel_multi_index(arr, (4, 6), mode="clip")
    +array([22, 23, 19])
    +>>> np.ravel_multi_index(arr, (4, 4), mode=("clip", "wrap"))
    +array([12, 13, 13])
    +
    +
    +
    >>> arr = np.array([3, 1, 4, 1])
    +>>> np.ravel_multi_index(arr, (6, 7, 8, 9))
    +array(1621)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.real.html b/pull/2070/reference/generated/dpnp.real.html new file mode 100644 index 00000000000..47e47b3e439 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.real.html @@ -0,0 +1,216 @@ + + + + + + + + + + + dpnp.real — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.real

    +
    +
    +dpnp.real(x)
    +

    Computes real part of each element x_i for input array x.

    +

    For full documentation refer to numpy.real.

    +
    +
    Parameters:
    +

    x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    +
    +
    Returns:
    +

    out -- An array containing the element-wise real component of input. +If the input is a real-valued data type, the returned array has +the same data type. If the input is a complex floating-point +data type, the returned array has a floating-point data type +with the same floating-point precision as complex input.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.real_if_close

    Return the real part of the input is complex with all imaginary parts close to zero.

    +
    +
    dpnp.imag

    Return the imaginary part of the complex argument.

    +
    +
    dpnp.angle

    Return the angle of the complex argument.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1+2j, 3+4j, 5+6j])
    +>>> a.real
    +array([1., 3., 5.])
    +>>> a.real = 9
    +>>> a
    +array([9.+2.j, 9.+4.j, 9.+6.j])
    +>>> a.real = np.array([9, 8, 7])
    +>>> a
    +array([9.+2.j, 8.+4.j, 7.+6.j])
    +>>> np.real(np.array(1 + 1j))
    +array(1.)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.real_if_close.html b/pull/2070/reference/generated/dpnp.real_if_close.html new file mode 100644 index 00000000000..291029d04f1 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.real_if_close.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.real_if_close — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.real_if_close

    +
    +
    +dpnp.real_if_close(a, tol=100)[source]
    +

    If input is complex with all imaginary parts close to zero, return real +parts.

    +

    "Close to zero" is defined as tol * (machine epsilon of the type for a).

    +

    For full documentation refer to numpy.real_if_close.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • tol (scalar, optional) -- Tolerance in machine epsilons for the complex part of the elements in +the array. If the tolerance is <=1, then the absolute tolerance is used. +Default: 100.

    • +
    +
    +
    Returns:
    +

    out -- If a is real, the type of a is used for the output. If a has +complex elements, the returned type is float.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.real

    Return the real part of the complex argument.

    +
    +
    dpnp.imag

    Return the imaginary part of the complex argument.

    +
    +
    dpnp.angle

    Return the angle of the complex argument.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.finfo(np.float64).eps
    +2.220446049250313e-16 # may vary
    +
    +
    +
    >>> a = np.array([2.1 + 4e-14j, 5.2 + 3e-15j])
    +>>> np.real_if_close(a, tol=1000)
    +array([2.1, 5.2])
    +
    +
    +
    >>> a = np.array([2.1 + 4e-13j, 5.2 + 3e-15j])
    +>>> np.real_if_close(a, tol=1000)
    +array([2.1+4.e-13j, 5.2+3.e-15j])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.reciprocal.html b/pull/2070/reference/generated/dpnp.reciprocal.html new file mode 100644 index 00000000000..a66b2312049 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.reciprocal.html @@ -0,0 +1,194 @@ + + + + + + + + + + + dpnp.reciprocal — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.reciprocal

    +
    +
    +dpnp.reciprocal(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the reciprocal square-root for each element x_i for input array x.

    +

    For full documentation refer to numpy.reciprocal.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real-valued floating-point data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise reciprocals. +The returned array has a floating-point data type determined +by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.rsqrt

    Return the reciprocal square-root of an array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 2., 3.33])
    +>>> np.reciprocal(x)
    +array([1.0, 0.5, 0.3003003])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.reduce_hypot.html b/pull/2070/reference/generated/dpnp.reduce_hypot.html new file mode 100644 index 00000000000..9427437b102 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.reduce_hypot.html @@ -0,0 +1,240 @@ + + + + + + + + + + + dpnp.reduce_hypot — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.reduce_hypot

    +
    +
    +dpnp.reduce_hypot(x, /, *, axis=None, dtype=None, keepdims=False, out=None)[source]
    +

    Calculates the square root of the sum of squares of elements in +the input array.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real-valued data type.

    • +
    • axis ({None, int or tuple of ints}, optional) -- Axis or axes along which values must be computed. If a tuple of unique +integers, values are computed over multiple axes. If None, the +result is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) --

      Data type of the returned array. If None, the default data type is +inferred from the "kind" of the input array data type.

      +
        +
      • If x has a real-valued floating-point data type, the returned array +will have the same data type as x.

      • +
      • If x has a boolean or integral data type, the returned array will +have the default floating point data type for the device where input +array x is allocated.

      • +
      • If x has a complex-valued floating-point data type, an error is +raised.

      • +
      +

      If the data type (either specified or resolved) differs from the data +type of x, the input array elements are cast to the specified data +type before computing the result. +Default: None.

      +

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains compatible +with the input arrays according to Array Broadcasting rules. Otherwise, +if False, the reduced axes are not included in the returned array. +Default: False.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- The array into which the result is written. The data type of out must +match the expected shape and the expected data type of the result or +(if provided) dtype. If None then a new array is returned. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the results. If the result was computed over the +entire array, a zero-dimensional array is returned. The returned array +has the data type as described in the dtype parameter description +above.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    Note

    +

    This function is equivalent of numpy.hypot.reduce.

    +
    +
    +

    See also

    +
    +
    dpnp.hypot

    Given the "legs" of a right triangle, return its hypotenuse.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.ones(10)
    +>>> np.reduce_hypot(a)
    +array(3.16227766)
    +>>> np.sqrt(np.sum(np.square(a)))
    +array(3.16227766)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.remainder.html b/pull/2070/reference/generated/dpnp.remainder.html new file mode 100644 index 00000000000..cf4dc8a7c30 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.remainder.html @@ -0,0 +1,221 @@ + + + + + + + + + + + dpnp.remainder — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.remainder

    +
    +
    +dpnp.remainder(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the remainder of division for each element x1_i of the input array +x1 with the respective element x2_i of the input array x2.

    +

    This function is equivalent to the Python modulus operator.

    +

    For full documentation refer to numpy.remainder.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have a real-valued data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have a real-valued data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise remainders. Each remainder has the +same sign as respective element x2_i. The data type of the returned +array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.fmod

    Calculate the element-wise remainder of division.

    +
    +
    dpnp.divide

    Standard division.

    +
    +
    dpnp.floor

    Round a number to the nearest integer toward minus infinity.

    +
    +
    dpnp.floor_divide

    Compute the largest integer smaller or equal to the division of the inputs.

    +
    +
    dpnp.mod

    Calculate the element-wise remainder of division.

    +
    +
    +
    +

    Notes

    +

    Returns 0 when x2 is 0 and both x1 and x2 are (arrays of) +integers. +dpnp.mod is an alias of dpnp.remainder.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.remainder(np.array([4, 7]), np.array([2, 3]))
    +array([0, 1])
    +
    +
    +
    >>> np.remainder(np.arange(7), 5)
    +array([0, 1, 2, 3, 4, 0, 1])
    +
    +
    +

    The % operator can be used as a shorthand for remainder on +dpnp.ndarray.

    +
    >>> x1 = np.arange(7)
    +>>> x1 % 5
    +array([0, 1, 2, 3, 4, 0, 1])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.repeat.html b/pull/2070/reference/generated/dpnp.repeat.html new file mode 100644 index 00000000000..8cb2435bb74 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.repeat.html @@ -0,0 +1,223 @@ + + + + + + + + + + + dpnp.repeat — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.repeat

    +
    +
    +dpnp.repeat(a, repeats, axis=None)[source]
    +

    Repeat elements of an array.

    +

    For full documentation refer to numpy.repeat.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • repeats ({int, tuple, list, range, dpnp.ndarray, usm_ndarray}) -- The number of repetitions for each element. repeats is broadcasted to +fit the shape of the given axis. +If repeats is an array, it must have an integer data type. +Otherwise, repeats must be a Python integer or sequence of Python +integers (i.e., a tuple, list, or range).

    • +
    • axis ({None, int}, optional) -- The axis along which to repeat values. By default, use the flattened +input array, and return a flat output array. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Output array which has the same shape as a, except along the given +axis.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.tile

    Tile an array.

    +
    +
    dpnp.unique

    Find the unique elements of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([3])
    +>>> np.repeat(x, 4)
    +array([3, 3, 3, 3])
    +
    +
    +
    >>> x = np.array([[1, 2], [3, 4]])
    +>>> np.repeat(x, 2)
    +array([1, 1, 2, 2, 3, 3, 4, 4])
    +>>> np.repeat(x, 3, axis=1)
    +array([[1, 1, 1, 2, 2, 2],
    +       [3, 3, 3, 4, 4, 4]])
    +>>> np.repeat(x, [1, 2], axis=0)
    +array([[1, 2],
    +       [3, 4],
    +       [3, 4]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.require.html b/pull/2070/reference/generated/dpnp.require.html new file mode 100644 index 00000000000..86f7a853c89 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.require.html @@ -0,0 +1,235 @@ + + + + + + + + + + + dpnp.require — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.require

    +
    +
    +dpnp.require(a, dtype=None, requirements=None, *, like=None)[source]
    +

    Return a dpnp.ndarray of the provided type that satisfies +requirements.

    +

    This function is useful to be sure that an array with the correct flags +is returned for passing to compiled code (perhaps through ctypes).

    +

    For full documentation refer to numpy.require.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The input array to be converted to a type-and-requirement-satisfying +array.

    • +
    • dtype ({None, data-type}, optional) -- The required data-type. If None preserve the current dtype.

    • +
    • requirements ({None, str, sequence of str}, optional) --

      The requirements list can be any of the following:

      +
        +
      • 'F_CONTIGUOUS' ('F') - ensure a Fortran-contiguous array

      • +
      • 'C_CONTIGUOUS' ('C') - ensure a C-contiguous array

      • +
      • 'WRITABLE' ('W') - ensure a writable array

      • +
      +

    • +
    +
    +
    Returns:
    +

    out -- Array with specified requirements and type if given.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.asarray

    Convert input to an ndarray.

    +
    +
    dpnp.asanyarray

    Convert to an ndarray, but pass through ndarray subclasses.

    +
    +
    dpnp.ascontiguousarray

    Convert input to a contiguous array.

    +
    +
    dpnp.asfortranarray

    Convert input to an ndarray with column-major memory order.

    +
    +
    dpnp.ndarray.flags

    Information about the memory layout of the array.

    +
    +
    +
    +

    Notes

    +

    The returned array will be guaranteed to have the listed requirements +by making a copy if needed.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(6).reshape(2, 3)
    +>>> x.flags
    +  C_CONTIGUOUS : True
    +  F_CONTIGUOUS : False
    +  WRITEABLE : True
    +
    +
    +
    >>> y = np.require(x, dtype=np.float32, requirements=['W', 'F'])
    +>>> y.flags
    +  C_CONTIGUOUS : False
    +  F_CONTIGUOUS : True
    +  WRITEABLE : True
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.reshape.html b/pull/2070/reference/generated/dpnp.reshape.html new file mode 100644 index 00000000000..59600b51423 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.reshape.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.reshape — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.reshape

    +
    +
    +dpnp.reshape(a, /, newshape, order='C', copy=None)[source]
    +

    Gives a new shape to an array without changing its data.

    +

    For full documentation refer to numpy.reshape.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Array to be reshaped.

    • +
    • newshape (int or tuple of ints) -- The new shape should be compatible with the original shape. If +an integer, then the result will be a 1-D array of that length. +One shape dimension can be -1. In this case, the value is +inferred from the length of the array and remaining dimensions.

    • +
    • order ({"C", "F"}, optional) -- Read the elements of a using this index order, and place the +elements into the reshaped array using this index order. "C" +means to read / write the elements using C-like index order, +with the last axis index changing fastest, back to the first +axis index changing slowest. "F" means to read / write the +elements using Fortran-like index order, with the first index +changing fastest, and the last index changing slowest. Note that +the "C" and "F" options take no account of the memory layout of +the underlying array, and only refer to the order of indexing.

    • +
    • copy ({None, bool}, optional) -- Boolean indicating whether or not to copy the input array. +If True, the result array will always be a copy of input a. +If False, the result array can never be a copy +and a ValueError exception will be raised in case the copy is necessary. +If None, the result array will reuse existing memory buffer of a +if possible and copy otherwise. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- This will be a new view object if possible; otherwise, it will +be a copy. Note there is no guarantee of the memory layout (C- or +Fortran- contiguous) of the returned array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter order is supported only with values "C" and "F".

    +
    +

    See also

    +
    +
    dpnp.ndarray.reshape

    Equivalent method.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2, 3], [4, 5, 6]])
    +>>> np.reshape(a, 6)
    +array([1, 2, 3, 4, 5, 6])
    +>>> np.reshape(a, 6, order='F')
    +array([1, 4, 2, 5, 3, 6])
    +
    +
    +
    >>> np.reshape(a, (3, -1))       # the unspecified value is inferred to be 2
    +array([[1, 2],
    +       [3, 4],
    +       [5, 6]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.resize.html b/pull/2070/reference/generated/dpnp.resize.html new file mode 100644 index 00000000000..92063a46f3d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.resize.html @@ -0,0 +1,230 @@ + + + + + + + + + + + dpnp.resize — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.resize

    +
    +
    +dpnp.resize(a, new_shape)[source]
    +

    Return a new array with the specified shape.

    +

    If the new array is larger than the original array, then the new array is +filled with repeated copies of a. Note that this behavior is different +from a.resize(new_shape) which fills with zeros instead of repeated +copies of a.

    +

    For full documentation refer to numpy.resize.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Array to be resized.

    • +
    • new_shape ({int, tuple or list of ints}) -- Shape of resized array.

    • +
    +
    +
    Returns:
    +

    out -- The new array is formed from the data in the old array, repeated +if necessary to fill out the required number of elements. The +data are repeated iterating over the array in C-order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.resize

    Resize an array in-place.

    +
    +
    dpnp.reshape

    Reshape an array without changing the total size.

    +
    +
    dpnp.pad

    Enlarge and pad an array.

    +
    +
    dpnp.repeat

    Repeat elements of an array.

    +
    +
    +
    +

    Notes

    +

    When the total size of the array does not change dpnp.reshape should +be used. In most other cases either indexing (to reduce the size) or +padding (to increase the size) may be a more appropriate solution.

    +

    Warning: This functionality does not consider axes separately, +i.e. it does not apply interpolation/extrapolation. +It fills the return array with the required number of elements, iterating +over a in C-order, disregarding axes (and cycling back from the start if +the new shape is larger). This functionality is therefore not suitable to +resize images, or data where each axis represents a separate and distinct +entity.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[0, 1], [2, 3]])
    +>>> np.resize(a, (2, 3))
    +array([[0, 1, 2],
    +       [3, 0, 1]])
    +>>> np.resize(a, (1, 4))
    +array([[0, 1, 2, 3]])
    +>>> np.resize(a, (2, 4))
    +array([[0, 1, 2, 3],
    +       [0, 1, 2, 3]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.result_type.html b/pull/2070/reference/generated/dpnp.result_type.html new file mode 100644 index 00000000000..4f30375c8d8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.result_type.html @@ -0,0 +1,197 @@ + + + + + + + + + + + dpnp.result_type — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.result_type

    +
    +
    +dpnp.result_type(*arrays_and_dtypes)[source]
    +

    Returns the type that results from applying the NumPy +type promotion rules to the arguments.

    +

    For full documentation refer to numpy.result_type.

    +
    +
    Parameters:
    +

    arrays_and_dtypes (list of {dpnp.ndarray, usm_ndarray, dtype}) -- An arbitrary length sequence of arrays or dtypes.

    +
    +
    Returns:
    +

    out -- The result type.

    +
    +
    Return type:
    +

    dtype

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(3, dtype=np.int64)
    +>>> b = np.arange(7, dtype=np.int32)
    +>>> np.result_type(a, b)
    +dtype('int64')
    +
    +
    +
    >>> np.result_type(np.int64, np.complex128)
    +dtype('complex128')
    +
    +
    +
    >>> np.result_type(np.ones(10, dtype=np.float32), np.float64)
    +dtype('float64')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.right_shift.html b/pull/2070/reference/generated/dpnp.right_shift.html new file mode 100644 index 00000000000..95acf31a40b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.right_shift.html @@ -0,0 +1,206 @@ + + + + + + + + + + + dpnp.right_shift — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.right_shift

    +
    +
    +dpnp.right_shift(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Shifts the bits of each element x1_i of the input array x1 to the right +according to the respective element x2_i of the input array x2.

    +

    Note that dpnp.bitwise_right_shift is an alias of dpnp.right_shift.

    +

    For full documentation refer to numpy.right_shift.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have integer data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have integer data type. +Each element must be greater than or equal to 0. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise results. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.left_shift

    Shift the bits of an integer to the left.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.array([10])
    +>>> x2 = np.array([1, 2, 3])
    +>>> np.right_shift(x1, x2)
    +array([5, 2, 1])
    +
    +
    +

    The >> operator can be used as a shorthand for right_shift on +dpnp.ndarray.

    +
    >>> x1 >> x2
    +array([5, 2, 1])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.rint.html b/pull/2070/reference/generated/dpnp.rint.html new file mode 100644 index 00000000000..aa4a6eb9bcc --- /dev/null +++ b/pull/2070/reference/generated/dpnp.rint.html @@ -0,0 +1,202 @@ + + + + + + + + + + + dpnp.rint — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.rint

    +
    +
    +dpnp.rint(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Rounds each element x_i of the input array x to +the nearest integer-valued number.

    +

    When two integers are equally close to x_i, the result is the nearest even +integer to x_i.

    +

    For full documentation refer to numpy.rint.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise rounded values.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.round

    Evenly round to the given number of decimals.

    +
    +
    dpnp.fix

    Round to nearest integer towards zero, element-wise.

    +
    +
    dpnp.ceil

    Compute the ceiling of the input, element-wise.

    +
    +
    dpnp.floor

    Return the floor of the input, element-wise.

    +
    +
    dpnp.trunc

    Return the truncated value of the input, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
    +>>> np.rint(a)
    +array([-2., -2., -0.,  0.,  2.,  2.,  2.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.roll.html b/pull/2070/reference/generated/dpnp.roll.html new file mode 100644 index 00000000000..67d957cd1da --- /dev/null +++ b/pull/2070/reference/generated/dpnp.roll.html @@ -0,0 +1,228 @@ + + + + + + + + + + + dpnp.roll — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.roll

    +
    +
    +dpnp.roll(x, shift, axis=None)[source]
    +

    Roll the elements of an array by a number of positions along a given axis.

    +

    Array elements that roll beyond the last position are re-introduced +at the first position. Array elements that roll beyond the first position +are re-introduced at the last position.

    +

    For full documentation refer to numpy.roll.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • shift ({int, tuple of ints}) -- The number of places by which elements are shifted. If a tuple, then +axis must be a tuple of the same size, and each of the given axes +is shifted by the corresponding number. If an integer while axis is +a tuple of integers, then the same value is used for all given axes.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which elements are shifted. By default, the +array is flattened before shifting, after which the original +shape is restored.

    • +
    +
    +
    Returns:
    +

    out -- An array with the same data type as x +and whose elements, relative to x, are shifted.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.moveaxis

    Move array axes to new positions.

    +
    +
    dpnp.rollaxis

    Roll the specified axis backwards until it lies in a given position.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x1 = np.arange(10)
    +>>> np.roll(x1, 2)
    +array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7])
    +
    +
    +
    >>> np.roll(x1, -2)
    +array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1])
    +
    +
    +
    >>> x2 = np.reshape(x1, (2, 5))
    +>>> np.roll(x2, 1, axis=0)
    +array([[5, 6, 7, 8, 9],
    +       [0, 1, 2, 3, 4]])
    +
    +
    +
    >>> np.roll(x2, (2, 1), axis=(1, 0))
    +array([[8, 9, 5, 6, 7],
    +       [3, 4, 0, 1, 2]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.rollaxis.html b/pull/2070/reference/generated/dpnp.rollaxis.html new file mode 100644 index 00000000000..e4d05226d3f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.rollaxis.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.rollaxis — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.rollaxis

    +
    +
    +dpnp.rollaxis(x, axis, start=0)[source]
    +

    Roll the specified axis backwards, until it lies in a given position.

    +

    For full documentation refer to numpy.rollaxis.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis (int) -- The axis to be rolled. The positions of the other axes do not +change relative to one another.

    • +
    • start (int, optional) -- When start <= axis, the axis is rolled back until it lies in +this position. When start > axis, the axis is rolled until it +lies before this position. The default, 0, results in a "complete" +roll.

    • +
    +
    +
    Returns:
    +

    out -- An array with the same data type as x where the specified axis +has been moved to the requested position.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.moveaxis

    Move array axes to new positions.

    +
    +
    dpnp.roll

    Roll the elements of an array by a number of positions along a given axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.ones((3,4,5,6))
    +>>> np.rollaxis(a, 3, 1).shape
    +(3, 6, 4, 5)
    +>>> np.rollaxis(a, 2).shape
    +(5, 3, 4, 6)
    +>>> np.rollaxis(a, 1, 4).shape
    +(3, 5, 6, 4)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.rot90.html b/pull/2070/reference/generated/dpnp.rot90.html new file mode 100644 index 00000000000..3f7eaa36078 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.rot90.html @@ -0,0 +1,230 @@ + + + + + + + + + + + dpnp.rot90 — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.rot90

    +
    +
    +dpnp.rot90(m, k=1, axes=(0, 1))[source]
    +

    Rotate an array by 90 degrees in the plane specified by axes.

    +

    Rotation direction is from the first towards the second axis. +This means for a 2D array with the default k and axes, the +rotation will be counterclockwise.

    +

    For full documentation refer to numpy.rot90.

    +
    +
    Parameters:
    +
      +
    • m ({dpnp.ndarray, usm_ndarray}) -- Array of two or more dimensions.

    • +
    • k (integer, optional) -- Number of times the array is rotated by 90 degrees. +Default: 1.

    • +
    • axes ((2,) array_like of ints, optional) -- The array is rotated in the plane defined by the axes. +Axes must be different. +Default: (0, 1).

    • +
    +
    +
    Returns:
    +

    out -- A rotated view of m.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.flip

    Reverse the order of elements in an array along the given axis.

    +
    +
    dpnp.fliplr

    Flip an array horizontally.

    +
    +
    dpnp.flipud

    Flip an array vertically.

    +
    +
    +
    +

    Notes

    +

    rot90(m, k=1, axes=(1,0)) is the reverse of +rot90(m, k=1, axes=(0,1)).

    +

    rot90(m, k=1, axes=(1,0)) is equivalent to +rot90(m, k=-1, axes=(0,1)).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> m = np.array([[1, 2], [3, 4]])
    +>>> m
    +array([[1, 2],
    +       [3, 4]])
    +>>> np.rot90(m)
    +array([[2, 4],
    +       [1, 3]])
    +>>> np.rot90(m, 2)
    +array([[4, 3],
    +       [2, 1]])
    +>>> m = np.arange(8).reshape((2, 2, 2))
    +>>> np.rot90(m, 1, (1, 2))
    +array([[[1, 3],
    +        [0, 2]],
    +       [[5, 7],
    +        [4, 6]]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.round.html b/pull/2070/reference/generated/dpnp.round.html new file mode 100644 index 00000000000..90804361b65 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.round.html @@ -0,0 +1,229 @@ + + + + + + + + + + + dpnp.round — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.round

    +
    +
    +dpnp.round(x, decimals=0, out=None, dtype=None)
    +

    Rounds each element x_i of the input array x to +the nearest integer-valued number.

    +

    When two integers are equally close to x_i, the result is the nearest even +integer to x_i.

    +

    For full documentation refer to numpy.round.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • decimals (int, optional) -- Number of decimal places to round to (default: 0). If decimals is negative, +it specifies the number of positions to the left of the decimal point.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise rounded values.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.around

    Equivalent function; see for details.

    +
    +
    dpnp.ndarray.round

    Equivalent function.

    +
    +
    dpnp.rint

    Round elements of the array to the nearest integer.

    +
    +
    dpnp.ceil

    Compute the ceiling of the input, element-wise.

    +
    +
    dpnp.fix

    Round to nearest integer towards zero, element-wise.

    +
    +
    dpnp.floor

    Return the floor of the input, element-wise.

    +
    +
    dpnp.trunc

    Return the truncated value of the input, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.round(np.array([0.37, 1.64]))
    +array([0.,  2.])
    +>>> np.round(np.array([0.37, 1.64]), decimals=1)
    +array([0.4,  1.6])
    +>>> np.round(np.array([.5, 1.5, 2.5, 3.5, 4.5])) # rounds to nearest even value
    +array([0.,  2.,  2.,  4.,  4.])
    +>>> np.round(np.array([1, 2, 3, 11]), decimals=1) # ndarray of ints is returned
    +array([ 1,  2,  3, 11])
    +>>> np.round(np.array([1, 2, 3, 11]), decimals=-1)
    +array([ 0,  0,  0, 10])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.row_stack.html b/pull/2070/reference/generated/dpnp.row_stack.html new file mode 100644 index 00000000000..78a8b60e54c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.row_stack.html @@ -0,0 +1,230 @@ + + + + + + + + + + + dpnp.row_stack — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.row_stack

    +
    +
    +dpnp.row_stack(tup, *, dtype=None, casting='same_kind')
    +

    Stack arrays in sequence vertically (row wise).

    +

    dpnp.row_stack is an alias for dpnp.vstack. +They are the same function.

    +

    For full documentation refer to numpy.vstack.

    +
    +
    Parameters:
    +
      +
    • tup ({dpnp.ndarray, usm_ndarray}) -- The arrays must have the same shape along all but the first axis. +1-D arrays must have the same length.

    • +
    • dtype (str or dtype) -- If provided, the destination array will have this dtype.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) -- Controls what kind of data casting may occur. Defaults to 'same_kind'.

    • +
    +
    +
    Returns:
    +

    out -- The array formed by stacking the given arrays, will be at least 2-D.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.concatenate

    Join a sequence of arrays along an existing axis.

    +
    +
    dpnp.stack

    Join a sequence of arrays along a new axis.

    +
    +
    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    +
    +
    dpnp.dstack

    Stack arrays in sequence depth wise (along third axis).

    +
    +
    dpnp.column_stack

    Stack 1-D arrays as columns into a 2-D array.

    +
    +
    dpnp.block

    Assemble an ndarray from nested lists of blocks.

    +
    +
    dpnp.split

    Split array into a list of multiple sub-arrays of equal size.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3])
    +>>> b = np.array([4, 5, 6])
    +>>> np.vstack((a, b))
    +array([[1, 2, 3],
    +       [4, 5, 6]])
    +
    +
    +
    >>> a = np.array([[1], [2], [3]])
    +>>> b = np.array([[4], [5], [6]])
    +>>> np.vstack((a, b))
    +array([[1],
    +       [2],
    +       [3],
    +       [4],
    +       [5],
    +       [6]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.rsqrt.html b/pull/2070/reference/generated/dpnp.rsqrt.html new file mode 100644 index 00000000000..60b84a132b6 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.rsqrt.html @@ -0,0 +1,195 @@ + + + + + + + + + + + dpnp.rsqrt — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.rsqrt

    +
    +
    +dpnp.rsqrt(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the reciprocal square-root for each element x_i for input array x.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real floating-point data type.

    • +
    • out (({None, dpnp.ndarray, usm_ndarray}, optional):) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order (({'C', 'F', 'A', 'K'}, optional):) -- Memory layout of the newly output array, if parameter out is None. +Default: "K"

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise reciprocal square-root. +The returned array has a floating-point data type determined by +the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.sqrt

    Return the positive square-root of an array, element-wise.

    +
    +
    dpnp.reciprocal

    Return the reciprocal of an array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 8, 27])
    +>>> np.rsqrt(x)
    +array([1.        , 0.35355338, 0.19245009])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.searchsorted.html b/pull/2070/reference/generated/dpnp.searchsorted.html new file mode 100644 index 00000000000..a7adac5a240 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.searchsorted.html @@ -0,0 +1,213 @@ + + + + + + + + + + + dpnp.searchsorted — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.searchsorted

    +
    +
    +dpnp.searchsorted(a, v, side='left', sorter=None)[source]
    +

    Find indices where elements should be inserted to maintain order.

    +

    For full documentation refer to numpy.searchsorted.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input 1-D array. If sorter is None, then it must be sorted in +ascending order, otherwise sorter must be an array of indices that +sort it.

    • +
    • v ({dpnp.ndarray, usm_ndarray, scalar}) -- Values to insert into a.

    • +
    • side ({"left", "right"}, optional) -- If "left", the index of the first suitable location found is given. +If "right", return the last such index. If there is no suitable +index, return either 0 or N (where N is the length of a). +Default: "left".

    • +
    • sorter ({dpnp.ndarray, usm_ndarray}, optional) -- Optional 1-D array of integer indices that sort array a into ascending +order. They are typically the result of dpnp.argsort. +Out of bound index values of sorter array are treated using +"wrap" mode documented in dpnp.take(). +Default: None.

    • +
    +
    +
    Returns:
    +

    indices -- Array of insertion points with the same shape as v, +or 0-D array if v is a scalar.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.sort

    Return a sorted copy of an array.

    +
    +
    dpnp.histogram

    Produce histogram from 1-D data.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([11,12,13,14,15])
    +>>> np.searchsorted(a, 13)
    +array(2)
    +>>> np.searchsorted(a, 13, side='right')
    +array(3)
    +>>> v = np.array([-10, 20, 12, 13])
    +>>> np.searchsorted(a, v)
    +array([0, 5, 1, 2])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.select.html b/pull/2070/reference/generated/dpnp.select.html new file mode 100644 index 00000000000..ee948dad817 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.select.html @@ -0,0 +1,229 @@ + + + + + + + + + + + dpnp.select — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.select

    +
    +
    +dpnp.select(condlist, choicelist, default=0)[source]
    +

    Return an array drawn from elements in choicelist, depending on +conditions.

    +

    For full documentation refer to numpy.select.

    +
    +
    Parameters:
    +
      +
    • condlist (list of bool dpnp.ndarray or usm_ndarray) -- The list of conditions which determine from which array in choicelist +the output elements are taken. When multiple conditions are satisfied, +the first one encountered in condlist is used.

    • +
    • choicelist (list of dpnp.ndarray or usm_ndarray) -- The list of arrays from which the output elements are taken. It has +to be of the same length as condlist.

    • +
    • default ({scalar, dpnp.ndarray, usm_ndarray}, optional) -- The element inserted in output when all conditions evaluate to +False. Default: 0.

    • +
    +
    +
    Returns:
    +

    out -- The output at position m is the m-th element of the array in +choicelist where the m-th element of the corresponding array in +condlist is True.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.where

    Return elements from one of two arrays depending on condition.

    +
    +
    dpnp.take

    Take elements from an array along an axis.

    +
    +
    dpnp.choose

    Construct an array from an index array and a set of arrays to choose from.

    +
    +
    dpnp.compress

    Return selected slices of an array along given axis.

    +
    +
    dpnp.diag

    Extract a diagonal or construct a diagonal array.

    +
    +
    dpnp.diagonal

    Return specified diagonals.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +
    +
    +

    Beginning with an array of integers from 0 to 5 (inclusive), +elements less than 3 are negated, elements greater than 3 +are squared, and elements not meeting either of these conditions +(exactly 3) are replaced with a default value of 42.

    +
    >>> x = np.arange(6)
    +>>> condlist = [x<3, x>3]
    +>>> choicelist = [x, x**2]
    +>>> np.select(condlist, choicelist, 42)
    +array([ 0,  1,  2, 42, 16, 25])
    +
    +
    +

    When multiple conditions are satisfied, the first one encountered in +condlist is used.

    +
    >>> condlist = [x<=4, x>3]
    +>>> choicelist = [x, x**2]
    +>>> np.select(condlist, choicelist, 55)
    +array([ 0,  1,  2,  3,  4, 25])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.shape.html b/pull/2070/reference/generated/dpnp.shape.html new file mode 100644 index 00000000000..9ba7f57c0cf --- /dev/null +++ b/pull/2070/reference/generated/dpnp.shape.html @@ -0,0 +1,206 @@ + + + + + + + + + + + dpnp.shape — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.shape

    +
    +
    +dpnp.shape(a)[source]
    +

    Return the shape of an array.

    +

    For full documentation refer to numpy.shape.

    +
    +
    Parameters:
    +

    a (array_like) -- Input array.

    +
    +
    Returns:
    +

    shape -- The elements of the shape tuple give the lengths of the +corresponding array dimensions.

    +
    +
    Return type:
    +

    tuple of integers

    +
    +
    +
    +

    See also

    +
    +
    len

    len(a) is equivalent to np.shape(a)[0] for N-D arrays with N>=1.

    +
    +
    dpnp.ndarray.shape

    Equivalent array method.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.shape(np.eye(3))
    +(3, 3)
    +>>> np.shape([[1, 3]])
    +(1, 2)
    +>>> np.shape([0])
    +(1,)
    +>>> np.shape(0)
    +()
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.sign.html b/pull/2070/reference/generated/dpnp.sign.html new file mode 100644 index 00000000000..327730390eb --- /dev/null +++ b/pull/2070/reference/generated/dpnp.sign.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.sign — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.sign

    +
    +
    +dpnp.sign(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes an indication of the sign of each element x_i of input array x +using the signum function.

    +

    The signum function returns -1 if x_i is less than 0, +0 if x_i is equal to 0, and 1 if x_i is greater than 0.

    +

    For full documentation refer to numpy.sign.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise result of the signum function. The +data type of the returned array is determined by the Type Promotion +Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.signbit

    Returns element-wise True where signbit is set (less than zero).

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.sign(np.array([-5., 4.5]))
    +array([-1.0, 1.0])
    +>>> np.sign(np.array(0))
    +array(0)
    +>>> np.sign(np.array(5-2j))
    +array([1+0j])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.signbit.html b/pull/2070/reference/generated/dpnp.signbit.html new file mode 100644 index 00000000000..5f306fa4c8a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.signbit.html @@ -0,0 +1,197 @@ + + + + + + + + + + + dpnp.signbit — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.signbit

    +
    +
    +dpnp.signbit(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes an indication of whether the sign bit of each element x_i of +input array x is set.

    +

    For full documentation refer to numpy.signbit.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise signbit results. The returned array +must have a data type of bool.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.sign

    Returns an element-wise indication of the sign of a number.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.signbit(np.array([-1.2]))
    +array([True])
    +
    +
    +
    >>> np.signbit(np.array([1, -2.3, 2.1]))
    +array([False,  True, False])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.sin.html b/pull/2070/reference/generated/dpnp.sin.html new file mode 100644 index 00000000000..574485430af --- /dev/null +++ b/pull/2070/reference/generated/dpnp.sin.html @@ -0,0 +1,199 @@ + + + + + + + + + + + dpnp.sin — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.sin

    +
    +
    +dpnp.sin(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes sine for each element x_i of input array x.

    +

    For full documentation refer to numpy.sin.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise sine. The data type of the +returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arcsin

    Trigonometric inverse sine, element-wise.

    +
    +
    dpnp.cos

    Trigonometric cosine, element-wise.

    +
    +
    dpnp.tan

    Trigonometric tangent, element-wise.

    +
    +
    dpnp.sinh

    Hyperbolic sine, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, np.pi/2, np.pi])
    +>>> np.sin(x)
    +array([ 0.000000e+00,  1.000000e+00, -8.742278e-08])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.sinh.html b/pull/2070/reference/generated/dpnp.sinh.html new file mode 100644 index 00000000000..1daf3b4d0d9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.sinh.html @@ -0,0 +1,198 @@ + + + + + + + + + + + dpnp.sinh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.sinh

    +
    +
    +dpnp.sinh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes hyperbolic sine for each element x_i for input array x.

    +

    For full documentation refer to numpy.sinh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise hyperbolic sine. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arcsinh

    Hyperbolic inverse sine, element-wise.

    +
    +
    dpnp.cosh

    Hyperbolic cosine, element-wise.

    +
    +
    dpnp.tanh

    Hyperbolic tangent, element-wise.

    +
    +
    dpnp.sin

    Trigonometric sine, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, np.pi/2, np.pi])
    +>>> np.sinh(x)
    +array([0.0, 2.3012989, 11.548739])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.size.html b/pull/2070/reference/generated/dpnp.size.html new file mode 100644 index 00000000000..21e90863c32 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.size.html @@ -0,0 +1,218 @@ + + + + + + + + + + + dpnp.size — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.size

    +
    +
    +dpnp.size(a, axis=None)[source]
    +

    Return the number of elements along a given axis.

    +

    For full documentation refer to numpy.size.

    +
    +
    Parameters:
    +
      +
    • a (array_like) -- Input data.

    • +
    • axis ({None, int}, optional) -- Axis along which the elements are counted. +By default, give the total number of elements. +Default: None.

    • +
    +
    +
    Returns:
    +

    element_count -- Number of elements along the specified axis.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.size

    number of elements in array.

    +
    +
    dpnp.shape

    Return the shape of an array.

    +
    +
    dpnp.ndarray.shape

    Return the shape of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = [[1, 2, 3], [4, 5, 6]]
    +>>> np.size(a)
    +6
    +>>> np.size(a, 1)
    +3
    +>>> np.size(a, 0)
    +2
    +
    +
    +
    >>> a = np.asarray(a)
    +>>> np.size(a)
    +6
    +>>> np.size(a, 1)
    +3
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.sort.html b/pull/2070/reference/generated/dpnp.sort.html new file mode 100644 index 00000000000..f554fe823ea --- /dev/null +++ b/pull/2070/reference/generated/dpnp.sort.html @@ -0,0 +1,219 @@ + + + + + + + + + + + dpnp.sort — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.sort

    +
    +
    +dpnp.sort(a, axis=-1, kind=None, order=None)[source]
    +

    Return a sorted copy of an array.

    +

    For full documentation refer to numpy.sort.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Array to be sorted.

    • +
    • axis (int or None, optional) -- Axis along which to sort. If None, the array is flattened before +sorting. The default is -1, which sorts along the last axis.

    • +
    • kind ({None, "stable"}, optional) -- Default is None, which is equivalent to "stable". +Unlike in NumPy any other options are not accepted here.

    • +
    +
    +
    Returns:
    +

    out -- Sorted array with the same type and shape as a.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Notes

    +

    For zero-dimensional arrays, if axis=None, output is the input array +returned as a one-dimensional array. Otherwise, an AxisError is raised.

    +

    Limitations

    +

    Parameters order is only supported with its default value. +Parameters kind can only be None or "stable" which +are equivalent. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.ndarray.sort

    Sort an array in-place.

    +
    +
    dpnp.argsort

    Return the indices that would sort an array.

    +
    +
    dpnp.lexsort

    Indirect stable sort on multiple keys.

    +
    +
    dpnp.searchsorted

    Find elements in a sorted array.

    +
    +
    dpnp.partition

    Partial sort.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1,4],[3,1]])
    +>>> np.sort(a)                # sort along the last axis
    +array([[1, 4],
    +       [1, 3]])
    +>>> np.sort(a, axis=None)     # sort the flattened array
    +array([1, 1, 3, 4])
    +>>> np.sort(a, axis=0)        # sort along the first axis
    +array([[1, 1],
    +       [3, 4]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.sort_complex.html b/pull/2070/reference/generated/dpnp.sort_complex.html new file mode 100644 index 00000000000..194d6792f63 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.sort_complex.html @@ -0,0 +1,189 @@ + + + + + + + + + + + dpnp.sort_complex — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.sort_complex

    +
    +
    +dpnp.sort_complex(a)[source]
    +

    Sort a complex array using the real part first, then the imaginary part.

    +

    For full documentation refer to numpy.sort_complex.

    +
    +
    Parameters:
    +

    a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    +
    +
    Returns:
    +

    out -- Always returns a sorted complex array.

    +
    +
    Return type:
    +

    dpnp.ndarray of complex dtype

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([5, 3, 6, 2, 1])
    +>>> np.sort_complex(a)
    +array([1.+0.j, 2.+0.j, 3.+0.j, 5.+0.j, 6.+0.j])
    +
    +
    +
    >>> a = np.array([1 + 2j, 2 - 1j, 3 - 2j, 3 - 3j, 3 + 5j])
    +>>> np.sort_complex(a)
    +array([1.+2.j, 2.-1.j, 3.-3.j, 3.-2.j, 3.+5.j])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.split.html b/pull/2070/reference/generated/dpnp.split.html new file mode 100644 index 00000000000..6a121a90a1c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.split.html @@ -0,0 +1,242 @@ + + + + + + + + + + + dpnp.split — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.split

    +
    +
    +dpnp.split(ary, indices_or_sections, axis=0)[source]
    +

    Split an array into multiple sub-arrays as views into ary.

    +

    For full documentation refer to numpy.split.

    +
    +
    Parameters:
    +
      +
    • ary ({dpnp.ndarray, usm_ndarray}) -- Array to be divided into sub-arrays.

    • +
    • indices_or_sections ({int, sequence of ints}) --

      If indices_or_sections is an integer, N, the array will be divided +into N equal arrays along axis. If such a split is not possible, +an error is raised.

      +

      If indices_or_sections is a sequence of sorted integers, the entries +indicate where along axis the array is split. For example, +[2, 3] would, for axis=0, result in

      +
        +
      • ary[:2]

      • +
      • ary[2:3]

      • +
      • ary[3:]

      • +
      +

      If an index exceeds the dimension of the array along axis, +an empty sub-array is returned correspondingly.

      +

    • +
    • axis (int, optional) -- The axis along which to split. +Default: 0.

    • +
    +
    +
    Returns:
    +

    sub-arrays -- A list of sub arrays. Each array is a view of the corresponding input +array.

    +
    +
    Return type:
    +

    list of dpnp.ndarray

    +
    +
    Raises:
    +

    ValueError -- If indices_or_sections is given as an integer, but + a split does not result in equal division.

    +
    +
    +
    +

    See also

    +
    +
    dpnp.array_split

    Split an array into multiple sub-arrays of equal or near-equal size. Does not raise an exception if an equal division cannot be made.

    +
    +
    dpnp.hsplit

    Split array into multiple sub-arrays horizontally (column-wise).

    +
    +
    dpnp.vsplit

    Split array into multiple sub-arrays vertically (row wise).

    +
    +
    dpnp.dsplit

    Split array into multiple sub-arrays along the 3rd axis (depth).

    +
    +
    dpnp.concatenate

    Join a sequence of arrays along an existing axis.

    +
    +
    dpnp.stack

    Join a sequence of arrays along a new axis.

    +
    +
    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    +
    +
    dpnp.vstack

    Stack arrays in sequence vertically (row wise).

    +
    +
    dpnp.dstack

    Stack arrays in sequence depth wise (along third dimension).

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(9.0)
    +>>> np.split(x, 3)
    +[array([0., 1., 2.]), array([3., 4., 5.]), array([6., 7., 8.])]
    +
    +
    +
    >>> x = np.arange(8.0)
    +>>> np.split(x, [3, 5, 6, 10])
    +[array([0., 1., 2.]), array([3., 4.]), array([5.]), array([6., 7.]),     array([])]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.sqrt.html b/pull/2070/reference/generated/dpnp.sqrt.html new file mode 100644 index 00000000000..f70faded16f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.sqrt.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.sqrt — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.sqrt

    +
    +
    +dpnp.sqrt(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes the positive square-root for each element x_i of input array x.

    +

    For full documentation refer to numpy.sqrt.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise positive square-roots of x. The +data type of the returned array is determined by the Type Promotion +Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.cbrt

    Return the cube-root of an array, element-wise.

    +
    +
    dpnp.rsqrt

    Return the reciprocal square-root of an array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([1, 4, 9])
    +>>> np.sqrt(x)
    +array([1., 2., 3.])
    +
    +
    +
    >>> x2 = np.array([4, -1, np.inf])
    +>>> np.sqrt(x2)
    +array([ 2., nan, inf])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.square.html b/pull/2070/reference/generated/dpnp.square.html new file mode 100644 index 00000000000..0214cbe60b0 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.square.html @@ -0,0 +1,196 @@ + + + + + + + + + + + dpnp.square — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.square

    +
    +
    +dpnp.square(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Squares each element x_i of input array x.

    +

    For full documentation refer to numpy.square.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise squares of x. The data type of +the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp..linalg.matrix_power

    Raise a square matrix to the (integer) power n.

    +
    +
    dpnp.sqrt

    Return the positive square-root of an array, element-wise.

    +
    +
    dpnp.power

    First array elements raised to powers from second array, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([-1j, 1])
    +>>> np.square(x)
    +array([-1.+0.j,  1.+0.j])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.squeeze.html b/pull/2070/reference/generated/dpnp.squeeze.html new file mode 100644 index 00000000000..e9a8d2c6297 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.squeeze.html @@ -0,0 +1,210 @@ + + + + + + + + + + + dpnp.squeeze — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.squeeze

    +
    +
    +dpnp.squeeze(a, /, axis=None)[source]
    +

    Removes singleton dimensions (axes) from array a.

    +

    For full documentation refer to numpy.squeeze.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input data.

    • +
    • axis (None or int or tuple of ints, optional) -- Selects a subset of the entries of length one in the shape. +If an axis is selected with shape entry greater than one, +an error is raised.

    • +
    +
    +
    Returns:
    +

    out -- Output array is a view, if possible, and a copy otherwise, but with all +or a subset of the dimensions of length 1 removed. Output has the same +data type as the input, is allocated on the same device as the input +and has the same USM allocation type as the input array a.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[[0], [1], [2]]])
    +>>> x.shape
    +(1, 3, 1)
    +>>> np.squeeze(x).shape
    +(3,)
    +>>> np.squeeze(x, axis=0).shape
    +(3, 1)
    +>>> np.squeeze(x, axis=1).shape
    +Traceback (most recent call last):
    +...
    +ValueError: Cannot select an axis to squeeze out which has size not equal
    +to one.
    +>>> np.squeeze(x, axis=2).shape
    +(1, 3)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.stack.html b/pull/2070/reference/generated/dpnp.stack.html new file mode 100644 index 00000000000..e2df61da56d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.stack.html @@ -0,0 +1,240 @@ + + + + + + + + + + + dpnp.stack — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.stack

    +
    +
    +dpnp.stack(arrays, /, *, axis=0, out=None, dtype=None, casting='same_kind')[source]
    +

    Join a sequence of arrays along a new axis.

    +

    For full documentation refer to numpy.stack.

    +
    +
    Parameters:
    +
      +
    • arrays ({dpnp.ndarray, usm_ndarray}) -- Each array must have the same shape.

    • +
    • axis (int, optional) -- The axis in the result array along which the input arrays are stacked.

    • +
    • out (dpnp.ndarray, optional) -- If provided, the destination to place the result. The shape must be +correct, matching that of what stack would have returned if no out +argument were specified.

    • +
    • dtype (str or dtype) -- If provided, the destination array will have this dtype. Cannot be +provided together with out.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) -- Controls what kind of data casting may occur. Defaults to 'same_kind'.

    • +
    +
    +
    Returns:
    +

    out -- The stacked array which has one more dimension than the input arrays.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.concatenate

    Join a sequence of arrays along an existing axis.

    +
    +
    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    +
    +
    dpnp.vstack

    Stack arrays in sequence vertically (row wise).

    +
    +
    dpnp.dstack

    Stack arrays in sequence depth wise (along third dimension).

    +
    +
    dpnp.column_stack

    Stack 1-D arrays as columns into a 2-D array.

    +
    +
    dpnp.block

    Assemble an ndarray from nested lists of blocks.

    +
    +
    dpnp.split

    Split array into a list of multiple sub-arrays of equal size.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> arrays = [np.random.randn(3, 4) for _ in range(10)]
    +>>> np.stack(arrays, axis=0).shape
    +(10, 3, 4)
    +
    +
    +
    >>> np.stack(arrays, axis=1).shape
    +(3, 10, 4)
    +
    +
    +
    >>> np.stack(arrays, axis=2).shape
    +(3, 4, 10)
    +
    +
    +
    >>> a = np.array([1, 2, 3])
    +>>> b = np.array([4, 5, 6])
    +>>> np.stack((a, b))
    +array([[1, 2, 3],
    +       [4, 5, 6]])
    +
    +
    +
    >>> np.stack((a, b), axis=-1)
    +array([[1, 4],
    +       [2, 5],
    +       [3, 6]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.std.html b/pull/2070/reference/generated/dpnp.std.html new file mode 100644 index 00000000000..d7568335f7b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.std.html @@ -0,0 +1,239 @@ + + + + + + + + + + + dpnp.std — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.std

    +
    +
    +dpnp.std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)[source]
    +

    Compute the standard deviation along the specified axis.

    +

    For full documentation refer to numpy.std.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- Axis or axes along which the standard deviations must be computed. +If a tuple of unique integers is given, the standard deviations +are computed over multiple axes. If None, the standard deviation +is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type to use in computing the standard deviation. By default, +if a has a floating-point data type, the returned array +will have the same data type as a. +If a has a boolean or integral data type, the returned array +will have the default floating point data type for the device +where input array a is allocated.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output but the type (of the calculated +values) will be cast if necessary.

    • +
    • ddof ({int, float}, optional) -- Means Delta Degrees of Freedom. The divisor used in calculations +is N - ddof, where N corresponds to the total +number of elements over which the standard deviation is calculated. +Default: 0.0.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the standard deviations. If the standard +deviation was computed over the entire array, a zero-dimensional +array is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where is only supported with its default value. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Note that, for complex numbers, the absolute value is taken before squaring, +so that the result is always real and non-negative.

    +
    +

    See also

    +
    +
    dpnp.ndarray.std

    corresponding function for ndarrays.

    +
    +
    dpnp.var

    Compute the variance along the specified axis.

    +
    +
    dpnp.mean

    Compute the arithmetic mean along the specified axis.

    +
    +
    dpnp.nanmean

    Compute the arithmetic mean along the specified axis, ignoring NaNs.

    +
    +
    dpnp.nanstd

    Compute the standard deviation along the specified axis, while ignoring NaNs.

    +
    +
    dpnp.nanvar

    Compute the variance along the specified axis, while ignoring NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> np.std(a)
    +array(1.118033988749895)
    +>>> np.std(a, axis=0)
    +array([1.,  1.])
    +>>> np.std(a, axis=1)
    +array([0.5,  0.5])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.subtract.html b/pull/2070/reference/generated/dpnp.subtract.html new file mode 100644 index 00000000000..5849c4f6f0b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.subtract.html @@ -0,0 +1,207 @@ + + + + + + + + + + + dpnp.subtract — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.subtract

    +
    +
    +dpnp.subtract(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the difference between each element x1_i of the input +array x1 and the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.subtract.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise differences. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Equivalent to x1 - x2 in terms of array broadcasting.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.subtract(dp.array([4, 3]), np.array([2, 7]))
    +array([ 2, -4])
    +
    +
    +
    >>> x1 = np.arange(9.0).reshape((3, 3))
    +>>> x2 = np.arange(3.0)
    +>>> np.subtract(x1, x2)
    +array([[ 0.,  0.,  0.],
    +       [ 3.,  3.,  3.],
    +       [ 6.,  6.,  6.]])
    +
    +
    +

    The - operator can be used as a shorthand for subtract on +dpnp.ndarray.

    +
    >>> x1 - x2
    +array([[ 0.,  0.,  0.],
    +       [ 3.,  3.,  3.],
    +       [ 6.,  6.,  6.]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.sum.html b/pull/2070/reference/generated/dpnp.sum.html new file mode 100644 index 00000000000..52ae5259abf --- /dev/null +++ b/pull/2070/reference/generated/dpnp.sum.html @@ -0,0 +1,247 @@ + + + + + + + + + + + dpnp.sum — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.sum

    +
    +
    +dpnp.sum(a, axis=None, dtype=None, out=None, keepdims=False, initial=None, where=True)[source]
    +

    Sum of array elements over a given axis.

    +

    For full documentation refer to numpy.sum.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int or tuple of ints}, optional) -- Axis or axes along which a sum is performed. The default, +axis=None, will sum all of the elements of the input array. If axis +is negative it counts from the last to the first axis. +If axis is a tuple of integers, a sum is performed on all of the axes +specified in the tuple instead of a single axis or all the axes as +before. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- The type of the returned array and of the accumulator in which the +elements are summed. The dtype of a is used by default unless a has +an integer dtype of less precision than the default platform integer. +In that case, if a is signed then the platform integer is used while +if a is unsigned then an unsigned integer of the same precision as +the platform integer is used. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have the +same shape as the expected output, but the type of the output values +will be cast if necessary. +Default: None.

    • +
    • keepdims ({None, bool}, optional) -- If this is set to True, the axes which are reduced are left in the +result as dimensions with size one. With this option, the result will +broadcast correctly against the input array. +Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array with the same shape as a, with the specified axis removed. +If a is a 0-d array, or if axis is None, a zero-dimensional +array is returned. If an output array is specified, a reference to +out is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters initial and where are only supported with their default +values. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.ndarray.sum

    Equivalent method.

    +
    +
    dpnp.cumsum

    Cumulative sum of array elements.

    +
    +
    dpnp.trapezoid

    Integration of array values using the composite trapezoidal rule.

    +
    +
    dpnp.mean

    Compute the arithmetic mean.

    +
    +
    dpnp.average

    Compute the weighted average.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.sum(np.array([0.5, 1.5]))
    +array(2.)
    +>>> np.sum(np.array([0.5, 0.7, 0.2, 1.5]), dtype=np.int32)
    +array(1)
    +>>> a = np.array([[0, 1], [0, 5]])
    +>>> np.sum(a)
    +array(6)
    +>>> np.sum(a, axis=0)
    +array([0, 6])
    +>>> np.sum(a, axis=1)
    +array([1, 5])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.swapaxes.html b/pull/2070/reference/generated/dpnp.swapaxes.html new file mode 100644 index 00000000000..e7d00c01830 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.swapaxes.html @@ -0,0 +1,214 @@ + + + + + + + + + + + dpnp.swapaxes — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.swapaxes

    +
    +
    +dpnp.swapaxes(a, axis1, axis2)[source]
    +

    Interchange two axes of an array.

    +

    For full documentation refer to numpy.swapaxes.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis1 (int) -- First axis.

    • +
    • axis2 (int) -- Second axis.

    • +
    +
    +
    Returns:
    +

    out -- An array with with swapped axes. +A view is returned whenever possible.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Notes

    +

    If a has rank (i.e., number of dimensions) N, +a valid axis must be in the half-open interval [-N, N).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([[1, 2, 3]])
    +>>> np.swapaxes(x, 0, 1)
    +array([[1],
    +       [2],
    +       [3]])
    +
    +
    +
    >>> x = np.array([[[0,1],[2,3]],[[4,5],[6,7]]])
    +>>> x
    +array([[[0, 1],
    +        [2, 3]],
    +       [[4, 5],
    +        [6, 7]]])
    +>>> np.swapaxes(x,0,2)
    +array([[[0, 4],
    +        [2, 6]],
    +       [[1, 5],
    +        [3, 7]]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.take.html b/pull/2070/reference/generated/dpnp.take.html new file mode 100644 index 00000000000..094dca98613 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.take.html @@ -0,0 +1,241 @@ + + + + + + + + + + + dpnp.take — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.take

    +
    +
    +dpnp.take(a, indices, /, *, axis=None, out=None, mode='wrap')[source]
    +

    Take elements from an array along an axis.

    +

    When axis is not None, this function does the same thing as "fancy" +indexing (indexing arrays using arrays); however, it can be easier to use +if you need elements along a given axis. A call such as +dpnp.take(a, indices, axis=3) is equivalent to +a[:, :, :, indices, ...].

    +

    For full documentation refer to numpy.take.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}, (Ni..., M, Nk...)) -- The source array.

    • +
    • indices ({array_like, scalars}, (Nj...)) -- The indices of the values to extract. +Also allow scalars for indices.

    • +
    • axis ({None, int, bool, 0-d array of integer dtype}, optional) -- The axis over which to select values. By default, the flattened +input array is used. +Default: None.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional (Ni..., Nj..., Nk...)) -- If provided, the result will be placed in this array. It should +be of the appropriate shape and dtype. +Default: None.

    • +
    • mode ({"wrap", "clip"}, optional) --

      Specifies how out-of-bounds indices will be handled. Possible values +are:

      +
        +
      • "wrap": clamps indices to (-n <= i < n), then wraps +negative indices.

      • +
      • "clip": clips indices to (0 <= i < n).

      • +
      +

      Default: "wrap".

      +

    • +
    +
    +
    Returns:
    +

    out -- The returned array has the same type as a.

    +
    +
    Return type:
    +

    dpnp.ndarray, (Ni..., Nj..., Nk...)

    +
    +
    +
    +

    See also

    +
    +
    dpnp.compress

    Take elements using a boolean mask.

    +
    +
    dpnp.ndarray.take

    Equivalent method.

    +
    +
    dpnp.take_along_axis

    Take elements by matching the array and the index arrays.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([4, 3, 5, 7, 6, 8])
    +>>> indices = np.array([0, 1, 4])
    +>>> np.take(x, indices)
    +array([4, 3, 6])
    +
    +
    +

    In this example "fancy" indexing can be used.

    +
    >>> x[indices]
    +array([4, 3, 6])
    +
    +
    +
    >>> indices = dpnp.array([-1, -6, -7, 5, 6])
    +>>> np.take(x, indices)
    +array([8, 4, 4, 8, 8])
    +
    +
    +
    >>> np.take(x, indices, mode="clip")
    +array([4, 4, 4, 8, 8])
    +
    +
    +

    If indices is not one dimensional, the output also has these dimensions.

    +
    >>> np.take(x, [[0, 1], [2, 3]])
    +array([[4, 3],
    +       [5, 7]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.take_along_axis.html b/pull/2070/reference/generated/dpnp.take_along_axis.html new file mode 100644 index 00000000000..d2800faca9f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.take_along_axis.html @@ -0,0 +1,258 @@ + + + + + + + + + + + dpnp.take_along_axis — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.take_along_axis

    +
    +
    +dpnp.take_along_axis(a, indices, axis, mode='wrap')[source]
    +

    Take values from the input array by matching 1d index and data slices.

    +

    This iterates over matching 1d slices oriented along the specified axis in +the index and data arrays, and uses the former to look up values in the +latter. These slices can be different lengths.

    +

    Functions returning an index along an axis, like dpnp.argsort and +dpnp.argpartition, produce suitable indices for this function.

    +

    For full documentation refer to numpy.take_along_axis.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}, (Ni..., M, Nk...)) -- Source array

    • +
    • indices ({dpnp.ndarray, usm_ndarray}, (Ni..., J, Nk...)) -- Indices to take along each 1d slice of a. This must match the +dimension of the input array, but dimensions Ni and Nj +only need to broadcast against a.

    • +
    • axis ({None, int}) -- The axis to take 1d slices along. If axis is None, the input +array is treated as if it had first been flattened to 1d, +for consistency with dpnp.sort and dpnp.argsort.

    • +
    • mode ({"wrap", "clip"}, optional) --

      Specifies how out-of-bounds indices will be handled. Possible values +are:

      +
        +
      • "wrap": clamps indices to (-n <= i < n), then wraps +negative indices.

      • +
      • "clip": clips indices to (0 <= i < n).

      • +
      +

      Default: "wrap".

      +

    • +
    +
    +
    Returns:
    +

    out -- The indexed result of the same data type as a.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.take

    Take along an axis, using the same indices for every 1d slice.

    +
    +
    dpnp.put_along_axis

    Put values into the destination array by matching 1d index and data slices.

    +
    +
    dpnp.argsort

    Return the indices that would sort an array.

    +
    +
    +
    +

    Examples

    +

    For this sample array

    +
    >>> import dpnp as np
    +>>> a = np.array([[10, 30, 20], [60, 40, 50]])
    +
    +
    +

    We can sort either by using dpnp.sort directly, or +dpnp.argsort and this function:

    +
    >>> np.sort(a, axis=1)
    +array([[10, 20, 30],
    +       [40, 50, 60]])
    +>>> ai = np.argsort(a, axis=1)
    +>>> ai
    +array([[0, 2, 1],
    +       [1, 2, 0]])
    +>>> np.take_along_axis(a, ai, axis=1)
    +array([[10, 20, 30],
    +       [40, 50, 60]])
    +
    +
    +

    The same works for max and min, if you maintain the trivial dimension +with keepdims:

    +
    >>> np.max(a, axis=1, keepdims=True)
    +array([[30],
    +       [60]])
    +>>> ai = np.argmax(a, axis=1, keepdims=True)
    +>>> ai
    +array([[1],
    +       [0]])
    +>>> np.take_along_axis(a, ai, axis=1)
    +array([[30],
    +       [60]])
    +
    +
    +

    If we want to get the max and min at the same time, we can stack the +indices first:

    +
    >>> ai_min = np.argmin(a, axis=1, keepdims=True)
    +>>> ai_max = np.argmax(a, axis=1, keepdims=True)
    +>>> ai = np.concatenate([ai_min, ai_max], axis=1)
    +>>> ai
    +array([[0, 1],
    +       [1, 0]])
    +>>> np.take_along_axis(a, ai, axis=1)
    +array([[10, 30],
    +       [40, 60]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.tan.html b/pull/2070/reference/generated/dpnp.tan.html new file mode 100644 index 00000000000..f50938d34ba --- /dev/null +++ b/pull/2070/reference/generated/dpnp.tan.html @@ -0,0 +1,199 @@ + + + + + + + + + + + dpnp.tan — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.tan

    +
    +
    +dpnp.tan(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes tangent for each element x_i for input array x.

    +

    For full documentation refer to numpy.tan.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise tangent. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arctan

    Trigonometric inverse tangent, element-wise.

    +
    +
    dpnp.sin

    Trigonometric sine, element-wise.

    +
    +
    dpnp.cos

    Trigonometric cosine, element-wise.

    +
    +
    dpnp.tanh

    Hyperbolic tangent, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([-np.pi, np.pi/2, np.pi])
    +>>> np.tan(x)
    +array([1.22460635e-16, 1.63317787e+16, -1.22460635e-16])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.tanh.html b/pull/2070/reference/generated/dpnp.tanh.html new file mode 100644 index 00000000000..d6c8c87c880 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.tanh.html @@ -0,0 +1,199 @@ + + + + + + + + + + + dpnp.tanh — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.tanh

    +
    +
    +dpnp.tanh(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Computes hyperbolic tangent for each element x_i for input array x.

    +

    For full documentation refer to numpy.tanh.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have numeric data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the element-wise hyperbolic tangent. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.arctanh

    Hyperbolic inverse tangent, element-wise.

    +
    +
    dpnp.sinh

    Hyperbolic sine, element-wise.

    +
    +
    dpnp.cosh

    Hyperbolic cosine, element-wise.

    +
    +
    dpnp.tan

    Trigonometric tangent, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.array([0, -np.pi, np.pi/2, np.pi])
    +>>> np.tanh(x)
    +array([0.0, -0.996272, 0.917152, 0.996272])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.tensordot.html b/pull/2070/reference/generated/dpnp.tensordot.html new file mode 100644 index 00000000000..ac2a9b5df38 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.tensordot.html @@ -0,0 +1,257 @@ + + + + + + + + + + + dpnp.tensordot — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.tensordot

    +
    +
    +dpnp.tensordot(a, b, axes=2)[source]
    +

    Compute tensor dot product along specified axes.

    +

    For full documentation refer to numpy.tensordot.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. Both inputs a and b can not be scalars +at the same time.

    • +
    • b ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. Both inputs a and b can not be scalars +at the same time.

    • +
    • axes (int or (2,) array_like) --

        +
      • integer_like: If an int N, sum over the last N axes of a and +the first N axes of b in order. The sizes of the corresponding +axes must match.

      • +
      • (2,) array_like: A list of axes to be summed over, first sequence +applying to a, second to b. Both elements array_like must be of +the same length.

      • +
      +

    • +
    +
    +
    Returns:
    +

    out -- Returns the tensor dot product of a and b.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.dot

    Returns the dot product.

    +
    +
    dpnp.einsum

    Evaluates the Einstein summation convention on the operands.

    +
    +
    +
    +

    Notes

    +
    +
    Three common use cases are:
      +
    • axes = 0 : tensor product \(a \otimes b\)

    • +
    • axes = 1 : tensor dot product \(a \cdot b\)

    • +
    • axes = 2 : (default) tensor double contraction \(a:b\)

    • +
    +
    +
    +

    When axes is integer, the sequence for evaluation will be: first +the -Nth axis in a and 0th axis in b, and the -1th axis in a and +Nth axis in b last.

    +

    When there is more than one axis to sum over - and they are not the last +(first) axes of a (b) - the argument axes should consist of +two sequences of the same length, with the first axis to sum over given +first in both sequences, the second axis second, and so forth.

    +

    The shape of the result consists of the non-contracted axes of the +first tensor, followed by the non-contracted axes of the second.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    +>>> b = np.array([1, 2, 3])
    +>>> np.tensordot(a, b, 1)
    +array([14, 32, 50])
    +
    +
    +
    >>> a = np.arange(60.).reshape(3,4,5)
    +>>> b = np.arange(24.).reshape(4,3,2)
    +>>> c = np.tensordot(a,b, axes=([1,0],[0,1]))
    +>>> c.shape
    +(5, 2)
    +>>> c
    +array([[4400., 4730.],
    +       [4532., 4874.],
    +       [4664., 5018.],
    +       [4796., 5162.],
    +       [4928., 5306.]])
    +
    +
    +

    A slower but equivalent way of computing the same...

    +
    >>> d = np.zeros((5,2))
    +>>> for i in range(5):
    +...   for j in range(2):
    +...     for k in range(3):
    +...       for n in range(4):
    +...         d[i,j] += a[k,n,i] * b[n,k,j]
    +>>> c == d
    +array([[ True,  True],
    +       [ True,  True],
    +       [ True,  True],
    +       [ True,  True],
    +       [ True,  True]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.tile.html b/pull/2070/reference/generated/dpnp.tile.html new file mode 100644 index 00000000000..06d60db88e5 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.tile.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.tile — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.tile

    +
    +
    +dpnp.tile(A, reps)[source]
    +

    Construct an array by repeating A the number of times given by reps.

    +

    If reps has length d, the result will have dimension of +max(d, A.ndim).

    +

    If A.ndim < d, A is promoted to be d-dimensional by prepending new +axes. So a shape (3,) array is promoted to (1, 3) for 2-D replication, +or shape (1, 1, 3) for 3-D replication. If this is not the desired +behavior, promote A to d-dimensions manually before calling this +function.

    +

    If A.ndim > d, reps is promoted to A.ndim by prepending 1's to it. +Thus for an A of shape (2, 3, 4, 5), a reps of (2, 2) is treated as +(1, 1, 2, 2).

    +

    Note : Although tile may be used for broadcasting, it is strongly +recommended to use dpnp's broadcasting operations and functions.

    +

    For full documentation refer to numpy.tile.

    +
    +
    Parameters:
    +
      +
    • A ({dpnp.ndarray, usm_ndarray}) -- The input array.

    • +
    • reps (int or tuple of ints) -- The number of repetitions of A along each axis.

    • +
    +
    +
    Returns:
    +

    out -- The tiled output array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.repeat

    Repeat elements of an array.

    +
    +
    dpnp.broadcast_to

    Broadcast an array to a new shape

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([0, 1, 2])
    +>>> np.tile(a, 2)
    +array([0, 1, 2, 0, 1, 2])
    +
    +
    +
    >>> np.tile(a, (2, 2))
    +array([[0, 1, 2, 0, 1, 2],
    +       [0, 1, 2, 0, 1, 2]])
    +
    +
    +
    >>> np.tile(a, (2, 1, 2))
    +array([[[0, 1, 2, 0, 1, 2]],
    +       [[0, 1, 2, 0, 1, 2]]])
    +
    +
    +
    >>> b = np.array([[1, 2], [3, 4]])
    +>>> np.tile(b, 2)
    +array([[1, 2, 1, 2],
    +       [3, 4, 3, 4]])
    +
    +
    +
    >>> np.tile(b, (2, 1))
    +array([[1, 2],
    +       [3, 4],
    +       [1, 2],
    +       [3, 4]])
    +
    +
    +
    >>> c = np.array([1, 2, 3, 4])
    +>>> np.tile(c, (4, 1))
    +array([[1, 2, 3, 4],
    +       [1, 2, 3, 4],
    +       [1, 2, 3, 4],
    +       [1, 2, 3, 4]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.trace.html b/pull/2070/reference/generated/dpnp.trace.html new file mode 100644 index 00000000000..636b1d0db49 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.trace.html @@ -0,0 +1,225 @@ + + + + + + + + + + + dpnp.trace — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.trace

    +
    +
    +dpnp.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)[source]
    +

    Return the sum along diagonals of the array.

    +

    For full documentation refer to numpy.trace.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array, from which the diagonals are taken.

    • +
    • offset (int, optional) -- Offset of the diagonal from the main diagonal. Can be both positive and +negative. +Default: 0.

    • +
    • axis1 (int, optional) -- Axes to be used as the first and second axis of the 2-D sub-arrays from +which the diagonals should be taken. Defaults are the first two axes of +a.

    • +
    • axis2 (int, optional) -- Axes to be used as the first and second axis of the 2-D sub-arrays from +which the diagonals should be taken. Defaults are the first two axes of +a.

    • +
    • dtype (dtype, optional) -- Determines the data-type of the returned array and of the accumulator +where the elements are summed. If dtype has the value None and +a is of integer type of precision less than the default integer +precision, then the default integer precision is used. Otherwise, the +precision is the same as that of a. +Default: None.

    • +
    • out ({dpnp.ndarray, usm_ndarray}, optional) -- Array into which the output is placed. Its type is preserved and it +must be of the right shape to hold the output. +Default: None.

    • +
    +
    +
    Returns:
    +

    sum_along_diagonals -- If a is 2-D, the sum along the diagonal is returned. If a has +larger dimensions, then an array of sums along diagonals is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.diag

    Extract a diagonal or construct a diagonal array.

    +
    +
    dpnp.diagonal

    Return specified diagonals.

    +
    +
    dpnp.diagflat

    Create a 2-D array with the flattened input as a diagonal.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.trace(np.eye(3))
    +array(3.)
    +>>> a = np.arange(8).reshape((2, 2, 2))
    +>>> np.trace(a)
    +array([6, 8])
    +
    +
    +
    >>> a = np.arange(24).reshape((2, 2, 2, 3))
    +>>> np.trace(a).shape
    +(2, 3)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.transpose.html b/pull/2070/reference/generated/dpnp.transpose.html new file mode 100644 index 00000000000..60f95106777 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.transpose.html @@ -0,0 +1,232 @@ + + + + + + + + + + + dpnp.transpose — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.transpose

    +
    +
    +dpnp.transpose(a, axes=None)[source]
    +

    Returns an array with axes transposed.

    +

    Note that dpnp.permute_dims is an alias of dpnp.transpose.

    +

    For full documentation refer to numpy.transpose.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axes (None, tuple or list of ints, optional) -- If specified, it must be a tuple or list which contains a permutation +of [0, 1, ..., N-1] where N is the number of axes of a. +The i'th axis of the returned array will correspond to the axis +numbered axes[i] of the input. If not specified or None, +defaults to range(a.ndim)[::-1], which reverses the order of +the axes.

    • +
    +
    +
    Returns:
    +

    out -- a with its axes permuted. A view is returned whenever possible.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ndarray.transpose

    Equivalent method.

    +
    +
    dpnp.moveaxis

    Move array axes to new positions.

    +
    +
    dpnp.argsort

    Returns the indices that would sort an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> a
    +array([[1, 2],
    +       [3, 4]])
    +>>> np.transpose(a)
    +array([[1, 3],
    +       [2, 4]])
    +
    +
    +
    >>> a = np.array([1, 2, 3, 4])
    +>>> a
    +array([1, 2, 3, 4])
    +>>> np.transpose(a)
    +array([1, 2, 3, 4])
    +
    +
    +
    >>> a = np.ones((1, 2, 3))
    +>>> np.transpose(a, (1, 0, 2)).shape
    +(2, 1, 3)
    +
    +
    +
    >>> a = np.ones((2, 3, 4, 5))
    +>>> np.transpose(a).shape
    +(5, 4, 3, 2)
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.trapezoid.html b/pull/2070/reference/generated/dpnp.trapezoid.html new file mode 100644 index 00000000000..63c1cc483da --- /dev/null +++ b/pull/2070/reference/generated/dpnp.trapezoid.html @@ -0,0 +1,268 @@ + + + + + + + + + + + dpnp.trapezoid — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.trapezoid

    +
    +
    +dpnp.trapezoid(y, x=None, dx=1.0, axis=-1)[source]
    +

    Integrate along the given axis using the composite trapezoidal rule.

    +

    If x is provided, the integration happens in sequence along its elements - +they are not sorted.

    +

    Integrate y (x) along each 1d slice on the given axis, compute +\(\int y(x) dx\). +When x is specified, this integrates along the parametric curve, +computing \(\int_t y(t) dt = +\int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt\).

    +

    For full documentation refer to numpy.trapezoid.

    +
    +
    Parameters:
    +
      +
    • y ({dpnp.ndarray, usm_ndarray}) -- Input array to integrate.

    • +
    • x ({dpnp.ndarray, usm_ndarray, None}, optional) -- The sample points corresponding to the y values. If x is None, +the sample points are assumed to be evenly spaced dx apart. +Default: None.

    • +
    • dx (scalar, optional) -- The spacing between sample points when x is None. +Default: 1.

    • +
    • axis (int, optional) -- The axis along which to integrate. +Default: -1.

    • +
    +
    +
    Returns:
    +

    out -- Definite integral of y = n-dimensional array as approximated along +a single axis by the trapezoidal rule. The result is an n-1 +dimensional array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.sum

    Sum of array elements over a given axis.

    +
    +
    dpnp.cumsum

    Cumulative sum of the elements along a given axis.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +
    +
    +

    Use the trapezoidal rule on evenly spaced points:

    +
    >>> y = np.array([1, 2, 3])
    +>>> np.trapezoid(y)
    +array(4.)
    +
    +
    +

    The spacing between sample points can be selected by either the x or dx +arguments:

    +
    >>> y = np.array([1, 2, 3])
    +>>> x = np.array([4, 6, 8])
    +>>> np.trapezoid(y, x=x)
    +array(8.)
    +>>> np.trapezoid(y, dx=2)
    +array(8.)
    +
    +
    +

    Using a decreasing x corresponds to integrating in reverse:

    +
    >>> y = np.array([1, 2, 3])
    +>>> x = np.array([8, 6, 4])
    +>>> np.trapezoid(y, x=x)
    +array(-8.)
    +
    +
    +

    More generally x is used to integrate along a parametric curve. We can +estimate the integral \(\int_0^1 x^2 = 1/3\) using:

    +
    >>> x = np.linspace(0, 1, num=50)
    +>>> y = x**2
    +>>> np.trapezoid(y, x)
    +array(0.33340275)
    +
    +
    +

    Or estimate the area of a circle, noting we repeat the sample which closes +the curve:

    +
    >>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
    +>>> np.trapezoid(np.cos(theta), x=np.sin(theta))
    +array(3.14157194)
    +
    +
    +

    dpnp.trapezoid can be applied along a specified axis to do multiple +computations in one call:

    +
    >>> a = np.arange(6).reshape(2, 3)
    +>>> a
    +array([[0, 1, 2],
    +       [3, 4, 5]])
    +>>> np.trapezoid(a, axis=0)
    +array([1.5, 2.5, 3.5])
    +>>> np.trapezoid(a, axis=1)
    +array([2., 8.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.tri.html b/pull/2070/reference/generated/dpnp.tri.html new file mode 100644 index 00000000000..f010422a67b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.tri.html @@ -0,0 +1,246 @@ + + + + + + + + + + + dpnp.tri — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.tri

    +
    +
    +dpnp.tri(N, /, M=None, k=0, dtype=<class 'float'>, *, device=None, usm_type='device', sycl_queue=None)[source]
    +

    An array with ones at and below the given diagonal and zeros elsewhere.

    +

    For full documentation refer to numpy.tri.

    +
    +
    Parameters:
    +
      +
    • N (int) -- Number of rows in the array.

    • +
    • M ({None, int}, optional) -- Number of columns in the array. By default, M is taken equal to N.

    • +
    • k (int, optional) -- The sub-diagonal at and below which the array is filled. k = 0 is +the main diagonal, while k < 0 is below it, and k > 0 is above. +Default: 0.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array with its lower triangle filled with ones and zeros elsewhere.

    +
    +
    Return type:
    +

    dpnp.ndarray of shape (N, M)

    +
    +
    +
    +

    See also

    +
    +
    dpnp.tril

    Return lower triangle of an array.

    +
    +
    dpnp.triu

    Return upper triangle of an array.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.tri(3, 5, 2, dtype=int)
    +array([[1, 1, 1, 0, 0],
    +       [1, 1, 1, 1, 0],
    +       [1, 1, 1, 1, 1]])
    +
    +
    +
    >>> np.tri(3, 5, -1)
    +array([[0.,  0.,  0.,  0.,  0.],
    +       [1.,  0.,  0.,  0.,  0.],
    +       [1.,  1.,  0.,  0.,  0.]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.tri(3, 2) # default case
    +>>> x, x.device, x.usm_type
    +(array([[1., 0.],
    +        [1., 1.],
    +        [1., 1.]]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.tri(3, 2, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([[1., 0.],
    +        [1., 1.],
    +        [1., 1.]]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.tri(3, 2, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([[1., 0.],
    +        [1., 1.],
    +        [1., 1.]]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.tril.html b/pull/2070/reference/generated/dpnp.tril.html new file mode 100644 index 00000000000..0ae905b3f06 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.tril.html @@ -0,0 +1,194 @@ + + + + + + + + + + + dpnp.tril — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.tril

    +
    +
    +dpnp.tril(m, /, *, k=0)[source]
    +

    Lower triangle of an array.

    +

    Return a copy of an array with elements above the k-th diagonal zeroed.

    +

    For full documentation refer to numpy.tril.

    +
    +
    Parameters:
    +
      +
    • m ({dpnp.ndarray, usm_ndarray}, shape (, M, N)) -- Input array.

    • +
    • k (int, optional) -- Diagonal above which to zero elements. k = 0 (the default) is +the main diagonal, k < 0 is below it and k > 0 is above.

    • +
    +
    +
    Returns:
    +

    out -- Lower triangle of m, of same shape and dtype as m.

    +
    +
    Return type:
    +

    dpnp.ndarray of shape (N, M)

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
    +>>> np.tril(m, k=-1)
    +array([[ 0,  0,  0],
    +       [ 4,  0,  0],
    +       [ 7,  8,  0],
    +       [10, 11, 12]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.tril_indices.html b/pull/2070/reference/generated/dpnp.tril_indices.html new file mode 100644 index 00000000000..40da59ac3f8 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.tril_indices.html @@ -0,0 +1,252 @@ + + + + + + + + + + + dpnp.tril_indices — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.tril_indices

    +
    +
    +dpnp.tril_indices(n, k=0, m=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return the indices for the lower-triangle of an (n, m) array.

    +

    For full documentation refer to numpy.tril_indices.

    +
    +
    Parameters:
    +
      +
    • n (int) -- The row dimension of the arrays for which the returned +indices will be valid.

    • +
    • k (int, optional) -- Diagonal offset (see dpnp.tril for details). Default: 0.

    • +
    • m ({None, int}, optional) -- The column dimension of the arrays for which the returned +arrays will be valid. +By default m is taken equal to n. Default: None.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    inds -- The indices for the triangle. The returned tuple contains two arrays, +each with the indices along one dimension of the array.

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.triu_indices

    similar function, for upper-triangular.

    +
    +
    dpnp.mask_indices

    generic function accepting an arbitrary mask function.

    +
    +
    dpnp.tril

    Return lower triangle of an array.

    +
    +
    dpnp.triu

    Return upper triangle of an array.

    +
    +
    +
    +

    Examples

    +

    Compute two different sets of indices to access 4x4 arrays, one for the +lower triangular part starting at the main diagonal, and one starting two +diagonals further right:

    +
    >>> import dpnp as np
    +>>> il1 = np.tril_indices(4)
    +>>> il2 = np.tril_indices(4, 2)
    +
    +
    +

    Here is how they can be used with a sample array:

    +
    >>> a = np.arange(16).reshape(4, 4)
    +>>> a
    +array([[ 0,  1,  2,  3],
    +       [ 4,  5,  6,  7],
    +       [ 8,  9, 10, 11],
    +       [12, 13, 14, 15]])
    +
    +
    +

    Both for indexing:

    +
    >>> a[il1]
    +array([ 0,  4,  5, ..., 13, 14, 15])
    +
    +
    +

    And for assigning values:

    +
    >>> a[il1] = -1
    +>>> a
    +array([[-1,  1,  2,  3],
    +       [-1, -1,  6,  7],
    +       [-1, -1, -1, 11],
    +       [-1, -1, -1, -1]])
    +
    +
    +

    These cover almost the whole array (two diagonals right of the main one):

    +
    >>> a[il2] = -10
    +>>> a
    +array([[-10, -10, -10,   3],
    +       [-10, -10, -10, -10],
    +       [-10, -10, -10, -10],
    +       [-10, -10, -10, -10]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.tril_indices_from.html b/pull/2070/reference/generated/dpnp.tril_indices_from.html new file mode 100644 index 00000000000..fd8f075f8e3 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.tril_indices_from.html @@ -0,0 +1,229 @@ + + + + + + + + + + + dpnp.tril_indices_from — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.tril_indices_from

    +
    +
    +dpnp.tril_indices_from(arr, k=0)[source]
    +

    Return the indices for the lower-triangle of arr.

    +

    For full documentation refer to numpy.tril_indices_from.

    +
    +
    Parameters:
    +
      +
    • arr ({dpnp.ndarray, usm_ndarray}) -- The indices will be valid for square arrays whose dimensions are +the same as arr.

    • +
    • k (int, optional) -- Diagonal offset (see dpnp.tril for details). Default: 0.

    • +
    +
    +
    Returns:
    +

    inds -- The indices for the triangle. The returned tuple contains two arrays, +each with the indices along one dimension of the array.

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.tril_indices

    Return the indices for the lower-triangle of an (n, m) array.

    +
    +
    dpnp.tril

    Return lower triangle of an array.

    +
    +
    dpnp.triu_indices_from

    similar function, for upper-triangular.

    +
    +
    +
    +

    Examples

    +

    Create a 4 by 4 array.

    +
    >>> import dpnp as np
    +>>> a = np.arange(16).reshape(4, 4)
    +>>> a
    +array([[ 0,  1,  2,  3],
    +       [ 4,  5,  6,  7],
    +       [ 8,  9, 10, 11],
    +       [12, 13, 14, 15]])
    +
    +
    +

    Pass the array to get the indices of the lower triangular elements.

    +
    >>> trili = np.tril_indices_from(a)
    +>>> trili
    +(array([0, 1, 1, 2, 2, 2, 3, 3, 3, 3]),
    + array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3]))
    +
    +
    +
    >>> a[trili]
    +array([ 0,  4,  5,  8,  9, 10, 12, 13, 14, 15])
    +
    +
    +

    This is syntactic sugar for tril_indices().

    +
    >>> np.tril_indices(a.shape[0])
    +(array([0, 1, 1, 2, 2, 2, 3, 3, 3, 3]),
    + array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3]))
    +
    +
    +

    Use the k parameter to return the indices for the lower triangular array +up to the k-th diagonal.

    +
    >>> trili1 = np.tril_indices_from(a, k=1)
    +>>> a[trili1]
    +array([ 0,  1,  4,  5,  6,  8,  9, 10, 11, 12, 13, 14, 15])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.trim_zeros.html b/pull/2070/reference/generated/dpnp.trim_zeros.html new file mode 100644 index 00000000000..8d8fade7a16 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.trim_zeros.html @@ -0,0 +1,200 @@ + + + + + + + + + + + dpnp.trim_zeros — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.trim_zeros

    +
    +
    +dpnp.trim_zeros(filt, trim='fb')[source]
    +

    Trim the leading and/or trailing zeros from a 1-D array.

    +

    For full documentation refer to numpy.trim_zeros.

    +
    +
    Parameters:
    +
      +
    • filt ({dpnp.ndarray, usm_ndarray}) -- Input 1-D array.

    • +
    • trim (str, optional) -- A string with 'f' representing trim from front and 'b' to trim from +back. By defaults, trim zeros from both front and back of the array. +Default: "fb".

    • +
    +
    +
    Returns:
    +

    out -- The result of trimming the input.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array((0, 0, 0, 1, 2, 3, 0, 2, 1, 0))
    +>>> np.trim_zeros(a)
    +array([1, 2, 3, 0, 2, 1])
    +
    +
    +
    >>> np.trim_zeros(a, 'b')
    +array([0, 0, 0, 1, 2, 3, 0, 2, 1])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.triu.html b/pull/2070/reference/generated/dpnp.triu.html new file mode 100644 index 00000000000..e0536aa3259 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.triu.html @@ -0,0 +1,195 @@ + + + + + + + + + + + dpnp.triu — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.triu

    +
    +
    +dpnp.triu(m, /, *, k=0)[source]
    +

    Upper triangle of an array.

    +

    Return a copy of a matrix with the elements below the k-th diagonal +zeroed.

    +

    For full documentation refer to numpy.triu.

    +
    +
    Parameters:
    +
      +
    • m ({dpnp.ndarray, usm_ndarray}, shape (, M, N)) -- Input array.

    • +
    • k (int, optional) -- Diagonal below which to zero elements. k = 0 (the default) is +the main diagonal, k < 0 is below it and k > 0 is above.

    • +
    +
    +
    Returns:
    +

    out -- Upper triangle of m, of same shape and dtype as m.

    +
    +
    Return type:
    +

    dpnp.ndarray of shape (N, M)

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
    +>>> np.triu(m, k=-1)
    +array([[ 1,  2,  3],
    +       [ 4,  5,  6],
    +       [ 0,  8,  9],
    +       [ 0,  0, 12]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.triu_indices.html b/pull/2070/reference/generated/dpnp.triu_indices.html new file mode 100644 index 00000000000..cacc07d6b88 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.triu_indices.html @@ -0,0 +1,254 @@ + + + + + + + + + + + dpnp.triu_indices — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.triu_indices

    +
    +
    +dpnp.triu_indices(n, k=0, m=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return the indices for the upper-triangle of an (n, m) array.

    +

    For full documentation refer to numpy.triu_indices.

    +
    +
    Parameters:
    +
      +
    • n (int) -- The size of the arrays for which the returned indices will +be valid.

    • +
    • k (int, optional) -- Diagonal offset (see dpnp.triu for details). Default: 0.

    • +
    • m (int, optional) -- The column dimension of the arrays for which the returned +arrays will be valid. +By default m is taken equal to n. Default: None.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({"device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    inds -- The indices for the triangle. The returned tuple contains two arrays, +each with the indices along one dimension of the array. Can be used +to slice a ndarray of shape(n, n).

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.tril_indices

    similar function, for lower-triangular.

    +
    +
    dpnp.mask_indices

    generic function accepting an arbitrary mask function.

    +
    +
    dpnp.tril

    Return lower triangle of an array.

    +
    +
    dpnp.triu

    Return upper triangle of an array.

    +
    +
    +
    +

    Examples

    +

    Compute two different sets of indices to access 4x4 arrays, one for the +upper triangular part starting at the main diagonal, and one starting two +diagonals further right:

    +
    >>> import dpnp as np
    +>>> iu1 = np.triu_indices(4)
    +>>> iu2 = np.triu_indices(4, 2)
    +
    +
    +

    Here is how they can be used with a sample array:

    +
    >>> a = np.arange(16).reshape(4, 4)
    +>>> a
    +array([[ 0,  1,  2,  3],
    +       [ 4,  5,  6,  7],
    +       [ 8,  9, 10, 11],
    +       [12, 13, 14, 15]])
    +
    +
    +

    Both for indexing:

    +
    >>> a[iu1]
    +array([ 0,  1,  2, ..., 10, 11, 15])
    +
    +
    +

    And for assigning values:

    +
    >>> a[iu1] = -1
    +>>> a
    +array([[-1, -1, -1, -1],
    +       [ 4, -1, -1, -1],
    +       [ 8,  9, -1, -1],
    +       [12, 13, 14, -1]])
    +
    +
    +

    These cover only a small part of the whole array (two diagonals right +of the main one):

    +
    >>> a[iu2] = -10
    +>>> a
    +array([[ -1,  -1, -10, -10],
    +       [  4,  -1,  -1, -10],
    +       [  8,   9,  -1,  -1],
    +       [ 12,  13,  14,  -1]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.triu_indices_from.html b/pull/2070/reference/generated/dpnp.triu_indices_from.html new file mode 100644 index 00000000000..f6e201c7f35 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.triu_indices_from.html @@ -0,0 +1,230 @@ + + + + + + + + + + + dpnp.triu_indices_from — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.triu_indices_from

    +
    +
    +dpnp.triu_indices_from(arr, k=0)[source]
    +

    Return the indices for the lower-triangle of arr.

    +

    For full documentation refer to numpy.triu_indices_from.

    +
    +
    Parameters:
    +
      +
    • arr ({dpnp.ndarray, usm_ndarray}) -- The indices will be valid for square arrays whose dimensions are +the same as arr.

    • +
    • k (int, optional) -- Diagonal offset (see dpnp.triu for details). Default: 0.

    • +
    +
    +
    Returns:
    +

    inds -- The indices for the triangle. The returned tuple contains two arrays, +each with the indices along one dimension of the array. Can be used +to slice a ndarray of shape(n, n).

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.triu_indices

    Return the indices for the upper-triangle of an (n, m) array.

    +
    +
    dpnp.triu

    Return upper triangle of an array.

    +
    +
    dpnp.tril_indices_from

    similar function, for lower-triangular.

    +
    +
    +
    +

    Examples

    +

    Create a 4 by 4 array.

    +
    >>> import dpnp as np
    +>>> a = np.arange(16).reshape(4, 4)
    +>>> a
    +array([[ 0,  1,  2,  3],
    +       [ 4,  5,  6,  7],
    +       [ 8,  9, 10, 11],
    +       [12, 13, 14, 15]])
    +
    +
    +

    Pass the array to get the indices of the upper triangular elements.

    +
    >>> triui = np.triu_indices_from(a)
    +>>> triui
    +(array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]),
    + array([0, 1, 2, 3, 1, 2, 3, 2, 3, 3]))
    +
    +
    +
    >>> a[triui]
    +array([ 0,  1,  2,  3,  5,  6,  7, 10, 11, 15])
    +
    +
    +

    This is syntactic sugar for triu_indices().

    +
    >>> np.triu_indices(a.shape[0])
    +(array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]),
    + array([0, 1, 2, 3, 1, 2, 3, 2, 3, 3]))
    +
    +
    +

    Use the k parameter to return the indices for the upper triangular array +from the k-th diagonal.

    +
    >>> triuim1 = np.triu_indices_from(a, k=1)
    +>>> a[triuim1]
    +array([ 1,  2,  3,  6,  7, 11])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.true_divide.html b/pull/2070/reference/generated/dpnp.true_divide.html new file mode 100644 index 00000000000..e4a64401932 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.true_divide.html @@ -0,0 +1,211 @@ + + + + + + + + + + + dpnp.true_divide — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.true_divide

    +
    +
    +dpnp.true_divide(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Calculates the ratio for each element x1_i of the input array x1 with +the respective element x2_i of the input array x2.

    +

    For full documentation refer to numpy.divide.

    +
    +
    Parameters:
    +
      +
    • x1 ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array, expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • x2 ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array, also expected to have numeric data type. +Both inputs x1 and x2 can not be scalars at the same time.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise division. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Equivalent to x1 / x2 in terms of array-broadcasting.

    +

    The true_divide(x1, x2) function is an alias for +divide(x1, x2).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.divide(dp.array([1, -2, 6, -9]), np.array([-2, -2, -2, -2]))
    +array([-0.5,  1. , -3. ,  4.5])
    +
    +
    +
    >>> x1 = np.arange(9.0).reshape((3, 3))
    +>>> x2 = np.arange(3.0)
    +>>> np.divide(x1, x2)
    +array([[nan, 1. , 1. ],
    +       [inf, 4. , 2.5],
    +       [inf, 7. , 4. ]])
    +
    +
    +

    The / operator can be used as a shorthand for divide on +dpnp.ndarray.

    +
    >>> x1 = np.arange(9.0).reshape((3, 3))
    +>>> x2 = 2 * np.ones(3)
    +>>> x1/x2
    +array([[0. , 0.5, 1. ],
    +       [1.5, 2. , 2.5],
    +       [3. , 3.5, 4. ]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.trunc.html b/pull/2070/reference/generated/dpnp.trunc.html new file mode 100644 index 00000000000..88ef2a32605 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.trunc.html @@ -0,0 +1,201 @@ + + + + + + + + + + + dpnp.trunc — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.trunc

    +
    +
    +dpnp.trunc(x, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)
    +

    Returns the truncated value for each element x_i for input array x.

    +

    The truncated value of the scalar x is the nearest integer i which is +closer to zero than x is. In short, the fractional part of the +signed number x is discarded.

    +
    +
    Parameters:
    +
      +
    • x ({dpnp.ndarray, usm_ndarray}) -- Input array, expected to have a real-valued data type.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. +Array must have the correct shape and the expected data type. +Default: None.

    • +
    • order ({"C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, if parameter out is None. +Default: "K".

    • +
    +
    +
    Returns:
    +

    out -- An array containing the result of element-wise division. The data type +of the returned array is determined by the Type Promotion Rules.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where and subok are supported with their default values. +Keyword argument kwargs is currently unsupported. +Otherwise NotImplementedError exception will be raised.

    +
    +

    See also

    +
    +
    dpnp.floor

    Round a number to the nearest integer toward minus infinity.

    +
    +
    dpnp.ceil

    Round a number to the nearest integer toward infinity.

    +
    +
    dpnp.rint

    Round elements of the array to the nearest integer.

    +
    +
    dpnp.fix

    Round to nearest integer towards zero, element-wise.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
    +>>> np.trunc(a)
    +array([-1.0, -1.0, -0.0, 0.0, 1.0, 1.0, 2.0])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.unique.html b/pull/2070/reference/generated/dpnp.unique.html new file mode 100644 index 00000000000..8d920e2488b --- /dev/null +++ b/pull/2070/reference/generated/dpnp.unique.html @@ -0,0 +1,273 @@ + + + + + + + + + + + dpnp.unique — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.unique

    +
    +
    +dpnp.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None, *, equal_nan=True)[source]
    +

    Find the unique elements of an array.

    +

    Returns the sorted unique elements of an array. There are three optional +outputs in addition to the unique elements:

    +
      +
    • the indices of the input array that give the unique values

    • +
    • the indices of the unique array that reconstruct the input array

    • +
    • the number of times each unique value comes up in the input array

    • +
    +

    For full documentation refer to numpy.unique.

    +
    +
    Parameters:
    +
      +
    • ar ({dpnp.ndarray, usm_ndarray}) -- Input array. Unless axis is specified, this will be flattened if it +is not already 1-D.

    • +
    • return_index (bool, optional) -- If True, also return the indices of ar (along the specified axis, +if provided, or in the flattened array) that result in the unique array. +Default: False.

    • +
    • return_inverse (bool, optional) -- If True, also return the indices of the unique array (for the +specified axis, if provided) that can be used to reconstruct ar. +Default: False.

    • +
    • return_counts (bool, optional) -- If True, also return the number of times each unique item appears +in ar. +Default: False.

    • +
    • axis ({int, None}, optional) -- The axis to operate on. If None, ar will be flattened. If an +integer, the subarrays indexed by the given axis will be flattened and +treated as the elements of a 1-D array with the dimension of the given +axis, see the notes for more details. +Default: None.

    • +
    • equal_nan (bool, optional) -- If True, collapses multiple NaN values in the return array into one. +Default: True.

    • +
    +
    +
    Returns:
    +

      +
    • unique (dpnp.ndarray) -- The sorted unique values.

    • +
    • unique_indices (dpnp.ndarray, optional) -- The indices of the first occurrences of the unique values in the +original array. Only provided if return_index is True.

    • +
    • unique_inverse (dpnp.ndarray, optional) -- The indices to reconstruct the original array from the unique array. +Only provided if return_inverse is True.

    • +
    • unique_counts (dpnp.ndarray, optional) -- The number of times each of the unique values comes up in the original +array. Only provided if return_counts is True.

    • +
    +

    +
    +
    +
    +

    See also

    +
    +
    dpnp.repeat

    Repeat elements of an array.

    +
    +
    +
    +

    Notes

    +

    When an axis is specified the subarrays indexed by the axis are sorted. +This is done by making the specified axis the first dimension of the array +(move the axis to the first dimension to keep the order of the other axes) +and then flattening the subarrays in C order. +For complex arrays all NaN values are considered equivalent (no matter +whether the NaN is in the real or imaginary part). As the representative for +the returned array the smallest one in the lexicographical order is chosen. +For multi-dimensional inputs, unique_inverse is reshaped such that the +input can be reconstructed using +dpnp.take(unique, unique_inverse, axis=axis).

    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 1, 2, 2, 3, 3])
    +>>> np.unique(a)
    +array([1, 2, 3])
    +>>> a = np.array([[1, 1], [2, 3]])
    +>>> np.unique(a)
    +array([1, 2, 3])
    +
    +
    +

    Return the unique rows of a 2D array

    +
    >>> a = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]])
    +>>> np.unique(a, axis=0)
    +array([[1, 0, 0],
    +       [2, 3, 4]])
    +
    +
    +

    Reconstruct the input array from the unique values and inverse:

    +
    >>> a = np.array([1, 2, 6, 4, 2, 3, 2])
    +>>> u, indices = np.unique(a, return_inverse=True)
    +>>> u
    +array([1, 2, 3, 4, 6])
    +>>> indices
    +array([0, 1, 4, 3, 1, 2, 1])
    +>>> u[indices]
    +array([1, 2, 6, 4, 2, 3, 2])
    +
    +
    +

    Reconstruct the input values from the unique values and counts:

    +
    >>> a = np.array([1, 2, 6, 4, 2, 3, 2])
    +>>> values, counts = np.unique(a, return_counts=True)
    +>>> values
    +array([1, 2, 3, 4, 6])
    +>>> counts
    +array([1, 3, 1, 1, 1])
    +>>> np.repeat(values, counts)
    +array([1, 2, 2, 2, 3, 4, 6])    # original order not preserved
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.unravel_index.html b/pull/2070/reference/generated/dpnp.unravel_index.html new file mode 100644 index 00000000000..71a588bd27a --- /dev/null +++ b/pull/2070/reference/generated/dpnp.unravel_index.html @@ -0,0 +1,204 @@ + + + + + + + + + + + dpnp.unravel_index — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.unravel_index

    +
    +
    +dpnp.unravel_index(indices, shape, order='C')[source]
    +

    Converts array of flat indices into a tuple of coordinate arrays.

    +

    For full documentation refer to numpy.unravel_index.

    +
    +
    Parameters:
    +
      +
    • indices ({dpnp.ndarray, usm_ndarray}) -- An integer array whose elements are indices into the flattened version +of an array of dimensions shape.

    • +
    • shape (tuple or list of ints) -- The shape of the array to use for unraveling indices.

    • +
    • order ({None, "C", "F"}, optional) -- Determines whether the indices should be viewed as indexing in +row-major (C-style) or column-major (Fortran-style) order. +Default: "C".

    • +
    +
    +
    Returns:
    +

    unraveled_coords -- Each array in the tuple has the same shape as the indices array.

    +
    +
    Return type:
    +

    tuple of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.ravel_multi_index

    Converts a tuple of index arrays into an array of flat indices.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.unravel_index(np.array([22, 41, 37]), (7, 6))
    +(array([3, 6, 6]), array([4, 5, 1]))
    +>>> np.unravel_index(np.array([31, 41, 13]), (7, 6), order="F")
    +(array([3, 6, 6]), array([4, 5, 1]))
    +
    +
    +
    >>> np.unravel_index(np.array(1621), (6, 7, 8, 9))
    +(array(3), array(1), array(4), array(1))
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.unwrap.html b/pull/2070/reference/generated/dpnp.unwrap.html new file mode 100644 index 00000000000..401ba0edd9c --- /dev/null +++ b/pull/2070/reference/generated/dpnp.unwrap.html @@ -0,0 +1,250 @@ + + + + + + + + + + + dpnp.unwrap — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.unwrap

    +
    +
    +dpnp.unwrap(p, discont=None, axis=-1, *, period=6.283185307179586)[source]
    +

    Unwrap by taking the complement of large deltas with respect to the period.

    +

    This unwraps a signal p by changing elements which have an absolute +difference from their predecessor of more than max(discont, period / 2) +to their period-complementary values.

    +

    For the default case where period is \(2\pi\) and discont is +\(\pi\), this unwraps a radian phase p such that adjacent differences +are never greater than \(\pi\) by adding \(2k\pi\) for some integer +\(k\).

    +

    For full documentation refer to numpy.unwrap.

    +
    +
    Parameters:
    +
      +
    • p ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • discont ({float, None}, optional) -- Maximum discontinuity between values, default is None which is an +alias for period / 2. Values below period / 2 are treated as if +they were period / 2. To have an effect different from the default, +discont should be larger than period / 2. +Default: None.

    • +
    • axis (int, optional) -- Axis along which unwrap will operate, default is the last axis. +Default: -1.

    • +
    • period (float, optional) -- Size of the range over which the input wraps. +Default: 2 * pi.

    • +
    +
    +
    Returns:
    +

    out -- Output array.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.rad2deg

    Convert angles from radians to degrees.

    +
    +
    dpnp.deg2rad

    Convert angles from degrees to radians.

    +
    +
    +
    +

    Notes

    +

    If the discontinuity in p is smaller than period / 2, but larger than +discont, no unwrapping is done because taking the complement would only +make the discontinuity larger.

    +

    Examples

    +
    >>> import dpnp as np
    +>>> phase = np.linspace(0, np.pi, num=5)
    +>>> phase[3:] += np.pi
    +>>> phase
    +array([0.        , 0.78539816, 1.57079633, 5.49778714, 6.28318531])
    +>>> np.unwrap(phase)
    +array([ 0.        ,  0.78539816,  1.57079633, -0.78539816,  0.        ])
    +
    +
    +
    >>> phase = np.array([0, 1, 2, -1, 0])
    +>>> np.unwrap(phase, period=4)
    +array([0, 1, 2, 3, 4])
    +
    +
    +
    >>> phase = np.array([1, 2, 3, 4, 5, 6, 1, 2, 3])
    +>>> np.unwrap(phase, period=6)
    +array([1, 2, 3, 4, 5, 6, 7, 8, 9])
    +
    +
    +
    >>> phase = np.array([2, 3, 4, 5, 2, 3, 4, 5])
    +>>> np.unwrap(phase, period=4)
    +array([2, 3, 4, 5, 6, 7, 8, 9])
    +
    +
    +
    >>> phase_deg = np.mod(np.linspace(0 ,720, 19), 360) - 180
    +>>> np.unwrap(phase_deg, period=360)
    +array([-180., -140., -100.,  -60.,  -20.,   20.,   60.,  100.,  140.,
    +        180.,  220.,  260.,  300.,  340.,  380.,  420.,  460.,  500.,
    +        540.])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.vander.html b/pull/2070/reference/generated/dpnp.vander.html new file mode 100644 index 00000000000..be8b3f65131 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.vander.html @@ -0,0 +1,250 @@ + + + + + + + + + + + dpnp.vander — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.vander

    +
    +
    +dpnp.vander(x, /, N=None, increasing=False, *, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Generate a Vandermonde matrix.

    +

    For full documentation refer to numpy.vander.

    +
    +
    Parameters:
    +
      +
    • x (array_like) -- 1-D input array, in any form that can be converted to an array. This +includes scalars, lists, lists of tuples, tuples, tuples of tuples, +tuples of lists, and ndarrays.

    • +
    • N ({None, int}, optional) -- Number of columns in the output. If N is not specified, a square +array is returned (N = len(x)).

    • +
    • increasing (bool, optional) -- Order of the powers of the columns. If True, the powers increase +from left to right, if False (the default) they are reversed.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Vandermonde matrix.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x0 = np.array([1, 2, 3, 5])
    +>>> N = 3
    +>>> np.vander(x0, N)
    +array([[ 1,  1,  1],
    +       [ 4,  2,  1],
    +       [ 9,  3,  1],
    +       [25,  5,  1]])
    +
    +
    +
    >>> np.vander(x0)
    +array([[  1,   1,   1,   1],
    +       [  8,   4,   2,   1],
    +       [ 27,   9,   3,   1],
    +       [125,  25,   5,   1]])
    +
    +
    +
    >>> np.vander(x0, increasing=True)
    +array([[  1,   1,   1,   1],
    +       [  1,   2,   4,   8],
    +       [  1,   3,   9,  27],
    +       [  1,   5,  25, 125]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.vander(x0) # default case
    +>>> x, x.device, x.usm_type
    +(array([[  1,   1,   1,   1],
    +        [  8,   4,   2,   1],
    +        [ 27,   9,   3,   1],
    +        [125,  25,   5,   1]]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.vander(x0, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([[  1,   1,   1,   1],
    +        [  8,   4,   2,   1],
    +        [ 27,   9,   3,   1],
    +        [125,  25,   5,   1]]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.vander(x0, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([[  1,   1,   1,   1],
    +        [  8,   4,   2,   1],
    +        [ 27,   9,   3,   1],
    +        [125,  25,   5,   1]]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.var.html b/pull/2070/reference/generated/dpnp.var.html new file mode 100644 index 00000000000..a858f080003 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.var.html @@ -0,0 +1,237 @@ + + + + + + + + + + + dpnp.var — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.var

    +
    +
    +dpnp.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)[source]
    +

    Compute the variance along the specified axis.

    +

    For full documentation refer to numpy.var.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- Input array.

    • +
    • axis ({None, int, tuple of ints}, optional) -- axis or axes along which the variances must be computed. If a tuple +of unique integers is given, the variances are computed over multiple +axes. If None, the variance is computed over the entire array. +Default: None.

    • +
    • dtype ({None, dtype}, optional) -- Type to use in computing the variance. By default, if a has a +floating-point data type, the returned array will have +the same data type as a. +If a has a boolean or integral data type, the returned array +will have the default floating point data type for the device +where input array a is allocated.

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Alternative output array in which to place the result. It must have +the same shape as the expected output but the type (of the calculated +values) will be cast if necessary.

    • +
    • ddof ({int, float}, optional) -- Means Delta Degrees of Freedom. The divisor used in calculations +is N - ddof, where N corresponds to the total +number of elements over which the variance is calculated. +Default: 0.0.

    • +
    • keepdims ({None, bool}, optional) -- If True, the reduced axes (dimensions) are included in the result +as singleton dimensions, so that the returned array remains +compatible with the input array according to Array Broadcasting +rules. Otherwise, if False, the reduced axes are not included in +the returned array. Default: False.

    • +
    +
    +
    Returns:
    +

    out -- An array containing the variances. If the variance was computed +over the entire array, a zero-dimensional array is returned.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameters where is only supported with its default value. +Otherwise NotImplementedError exception will be raised.

    +

    Notes

    +

    Note that, for complex numbers, the absolute value is taken before squaring, +so that the result is always real and non-negative.

    +
    +

    See also

    +
    +
    dpnp.ndarray.var

    corresponding function for ndarrays.

    +
    +
    dpnp.std

    Compute the standard deviation along the specified axis.

    +
    +
    dpnp.mean

    Compute the arithmetic mean along the specified axis.

    +
    +
    dpnp.nanmean

    Compute the arithmetic mean along the specified axis, ignoring NaNs.

    +
    +
    dpnp.nanstd

    Compute the standard deviation along the specified axis, while ignoring NaNs.

    +
    +
    dpnp.nanvar

    Compute the variance along the specified axis, while ignoring NaNs.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([[1, 2], [3, 4]])
    +>>> np.var(a)
    +array(1.25)
    +>>> np.var(a, axis=0)
    +array([1.,  1.])
    +>>> np.var(a, axis=1)
    +array([0.25,  0.25])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.vdot.html b/pull/2070/reference/generated/dpnp.vdot.html new file mode 100644 index 00000000000..ee0b97bbd3d --- /dev/null +++ b/pull/2070/reference/generated/dpnp.vdot.html @@ -0,0 +1,215 @@ + + + + + + + + + + + dpnp.vdot — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.vdot

    +
    +
    +dpnp.vdot(a, b)[source]
    +

    Return the dot product of two vectors.

    +

    For full documentation refer to numpy.dot.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray, scalar}) -- First input array. Both inputs a and b can not be +scalars at the same time. If a is complex, the complex +conjugate is taken before the calculation of the dot product.

    • +
    • b ({dpnp.ndarray, usm_ndarray, scalar}) -- Second input array. Both inputs a and b can not be +scalars at the same time.

    • +
    +
    +
    Returns:
    +

    out -- Returns the dot product of a and b.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.dot

    Returns the dot product.

    +
    +
    dpnp.matmul

    Returns the matrix product.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1+2j,3+4j])
    +>>> b = np.array([5+6j,7+8j])
    +>>> np.vdot(a, b)
    +array(70-8j)
    +>>> np.vdot(b, a)
    +array(70+8j)
    +
    +
    +

    Note that higher-dimensional arrays are flattened!

    +
    >>> a = np.array([[1, 4], [5, 6]])
    +>>> b = np.array([[4, 1], [2, 2]])
    +>>> np.vdot(a, b)
    +array(30)
    +>>> np.vdot(b, a)
    +array(30)
    +>>> 1*4 + 4*1 + 5*2 + 6*2
    +30
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.vsplit.html b/pull/2070/reference/generated/dpnp.vsplit.html new file mode 100644 index 00000000000..bcd7d51d01f --- /dev/null +++ b/pull/2070/reference/generated/dpnp.vsplit.html @@ -0,0 +1,237 @@ + + + + + + + + + + + dpnp.vsplit — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.vsplit

    +
    +
    +dpnp.vsplit(ary, indices_or_sections)[source]
    +

    Split an array into multiple sub-arrays vertically (row-wise).

    +

    Please refer to the dpnp.split documentation. vsplit +is equivalent to split with ``axis=0``(default), the array +is always split along the first axis regardless of the array dimension.

    +

    For full documentation refer to numpy.vsplit.

    +
    +
    Parameters:
    +
      +
    • ary ({dpnp.ndarray, usm_ndarray}) -- Array to be divided into sub-arrays.

    • +
    • indices_or_sections ({int, sequence of ints}) -- If indices_or_sections is an integer, N, the array will be divided +into N equal arrays along the first axis. If such a split is not +possible, an error is raised. +If indices_or_sections is a sequence of sorted integers, the entries +indicate where along the first axis the array is split.

    • +
    +
    +
    Returns:
    +

    sub-arrays -- A list of sub arrays. Each array is a view of the corresponding input +array.

    +
    +
    Return type:
    +

    list of dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.split

    Split array into multiple sub-arrays of equal size.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x = np.arange(16.0).reshape(4, 4)
    +>>> x
    +array([[ 0.,  1.,  2.,  3.],
    +       [ 4.,  5.,  6.,  7.],
    +       [ 8.,  9., 10., 11.],
    +       [12., 13., 14., 15.]])
    +>>> np.vsplit(x, 2)
    +[array([[0., 1., 2., 3.],
    +        [4., 5., 6., 7.]]),
    + array([[ 8.,  9., 10., 11.],
    +        [12., 13., 14., 15.]])]
    +>>> np.vsplit(x, np.array([3, 6]))
    +[array([[ 0.,  1.,  2.,  3.],
    +        [ 4.,  5.,  6.,  7.],
    +        [ 8.,  9., 10., 11.]]),
    + array([[12., 13., 14., 15.]]),
    + array([], shape=(0, 4), dtype=float64)]
    +
    +
    +

    With a higher dimensional array the split is still along the first axis.

    +
    >>> x = np.arange(8.0).reshape(2, 2, 2)
    +>>> x
    +array([[[0., 1.],
    +        [2., 3.]],
    +       [[4., 5.],
    +        [6., 7.]]])
    +>>> np.vsplit(x, 2)
    +[array([[[0., 1.],
    +         [2., 3.]]]),
    + array([[[4., 5.],
    +         [6., 7.]]])]
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.vstack.html b/pull/2070/reference/generated/dpnp.vstack.html new file mode 100644 index 00000000000..6aa1f340667 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.vstack.html @@ -0,0 +1,230 @@ + + + + + + + + + + + dpnp.vstack — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.vstack

    +
    +
    +dpnp.vstack(tup, *, dtype=None, casting='same_kind')[source]
    +

    Stack arrays in sequence vertically (row wise).

    +

    dpnp.row_stack is an alias for dpnp.vstack. +They are the same function.

    +

    For full documentation refer to numpy.vstack.

    +
    +
    Parameters:
    +
      +
    • tup ({dpnp.ndarray, usm_ndarray}) -- The arrays must have the same shape along all but the first axis. +1-D arrays must have the same length.

    • +
    • dtype (str or dtype) -- If provided, the destination array will have this dtype.

    • +
    • casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) -- Controls what kind of data casting may occur. Defaults to 'same_kind'.

    • +
    +
    +
    Returns:
    +

    out -- The array formed by stacking the given arrays, will be at least 2-D.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.concatenate

    Join a sequence of arrays along an existing axis.

    +
    +
    dpnp.stack

    Join a sequence of arrays along a new axis.

    +
    +
    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    +
    +
    dpnp.dstack

    Stack arrays in sequence depth wise (along third axis).

    +
    +
    dpnp.column_stack

    Stack 1-D arrays as columns into a 2-D array.

    +
    +
    dpnp.block

    Assemble an ndarray from nested lists of blocks.

    +
    +
    dpnp.split

    Split array into a list of multiple sub-arrays of equal size.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.array([1, 2, 3])
    +>>> b = np.array([4, 5, 6])
    +>>> np.vstack((a, b))
    +array([[1, 2, 3],
    +       [4, 5, 6]])
    +
    +
    +
    >>> a = np.array([[1], [2], [3]])
    +>>> b = np.array([[4], [5], [6]])
    +>>> np.vstack((a, b))
    +array([[1],
    +       [2],
    +       [3],
    +       [4],
    +       [5],
    +       [6]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.where.html b/pull/2070/reference/generated/dpnp.where.html new file mode 100644 index 00000000000..a9a519a12a9 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.where.html @@ -0,0 +1,235 @@ + + + + + + + + + + + dpnp.where — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.where

    +
    +
    +dpnp.where(condition, x=None, y=None, /, *, order='K', out=None)[source]
    +

    Return elements chosen from x or y depending on condition.

    +

    When only condition is provided, this function is a shorthand for +dpnp.nonzero(condition).

    +

    For full documentation refer to numpy.where.

    +
    +
    Parameters:
    +
      +
    • condition ({dpnp.ndarray, usm_ndarray}) -- When True, yield x, otherwise yield y.

    • +
    • x ({dpnp.ndarray, usm_ndarray, scalar}, optional) -- Values from which to choose. x, y and condition need to be +broadcastable to some shape.

    • +
    • y ({dpnp.ndarray, usm_ndarray, scalar}, optional) -- Values from which to choose. x, y and condition need to be +broadcastable to some shape.

    • +
    • order ({"K", "C", "F", "A"}, optional) -- Memory layout of the new output array, if keyword out is None. +Default: "K".

    • +
    • out ({None, dpnp.ndarray, usm_ndarray}, optional) -- The array into which the result is written. The data type of out must +match the expected shape and the expected data type of the result. +If None then a new array is returned. +Default: None.

    • +
    +
    +
    Returns:
    +

    y -- An array with elements from x when condition is True, and +elements from y elsewhere.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +
    +

    See also

    +
    +
    dpnp.choose

    Construct an array from an index array and a list of arrays to choose from.

    +
    +
    dpnp.nonzero

    Return the indices of the elements that are non-zero.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> a = np.arange(10)
    +>>> a
    +array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    +>>> np.where(a < 5, a, 10*a)
    +array([ 0,  1,  2,  3,  4, 50, 60, 70, 80, 90])
    +
    +
    +

    This can be used on multidimensional arrays too:

    +
    >>> np.where(np.array([[True, False], [True, True]]),
    +...          np.array([[1, 2], [3, 4]]),
    +...          np.array([[9, 8], [7, 6]]))
    +array([[1, 8],
    +       [3, 4]])
    +
    +
    +

    The shapes of x, y, and the condition are broadcast together:

    +
    >>> x, y = np.ogrid[:3, :4]
    +>>> np.where(x < y, x, 10 + y)  # both x and 10+y are broadcast
    +array([[10,  0,  0,  0],
    +       [10, 11,  1,  1],
    +       [10, 11, 12,  2]])
    +
    +
    +
    >>> a = np.array([[0, 1, 2],
    +...               [0, 2, 4],
    +...               [0, 3, 6]])
    +>>> np.where(a < 4, a, -1)  # -1 is broadcast
    +array([[ 0,  1,  2],
    +       [ 0,  2, -1],
    +       [ 0,  3, -1]])
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.zeros.html b/pull/2070/reference/generated/dpnp.zeros.html new file mode 100644 index 00000000000..092d4869098 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.zeros.html @@ -0,0 +1,243 @@ + + + + + + + + + + + dpnp.zeros — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    + +
    +
    + +
    +

    dpnp.zeros

    +
    +
    +dpnp.zeros(shape, *, dtype=None, order='C', like=None, device=None, usm_type='device', sycl_queue=None)[source]
    +

    Return a new array of given shape and type, filled with zeros.

    +

    For full documentation refer to numpy.zeros.

    +
    +
    Parameters:
    +
      +
    • shape ({int, sequence of ints}) -- Shape of the new array, e.g., (2, 3) or 2.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: "device".

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of zeros with the given shape, dtype, and order.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter like is supported only with default value None. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.zeros_like

    Return an array of zeros with shape and type of input.

    +
    +
    dpnp.empty

    Return a new uninitialized array.

    +
    +
    dpnp.ones

    Return a new array setting values to one.

    +
    +
    dpnp.full

    Return a new array of given shape filled with value.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> np.zeros(5)
    +array([0., 0., 0., 0., 0.])
    +>>> x = np.zeros((2, 1))
    +>>> x.ndim, x.size, x.shape
    +(2, 2, (2, 1))
    +>>> x
    +array([[0.],
    +       [0.]])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.zeros(3) # default case
    +>>> x, x.device, x.usm_type
    +(array([0., 0., 0.]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.zeros(3, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([0., 0., 0.]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.zeros(3, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([0., 0., 0.]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/generated/dpnp.zeros_like.html b/pull/2070/reference/generated/dpnp.zeros_like.html new file mode 100644 index 00000000000..16d2fd97532 --- /dev/null +++ b/pull/2070/reference/generated/dpnp.zeros_like.html @@ -0,0 +1,244 @@ + + + + + + + + + + + dpnp.zeros_like — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    dpnp.zeros_like

    +
    +
    +dpnp.zeros_like(a, /, *, dtype=None, order='C', subok=False, shape=None, device=None, usm_type=None, sycl_queue=None)[source]
    +

    Return an array of zeros with the same shape and type as a given array.

    +

    For full documentation refer to numpy.zeros_like.

    +
    +
    Parameters:
    +
      +
    • a ({dpnp.ndarray, usm_ndarray}) -- The shape and dtype of a define these same attributes +of the returned array.

    • +
    • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. +Default is the default floating point data type for the device where +input array is allocated.

    • +
    • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. +Default: "C".

    • +
    • shape ({None, int, sequence of ints}) -- Overrides the shape of the result.

    • +
    • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. +The device can be None (the default), an OneAPI filter selector +string, an instance of dpctl.SyclDevice corresponding to +a non-partitioned SYCL device, an instance of dpctl.SyclQueue, +or a Device object returned by +dpnp.dpnp_array.dpnp_array.device property.

    • +
    • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. +Default: None.

    • +
    • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying. The +sycl_queue can be passed as None (the default), which means +to get the SYCL queue from device keyword if present or to use +a default queue. +Default: None.

    • +
    +
    +
    Returns:
    +

    out -- Array of zeros with the same shape and type as a.

    +
    +
    Return type:
    +

    dpnp.ndarray

    +
    +
    +

    Limitations

    +

    Parameter order is supported only with values "C", "F" and +None. +Parameter subok is supported only with default value False. +Otherwise, the function raises NotImplementedError exception.

    +
    +

    See also

    +
    +
    dpnp.empty_like

    Return an empty array with shape and type of input.

    +
    +
    dpnp.ones_like

    Return an array of ones with shape and type of input.

    +
    +
    dpnp.full_like

    Return a new array with shape of input filled with value.

    +
    +
    dpnp.zeros

    Return a new array setting values to zero.

    +
    +
    +
    +

    Examples

    +
    >>> import dpnp as np
    +>>> x0 = np.arange(6)
    +>>> x0
    +array([0, 1, 2, 3, 4, 5])
    +>>> np.zeros_like(x0)
    +array([0, 0, 0, 0, 0, 0])
    +
    +
    +

    Creating an array on a different device or with a specified usm_type

    +
    >>> x = np.zeros_like(x0) # default case
    +>>> x, x.device, x.usm_type
    +(array([0, 0, 0, 0, 0, 0]), Device(level_zero:gpu:0), 'device')
    +
    +
    +
    >>> y = np.zeros_like(x0, device="cpu")
    +>>> y, y.device, y.usm_type
    +(array([0, 0, 0, 0, 0, 0]), Device(opencl:cpu:0), 'device')
    +
    +
    +
    >>> z = np.zeros_like(x0, usm_type="host")
    +>>> z, z.device, z.usm_type
    +(array([0, 0, 0, 0, 0, 0]), Device(level_zero:gpu:0), 'host')
    +
    +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/index.html b/pull/2070/reference/index.html new file mode 100644 index 00000000000..8b77ea6c910 --- /dev/null +++ b/pull/2070/reference/index.html @@ -0,0 +1,199 @@ + + + + + + + + + + + API Reference — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/indexing.html b/pull/2070/reference/indexing.html new file mode 100644 index 00000000000..9100e9332d9 --- /dev/null +++ b/pull/2070/reference/indexing.html @@ -0,0 +1,265 @@ + + + + + + + + + + + Indexing routines — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Indexing routines

    +
    +

    Generating index arrays

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

    dpnp.nonzero

    Return the indices of the elements that are non-zero.

    dpnp.where

    Return elements chosen from x or y depending on condition.

    dpnp.indices

    Return an array representing the indices of a grid.

    dpnp.ix_

    Construct an open mesh from multiple sequences.

    dpnp.ogrid

    Construct an open multi-dimensional "meshgrid".

    dpnp.ravel_multi_index

    Converts a tuple of index arrays into an array of flat indices, applying boundary modes to the multi-index.

    dpnp.unravel_index

    Converts array of flat indices into a tuple of coordinate arrays.

    dpnp.diag_indices

    Return the indices to access the main diagonal of an array.

    dpnp.diag_indices_from

    Return the indices to access the main diagonal of an n-dimensional array.

    dpnp.mask_indices

    Return the indices to access (n, n) arrays, given a masking function.

    dpnp.tril_indices

    Return the indices for the lower-triangle of an (n, m) array.

    dpnp.tril_indices_from

    Return the indices for the lower-triangle of arr.

    dpnp.triu_indices

    Return the indices for the upper-triangle of an (n, m) array.

    dpnp.triu_indices_from

    Return the indices for the lower-triangle of arr.

    +
    +
    +

    Indexing-like operations

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

    dpnp.take

    Take elements from an array along an axis.

    dpnp.take_along_axis

    Take values from the input array by matching 1d index and data slices.

    dpnp.choose

    Construct an array from an index array and a set of arrays to choose from.

    dpnp.diag

    Extract a diagonal or construct a diagonal array.

    dpnp.diagonal

    Return specified diagonals.

    dpnp.select

    Return an array drawn from elements in choicelist, depending on conditions.

    +
    +
    +

    Inserting data into arrays

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

    dpnp.place

    Change elements of an array based on conditional and input values.

    dpnp.put

    Puts values of an array into another array along a given axis.

    dpnp.put_along_axis

    Put values into the destination array by matching 1d index and data slices.

    dpnp.putmask

    Changes elements of an array based on conditional and input values.

    dpnp.fill_diagonal

    Fill the main diagonal of the given array of any dimensionality.

    +
    +
    +

    Iterating over arrays

    + + + + + + +

    dpnp.flatiter

    Flat iterator object to iterate over arrays.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/linalg.html b/pull/2070/reference/linalg.html new file mode 100644 index 00000000000..437cf0f712f --- /dev/null +++ b/pull/2070/reference/linalg.html @@ -0,0 +1,286 @@ + + + + + + + + + + + Linear Algebra — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Linear Algebra

    +
    +

    Matrix and vector products

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

    dpnp.dot

    Dot product of a and b.

    dpnp.linalg.multi_dot

    Compute the dot product of two or more arrays in a single function call.

    dpnp.vdot

    Return the dot product of two vectors.

    dpnp.inner

    Returns the inner product of two arrays.

    dpnp.outer

    Returns the outer product of two arrays.

    dpnp.matmul

    Matrix product of two arrays.

    dpnp.tensordot

    Compute tensor dot product along specified axes.

    dpnp.einsum

    Evaluates the Einstein summation convention on the operands.

    dpnp.einsum_path

    Evaluates the lowest cost contraction order for an einsum expression by considering the creation of intermediate arrays.

    dpnp.linalg.matrix_power

    Raise a square matrix to the (integer) power n.

    dpnp.kron

    Kronecker product of two arrays.

    +
    +
    +

    Decompositions

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

    dpnp.linalg.cholesky

    Cholesky decomposition.

    dpnp.linalg.qr

    Compute the qr factorization of a matrix.

    dpnp.linalg.svd

    Singular Value Decomposition.

    +
    +
    +

    Matrix eigenvalues

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

    dpnp.linalg.eig

    Compute the eigenvalues and right eigenvectors of a square array.

    dpnp.linalg.eigh

    Return the eigenvalues and eigenvectors of a complex Hermitian (conjugate symmetric) or a real symmetric matrix.

    dpnp.linalg.eigvals

    Compute the eigenvalues of a general matrix.

    dpnp.linalg.eigvalsh

    Compute the eigenvalues of a complex Hermitian or real symmetric matrix.

    +
    +
    +

    Norms and other numbers

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

    dpnp.linalg.norm

    Matrix or vector norm.

    dpnp.linalg.cond

    Compute the condition number of a matrix.

    dpnp.linalg.det

    Compute the determinant of an array.

    dpnp.linalg.matrix_rank

    Return matrix rank of array using SVD method.

    dpnp.linalg.slogdet

    Compute the sign and (natural) logarithm of the determinant of an array.

    dpnp.trace

    Return the sum along diagonals of the array.

    +
    +
    +

    Solving linear equations

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

    dpnp.linalg.solve

    Solve a linear matrix equation, or system of linear scalar equations.

    dpnp.linalg.tensorsolve

    Solve the tensor equation a x = b for x.

    dpnp.linalg.lstsq

    Return the least-squares solution to a linear matrix equation.

    dpnp.linalg.inv

    Compute the (multiplicative) inverse of a matrix.

    dpnp.linalg.pinv

    Compute the (Moore-Penrose) pseudo-inverse of a matrix.

    dpnp.linalg.tensorinv

    Compute the 'inverse' of an N-dimensional array.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/logic.html b/pull/2070/reference/logic.html new file mode 100644 index 00000000000..45f1e227862 --- /dev/null +++ b/pull/2070/reference/logic.html @@ -0,0 +1,273 @@ + + + + + + + + + + + Logic Functions — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Logic Functions

    +
    +

    Truth value testing

    + + + + + + + + + +

    dpnp.all

    Test whether all array elements along a given axis evaluate to True.

    dpnp.any

    Test whether any array element along a given axis evaluates to True.

    +
    +
    +

    Infinities and NaNs

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

    dpnp.isfinite

    Test if each element of input array is a finite number.

    dpnp.isinf

    Test if each element of input array is an infinity.

    dpnp.isnan

    Test if each element of an input array is a NaN.

    dpnp.isneginf

    Test element-wise for negative infinity, return result as bool array.

    dpnp.isposinf

    Test element-wise for positive infinity, return result as bool array.

    +
    +
    +

    Array type testing

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

    dpnp.iscomplex

    Returns a bool array, where True if input element is complex.

    dpnp.iscomplexobj

    Check for a complex type or an array of complex numbers.

    dpnp.isreal

    Returns a bool array, where True if input element is real.

    dpnp.isrealobj

    Return True if x is a not complex type or an array of complex numbers.

    dpnp.isscalar

    Returns True if the type of element is a scalar type.

    +
    +
    +

    Logic operations

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

    dpnp.logical_and

    Computes the logical AND for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logical_or

    Computes the logical OR for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logical_not

    Computes the logical NOT for each element x_i of input array x.

    dpnp.logical_xor

    Computes the logical XOR for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    +
    +
    +

    Comparison

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

    dpnp.allclose

    Returns True if two arrays are element-wise equal within a tolerance.

    dpnp.isclose

    Returns a boolean array where two arrays are element-wise equal within a tolerance.

    dpnp.array_equal

    True if two arrays have the same shape and elements, False otherwise.

    dpnp.array_equiv

    Returns True if input arrays are shape consistent and all elements equal.

    dpnp.greater

    Computes the greater-than test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.greater_equal

    Computes the greater-than or equal-to test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.less

    Computes the less-than test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.less_equal

    Computes the less-than or equal-to test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.equal

    Calculates equality test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.not_equal

    Calculates inequality test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/manipulation.html b/pull/2070/reference/manipulation.html new file mode 100644 index 00000000000..40a1cde35df --- /dev/null +++ b/pull/2070/reference/manipulation.html @@ -0,0 +1,394 @@ + + + + + + + + + + + Array Manipulation Routines — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Array Manipulation Routines

    +
    +

    Basic operations

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

    dpnp.copyto

    Copies values from one array to another, broadcasting as necessary.

    dpnp.ndim

    Return the number of dimensions of array-like input.

    dpnp.shape

    Return the shape of an array.

    dpnp.size

    Return the number of elements along a given axis.

    +
    +
    +

    Changing array shape

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

    dpnp.reshape

    Gives a new shape to an array without changing its data.

    dpnp.ravel

    Return a contiguous flattened array.

    dpnp.ndarray.flat

    Return a flat iterator, or set a flattened version of self to value.

    dpnp.ndarray.flatten

    Return a copy of the array collapsed into one dimension.

    +
    +
    +

    Transpose-like operations

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

    dpnp.moveaxis

    Move axes of an array to new positions.

    dpnp.rollaxis

    Roll the specified axis backwards, until it lies in a given position.

    dpnp.swapaxes

    Interchange two axes of an array.

    dpnp.ndarray.T

    View of the transposed array.

    dpnp.transpose

    Returns an array with axes transposed.

    dpnp.permute_dims

    Returns an array with axes transposed.

    +
    +
    +

    Changing number of dimensions

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

    dpnp.atleast_1d

    Convert inputs to arrays with at least one dimension.

    dpnp.atleast_2d

    View inputs as arrays with at least two dimensions.

    dpnp.atleast_3d

    View inputs as arrays with at least three dimensions.

    dpnp.broadcast_to

    Broadcast an array to a new shape.

    dpnp.broadcast_arrays

    Broadcast any number of arrays against each other.

    dpnp.expand_dims

    Expand the shape of an array.

    dpnp.squeeze

    Removes singleton dimensions (axes) from array a.

    +
    +
    +

    Changing kind of array

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

    dpnp.asarray

    Converts an input object into array.

    dpnp.asanyarray

    Convert the input to an dpnp.ndarray.

    dpnp.asnumpy

    Returns the NumPy array with input data.

    dpnp.asfarray

    Return an array converted to a float type.

    dpnp.asfortranarray

    Return an array (ndim >= 1) laid out in Fortran order in memory.

    dpnp.ascontiguousarray

    Return a contiguous array in memory (C order).

    dpnp.asarray_chkfinite

    Convert the input to an array, checking for NaNs or Infs.

    dpnp.require

    Return a dpnp.ndarray of the provided type that satisfies requirements.

    +
    +
    +

    Joining arrays

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

    dpnp.concatenate

    Join a sequence of arrays along an existing axis.

    dpnp.concat

    Join a sequence of arrays along an existing axis.

    dpnp.stack

    Join a sequence of arrays along a new axis.

    dpnp.vstack

    Stack arrays in sequence vertically (row wise).

    dpnp.hstack

    Stack arrays in sequence horizontally (column wise).

    dpnp.dstack

    Stack arrays in sequence depth wise (along third axis).

    dpnp.column_stack

    Stacks 1-D and 2-D arrays as columns into a 2-D array.

    dpnp.row_stack

    Stack arrays in sequence vertically (row wise).

    +
    +
    +

    Splitting arrays

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

    dpnp.split

    Split an array into multiple sub-arrays as views into ary.

    dpnp.array_split

    Split an array into multiple sub-arrays.

    dpnp.dsplit

    Split array into multiple sub-arrays along the 3rd axis (depth).

    dpnp.hsplit

    Split an array into multiple sub-arrays horizontally (column-wise).

    dpnp.vsplit

    Split an array into multiple sub-arrays vertically (row-wise).

    +
    +
    +

    Tiling arrays

    + + + + + + + + + +

    dpnp.tile

    Construct an array by repeating A the number of times given by reps.

    dpnp.repeat

    Repeat elements of an array.

    +
    +
    +

    Adding and removing elements

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

    dpnp.append

    Append values to the end of an array.

    dpnp.resize

    Return a new array with the specified shape.

    dpnp.trim_zeros

    Trim the leading and/or trailing zeros from a 1-D array.

    dpnp.unique

    Find the unique elements of an array.

    +
    +
    +

    Rearranging elements

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

    dpnp.flip

    Reverse the order of elements in an array along the given axis.

    dpnp.fliplr

    Reverse the order of elements along axis 1 (left/right).

    dpnp.flipud

    Reverse the order of elements along axis 0 (up/down).

    dpnp.roll

    Roll the elements of an array by a number of positions along a given axis.

    dpnp.rot90

    Rotate an array by 90 degrees in the plane specified by axes.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/math.html b/pull/2070/reference/math.html new file mode 100644 index 00000000000..1f383030ad8 --- /dev/null +++ b/pull/2070/reference/math.html @@ -0,0 +1,570 @@ + + + + + + + + + + + Mathematical functions — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Mathematical functions

    +
    +

    Trigonometric functions

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

    dpnp.sin

    Computes sine for each element x_i of input array x.

    dpnp.cos

    Computes cosine for each element x_i for input array x.

    dpnp.tan

    Computes tangent for each element x_i for input array x.

    dpnp.arcsin

    Computes inverse sine for each element x_i for input array x.

    dpnp.asin

    Computes inverse sine for each element x_i for input array x.

    dpnp.arccos

    Computes inverse cosine for each element x_i for input array x.

    dpnp.acos

    Computes inverse cosine for each element x_i for input array x.

    dpnp.arctan

    Computes inverse tangent for each element x_i for input array x.

    dpnp.atan

    Computes inverse tangent for each element x_i for input array x.

    dpnp.hypot

    Calculates the hypotenuse for a right triangle with "legs" x1_i and x2_i of input arrays x1 and x2.

    dpnp.arctan2

    Calculates the inverse tangent of the quotient x1_i/x2_i for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.atan2

    Calculates the inverse tangent of the quotient x1_i/x2_i for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.degrees

    Convert angles from radians to degrees.

    dpnp.radians

    Convert angles from degrees to radians.

    dpnp.unwrap

    Unwrap by taking the complement of large deltas with respect to the period.

    dpnp.deg2rad

    Convert angles from degrees to radians.

    dpnp.rad2deg

    Convert angles from radians to degrees.

    dpnp.reduce_hypot

    Calculates the square root of the sum of squares of elements in the input array.

    +
    +
    +

    Hyperbolic functions

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

    dpnp.sinh

    Computes hyperbolic sine for each element x_i for input array x.

    dpnp.cosh

    Computes hyperbolic cosine for each element x_i for input array x.

    dpnp.tanh

    Computes hyperbolic tangent for each element x_i for input array x.

    dpnp.arcsinh

    Computes inverse hyperbolic sine for each element x_i for input array x.

    dpnp.asinh

    Computes inverse hyperbolic sine for each element x_i for input array x.

    dpnp.arccosh

    Computes inverse hyperbolic cosine for each element x_i for input array x.

    dpnp.acosh

    Computes inverse hyperbolic cosine for each element x_i for input array x.

    dpnp.arctanh

    Computes hyperbolic inverse tangent for each element x_i for input array x.

    dpnp.atanh

    Computes hyperbolic inverse tangent for each element x_i for input array x.

    +
    +
    +

    Rounding

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

    dpnp.round

    Rounds each element x_i of the input array x to the nearest integer-valued number.

    dpnp.around

    Round an array to the given number of decimals.

    dpnp.rint

    Rounds each element x_i of the input array x to the nearest integer-valued number.

    dpnp.fix

    Round to nearest integer towards zero.

    dpnp.floor

    Returns the floor for each element x_i for input array x.

    dpnp.ceil

    Returns the ceiling for each element x_i for input array x.

    dpnp.trunc

    Returns the truncated value for each element x_i for input array x.

    +
    +
    +

    Sums, products, differences

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

    dpnp.prod

    Return the product of array elements over a given axis.

    dpnp.sum

    Sum of array elements over a given axis.

    dpnp.nanprod

    Return the product of array elements over a given axis treating Not a Numbers (NaNs) as ones.

    dpnp.nansum

    Return the sum of array elements over a given axis treating Not a Numbers (NaNs) as zero.

    dpnp.cumprod

    Return the cumulative product of elements along a given axis.

    dpnp.cumsum

    Return the cumulative sum of the elements along a given axis.

    dpnp.nancumprod

    Return the cumulative product of array elements over a given axis treating Not a Numbers (NaNs) as zero.

    dpnp.nancumsum

    Return the cumulative sum of array elements over a given axis treating Not a Numbers (NaNs) as zero.

    dpnp.diff

    Calculate the n-th discrete difference along the given axis.

    dpnp.ediff1d

    The differences between consecutive elements of an array.

    dpnp.gradient

    Return the gradient of an N-dimensional array.

    dpnp.cross

    Return the cross product of two (arrays of) vectors.

    dpnp.trapezoid

    Integrate along the given axis using the composite trapezoidal rule.

    +
    +
    +

    Exponents and logarithms

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

    dpnp.exp

    Computes the exponent for each element x_i of input array x.

    dpnp.expm1

    Computes the exponent minus 1 for each element x_i of input array x.

    dpnp.exp2

    Computes the base-2 exponent for each element x_i for input array x.

    dpnp.log

    Computes the natural logarithm for each element x_i of input array x.

    dpnp.log10

    Computes the base-10 logarithm for each element x_i of input array x.

    dpnp.log2

    Computes the base-2 logarithm for each element x_i of input array x.

    dpnp.log1p

    Computes the natural logarithm of (1 + x) for each element x_i of input array x.

    dpnp.logaddexp

    Calculates the natural logarithm of the sum of exponents for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logaddexp2

    Calculates the logarithm of the sum of exponents in base-2 for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logsumexp

    Calculates the logarithm of the sum of exponents of elements in the input array.

    dpnp.cumlogsumexp

    Calculates the cumulative logarithm of the sum of elements in the input array x.

    +
    +
    +

    Other special functions

    + + + +
    +
    +
    +

    Floating point routines

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

    dpnp.signbit

    Computes an indication of whether the sign bit of each element x_i of input array x is set.

    dpnp.copysign

    Composes a floating-point value with the magnitude of x1_i and the sign of x2_i for each element of input arrays x1 and x2.

    dpnp.nextafter

    Return the next floating-point value after x1 towards x2, element-wise.

    +
    +
    +

    Rational routines

    + + + +
    +
    +
    +

    Arithmetic operations

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

    dpnp.add

    Calculates the sum for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.reciprocal

    Computes the reciprocal square-root for each element x_i for input array x.

    dpnp.positive

    Computes the numerical positive for each element x_i of input array x.

    dpnp.negative

    Computes the numerical negative for each element x_i of input array x.

    dpnp.multiply

    Calculates the product for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.divide

    Calculates the ratio for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.power

    Calculates x1_i raised to x2_i for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.pow

    Calculates x1_i raised to x2_i for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.subtract

    Calculates the difference between each element x1_i of the input array x1 and the respective element x2_i of the input array x2.

    dpnp.true_divide

    Calculates the ratio for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.floor_divide

    Calculates the ratio for each element x1_i of the input array x1 with the respective element x2_i of the input array x2 to the greatest integer-value number that is not greater than the division result.

    dpnp.float_power

    Calculates x1_i raised to x2_i for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.fmod

    Calculates the remainder of division for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.mod

    Calculates the remainder of division for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.modf

    Return the fractional and integral parts of an array, element-wise.

    dpnp.remainder

    Calculates the remainder of division for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    +
    +
    +

    Handling complex numbers

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

    dpnp.angle

    Computes the phase angle (also called the argument) of each element x_i for input array x.

    dpnp.real

    Computes real part of each element x_i for input array x.

    dpnp.imag

    Computes imaginary part of each element x_i for input array x.

    dpnp.conj

    Computes conjugate of each element x_i for input array x.

    dpnp.conjugate

    Computes conjugate of each element x_i for input array x.

    dpnp.proj

    Computes projection of each element x_i for input array x.

    +
    +
    +

    Extrema finding

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

    dpnp.maximum

    Compares two input arrays x1 and x2 and returns a new array containing the element-wise maxima.

    dpnp.max

    Return the maximum of an array or maximum along an axis.

    dpnp.amax

    Return the maximum of an array or maximum along an axis.

    dpnp.fmax

    Compares two input arrays x1 and x2 and returns a new array containing the element-wise maxima.

    dpnp.nanmax

    Return the maximum of an array or maximum along an axis, ignoring any NaNs.

    dpnp.minimum

    Compares two input arrays x1 and x2 and returns a new array containing the element-wise minima.

    dpnp.min

    Return the minimum of an array or maximum along an axis.

    dpnp.amin

    Return the minimum of an array or minimum along an axis.

    dpnp.fmin

    Compares two input arrays x1 and x2 and returns a new array containing the element-wise minima.

    dpnp.nanmin

    Return the minimum of an array or minimum along an axis, ignoring any NaNs.

    +
    +
    +

    Miscellaneous

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

    dpnp.convolve

    Returns the discrete, linear convolution of two one-dimensional sequences.

    dpnp.clip

    Clip (limit) the values in an array.

    dpnp.sqrt

    Computes the positive square-root for each element x_i of input array x.

    dpnp.cbrt

    Computes positive cube-root for each element x_i for input array x.

    dpnp.square

    Squares each element x_i of input array x.

    dpnp.rsqrt

    Computes the reciprocal square-root for each element x_i for input array x.

    dpnp.abs

    Calculates the absolute value for each element x_i of input array x.

    dpnp.absolute

    Calculates the absolute value for each element x_i of input array x.

    dpnp.fabs

    Compute the absolute values element-wise.

    dpnp.sign

    Computes an indication of the sign of each element x_i of input array x using the signum function.

    dpnp.heaviside

    Compute the Heaviside step function.

    dpnp.nan_to_num

    Replace NaN with zero and infinity with large finite numbers (default behavior) or with the numbers defined by the user using the nan, posinf and/or neginf keywords.

    dpnp.real_if_close

    If input is complex with all imaginary parts close to zero, return real parts.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/misc.html b/pull/2070/reference/misc.html new file mode 100644 index 00000000000..8ecb3f708bd --- /dev/null +++ b/pull/2070/reference/misc.html @@ -0,0 +1,154 @@ + + + + + + + + + + + Miscellaneous routines — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Miscellaneous routines

    +
    +

    Utility

    + + + + + + +

    dpnp.get_include

    Return the directory that contains *.h header files of dpnp C++ backend.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/ndarray.html b/pull/2070/reference/ndarray.html new file mode 100644 index 00000000000..1813fb9fcd1 --- /dev/null +++ b/pull/2070/reference/ndarray.html @@ -0,0 +1,773 @@ + + + + + + + + + + + Multi-Dimensional Array (ndarray) — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Multi-Dimensional Array (ndarray)

    +

    dpnp.ndarray is the DPNP counterpart of NumPy numpy.ndarray.

    +

    For the basic concept of ndarrays, please refer to the NumPy documentation.

    + + + + + + + + + +

    dpnp.ndarray

    alias of dpnp_array

    dpnp.dpnp_array.dpnp_array

    Multi-dimensional array object.

    +
    +

    Constructing arrays

    +

    New arrays can be constructed using the routines detailed in +Array Creation Routines, and also by using the low-level +dpnp.ndarray constructor:

    + + + + + + +

    dpnp.ndarray

    alias of dpnp_array

    +
    +
    +

    Indexing arrays

    +

    Arrays can be indexed using an extended Python slicing syntax, +array[selection].

    +
    +

    See also

    +

    Indexing routines.

    +
    +
    +
    +

    Array attributes

    +

    Array attributes reflect information that is intrinsic to the array +itself. Generally, accessing an array through its attributes allows +you to get and sometimes set intrinsic properties of the array without +creating a new array. The exposed attributes are the core parts of an +array and only some of them can be reset meaningfully without creating +a new array. Information on each attribute is given below.

    +
    +
    +

    Memory layout

    +

    The following attributes contain information about the memory layout +of the array:

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

    dpnp.ndarray.flags

    Return information about the memory layout of the array.

    dpnp.ndarray.shape

    Tuple of array dimensions.

    dpnp.ndarray.strides

    Returns memory displacement in array elements, upon unit change of respective index.

    dpnp.ndarray.ndim

    Return the number of dimensions of an array.

    dpnp.ndarray.size

    Number of elements in the array.

    dpnp.ndarray.itemsize

    Size of one array element in bytes.

    dpnp.ndarray.nbytes

    Total bytes consumed by the elements of the array.

    +
    +
    +

    Data type

    + +

    The data type object associated with the array can be found in the +dtype attribute:

    + + + + + + +

    dpnp.ndarray.dtype

    Returns NumPy's dtype corresponding to the type of the array elements.

    +
    +
    +

    Other attributes

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

    dpnp.ndarray.T

    View of the transposed array.

    dpnp.ndarray.real

    The real part of the array.

    dpnp.ndarray.imag

    The imaginary part of the array.

    dpnp.ndarray.flat

    Return a flat iterator, or set a flattened version of self to value.

    +
    +
    +

    Array methods

    +

    An dpnp.ndarray object has many methods which operate on or with +the array in some fashion, typically returning an array result. These +methods are briefly explained below. (Each method's docstring has a +more complete description.)

    +

    For the following methods there are also corresponding functions in +dpnp: all, any, +argmax, argmin, +argpartition, argsort, +choose, clip, +compress, copy, +cumprod, cumsum, +diagonal, imag, +max, mean, min, +nonzero, partition, +prod, put, +ravel, real, repeat, +reshape, round, +searchsorted, sort, +squeeze, std, sum, +swapaxes, take, trace, +transpose, var.

    +
    +
    +

    Array conversion

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

    dpnp.ndarray.item

    Copy an element of an array to a standard Python scalar and return it.

    dpnp.ndarray.astype

    Copy the array with data type casting.

    dpnp.ndarray.copy

    Return a copy of the array.

    dpnp.ndarray.fill

    Fill the array with a scalar value.

    +
    +
    +

    Shape manipulation

    +

    For reshape, resize, and transpose, the single tuple argument may be +replaced with n integers which will be interpreted as an n-tuple.

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

    dpnp.ndarray.reshape

    Returns an array containing the same data with a new shape.

    dpnp.ndarray.transpose

    Returns a view of the array with axes transposed.

    dpnp.ndarray.swapaxes

    Interchange two axes of an array.

    dpnp.ndarray.flatten

    Return a copy of the array collapsed into one dimension.

    dpnp.ndarray.ravel

    Return a contiguous flattened array.

    dpnp.ndarray.squeeze

    Remove single-dimensional entries from the shape of an array.

    +
    +
    +

    Item selection and manipulation

    +

    For array methods that take an axis keyword, it defaults to +None. If axis is None, then the array is treated as a 1-D +array. Any other value for axis represents the dimension along which +the operation should proceed.

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

    dpnp.ndarray.take

    Take elements from an array along an axis.

    dpnp.ndarray.put

    Puts values of an array into another array along a given axis.

    dpnp.ndarray.repeat

    Repeat elements of an array.

    dpnp.ndarray.choose

    Construct an array from an index array and a set of arrays to choose from.

    dpnp.ndarray.sort

    Sort an array in-place.

    dpnp.ndarray.argsort

    Return an ndarray of indices that sort the array along the specified axis.

    dpnp.ndarray.partition

    Return a partitioned copy of an array.

    dpnp.ndarray.searchsorted

    Find indices where elements of v should be inserted in a to maintain order.

    dpnp.ndarray.nonzero

    Return the indices of the elements that are non-zero.

    dpnp.ndarray.diagonal

    Return specified diagonals.

    +
    +
    +

    Calculation

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

    dpnp.ndarray.max

    Return the maximum along an axis.

    dpnp.ndarray.argmax

    Returns array of indices of the maximum values along the given axis.

    dpnp.ndarray.min

    Return the minimum along a given axis.

    dpnp.ndarray.argmin

    Return array of indices to the minimum values along the given axis.

    dpnp.ndarray.clip

    Clip (limit) the values in an array.

    dpnp.ndarray.conj

    Complex-conjugate all elements.

    dpnp.ndarray.conjugate

    Return the complex conjugate, element-wise.

    dpnp.ndarray.round

    Return array with each element rounded to the given number of decimals.

    dpnp.ndarray.trace

    Return the sum along diagonals of the array.

    dpnp.ndarray.sum

    Returns the sum along a given axis.

    dpnp.ndarray.cumsum

    Return the cumulative sum of the elements along the given axis.

    dpnp.ndarray.mean

    Returns the average of the array elements.

    dpnp.ndarray.var

    Returns the variance of the array elements, along given axis.

    dpnp.ndarray.std

    Returns the standard deviation of the array elements, along given axis.

    dpnp.ndarray.prod

    Returns the prod along a given axis.

    dpnp.ndarray.cumprod

    Return the cumulative product of the elements along the given axis.

    dpnp.ndarray.all

    Returns True if all elements evaluate to True.

    dpnp.ndarray.any

    Returns True if any of the elements of a evaluate to True.

    +
    +
    +

    Arithmetic, matrix multiplication, and comparison operations

    +

    Arithmetic and comparison operations on dpnp.ndarrays +are defined as element-wise operations, and generally yield +dpnp.ndarray objects as results.

    +

    Each of the arithmetic operations (+, -, *, /, //, +%, divmod(), ** or pow(), <<, >>, &, +^, |, ~) and the comparisons (==, <, >, +<=, >=, !=) is equivalent to the corresponding +universal function (or ufunc for short) in DPNP. For +more information, see the section on Universal Functions.

    +

    Comparison operators:

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

    dpnp.ndarray.__lt__

    Return self<value.

    dpnp.ndarray.__le__

    Return self<=value.

    dpnp.ndarray.__gt__

    Return self>value.

    dpnp.ndarray.__ge__

    Return self>=value.

    dpnp.ndarray.__eq__

    Return self==value.

    dpnp.ndarray.__ne__

    Return self!=value.

    +

    Truth value of an array (bool()):

    + + + + + + +

    dpnp.ndarray.__bool__()

    True if self else False.

    +
    +

    Note

    +

    Truth-value testing of an array invokes +dpnp.ndarray.__bool__(), which raises an error if the number of +elements in the array is larger than 1, because the truth value +of such arrays is ambiguous. Use .any() and +.all() instead to be clear about what is meant +in such cases. (If the number of elements is 0, the array evaluates +to False.)

    +
    +

    Unary operations:

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

    dpnp.ndarray.__neg__

    Return -self.

    dpnp.ndarray.__pos__

    Return +self.

    dpnp.ndarray.__abs__

    Return \|self\|.

    dpnp.ndarray.__invert__

    Return ~self.

    +

    Arithmetic:

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

    dpnp.ndarray.__add__

    Return self+value.

    dpnp.ndarray.__sub__

    Return self-value.

    dpnp.ndarray.__mul__

    Return self*value.

    dpnp.ndarray.__truediv__

    Return self/value.

    dpnp.ndarray.__floordiv__

    Return self//value.

    dpnp.ndarray.__mod__

    Return self%value.

    dpnp.ndarray.__pow__

    Return self**value.

    dpnp.ndarray.__lshift__

    Return self<<value.

    dpnp.ndarray.__rshift__

    Return self>>value.

    dpnp.ndarray.__and__

    Return self&value.

    dpnp.ndarray.__or__

    Return self|value.

    dpnp.ndarray.__xor__

    Return self^value.

    +

    Arithmetic, in-place:

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

    dpnp.ndarray.__iadd__

    Return self+=value.

    dpnp.ndarray.__isub__

    Return self-=value.

    dpnp.ndarray.__imul__

    Return self*=value.

    dpnp.ndarray.__itruediv__

    Return self/=value.

    dpnp.ndarray.__ifloordiv__

    Return self//=value.

    dpnp.ndarray.__imod__

    Return self%=value.

    dpnp.ndarray.__ipow__

    Return self**=value.

    dpnp.ndarray.__ilshift__

    Return self<<=value.

    dpnp.ndarray.__irshift__

    Return self>>=value.

    dpnp.ndarray.__iand__

    Return self&=value.

    dpnp.ndarray.__ior__

    Return self|=value.

    dpnp.ndarray.__ixor__

    Return self^=value.

    +

    Matrix Multiplication:

    + + + + + + +

    dpnp.ndarray.__matmul__(other)

    Return self@value.

    +
    +
    +

    Special methods

    +

    For standard library functions:

    + + + + + + +

    dpnp.ndarray.__copy__

    Used if copy.copy() is called on an array.

    +

    Basic customization:

    + + + + + + +

    dpnp.ndarray.__new__

    +

    Container customization: (see Indexing)

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

    dpnp.ndarray.__len__

    Return len(self).

    dpnp.ndarray.__getitem__

    Return self[key].

    dpnp.ndarray.__setitem__

    Set self[key] to value.

    +

    Conversion; the operations int(), +float() and complex(). +They work only on arrays that have one element in them +and return the appropriate scalar.

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

    dpnp.ndarray.__int__

    dpnp.ndarray.__float__

    dpnp.ndarray.__complex__

    +

    String representations:

    + + + + + + + + + +

    dpnp.ndarray.__str__

    Return str(self).

    dpnp.ndarray.__repr__

    Return repr(self).

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/pad.html b/pull/2070/reference/pad.html new file mode 100644 index 00000000000..01105139670 --- /dev/null +++ b/pull/2070/reference/pad.html @@ -0,0 +1,127 @@ + + + + + + + + + + + Padding — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Padding

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

    © Copyright 2020-2024, Intel Corporation.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/polynomials.html b/pull/2070/reference/polynomials.html new file mode 100644 index 00000000000..1d90b77a121 --- /dev/null +++ b/pull/2070/reference/polynomials.html @@ -0,0 +1,157 @@ + + + + + + + + + + + Polynomials — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Polynomials

    +
    +

    Polynomial Package

    +
    +

    Polynomial Module

    + + + +
    +
    +
    +

    Polyutils

    + + + +
    +
    +
    +
    +

    Poly1d

    +
    +

    Basics

    + + + +
    +
    +
    +

    Arithmetic

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

    © Copyright 2020-2024, Intel Corporation.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/random.html b/pull/2070/reference/random.html new file mode 100644 index 00000000000..5f684700e77 --- /dev/null +++ b/pull/2070/reference/random.html @@ -0,0 +1,334 @@ + + + + + + + + + + + Random Sampling (dpnp.random) — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Random Sampling (dpnp.random)

    +
    +

    Simple random data

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

    rand

    Random values in a given shape.

    randn

    Return a sample (or samples) from the "standard normal" distribution.

    randint

    Return random integers from low (inclusive) to high (exclusive).

    random_integers

    Random integers between low and high, inclusive.

    random_sample

    Return random floats in the half-open interval [0.0, 1.0).

    random

    Return random floats in the half-open interval [0.0, 1.0).

    ranf

    Return random floats in the half-open interval [0.0, 1.0).

    sample

    Return random floats in the half-open interval [0.0, 1.0).

    choice

    Generates a random sample from a given 1-D array.

    bytes

    Return random bytes.

    +
    +
    +

    Permutations

    + + + + + + + + + +

    shuffle

    Modify a sequence in-place by shuffling its contents.

    permutation

    Randomly permute a sequence, or return a permuted range.

    +
    +
    +

    Distributions

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

    beta

    Draw samples from a Beta distribution.

    binomial

    Draw samples from a binomial distribution.

    chisquare

    Draw samples from a chi-square distribution.

    dirichlet

    Draw samples from the Dirichlet distribution.

    exponential

    Draw samples from an exponential distribution.

    f

    Draw samples from an F distribution.

    gamma

    Draw samples from a Gamma distribution.

    geometric

    Draw samples from the geometric distribution.

    gumbel

    Draw samples from a Gumbel distribution.

    hypergeometric

    Draw samples from a Hypergeometric distribution.

    laplace

    Draw samples from the Laplace or double exponential distribution with specified location (or mean) and scale (decay).

    logistic

    Draw samples from a logistic distribution.

    lognormal

    Draw samples from a log-normal distribution.

    logseries

    Draw samples from a logarithmic series distribution.

    multinomial

    Draw samples from a multinomial distribution.

    multivariate_normal

    Draw random samples from a multivariate normal distribution.

    negative_binomial

    Draw samples from a negative binomial distribution.

    noncentral_chisquare

    Draw samples from a non-central chi-square distribution.

    noncentral_f

    Draw samples from the non-central F distribution.

    normal

    Draw random samples from a normal (Gaussian) distribution.

    pareto

    Draw samples from a Pareto II or Lomax distribution with specified shape.

    poisson

    Draw samples from a Poisson distribution.

    power

    Draws samples in [0, 1] from a power distribution with positive exponent a - 1.

    rayleigh

    Draw samples from a Rayleigh distribution.

    standard_cauchy

    Draw samples from a standard Cauchy distribution with mode = 0.

    standard_exponential

    Draw samples from the standard exponential distribution.

    standard_gamma

    Draw samples from a standard Gamma distribution.

    standard_normal

    Draw samples from a standard Normal distribution (mean=0, stdev=1).

    standard_t

    Draw samples from a standard Student’s t distribution with df degrees of freedom.

    triangular

    Draw samples from the triangular distribution over the interval [left, right].

    uniform

    Draw samples from a uniform distribution.

    vonmises

    Draw samples from a von Mises distribution.

    wald

    Draw samples from a Wald, or inverse Gaussian, distribution.

    weibull

    Draw samples from a Weibull distribution.

    zipf

    Returns an array of samples drawn from the Zipf distribution.

    +
    +
    +

    Random generator

    + + + + + + + + + +

    RandomState

    A container for the Mersenne Twister pseudo-random number generator.

    seed

    Reseed a legacy MT19937 random number generator engine.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/routines.html b/pull/2070/reference/routines.html new file mode 100644 index 00000000000..ad3db219b0c --- /dev/null +++ b/pull/2070/reference/routines.html @@ -0,0 +1,261 @@ + + + + + + + + + + + Routines — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Routines

    +

    The following pages describe NumPy-compatible routines. +These functions cover a subset of +NumPy routines.

    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/sorting.html b/pull/2070/reference/sorting.html new file mode 100644 index 00000000000..e30c890205a --- /dev/null +++ b/pull/2070/reference/sorting.html @@ -0,0 +1,228 @@ + + + + + + + + + + + Sorting, Searching, and Counting — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Sorting, Searching, and Counting

    +
    +

    Sorting

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

    dpnp.sort

    Return a sorted copy of an array.

    dpnp.argsort

    Returns the indices that would sort an array.

    dpnp.sort_complex

    Sort a complex array using the real part first, then the imaginary part.

    dpnp.partition

    Return a partitioned copy of an array.

    +
    +

    See also

    +

    dpnp.ndarray.sort()

    +
    +
    +
    +

    Searching

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

    dpnp.argmax

    Returns the indices of the maximum values along an axis.

    dpnp.nanargmax

    Returns the indices of the maximum values along an axis ignoring NaNs.

    dpnp.argmin

    Returns the indices of the minimum values along an axis.

    dpnp.nanargmin

    Returns the indices of the minimum values along an axis ignoring NaNs.

    dpnp.argwhere

    Find the indices of array elements that are non-zero, grouped by element.

    dpnp.nonzero

    Return the indices of the elements that are non-zero.

    dpnp.flatnonzero

    Return indices that are non-zero in the flattened version of a.

    dpnp.where

    Return elements chosen from x or y depending on condition.

    dpnp.searchsorted

    Find indices where elements should be inserted to maintain order.

    dpnp.extract

    Return the elements of an array that satisfy some condition.

    +
    +
    +

    Counting

    + + + + + + +

    dpnp.count_nonzero

    Counts the number of non-zero values in the array a.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/special.html b/pull/2070/reference/special.html new file mode 100644 index 00000000000..c0d0c1828d9 --- /dev/null +++ b/pull/2070/reference/special.html @@ -0,0 +1,154 @@ + + + + + + + + + + + Special Functions — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Special Functions

    +
    +

    Error Function

    + + + + + + +

    dpnp.erf

    Returns the error function of complex argument.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/statistics.html b/pull/2070/reference/statistics.html new file mode 100644 index 00000000000..c14ab68bb90 --- /dev/null +++ b/pull/2070/reference/statistics.html @@ -0,0 +1,232 @@ + + + + + + + + + + + Statistical Functions — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Statistical Functions

    +
    +

    Order statistics

    + + + + + + +

    dpnp.ptp

    Range of values (maximum - minimum) along an axis.

    +
    +
    +

    Averages and variances

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

    dpnp.median

    Compute the median along the specified axis.

    dpnp.average

    Compute the weighted average along the specified axis.

    dpnp.mean

    Compute the arithmetic mean along the specified axis.

    dpnp.std

    Compute the standard deviation along the specified axis.

    dpnp.var

    Compute the variance along the specified axis.

    dpnp.nanmean

    Compute the arithmetic mean along the specified axis, ignoring NaNs.

    dpnp.nanvar

    Compute the variance along the specified axis, while ignoring NaNs.

    dpnp.nanstd

    Compute the standard deviation along the specified axis, while ignoring NaNs.

    +
    +
    +

    Correlations

    + + + + + + + + + +

    dpnp.cov

    Estimate a covariance matrix, given data and weights.

    dpnp.correlate

    Cross-correlation of two 1-dimensional sequences.

    +
    +
    +

    Histograms

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

    dpnp.histogram

    Compute the histogram of a data set.

    dpnp.bincount

    Count number of occurrences of each value in array of non-negative integers.

    dpnp.histogram_bin_edges

    Function to calculate only the edges of the bins used by the dpnp.histogram function.

    dpnp.digitize

    Return the indices of the bins to which each value in input array belongs.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/reference/ufunc.html b/pull/2070/reference/ufunc.html new file mode 100644 index 00000000000..d29eb294698 --- /dev/null +++ b/pull/2070/reference/ufunc.html @@ -0,0 +1,459 @@ + + + + + + + + + + + Universal Functions (ufunc) — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Universal Functions (ufunc)

    +

    DPNP provides universal functions (a.k.a. ufuncs) to support various element-wise operations.

    +
    +

    Available ufuncs

    +
    +

    Math operations

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

    dpnp.add

    Calculates the sum for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.subtract

    Calculates the difference between each element x1_i of the input array x1 and the respective element x2_i of the input array x2.

    dpnp.multiply

    Calculates the product for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.matmul

    Matrix product of two arrays.

    dpnp.divide

    Calculates the ratio for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logaddexp

    Calculates the natural logarithm of the sum of exponents for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logaddexp2

    Calculates the logarithm of the sum of exponents in base-2 for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.true_divide

    Calculates the ratio for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.floor_divide

    Calculates the ratio for each element x1_i of the input array x1 with the respective element x2_i of the input array x2 to the greatest integer-value number that is not greater than the division result.

    dpnp.negative

    Computes the numerical negative for each element x_i of input array x.

    dpnp.positive

    Computes the numerical positive for each element x_i of input array x.

    dpnp.power

    Calculates x1_i raised to x2_i for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.float_power

    Calculates x1_i raised to x2_i for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.remainder

    Calculates the remainder of division for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.mod

    Calculates the remainder of division for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.fmod

    Calculates the remainder of division for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.absolute

    Calculates the absolute value for each element x_i of input array x.

    dpnp.fabs

    Compute the absolute values element-wise.

    dpnp.rint

    Rounds each element x_i of the input array x to the nearest integer-valued number.

    dpnp.sign

    Computes an indication of the sign of each element x_i of input array x using the signum function.

    dpnp.heaviside

    Compute the Heaviside step function.

    dpnp.conj

    Computes conjugate of each element x_i for input array x.

    dpnp.conjugate

    Computes conjugate of each element x_i for input array x.

    dpnp.exp

    Computes the exponent for each element x_i of input array x.

    dpnp.exp2

    Computes the base-2 exponent for each element x_i for input array x.

    dpnp.log

    Computes the natural logarithm for each element x_i of input array x.

    dpnp.log2

    Computes the base-2 logarithm for each element x_i of input array x.

    dpnp.log10

    Computes the base-10 logarithm for each element x_i of input array x.

    dpnp.expm1

    Computes the exponent minus 1 for each element x_i of input array x.

    dpnp.log1p

    Computes the natural logarithm of (1 + x) for each element x_i of input array x.

    dpnp.proj

    Computes projection of each element x_i for input array x.

    dpnp.sqrt

    Computes the positive square-root for each element x_i of input array x.

    dpnp.square

    Squares each element x_i of input array x.

    dpnp.cbrt

    Computes positive cube-root for each element x_i for input array x.

    dpnp.reciprocal

    Computes the reciprocal square-root for each element x_i for input array x.

    dpnp.rsqrt

    Computes the reciprocal square-root for each element x_i for input array x.

    +
    +

    Tip

    +

    The optional output arguments can be used to help you save memory +for large calculations. If your arrays are large, complicated +expressions can take longer than absolutely necessary due to the +creation and (later) destruction of temporary calculation +spaces. For example, the expression G = A * B + C is equivalent to +T1 = A * B; G = T1 + C; del T1. It will be more quickly executed +as G = A * B; add(G, C, G) which is the same as +G = A * B; G += C.

    +
    +
    +
    +

    Trigonometric functions

    +

    All trigonometric functions use radians when an angle is called for. +The ratio of degrees to radians is \(180^{\circ}/\pi.\)

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

    dpnp.sin

    Computes sine for each element x_i of input array x.

    dpnp.cos

    Computes cosine for each element x_i for input array x.

    dpnp.tan

    Computes tangent for each element x_i for input array x.

    dpnp.arcsin

    Computes inverse sine for each element x_i for input array x.

    dpnp.arccos

    Computes inverse cosine for each element x_i for input array x.

    dpnp.arctan

    Computes inverse tangent for each element x_i for input array x.

    dpnp.arctan2

    Calculates the inverse tangent of the quotient x1_i/x2_i for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.hypot

    Calculates the hypotenuse for a right triangle with "legs" x1_i and x2_i of input arrays x1 and x2.

    dpnp.sinh

    Computes hyperbolic sine for each element x_i for input array x.

    dpnp.cosh

    Computes hyperbolic cosine for each element x_i for input array x.

    dpnp.tanh

    Computes hyperbolic tangent for each element x_i for input array x.

    dpnp.arcsinh

    Computes inverse hyperbolic sine for each element x_i for input array x.

    dpnp.arccosh

    Computes inverse hyperbolic cosine for each element x_i for input array x.

    dpnp.arctanh

    Computes hyperbolic inverse tangent for each element x_i for input array x.

    dpnp.degrees

    Convert angles from radians to degrees.

    dpnp.radians

    Convert angles from degrees to radians.

    dpnp.deg2rad

    Convert angles from degrees to radians.

    dpnp.rad2deg

    Convert angles from radians to degrees.

    +
    +
    +

    Bit-twiddling functions

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

    dpnp.bitwise_and

    Computes the bitwise AND of the underlying binary representation of each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.bitwise_or

    Computes the bitwise OR of the underlying binary representation of each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.bitwise_xor

    Computes the bitwise XOR of the underlying binary representation of each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.invert

    Inverts (flips) each bit for each element x_i of the input array x.

    dpnp.left_shift

    Shifts the bits of each element x1_i of the input array x1 to the left by appending x2_i (i.e., the respective element in the input array x2) zeros to the right of x1_i.

    dpnp.right_shift

    Shifts the bits of each element x1_i of the input array x1 to the right according to the respective element x2_i of the input array x2.

    +
    +
    +

    Comparison functions

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

    dpnp.greater

    Computes the greater-than test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.greater_equal

    Computes the greater-than or equal-to test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.less

    Computes the less-than test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.less_equal

    Computes the less-than or equal-to test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.not_equal

    Calculates inequality test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.equal

    Calculates equality test results for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logical_and

    Computes the logical AND for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logical_or

    Computes the logical OR for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logical_xor

    Computes the logical XOR for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.logical_not

    Computes the logical NOT for each element x_i of input array x.

    dpnp.maximum

    Compares two input arrays x1 and x2 and returns a new array containing the element-wise maxima.

    dpnp.minimum

    Compares two input arrays x1 and x2 and returns a new array containing the element-wise minima.

    dpnp.fmax

    Compares two input arrays x1 and x2 and returns a new array containing the element-wise maxima.

    dpnp.fmin

    Compares two input arrays x1 and x2 and returns a new array containing the element-wise minima.

    +
    +
    +

    Floating functions

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

    dpnp.isfinite

    Test if each element of input array is a finite number.

    dpnp.isinf

    Test if each element of input array is an infinity.

    dpnp.isnan

    Test if each element of an input array is a NaN.

    dpnp.fabs

    Compute the absolute values element-wise.

    dpnp.signbit

    Computes an indication of whether the sign bit of each element x_i of input array x is set.

    dpnp.copysign

    Composes a floating-point value with the magnitude of x1_i and the sign of x2_i for each element of input arrays x1 and x2.

    dpnp.nextafter

    Return the next floating-point value after x1 towards x2, element-wise.

    dpnp.modf

    Return the fractional and integral parts of an array, element-wise.

    dpnp.fmod

    Calculates the remainder of division for each element x1_i of the input array x1 with the respective element x2_i of the input array x2.

    dpnp.floor

    Returns the floor for each element x_i for input array x.

    dpnp.ceil

    Returns the ceiling for each element x_i for input array x.

    dpnp.trunc

    Returns the truncated value for each element x_i for input array x.

    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/pull/2070/search.html b/pull/2070/search.html new file mode 100644 index 00000000000..71175c9c85c --- /dev/null +++ b/pull/2070/search.html @@ -0,0 +1,139 @@ + + + + + + + + + + Search — Data Parallel Extension for NumPy 0.16.0dev1+17.g69a3b6ac3c2 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + + + + +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2020-2024, Intel Corporation.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/pull/2070/searchindex.js b/pull/2070/searchindex.js new file mode 100644 index 00000000000..f1503813fed --- /dev/null +++ b/pull/2070/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"API Reference": [[488, null]], "Adding and removing elements": [[492, "adding-and-removing-elements"]], "Arithmetic": [[497, "arithmetic"]], "Arithmetic operations": [[493, "arithmetic-operations"]], "Arithmetic, matrix multiplication, and comparison operations": [[495, "arithmetic-matrix-multiplication-and-comparison-operations"]], "Array Manipulation Routines": [[492, null]], "Array attributes": [[495, "array-attributes"]], "Array conversion": [[495, "array-conversion"]], "Array creation routines": [[7, null]], "Array methods": [[495, "array-methods"]], "Array type testing": [[491, "array-type-testing"]], "Available array data types": [[9, null]], "Available ufuncs": [[503, "available-ufuncs"]], "Averages and variances": [[502, "averages-and-variances"]], "Background information": [[10, "background-information"]], "Basic operations": [[492, "basic-operations"]], "Basics": [[497, "basics"]], "Binary Operations": [[5, null]], "Bit packing": [[5, "bit-packing"]], "Bit-twiddling functions": [[503, "bit-twiddling-functions"]], "Build and Install Conda Package": [[4, "build-and-install-conda-package"]], "Build and Install with scikit-build": [[4, "build-and-install-with-scikit-build"]], "Building for custom SYCL targets": [[4, "building-for-custom-sycl-targets"]], "Building matrices": [[7, "building-matrices"]], "C++ backend API Reference": [[1, null]], "Calculation": [[495, "calculation"]], "Changing array shape": [[492, "changing-array-shape"]], "Changing kind of array": [[492, "changing-kind-of-array"]], "Changing number of dimensions": [[492, "changing-number-of-dimensions"]], "Comparison": [[491, "comparison"]], "Comparison Table NumPy/ DPNP/ CuPy": [[6, null]], "Comparison functions": [[503, "comparison-functions"]], "Constructing arrays": [[495, "constructing-arrays"]], "Correlations": [[502, "correlations"]], "Counting": [[500, "counting"]], "Creating data types": [[8, "creating-data-types"]], "Data Parallel Extension for NumPy*": [[2, null]], "Data type": [[495, "data-type"]], "Data type information": [[8, "data-type-information"]], "Data type routines": [[8, null]], "Data type testing": [[8, "data-type-testing"]], "Decompositions": [[490, "decompositions"]], "Development information": [[2, null]], "Device Drivers": [[4, "device-drivers"]], "Discrete Fourier Transform": [[6, "discrete-fourier-transform"]], "Distributions": [[498, "distributions"]], "Element-wise bit operations": [[5, "element-wise-bit-operations"]], "Error Function": [[501, "error-function"]], "Example": [[0, "example"]], "Examples": [[4, "examples"]], "Exponents and logarithms": [[493, "exponents-and-logarithms"]], "Extrema finding": [[493, "extrema-finding"]], "FFT Functions": [[10, null]], "Floating functions": [[503, "floating-functions"]], "Floating point routines": [[493, "floating-point-routines"]], "From existing data": [[7, "from-existing-data"]], "From shape or value": [[7, "from-shape-or-value"]], "Generating index arrays": [[489, "generating-index-arrays"]], "Handling complex numbers": [[493, "handling-complex-numbers"]], "Helper routines": [[10, "helper-routines"]], "Hermitian FFTs": [[10, "hermitian-ffts"]], "Higher dimensions": [[10, "higher-dimensions"]], "Histograms": [[502, "histograms"]], "Hyperbolic functions": [[493, "hyperbolic-functions"]], "Implementation details": [[10, "implementation-details"]], "Indexing arrays": [[495, "indexing-arrays"]], "Indexing routines": [[489, null]], "Indexing-like operations": [[489, "indexing-like-operations"]], "Infinities and NaNs": [[491, "infinities-and-nans"]], "Inserting data into arrays": [[489, "inserting-data-into-arrays"]], "Install Package from Intel(R) channel": [[4, "install-package-from-intel-r-channel"]], "Installation": [[4, "installation"]], "Interplay with the Data Parallel Control Library": [[0, null]], "Item selection and manipulation": [[495, "item-selection-and-manipulation"]], "Iterating over arrays": [[489, "iterating-over-arrays"]], "Joining arrays": [[492, "joining-arrays"]], "Linear Algebra": [[6, "linear-algebra"], [490, null]], "Logic Functions": [[491, null]], "Logic operations": [[491, "logic-operations"]], "Math operations": [[503, "math-operations"]], "Mathematical functions": [[493, null]], "Matrix and vector products": [[490, "matrix-and-vector-products"]], "Matrix eigenvalues": [[490, "matrix-eigenvalues"]], "Memory layout": [[495, "memory-layout"]], "Miscellaneous": [[8, "miscellaneous"], [493, "miscellaneous"]], "Miscellaneous routines": [[494, null]], "Module-Level": [[6, "module-level"]], "Multi-Dimensional Array": [[6, "multi-dimensional-array"]], "Multi-Dimensional Array (ndarray)": [[495, null]], "Normalization": [[10, "normalization"]], "Norms and other numbers": [[490, "norms-and-other-numbers"]], "Numerical ranges": [[7, "numerical-ranges"]], "Order statistics": [[502, "order-statistics"]], "Other attributes": [[495, "other-attributes"]], "Other special functions": [[493, "other-special-functions"]], "Output formatting": [[5, "output-formatting"]], "Overview": [[3, null]], "Padding": [[496, null]], "Permutations": [[498, "permutations"]], "Poly1d": [[497, "poly1d"]], "Polynomial Module": [[497, "polynomial-module"]], "Polynomial Package": [[497, "polynomial-package"]], "Polynomials": [[497, null]], "Polyutils": [[497, "polyutils"]], "Python Interpreter": [[4, "python-interpreter"]], "Quick Start Guide": [[4, null]], "Random Sampling": [[6, "random-sampling"]], "Random Sampling (dpnp.random)": [[498, null]], "Random generator": [[498, "random-generator"]], "Rational routines": [[493, "rational-routines"]], "Real FFTs": [[10, "real-ffts"]], "Real and Hermitian transforms": [[10, "real-and-hermitian-transforms"]], "Rearranging elements": [[492, "rearranging-elements"]], "Rounding": [[493, "rounding"]], "Routines": [[499, null]], "Searching": [[500, "searching"]], "Shape manipulation": [[495, "shape-manipulation"]], "Simple random data": [[498, "simple-random-data"]], "Solving linear equations": [[490, "solving-linear-equations"]], "Sorting": [[500, "sorting"]], "Sorting, Searching, and Counting": [[500, null]], "Special Functions": [[501, null]], "Special methods": [[495, "special-methods"]], "Splitting arrays": [[492, "splitting-arrays"]], "Standard FFTs": [[10, "standard-ffts"]], "Statistical Functions": [[502, null]], "Summary": [[6, "summary"]], "Sums, products, differences": [[493, "sums-products-differences"]], "Testing": [[4, "testing"]], "The Matrix class": [[7, "the-matrix-class"]], "Tiling arrays": [[492, "tiling-arrays"]], "Transpose-like operations": [[492, "transpose-like-operations"]], "Trigonometric functions": [[493, "trigonometric-functions"], [503, "trigonometric-functions"]], "Truth value testing": [[491, "truth-value-testing"]], "Universal Functions (ufunc)": [[503, null]], "Utility": [[494, "utility"]], "dpnp.abs": [[11, null]], "dpnp.absolute": [[12, null]], "dpnp.acos": [[13, null]], "dpnp.acosh": [[14, null]], "dpnp.add": [[15, null]], "dpnp.all": [[16, null]], "dpnp.allclose": [[17, null]], "dpnp.amax": [[18, null]], "dpnp.amin": [[19, null]], "dpnp.angle": [[20, null]], "dpnp.any": [[21, null]], "dpnp.append": [[22, null]], "dpnp.arange": [[23, null]], "dpnp.arccos": [[24, null]], "dpnp.arccosh": [[25, null]], "dpnp.arcsin": [[26, null]], "dpnp.arcsinh": [[27, null]], "dpnp.arctan": [[28, null]], "dpnp.arctan2": [[29, null]], "dpnp.arctanh": [[30, null]], "dpnp.argmax": [[31, null]], "dpnp.argmin": [[32, null]], "dpnp.argsort": [[33, null]], "dpnp.argwhere": [[34, null]], "dpnp.around": [[35, null]], "dpnp.array": [[36, null]], "dpnp.array_equal": [[37, null]], "dpnp.array_equiv": [[38, null]], "dpnp.array_split": [[39, null]], "dpnp.asanyarray": [[40, null]], "dpnp.asarray": [[41, null]], "dpnp.asarray_chkfinite": [[42, null]], "dpnp.ascontiguousarray": [[43, null]], "dpnp.asfarray": [[44, null]], "dpnp.asfortranarray": [[45, null]], "dpnp.asin": [[46, null]], "dpnp.asinh": [[47, null]], "dpnp.asnumpy": [[48, null]], "dpnp.astype": [[49, null]], "dpnp.atan": [[50, null]], "dpnp.atan2": [[51, null]], "dpnp.atanh": [[52, null]], "dpnp.atleast_1d": [[53, null]], "dpnp.atleast_2d": [[54, null]], "dpnp.atleast_3d": [[55, null]], "dpnp.average": [[56, null]], "dpnp.bincount": [[57, null]], "dpnp.bitwise_and": [[58, null]], "dpnp.bitwise_not": [[59, null]], "dpnp.bitwise_or": [[60, null]], "dpnp.bitwise_xor": [[61, null]], "dpnp.broadcast_arrays": [[62, null]], "dpnp.broadcast_to": [[63, null]], "dpnp.can_cast": [[64, null]], "dpnp.cbrt": [[65, null]], "dpnp.ceil": [[66, null]], "dpnp.choose": [[67, null]], "dpnp.clip": [[68, null]], "dpnp.column_stack": [[69, null]], "dpnp.concat": [[70, null]], "dpnp.concatenate": [[71, null]], "dpnp.conj": [[72, null]], "dpnp.conjugate": [[73, null]], "dpnp.convolve": [[74, null]], "dpnp.copy": [[75, null]], "dpnp.copysign": [[76, null]], "dpnp.copyto": [[77, null]], "dpnp.correlate": [[78, null]], "dpnp.cos": [[79, null]], "dpnp.cosh": [[80, null]], "dpnp.count_nonzero": [[81, null]], "dpnp.cov": [[82, null]], "dpnp.cross": [[83, null]], "dpnp.cumlogsumexp": [[84, null]], "dpnp.cumprod": [[85, null]], "dpnp.cumsum": [[86, null]], "dpnp.deg2rad": [[87, null]], "dpnp.degrees": [[88, null]], "dpnp.diag": [[89, null]], "dpnp.diag_indices": [[90, null]], "dpnp.diag_indices_from": [[91, null]], "dpnp.diagflat": [[92, null]], "dpnp.diagonal": [[93, null]], "dpnp.diff": [[94, null]], "dpnp.digitize": [[95, null]], "dpnp.divide": [[96, null]], "dpnp.dot": [[97, null]], "dpnp.dpnp_array.dpnp_array": [[98, null]], "dpnp.dsplit": [[99, null]], "dpnp.dstack": [[100, null]], "dpnp.dtype": [[101, null]], "dpnp.ediff1d": [[102, null]], "dpnp.einsum": [[103, null]], "dpnp.einsum_path": [[104, null]], "dpnp.empty": [[105, null]], "dpnp.empty_like": [[106, null]], "dpnp.equal": [[107, null]], "dpnp.erf": [[108, null]], "dpnp.exp": [[109, null]], "dpnp.exp2": [[110, null]], "dpnp.expand_dims": [[111, null]], "dpnp.expm1": [[112, null]], "dpnp.extract": [[113, null]], "dpnp.eye": [[114, null]], "dpnp.fabs": [[115, null]], "dpnp.fft.fft": [[116, null]], "dpnp.fft.fft2": [[117, null]], "dpnp.fft.fftfreq": [[118, null]], "dpnp.fft.fftn": [[119, null]], "dpnp.fft.fftshift": [[120, null]], "dpnp.fft.hfft": [[121, null]], "dpnp.fft.ifft": [[122, null]], "dpnp.fft.ifft2": [[123, null]], "dpnp.fft.ifftn": [[124, null]], "dpnp.fft.ifftshift": [[125, null]], "dpnp.fft.ihfft": [[126, null]], "dpnp.fft.irfft": [[127, null]], "dpnp.fft.irfft2": [[128, null]], "dpnp.fft.irfftn": [[129, null]], "dpnp.fft.rfft": [[130, null]], "dpnp.fft.rfft2": [[131, null]], "dpnp.fft.rfftfreq": [[132, null]], "dpnp.fft.rfftn": [[133, null]], "dpnp.fill_diagonal": [[134, null]], "dpnp.finfo": [[135, null]], "dpnp.fix": [[136, null]], "dpnp.flatiter": [[137, null]], "dpnp.flatnonzero": [[138, null]], "dpnp.flip": [[139, null]], "dpnp.fliplr": [[140, null]], "dpnp.flipud": [[141, null]], "dpnp.float_power": [[142, null]], "dpnp.floor": [[143, null]], "dpnp.floor_divide": [[144, null]], "dpnp.fmax": [[145, null]], "dpnp.fmin": [[146, null]], "dpnp.fmod": [[147, null]], "dpnp.from_dlpack": [[148, null]], "dpnp.frombuffer": [[149, null]], "dpnp.fromfile": [[150, null]], "dpnp.fromfunction": [[151, null]], "dpnp.fromiter": [[152, null]], "dpnp.fromstring": [[153, null]], "dpnp.full": [[154, null]], "dpnp.full_like": [[155, null]], "dpnp.geomspace": [[156, null]], "dpnp.get_include": [[157, null]], "dpnp.gradient": [[158, null]], "dpnp.greater": [[159, null]], "dpnp.greater_equal": [[160, null]], "dpnp.heaviside": [[161, null]], "dpnp.histogram": [[162, null]], "dpnp.histogram_bin_edges": [[163, null]], "dpnp.hsplit": [[164, null]], "dpnp.hstack": [[165, null]], "dpnp.hypot": [[166, null]], "dpnp.identity": [[167, null]], "dpnp.iinfo": [[168, null]], "dpnp.imag": [[169, null]], "dpnp.indices": [[170, null]], "dpnp.inner": [[171, null]], "dpnp.invert": [[172, null]], "dpnp.isclose": [[173, null]], "dpnp.iscomplex": [[174, null]], "dpnp.iscomplexobj": [[175, null]], "dpnp.isfinite": [[176, null]], "dpnp.isinf": [[177, null]], "dpnp.isnan": [[178, null]], "dpnp.isneginf": [[179, null]], "dpnp.isposinf": [[180, null]], "dpnp.isreal": [[181, null]], "dpnp.isrealobj": [[182, null]], "dpnp.isscalar": [[183, null]], "dpnp.issubdtype": [[184, null]], "dpnp.ix_": [[185, null]], "dpnp.kron": [[186, null]], "dpnp.left_shift": [[187, null]], "dpnp.less": [[188, null]], "dpnp.less_equal": [[189, null]], "dpnp.linalg.cholesky": [[190, null]], "dpnp.linalg.cond": [[191, null]], "dpnp.linalg.det": [[192, null]], "dpnp.linalg.eig": [[193, null]], "dpnp.linalg.eigh": [[194, null]], "dpnp.linalg.eigvals": [[195, null]], "dpnp.linalg.eigvalsh": [[196, null]], "dpnp.linalg.inv": [[197, null]], "dpnp.linalg.lstsq": [[198, null]], "dpnp.linalg.matrix_power": [[199, null]], "dpnp.linalg.matrix_rank": [[200, null]], "dpnp.linalg.multi_dot": [[201, null]], "dpnp.linalg.norm": [[202, null]], "dpnp.linalg.pinv": [[203, null]], "dpnp.linalg.qr": [[204, null]], "dpnp.linalg.slogdet": [[205, null]], "dpnp.linalg.solve": [[206, null]], "dpnp.linalg.svd": [[207, null]], "dpnp.linalg.tensorinv": [[208, null]], "dpnp.linalg.tensorsolve": [[209, null]], "dpnp.linspace": [[210, null]], "dpnp.loadtxt": [[211, null]], "dpnp.log": [[212, null]], "dpnp.log10": [[213, null]], "dpnp.log1p": [[214, null]], "dpnp.log2": [[215, null]], "dpnp.logaddexp": [[216, null]], "dpnp.logaddexp2": [[217, null]], "dpnp.logical_and": [[218, null]], "dpnp.logical_not": [[219, null]], "dpnp.logical_or": [[220, null]], "dpnp.logical_xor": [[221, null]], "dpnp.logspace": [[222, null]], "dpnp.logsumexp": [[223, null]], "dpnp.mask_indices": [[224, null]], "dpnp.matmul": [[225, null]], "dpnp.max": [[226, null]], "dpnp.maximum": [[227, null]], "dpnp.mean": [[228, null]], "dpnp.median": [[229, null]], "dpnp.meshgrid": [[230, null]], "dpnp.mgrid": [[231, null]], "dpnp.min": [[232, null]], "dpnp.minimum": [[233, null]], "dpnp.mod": [[234, null]], "dpnp.modf": [[235, null]], "dpnp.moveaxis": [[236, null]], "dpnp.multiply": [[237, null]], "dpnp.nan_to_num": [[238, null]], "dpnp.nanargmax": [[239, null]], "dpnp.nanargmin": [[240, null]], "dpnp.nancumprod": [[241, null]], "dpnp.nancumsum": [[242, null]], "dpnp.nanmax": [[243, null]], "dpnp.nanmean": [[244, null]], "dpnp.nanmin": [[245, null]], "dpnp.nanprod": [[246, null]], "dpnp.nanstd": [[247, null]], "dpnp.nansum": [[248, null]], "dpnp.nanvar": [[249, null]], "dpnp.ndarray": [[250, null]], "dpnp.ndarray.T": [[251, null]], "dpnp.ndarray.__abs__": [[252, null]], "dpnp.ndarray.__add__": [[253, null]], "dpnp.ndarray.__and__": [[254, null]], "dpnp.ndarray.__bool__": [[255, null]], "dpnp.ndarray.__complex__": [[256, null]], "dpnp.ndarray.__copy__": [[257, null]], "dpnp.ndarray.__eq__": [[258, null]], "dpnp.ndarray.__float__": [[259, null]], "dpnp.ndarray.__floordiv__": [[260, null]], "dpnp.ndarray.__ge__": [[261, null]], "dpnp.ndarray.__getitem__": [[262, null]], "dpnp.ndarray.__gt__": [[263, null]], "dpnp.ndarray.__iadd__": [[264, null]], "dpnp.ndarray.__iand__": [[265, null]], "dpnp.ndarray.__ifloordiv__": [[266, null]], "dpnp.ndarray.__ilshift__": [[267, null]], "dpnp.ndarray.__imod__": [[268, null]], "dpnp.ndarray.__imul__": [[269, null]], "dpnp.ndarray.__int__": [[270, null]], "dpnp.ndarray.__invert__": [[271, null]], "dpnp.ndarray.__ior__": [[272, null]], "dpnp.ndarray.__ipow__": [[273, null]], "dpnp.ndarray.__irshift__": [[274, null]], "dpnp.ndarray.__isub__": [[275, null]], "dpnp.ndarray.__itruediv__": [[276, null]], "dpnp.ndarray.__ixor__": [[277, null]], "dpnp.ndarray.__le__": [[278, null]], "dpnp.ndarray.__len__": [[279, null]], "dpnp.ndarray.__lshift__": [[280, null]], "dpnp.ndarray.__lt__": [[281, null]], "dpnp.ndarray.__matmul__": [[282, null]], "dpnp.ndarray.__mod__": [[283, null]], "dpnp.ndarray.__mul__": [[284, null]], "dpnp.ndarray.__ne__": [[285, null]], "dpnp.ndarray.__neg__": [[286, null]], "dpnp.ndarray.__new__": [[287, null]], "dpnp.ndarray.__or__": [[288, null]], "dpnp.ndarray.__pos__": [[289, null]], "dpnp.ndarray.__pow__": [[290, null]], "dpnp.ndarray.__repr__": [[291, null]], "dpnp.ndarray.__rshift__": [[292, null]], "dpnp.ndarray.__setitem__": [[293, null]], "dpnp.ndarray.__str__": [[294, null]], "dpnp.ndarray.__sub__": [[295, null]], "dpnp.ndarray.__truediv__": [[296, null]], "dpnp.ndarray.__xor__": [[297, null]], "dpnp.ndarray.all": [[298, null]], "dpnp.ndarray.any": [[299, null]], "dpnp.ndarray.argmax": [[300, null]], "dpnp.ndarray.argmin": [[301, null]], "dpnp.ndarray.argsort": [[302, null]], "dpnp.ndarray.astype": [[303, null]], "dpnp.ndarray.choose": [[304, null]], "dpnp.ndarray.clip": [[305, null]], "dpnp.ndarray.conj": [[306, null]], "dpnp.ndarray.conjugate": [[307, null]], "dpnp.ndarray.copy": [[308, null]], "dpnp.ndarray.cumprod": [[309, null]], "dpnp.ndarray.cumsum": [[310, null]], "dpnp.ndarray.diagonal": [[311, null]], "dpnp.ndarray.dtype": [[312, null]], "dpnp.ndarray.fill": [[313, null]], "dpnp.ndarray.flags": [[314, null]], "dpnp.ndarray.flat": [[315, null]], "dpnp.ndarray.flatten": [[316, null]], "dpnp.ndarray.imag": [[317, null]], "dpnp.ndarray.item": [[318, null]], "dpnp.ndarray.itemsize": [[319, null]], "dpnp.ndarray.max": [[320, null]], "dpnp.ndarray.mean": [[321, null]], "dpnp.ndarray.min": [[322, null]], "dpnp.ndarray.nbytes": [[323, null]], "dpnp.ndarray.ndim": [[324, null]], "dpnp.ndarray.nonzero": [[325, null]], "dpnp.ndarray.partition": [[326, null]], "dpnp.ndarray.prod": [[327, null]], "dpnp.ndarray.put": [[328, null]], "dpnp.ndarray.ravel": [[329, null]], "dpnp.ndarray.real": [[330, null]], "dpnp.ndarray.repeat": [[331, null]], "dpnp.ndarray.reshape": [[332, null]], "dpnp.ndarray.round": [[333, null]], "dpnp.ndarray.searchsorted": [[334, null]], "dpnp.ndarray.shape": [[335, null]], "dpnp.ndarray.size": [[336, null]], "dpnp.ndarray.sort": [[337, null]], "dpnp.ndarray.squeeze": [[338, null]], "dpnp.ndarray.std": [[339, null]], "dpnp.ndarray.strides": [[340, null]], "dpnp.ndarray.sum": [[341, null]], "dpnp.ndarray.swapaxes": [[342, null]], "dpnp.ndarray.take": [[343, null]], "dpnp.ndarray.trace": [[344, null]], "dpnp.ndarray.transpose": [[345, null]], "dpnp.ndarray.var": [[346, null]], "dpnp.ndim": [[347, null]], "dpnp.negative": [[348, null]], "dpnp.nextafter": [[349, null]], "dpnp.nonzero": [[350, null]], "dpnp.not_equal": [[351, null]], "dpnp.ogrid": [[352, null]], "dpnp.ones": [[353, null]], "dpnp.ones_like": [[354, null]], "dpnp.outer": [[355, null]], "dpnp.partition": [[356, null]], "dpnp.permute_dims": [[357, null]], "dpnp.place": [[358, null]], "dpnp.positive": [[359, null]], "dpnp.pow": [[360, null]], "dpnp.power": [[361, null]], "dpnp.prod": [[362, null]], "dpnp.proj": [[363, null]], "dpnp.ptp": [[364, null]], "dpnp.put": [[365, null]], "dpnp.put_along_axis": [[366, null]], "dpnp.putmask": [[367, null]], "dpnp.rad2deg": [[368, null]], "dpnp.radians": [[369, null]], "dpnp.random.RandomState": [[370, null]], "dpnp.random.beta": [[371, null]], "dpnp.random.binomial": [[372, null]], "dpnp.random.bytes": [[373, null]], "dpnp.random.chisquare": [[374, null]], "dpnp.random.choice": [[375, null]], "dpnp.random.dirichlet": [[376, null]], "dpnp.random.exponential": [[377, null]], "dpnp.random.f": [[378, null]], "dpnp.random.gamma": [[379, null]], "dpnp.random.geometric": [[380, null]], "dpnp.random.gumbel": [[381, null]], "dpnp.random.hypergeometric": [[382, null]], "dpnp.random.laplace": [[383, null]], "dpnp.random.logistic": [[384, null]], "dpnp.random.lognormal": [[385, null]], "dpnp.random.logseries": [[386, null]], "dpnp.random.multinomial": [[387, null]], "dpnp.random.multivariate_normal": [[388, null]], "dpnp.random.negative_binomial": [[389, null]], "dpnp.random.noncentral_chisquare": [[390, null]], "dpnp.random.noncentral_f": [[391, null]], "dpnp.random.normal": [[392, null]], "dpnp.random.pareto": [[393, null]], "dpnp.random.permutation": [[394, null]], "dpnp.random.poisson": [[395, null]], "dpnp.random.power": [[396, null]], "dpnp.random.rand": [[397, null]], "dpnp.random.randint": [[398, null]], "dpnp.random.randn": [[399, null]], "dpnp.random.random": [[400, null]], "dpnp.random.random_integers": [[401, null]], "dpnp.random.random_sample": [[402, null]], "dpnp.random.ranf": [[403, null]], "dpnp.random.rayleigh": [[404, null]], "dpnp.random.sample": [[405, null]], "dpnp.random.seed": [[406, null]], "dpnp.random.shuffle": [[407, null]], "dpnp.random.standard_cauchy": [[408, null]], "dpnp.random.standard_exponential": [[409, null]], "dpnp.random.standard_gamma": [[410, null]], "dpnp.random.standard_normal": [[411, null]], "dpnp.random.standard_t": [[412, null]], "dpnp.random.triangular": [[413, null]], "dpnp.random.uniform": [[414, null]], "dpnp.random.vonmises": [[415, null]], "dpnp.random.wald": [[416, null]], "dpnp.random.weibull": [[417, null]], "dpnp.random.zipf": [[418, null]], "dpnp.ravel": [[419, null]], "dpnp.ravel_multi_index": [[420, null]], "dpnp.real": [[421, null]], "dpnp.real_if_close": [[422, null]], "dpnp.reciprocal": [[423, null]], "dpnp.reduce_hypot": [[424, null]], "dpnp.remainder": [[425, null]], "dpnp.repeat": [[426, null]], "dpnp.require": [[427, null]], "dpnp.reshape": [[428, null]], "dpnp.resize": [[429, null]], "dpnp.result_type": [[430, null]], "dpnp.right_shift": [[431, null]], "dpnp.rint": [[432, null]], "dpnp.roll": [[433, null]], "dpnp.rollaxis": [[434, null]], "dpnp.rot90": [[435, null]], "dpnp.round": [[436, null]], "dpnp.row_stack": [[437, null]], "dpnp.rsqrt": [[438, null]], "dpnp.searchsorted": [[439, null]], "dpnp.select": [[440, null]], "dpnp.shape": [[441, null]], "dpnp.sign": [[442, null]], "dpnp.signbit": [[443, null]], "dpnp.sin": [[444, null]], "dpnp.sinh": [[445, null]], "dpnp.size": [[446, null]], "dpnp.sort": [[447, null]], "dpnp.sort_complex": [[448, null]], "dpnp.split": [[449, null]], "dpnp.sqrt": [[450, null]], "dpnp.square": [[451, null]], "dpnp.squeeze": [[452, null]], "dpnp.stack": [[453, null]], "dpnp.std": [[454, null]], "dpnp.subtract": [[455, null]], "dpnp.sum": [[456, null]], "dpnp.swapaxes": [[457, null]], "dpnp.take": [[458, null]], "dpnp.take_along_axis": [[459, null]], "dpnp.tan": [[460, null]], "dpnp.tanh": [[461, null]], "dpnp.tensordot": [[462, null]], "dpnp.tile": [[463, null]], "dpnp.trace": [[464, null]], "dpnp.transpose": [[465, null]], "dpnp.trapezoid": [[466, null]], "dpnp.tri": [[467, null]], "dpnp.tril": [[468, null]], "dpnp.tril_indices": [[469, null]], "dpnp.tril_indices_from": [[470, null]], "dpnp.trim_zeros": [[471, null]], "dpnp.triu": [[472, null]], "dpnp.triu_indices": [[473, null]], "dpnp.triu_indices_from": [[474, null]], "dpnp.true_divide": [[475, null]], "dpnp.trunc": [[476, null]], "dpnp.unique": [[477, null]], "dpnp.unravel_index": [[478, null]], "dpnp.unwrap": [[479, null]], "dpnp.vander": [[480, null]], "dpnp.var": [[481, null]], "dpnp.vdot": [[482, null]], "dpnp.vsplit": [[483, null]], "dpnp.vstack": [[484, null]], "dpnp.where": [[485, null]], "dpnp.zeros": [[486, null]], "dpnp.zeros_like": [[487, null]]}, "docnames": ["dpctl", "dpnp_backend_api", "index", "overview", "quick_start_guide", "reference/binary", "reference/comparison", "reference/creation", "reference/dtype", "reference/dtypes_table", "reference/fft", "reference/generated/dpnp.abs", "reference/generated/dpnp.absolute", "reference/generated/dpnp.acos", "reference/generated/dpnp.acosh", "reference/generated/dpnp.add", "reference/generated/dpnp.all", "reference/generated/dpnp.allclose", "reference/generated/dpnp.amax", "reference/generated/dpnp.amin", "reference/generated/dpnp.angle", "reference/generated/dpnp.any", "reference/generated/dpnp.append", "reference/generated/dpnp.arange", "reference/generated/dpnp.arccos", "reference/generated/dpnp.arccosh", "reference/generated/dpnp.arcsin", "reference/generated/dpnp.arcsinh", "reference/generated/dpnp.arctan", "reference/generated/dpnp.arctan2", "reference/generated/dpnp.arctanh", "reference/generated/dpnp.argmax", "reference/generated/dpnp.argmin", "reference/generated/dpnp.argsort", "reference/generated/dpnp.argwhere", "reference/generated/dpnp.around", "reference/generated/dpnp.array", "reference/generated/dpnp.array_equal", "reference/generated/dpnp.array_equiv", "reference/generated/dpnp.array_split", "reference/generated/dpnp.asanyarray", "reference/generated/dpnp.asarray", "reference/generated/dpnp.asarray_chkfinite", "reference/generated/dpnp.ascontiguousarray", "reference/generated/dpnp.asfarray", "reference/generated/dpnp.asfortranarray", "reference/generated/dpnp.asin", "reference/generated/dpnp.asinh", "reference/generated/dpnp.asnumpy", "reference/generated/dpnp.astype", "reference/generated/dpnp.atan", "reference/generated/dpnp.atan2", "reference/generated/dpnp.atanh", "reference/generated/dpnp.atleast_1d", "reference/generated/dpnp.atleast_2d", "reference/generated/dpnp.atleast_3d", "reference/generated/dpnp.average", "reference/generated/dpnp.bincount", "reference/generated/dpnp.bitwise_and", "reference/generated/dpnp.bitwise_not", "reference/generated/dpnp.bitwise_or", "reference/generated/dpnp.bitwise_xor", "reference/generated/dpnp.broadcast_arrays", "reference/generated/dpnp.broadcast_to", "reference/generated/dpnp.can_cast", "reference/generated/dpnp.cbrt", "reference/generated/dpnp.ceil", "reference/generated/dpnp.choose", "reference/generated/dpnp.clip", "reference/generated/dpnp.column_stack", "reference/generated/dpnp.concat", "reference/generated/dpnp.concatenate", "reference/generated/dpnp.conj", "reference/generated/dpnp.conjugate", "reference/generated/dpnp.convolve", "reference/generated/dpnp.copy", "reference/generated/dpnp.copysign", "reference/generated/dpnp.copyto", "reference/generated/dpnp.correlate", "reference/generated/dpnp.cos", "reference/generated/dpnp.cosh", "reference/generated/dpnp.count_nonzero", "reference/generated/dpnp.cov", "reference/generated/dpnp.cross", "reference/generated/dpnp.cumlogsumexp", "reference/generated/dpnp.cumprod", "reference/generated/dpnp.cumsum", "reference/generated/dpnp.deg2rad", "reference/generated/dpnp.degrees", "reference/generated/dpnp.diag", "reference/generated/dpnp.diag_indices", "reference/generated/dpnp.diag_indices_from", "reference/generated/dpnp.diagflat", "reference/generated/dpnp.diagonal", "reference/generated/dpnp.diff", "reference/generated/dpnp.digitize", "reference/generated/dpnp.divide", "reference/generated/dpnp.dot", "reference/generated/dpnp.dpnp_array.dpnp_array", "reference/generated/dpnp.dsplit", "reference/generated/dpnp.dstack", "reference/generated/dpnp.dtype", "reference/generated/dpnp.ediff1d", "reference/generated/dpnp.einsum", "reference/generated/dpnp.einsum_path", "reference/generated/dpnp.empty", "reference/generated/dpnp.empty_like", "reference/generated/dpnp.equal", "reference/generated/dpnp.erf", "reference/generated/dpnp.exp", "reference/generated/dpnp.exp2", "reference/generated/dpnp.expand_dims", "reference/generated/dpnp.expm1", "reference/generated/dpnp.extract", "reference/generated/dpnp.eye", "reference/generated/dpnp.fabs", "reference/generated/dpnp.fft.fft", "reference/generated/dpnp.fft.fft2", "reference/generated/dpnp.fft.fftfreq", "reference/generated/dpnp.fft.fftn", "reference/generated/dpnp.fft.fftshift", "reference/generated/dpnp.fft.hfft", "reference/generated/dpnp.fft.ifft", "reference/generated/dpnp.fft.ifft2", "reference/generated/dpnp.fft.ifftn", "reference/generated/dpnp.fft.ifftshift", "reference/generated/dpnp.fft.ihfft", "reference/generated/dpnp.fft.irfft", "reference/generated/dpnp.fft.irfft2", "reference/generated/dpnp.fft.irfftn", "reference/generated/dpnp.fft.rfft", "reference/generated/dpnp.fft.rfft2", "reference/generated/dpnp.fft.rfftfreq", "reference/generated/dpnp.fft.rfftn", "reference/generated/dpnp.fill_diagonal", "reference/generated/dpnp.finfo", "reference/generated/dpnp.fix", "reference/generated/dpnp.flatiter", "reference/generated/dpnp.flatnonzero", "reference/generated/dpnp.flip", "reference/generated/dpnp.fliplr", "reference/generated/dpnp.flipud", "reference/generated/dpnp.float_power", "reference/generated/dpnp.floor", "reference/generated/dpnp.floor_divide", "reference/generated/dpnp.fmax", "reference/generated/dpnp.fmin", "reference/generated/dpnp.fmod", "reference/generated/dpnp.from_dlpack", "reference/generated/dpnp.frombuffer", "reference/generated/dpnp.fromfile", "reference/generated/dpnp.fromfunction", "reference/generated/dpnp.fromiter", "reference/generated/dpnp.fromstring", "reference/generated/dpnp.full", "reference/generated/dpnp.full_like", "reference/generated/dpnp.geomspace", "reference/generated/dpnp.get_include", "reference/generated/dpnp.gradient", "reference/generated/dpnp.greater", "reference/generated/dpnp.greater_equal", "reference/generated/dpnp.heaviside", "reference/generated/dpnp.histogram", "reference/generated/dpnp.histogram_bin_edges", "reference/generated/dpnp.hsplit", "reference/generated/dpnp.hstack", "reference/generated/dpnp.hypot", "reference/generated/dpnp.identity", "reference/generated/dpnp.iinfo", "reference/generated/dpnp.imag", "reference/generated/dpnp.indices", "reference/generated/dpnp.inner", "reference/generated/dpnp.invert", "reference/generated/dpnp.isclose", "reference/generated/dpnp.iscomplex", "reference/generated/dpnp.iscomplexobj", "reference/generated/dpnp.isfinite", "reference/generated/dpnp.isinf", "reference/generated/dpnp.isnan", "reference/generated/dpnp.isneginf", "reference/generated/dpnp.isposinf", "reference/generated/dpnp.isreal", "reference/generated/dpnp.isrealobj", "reference/generated/dpnp.isscalar", "reference/generated/dpnp.issubdtype", "reference/generated/dpnp.ix_", "reference/generated/dpnp.kron", "reference/generated/dpnp.left_shift", "reference/generated/dpnp.less", "reference/generated/dpnp.less_equal", "reference/generated/dpnp.linalg.cholesky", "reference/generated/dpnp.linalg.cond", "reference/generated/dpnp.linalg.det", "reference/generated/dpnp.linalg.eig", "reference/generated/dpnp.linalg.eigh", "reference/generated/dpnp.linalg.eigvals", "reference/generated/dpnp.linalg.eigvalsh", "reference/generated/dpnp.linalg.inv", "reference/generated/dpnp.linalg.lstsq", "reference/generated/dpnp.linalg.matrix_power", "reference/generated/dpnp.linalg.matrix_rank", "reference/generated/dpnp.linalg.multi_dot", "reference/generated/dpnp.linalg.norm", "reference/generated/dpnp.linalg.pinv", "reference/generated/dpnp.linalg.qr", "reference/generated/dpnp.linalg.slogdet", "reference/generated/dpnp.linalg.solve", "reference/generated/dpnp.linalg.svd", "reference/generated/dpnp.linalg.tensorinv", "reference/generated/dpnp.linalg.tensorsolve", "reference/generated/dpnp.linspace", "reference/generated/dpnp.loadtxt", "reference/generated/dpnp.log", "reference/generated/dpnp.log10", "reference/generated/dpnp.log1p", "reference/generated/dpnp.log2", "reference/generated/dpnp.logaddexp", "reference/generated/dpnp.logaddexp2", "reference/generated/dpnp.logical_and", "reference/generated/dpnp.logical_not", "reference/generated/dpnp.logical_or", "reference/generated/dpnp.logical_xor", "reference/generated/dpnp.logspace", "reference/generated/dpnp.logsumexp", "reference/generated/dpnp.mask_indices", "reference/generated/dpnp.matmul", "reference/generated/dpnp.max", "reference/generated/dpnp.maximum", "reference/generated/dpnp.mean", "reference/generated/dpnp.median", "reference/generated/dpnp.meshgrid", "reference/generated/dpnp.mgrid", "reference/generated/dpnp.min", "reference/generated/dpnp.minimum", "reference/generated/dpnp.mod", "reference/generated/dpnp.modf", "reference/generated/dpnp.moveaxis", "reference/generated/dpnp.multiply", "reference/generated/dpnp.nan_to_num", "reference/generated/dpnp.nanargmax", "reference/generated/dpnp.nanargmin", "reference/generated/dpnp.nancumprod", "reference/generated/dpnp.nancumsum", "reference/generated/dpnp.nanmax", "reference/generated/dpnp.nanmean", "reference/generated/dpnp.nanmin", "reference/generated/dpnp.nanprod", "reference/generated/dpnp.nanstd", "reference/generated/dpnp.nansum", "reference/generated/dpnp.nanvar", "reference/generated/dpnp.ndarray", "reference/generated/dpnp.ndarray.T", "reference/generated/dpnp.ndarray.__abs__", "reference/generated/dpnp.ndarray.__add__", "reference/generated/dpnp.ndarray.__and__", "reference/generated/dpnp.ndarray.__bool__", "reference/generated/dpnp.ndarray.__complex__", "reference/generated/dpnp.ndarray.__copy__", "reference/generated/dpnp.ndarray.__eq__", "reference/generated/dpnp.ndarray.__float__", "reference/generated/dpnp.ndarray.__floordiv__", "reference/generated/dpnp.ndarray.__ge__", "reference/generated/dpnp.ndarray.__getitem__", "reference/generated/dpnp.ndarray.__gt__", "reference/generated/dpnp.ndarray.__iadd__", "reference/generated/dpnp.ndarray.__iand__", "reference/generated/dpnp.ndarray.__ifloordiv__", "reference/generated/dpnp.ndarray.__ilshift__", "reference/generated/dpnp.ndarray.__imod__", "reference/generated/dpnp.ndarray.__imul__", "reference/generated/dpnp.ndarray.__int__", "reference/generated/dpnp.ndarray.__invert__", "reference/generated/dpnp.ndarray.__ior__", "reference/generated/dpnp.ndarray.__ipow__", "reference/generated/dpnp.ndarray.__irshift__", "reference/generated/dpnp.ndarray.__isub__", "reference/generated/dpnp.ndarray.__itruediv__", "reference/generated/dpnp.ndarray.__ixor__", "reference/generated/dpnp.ndarray.__le__", "reference/generated/dpnp.ndarray.__len__", "reference/generated/dpnp.ndarray.__lshift__", "reference/generated/dpnp.ndarray.__lt__", "reference/generated/dpnp.ndarray.__matmul__", "reference/generated/dpnp.ndarray.__mod__", "reference/generated/dpnp.ndarray.__mul__", "reference/generated/dpnp.ndarray.__ne__", "reference/generated/dpnp.ndarray.__neg__", "reference/generated/dpnp.ndarray.__new__", "reference/generated/dpnp.ndarray.__or__", "reference/generated/dpnp.ndarray.__pos__", "reference/generated/dpnp.ndarray.__pow__", "reference/generated/dpnp.ndarray.__repr__", "reference/generated/dpnp.ndarray.__rshift__", "reference/generated/dpnp.ndarray.__setitem__", "reference/generated/dpnp.ndarray.__str__", "reference/generated/dpnp.ndarray.__sub__", "reference/generated/dpnp.ndarray.__truediv__", "reference/generated/dpnp.ndarray.__xor__", "reference/generated/dpnp.ndarray.all", "reference/generated/dpnp.ndarray.any", "reference/generated/dpnp.ndarray.argmax", "reference/generated/dpnp.ndarray.argmin", "reference/generated/dpnp.ndarray.argsort", "reference/generated/dpnp.ndarray.astype", "reference/generated/dpnp.ndarray.choose", "reference/generated/dpnp.ndarray.clip", "reference/generated/dpnp.ndarray.conj", "reference/generated/dpnp.ndarray.conjugate", "reference/generated/dpnp.ndarray.copy", "reference/generated/dpnp.ndarray.cumprod", "reference/generated/dpnp.ndarray.cumsum", "reference/generated/dpnp.ndarray.diagonal", "reference/generated/dpnp.ndarray.dtype", "reference/generated/dpnp.ndarray.fill", "reference/generated/dpnp.ndarray.flags", "reference/generated/dpnp.ndarray.flat", "reference/generated/dpnp.ndarray.flatten", "reference/generated/dpnp.ndarray.imag", "reference/generated/dpnp.ndarray.item", "reference/generated/dpnp.ndarray.itemsize", "reference/generated/dpnp.ndarray.max", "reference/generated/dpnp.ndarray.mean", "reference/generated/dpnp.ndarray.min", "reference/generated/dpnp.ndarray.nbytes", "reference/generated/dpnp.ndarray.ndim", "reference/generated/dpnp.ndarray.nonzero", "reference/generated/dpnp.ndarray.partition", "reference/generated/dpnp.ndarray.prod", "reference/generated/dpnp.ndarray.put", "reference/generated/dpnp.ndarray.ravel", "reference/generated/dpnp.ndarray.real", "reference/generated/dpnp.ndarray.repeat", "reference/generated/dpnp.ndarray.reshape", "reference/generated/dpnp.ndarray.round", "reference/generated/dpnp.ndarray.searchsorted", "reference/generated/dpnp.ndarray.shape", "reference/generated/dpnp.ndarray.size", "reference/generated/dpnp.ndarray.sort", "reference/generated/dpnp.ndarray.squeeze", "reference/generated/dpnp.ndarray.std", "reference/generated/dpnp.ndarray.strides", "reference/generated/dpnp.ndarray.sum", "reference/generated/dpnp.ndarray.swapaxes", "reference/generated/dpnp.ndarray.take", "reference/generated/dpnp.ndarray.trace", "reference/generated/dpnp.ndarray.transpose", "reference/generated/dpnp.ndarray.var", "reference/generated/dpnp.ndim", "reference/generated/dpnp.negative", "reference/generated/dpnp.nextafter", "reference/generated/dpnp.nonzero", "reference/generated/dpnp.not_equal", "reference/generated/dpnp.ogrid", "reference/generated/dpnp.ones", "reference/generated/dpnp.ones_like", "reference/generated/dpnp.outer", "reference/generated/dpnp.partition", "reference/generated/dpnp.permute_dims", "reference/generated/dpnp.place", "reference/generated/dpnp.positive", "reference/generated/dpnp.pow", "reference/generated/dpnp.power", "reference/generated/dpnp.prod", "reference/generated/dpnp.proj", "reference/generated/dpnp.ptp", "reference/generated/dpnp.put", "reference/generated/dpnp.put_along_axis", "reference/generated/dpnp.putmask", "reference/generated/dpnp.rad2deg", "reference/generated/dpnp.radians", "reference/generated/dpnp.random.RandomState", "reference/generated/dpnp.random.beta", "reference/generated/dpnp.random.binomial", "reference/generated/dpnp.random.bytes", "reference/generated/dpnp.random.chisquare", "reference/generated/dpnp.random.choice", "reference/generated/dpnp.random.dirichlet", "reference/generated/dpnp.random.exponential", "reference/generated/dpnp.random.f", "reference/generated/dpnp.random.gamma", "reference/generated/dpnp.random.geometric", "reference/generated/dpnp.random.gumbel", "reference/generated/dpnp.random.hypergeometric", "reference/generated/dpnp.random.laplace", "reference/generated/dpnp.random.logistic", "reference/generated/dpnp.random.lognormal", "reference/generated/dpnp.random.logseries", "reference/generated/dpnp.random.multinomial", "reference/generated/dpnp.random.multivariate_normal", "reference/generated/dpnp.random.negative_binomial", "reference/generated/dpnp.random.noncentral_chisquare", "reference/generated/dpnp.random.noncentral_f", "reference/generated/dpnp.random.normal", "reference/generated/dpnp.random.pareto", "reference/generated/dpnp.random.permutation", "reference/generated/dpnp.random.poisson", "reference/generated/dpnp.random.power", "reference/generated/dpnp.random.rand", "reference/generated/dpnp.random.randint", "reference/generated/dpnp.random.randn", "reference/generated/dpnp.random.random", "reference/generated/dpnp.random.random_integers", "reference/generated/dpnp.random.random_sample", "reference/generated/dpnp.random.ranf", "reference/generated/dpnp.random.rayleigh", "reference/generated/dpnp.random.sample", "reference/generated/dpnp.random.seed", "reference/generated/dpnp.random.shuffle", "reference/generated/dpnp.random.standard_cauchy", "reference/generated/dpnp.random.standard_exponential", "reference/generated/dpnp.random.standard_gamma", "reference/generated/dpnp.random.standard_normal", "reference/generated/dpnp.random.standard_t", "reference/generated/dpnp.random.triangular", "reference/generated/dpnp.random.uniform", "reference/generated/dpnp.random.vonmises", "reference/generated/dpnp.random.wald", "reference/generated/dpnp.random.weibull", "reference/generated/dpnp.random.zipf", "reference/generated/dpnp.ravel", "reference/generated/dpnp.ravel_multi_index", "reference/generated/dpnp.real", "reference/generated/dpnp.real_if_close", "reference/generated/dpnp.reciprocal", "reference/generated/dpnp.reduce_hypot", "reference/generated/dpnp.remainder", "reference/generated/dpnp.repeat", "reference/generated/dpnp.require", "reference/generated/dpnp.reshape", "reference/generated/dpnp.resize", "reference/generated/dpnp.result_type", "reference/generated/dpnp.right_shift", "reference/generated/dpnp.rint", "reference/generated/dpnp.roll", "reference/generated/dpnp.rollaxis", "reference/generated/dpnp.rot90", "reference/generated/dpnp.round", "reference/generated/dpnp.row_stack", "reference/generated/dpnp.rsqrt", "reference/generated/dpnp.searchsorted", "reference/generated/dpnp.select", "reference/generated/dpnp.shape", "reference/generated/dpnp.sign", "reference/generated/dpnp.signbit", "reference/generated/dpnp.sin", "reference/generated/dpnp.sinh", "reference/generated/dpnp.size", "reference/generated/dpnp.sort", "reference/generated/dpnp.sort_complex", "reference/generated/dpnp.split", "reference/generated/dpnp.sqrt", "reference/generated/dpnp.square", "reference/generated/dpnp.squeeze", "reference/generated/dpnp.stack", "reference/generated/dpnp.std", "reference/generated/dpnp.subtract", "reference/generated/dpnp.sum", "reference/generated/dpnp.swapaxes", "reference/generated/dpnp.take", "reference/generated/dpnp.take_along_axis", "reference/generated/dpnp.tan", "reference/generated/dpnp.tanh", "reference/generated/dpnp.tensordot", "reference/generated/dpnp.tile", "reference/generated/dpnp.trace", "reference/generated/dpnp.transpose", "reference/generated/dpnp.trapezoid", "reference/generated/dpnp.tri", "reference/generated/dpnp.tril", "reference/generated/dpnp.tril_indices", "reference/generated/dpnp.tril_indices_from", "reference/generated/dpnp.trim_zeros", "reference/generated/dpnp.triu", "reference/generated/dpnp.triu_indices", "reference/generated/dpnp.triu_indices_from", "reference/generated/dpnp.true_divide", "reference/generated/dpnp.trunc", "reference/generated/dpnp.unique", "reference/generated/dpnp.unravel_index", "reference/generated/dpnp.unwrap", "reference/generated/dpnp.vander", "reference/generated/dpnp.var", "reference/generated/dpnp.vdot", "reference/generated/dpnp.vsplit", "reference/generated/dpnp.vstack", "reference/generated/dpnp.where", "reference/generated/dpnp.zeros", "reference/generated/dpnp.zeros_like", "reference/index", "reference/indexing", "reference/linalg", "reference/logic", "reference/manipulation", "reference/math", "reference/misc", "reference/ndarray", "reference/pad", "reference/polynomials", "reference/random", "reference/routines", "reference/sorting", "reference/special", "reference/statistics", "reference/ufunc"], "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, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1}, "filenames": ["dpctl.rst", "dpnp_backend_api.rst", "index.rst", "overview.rst", "quick_start_guide.rst", "reference/binary.rst", "reference/comparison.rst", "reference/creation.rst", "reference/dtype.rst", "reference/dtypes_table.rst", "reference/fft.rst", "reference/generated/dpnp.abs.rst", "reference/generated/dpnp.absolute.rst", "reference/generated/dpnp.acos.rst", "reference/generated/dpnp.acosh.rst", "reference/generated/dpnp.add.rst", "reference/generated/dpnp.all.rst", "reference/generated/dpnp.allclose.rst", "reference/generated/dpnp.amax.rst", "reference/generated/dpnp.amin.rst", "reference/generated/dpnp.angle.rst", "reference/generated/dpnp.any.rst", "reference/generated/dpnp.append.rst", "reference/generated/dpnp.arange.rst", "reference/generated/dpnp.arccos.rst", "reference/generated/dpnp.arccosh.rst", "reference/generated/dpnp.arcsin.rst", "reference/generated/dpnp.arcsinh.rst", "reference/generated/dpnp.arctan.rst", "reference/generated/dpnp.arctan2.rst", "reference/generated/dpnp.arctanh.rst", "reference/generated/dpnp.argmax.rst", "reference/generated/dpnp.argmin.rst", "reference/generated/dpnp.argsort.rst", "reference/generated/dpnp.argwhere.rst", "reference/generated/dpnp.around.rst", "reference/generated/dpnp.array.rst", "reference/generated/dpnp.array_equal.rst", "reference/generated/dpnp.array_equiv.rst", "reference/generated/dpnp.array_split.rst", "reference/generated/dpnp.asanyarray.rst", "reference/generated/dpnp.asarray.rst", "reference/generated/dpnp.asarray_chkfinite.rst", "reference/generated/dpnp.ascontiguousarray.rst", "reference/generated/dpnp.asfarray.rst", "reference/generated/dpnp.asfortranarray.rst", "reference/generated/dpnp.asin.rst", "reference/generated/dpnp.asinh.rst", "reference/generated/dpnp.asnumpy.rst", "reference/generated/dpnp.astype.rst", "reference/generated/dpnp.atan.rst", "reference/generated/dpnp.atan2.rst", "reference/generated/dpnp.atanh.rst", "reference/generated/dpnp.atleast_1d.rst", "reference/generated/dpnp.atleast_2d.rst", "reference/generated/dpnp.atleast_3d.rst", "reference/generated/dpnp.average.rst", "reference/generated/dpnp.bincount.rst", "reference/generated/dpnp.bitwise_and.rst", "reference/generated/dpnp.bitwise_not.rst", "reference/generated/dpnp.bitwise_or.rst", "reference/generated/dpnp.bitwise_xor.rst", "reference/generated/dpnp.broadcast_arrays.rst", "reference/generated/dpnp.broadcast_to.rst", "reference/generated/dpnp.can_cast.rst", "reference/generated/dpnp.cbrt.rst", "reference/generated/dpnp.ceil.rst", "reference/generated/dpnp.choose.rst", "reference/generated/dpnp.clip.rst", "reference/generated/dpnp.column_stack.rst", "reference/generated/dpnp.concat.rst", "reference/generated/dpnp.concatenate.rst", "reference/generated/dpnp.conj.rst", "reference/generated/dpnp.conjugate.rst", "reference/generated/dpnp.convolve.rst", "reference/generated/dpnp.copy.rst", "reference/generated/dpnp.copysign.rst", "reference/generated/dpnp.copyto.rst", "reference/generated/dpnp.correlate.rst", "reference/generated/dpnp.cos.rst", "reference/generated/dpnp.cosh.rst", "reference/generated/dpnp.count_nonzero.rst", "reference/generated/dpnp.cov.rst", "reference/generated/dpnp.cross.rst", "reference/generated/dpnp.cumlogsumexp.rst", "reference/generated/dpnp.cumprod.rst", "reference/generated/dpnp.cumsum.rst", "reference/generated/dpnp.deg2rad.rst", "reference/generated/dpnp.degrees.rst", "reference/generated/dpnp.diag.rst", "reference/generated/dpnp.diag_indices.rst", "reference/generated/dpnp.diag_indices_from.rst", "reference/generated/dpnp.diagflat.rst", "reference/generated/dpnp.diagonal.rst", "reference/generated/dpnp.diff.rst", "reference/generated/dpnp.digitize.rst", "reference/generated/dpnp.divide.rst", "reference/generated/dpnp.dot.rst", "reference/generated/dpnp.dpnp_array.dpnp_array.rst", "reference/generated/dpnp.dsplit.rst", "reference/generated/dpnp.dstack.rst", "reference/generated/dpnp.dtype.rst", "reference/generated/dpnp.ediff1d.rst", "reference/generated/dpnp.einsum.rst", "reference/generated/dpnp.einsum_path.rst", "reference/generated/dpnp.empty.rst", "reference/generated/dpnp.empty_like.rst", "reference/generated/dpnp.equal.rst", "reference/generated/dpnp.erf.rst", "reference/generated/dpnp.exp.rst", "reference/generated/dpnp.exp2.rst", "reference/generated/dpnp.expand_dims.rst", "reference/generated/dpnp.expm1.rst", "reference/generated/dpnp.extract.rst", "reference/generated/dpnp.eye.rst", "reference/generated/dpnp.fabs.rst", "reference/generated/dpnp.fft.fft.rst", "reference/generated/dpnp.fft.fft2.rst", "reference/generated/dpnp.fft.fftfreq.rst", "reference/generated/dpnp.fft.fftn.rst", "reference/generated/dpnp.fft.fftshift.rst", "reference/generated/dpnp.fft.hfft.rst", "reference/generated/dpnp.fft.ifft.rst", "reference/generated/dpnp.fft.ifft2.rst", "reference/generated/dpnp.fft.ifftn.rst", "reference/generated/dpnp.fft.ifftshift.rst", "reference/generated/dpnp.fft.ihfft.rst", "reference/generated/dpnp.fft.irfft.rst", "reference/generated/dpnp.fft.irfft2.rst", "reference/generated/dpnp.fft.irfftn.rst", "reference/generated/dpnp.fft.rfft.rst", "reference/generated/dpnp.fft.rfft2.rst", "reference/generated/dpnp.fft.rfftfreq.rst", "reference/generated/dpnp.fft.rfftn.rst", "reference/generated/dpnp.fill_diagonal.rst", "reference/generated/dpnp.finfo.rst", "reference/generated/dpnp.fix.rst", "reference/generated/dpnp.flatiter.rst", "reference/generated/dpnp.flatnonzero.rst", "reference/generated/dpnp.flip.rst", "reference/generated/dpnp.fliplr.rst", "reference/generated/dpnp.flipud.rst", "reference/generated/dpnp.float_power.rst", "reference/generated/dpnp.floor.rst", "reference/generated/dpnp.floor_divide.rst", "reference/generated/dpnp.fmax.rst", "reference/generated/dpnp.fmin.rst", "reference/generated/dpnp.fmod.rst", "reference/generated/dpnp.from_dlpack.rst", "reference/generated/dpnp.frombuffer.rst", "reference/generated/dpnp.fromfile.rst", "reference/generated/dpnp.fromfunction.rst", "reference/generated/dpnp.fromiter.rst", "reference/generated/dpnp.fromstring.rst", "reference/generated/dpnp.full.rst", "reference/generated/dpnp.full_like.rst", "reference/generated/dpnp.geomspace.rst", "reference/generated/dpnp.get_include.rst", "reference/generated/dpnp.gradient.rst", "reference/generated/dpnp.greater.rst", "reference/generated/dpnp.greater_equal.rst", "reference/generated/dpnp.heaviside.rst", "reference/generated/dpnp.histogram.rst", "reference/generated/dpnp.histogram_bin_edges.rst", "reference/generated/dpnp.hsplit.rst", "reference/generated/dpnp.hstack.rst", "reference/generated/dpnp.hypot.rst", "reference/generated/dpnp.identity.rst", "reference/generated/dpnp.iinfo.rst", "reference/generated/dpnp.imag.rst", "reference/generated/dpnp.indices.rst", "reference/generated/dpnp.inner.rst", "reference/generated/dpnp.invert.rst", "reference/generated/dpnp.isclose.rst", "reference/generated/dpnp.iscomplex.rst", "reference/generated/dpnp.iscomplexobj.rst", "reference/generated/dpnp.isfinite.rst", "reference/generated/dpnp.isinf.rst", "reference/generated/dpnp.isnan.rst", "reference/generated/dpnp.isneginf.rst", "reference/generated/dpnp.isposinf.rst", "reference/generated/dpnp.isreal.rst", "reference/generated/dpnp.isrealobj.rst", "reference/generated/dpnp.isscalar.rst", "reference/generated/dpnp.issubdtype.rst", "reference/generated/dpnp.ix_.rst", "reference/generated/dpnp.kron.rst", "reference/generated/dpnp.left_shift.rst", "reference/generated/dpnp.less.rst", "reference/generated/dpnp.less_equal.rst", "reference/generated/dpnp.linalg.cholesky.rst", "reference/generated/dpnp.linalg.cond.rst", "reference/generated/dpnp.linalg.det.rst", "reference/generated/dpnp.linalg.eig.rst", "reference/generated/dpnp.linalg.eigh.rst", "reference/generated/dpnp.linalg.eigvals.rst", "reference/generated/dpnp.linalg.eigvalsh.rst", "reference/generated/dpnp.linalg.inv.rst", "reference/generated/dpnp.linalg.lstsq.rst", "reference/generated/dpnp.linalg.matrix_power.rst", "reference/generated/dpnp.linalg.matrix_rank.rst", "reference/generated/dpnp.linalg.multi_dot.rst", "reference/generated/dpnp.linalg.norm.rst", "reference/generated/dpnp.linalg.pinv.rst", "reference/generated/dpnp.linalg.qr.rst", "reference/generated/dpnp.linalg.slogdet.rst", "reference/generated/dpnp.linalg.solve.rst", "reference/generated/dpnp.linalg.svd.rst", "reference/generated/dpnp.linalg.tensorinv.rst", "reference/generated/dpnp.linalg.tensorsolve.rst", "reference/generated/dpnp.linspace.rst", "reference/generated/dpnp.loadtxt.rst", "reference/generated/dpnp.log.rst", "reference/generated/dpnp.log10.rst", "reference/generated/dpnp.log1p.rst", "reference/generated/dpnp.log2.rst", "reference/generated/dpnp.logaddexp.rst", "reference/generated/dpnp.logaddexp2.rst", "reference/generated/dpnp.logical_and.rst", "reference/generated/dpnp.logical_not.rst", "reference/generated/dpnp.logical_or.rst", "reference/generated/dpnp.logical_xor.rst", "reference/generated/dpnp.logspace.rst", "reference/generated/dpnp.logsumexp.rst", "reference/generated/dpnp.mask_indices.rst", "reference/generated/dpnp.matmul.rst", "reference/generated/dpnp.max.rst", "reference/generated/dpnp.maximum.rst", "reference/generated/dpnp.mean.rst", "reference/generated/dpnp.median.rst", "reference/generated/dpnp.meshgrid.rst", "reference/generated/dpnp.mgrid.rst", "reference/generated/dpnp.min.rst", "reference/generated/dpnp.minimum.rst", "reference/generated/dpnp.mod.rst", "reference/generated/dpnp.modf.rst", "reference/generated/dpnp.moveaxis.rst", "reference/generated/dpnp.multiply.rst", "reference/generated/dpnp.nan_to_num.rst", "reference/generated/dpnp.nanargmax.rst", "reference/generated/dpnp.nanargmin.rst", "reference/generated/dpnp.nancumprod.rst", "reference/generated/dpnp.nancumsum.rst", "reference/generated/dpnp.nanmax.rst", "reference/generated/dpnp.nanmean.rst", "reference/generated/dpnp.nanmin.rst", "reference/generated/dpnp.nanprod.rst", "reference/generated/dpnp.nanstd.rst", "reference/generated/dpnp.nansum.rst", "reference/generated/dpnp.nanvar.rst", "reference/generated/dpnp.ndarray.rst", "reference/generated/dpnp.ndarray.T.rst", "reference/generated/dpnp.ndarray.__abs__.rst", "reference/generated/dpnp.ndarray.__add__.rst", "reference/generated/dpnp.ndarray.__and__.rst", "reference/generated/dpnp.ndarray.__bool__.rst", "reference/generated/dpnp.ndarray.__complex__.rst", "reference/generated/dpnp.ndarray.__copy__.rst", "reference/generated/dpnp.ndarray.__eq__.rst", "reference/generated/dpnp.ndarray.__float__.rst", "reference/generated/dpnp.ndarray.__floordiv__.rst", "reference/generated/dpnp.ndarray.__ge__.rst", "reference/generated/dpnp.ndarray.__getitem__.rst", "reference/generated/dpnp.ndarray.__gt__.rst", "reference/generated/dpnp.ndarray.__iadd__.rst", "reference/generated/dpnp.ndarray.__iand__.rst", "reference/generated/dpnp.ndarray.__ifloordiv__.rst", "reference/generated/dpnp.ndarray.__ilshift__.rst", "reference/generated/dpnp.ndarray.__imod__.rst", "reference/generated/dpnp.ndarray.__imul__.rst", "reference/generated/dpnp.ndarray.__int__.rst", "reference/generated/dpnp.ndarray.__invert__.rst", "reference/generated/dpnp.ndarray.__ior__.rst", "reference/generated/dpnp.ndarray.__ipow__.rst", "reference/generated/dpnp.ndarray.__irshift__.rst", "reference/generated/dpnp.ndarray.__isub__.rst", "reference/generated/dpnp.ndarray.__itruediv__.rst", "reference/generated/dpnp.ndarray.__ixor__.rst", "reference/generated/dpnp.ndarray.__le__.rst", "reference/generated/dpnp.ndarray.__len__.rst", "reference/generated/dpnp.ndarray.__lshift__.rst", "reference/generated/dpnp.ndarray.__lt__.rst", "reference/generated/dpnp.ndarray.__matmul__.rst", "reference/generated/dpnp.ndarray.__mod__.rst", "reference/generated/dpnp.ndarray.__mul__.rst", "reference/generated/dpnp.ndarray.__ne__.rst", "reference/generated/dpnp.ndarray.__neg__.rst", "reference/generated/dpnp.ndarray.__new__.rst", "reference/generated/dpnp.ndarray.__or__.rst", "reference/generated/dpnp.ndarray.__pos__.rst", "reference/generated/dpnp.ndarray.__pow__.rst", "reference/generated/dpnp.ndarray.__repr__.rst", "reference/generated/dpnp.ndarray.__rshift__.rst", "reference/generated/dpnp.ndarray.__setitem__.rst", "reference/generated/dpnp.ndarray.__str__.rst", "reference/generated/dpnp.ndarray.__sub__.rst", "reference/generated/dpnp.ndarray.__truediv__.rst", "reference/generated/dpnp.ndarray.__xor__.rst", "reference/generated/dpnp.ndarray.all.rst", "reference/generated/dpnp.ndarray.any.rst", "reference/generated/dpnp.ndarray.argmax.rst", "reference/generated/dpnp.ndarray.argmin.rst", "reference/generated/dpnp.ndarray.argsort.rst", "reference/generated/dpnp.ndarray.astype.rst", "reference/generated/dpnp.ndarray.choose.rst", "reference/generated/dpnp.ndarray.clip.rst", "reference/generated/dpnp.ndarray.conj.rst", "reference/generated/dpnp.ndarray.conjugate.rst", "reference/generated/dpnp.ndarray.copy.rst", "reference/generated/dpnp.ndarray.cumprod.rst", "reference/generated/dpnp.ndarray.cumsum.rst", "reference/generated/dpnp.ndarray.diagonal.rst", "reference/generated/dpnp.ndarray.dtype.rst", "reference/generated/dpnp.ndarray.fill.rst", "reference/generated/dpnp.ndarray.flags.rst", "reference/generated/dpnp.ndarray.flat.rst", "reference/generated/dpnp.ndarray.flatten.rst", "reference/generated/dpnp.ndarray.imag.rst", "reference/generated/dpnp.ndarray.item.rst", "reference/generated/dpnp.ndarray.itemsize.rst", "reference/generated/dpnp.ndarray.max.rst", "reference/generated/dpnp.ndarray.mean.rst", "reference/generated/dpnp.ndarray.min.rst", "reference/generated/dpnp.ndarray.nbytes.rst", "reference/generated/dpnp.ndarray.ndim.rst", "reference/generated/dpnp.ndarray.nonzero.rst", "reference/generated/dpnp.ndarray.partition.rst", "reference/generated/dpnp.ndarray.prod.rst", "reference/generated/dpnp.ndarray.put.rst", "reference/generated/dpnp.ndarray.ravel.rst", "reference/generated/dpnp.ndarray.real.rst", "reference/generated/dpnp.ndarray.repeat.rst", "reference/generated/dpnp.ndarray.reshape.rst", "reference/generated/dpnp.ndarray.round.rst", "reference/generated/dpnp.ndarray.searchsorted.rst", "reference/generated/dpnp.ndarray.shape.rst", "reference/generated/dpnp.ndarray.size.rst", "reference/generated/dpnp.ndarray.sort.rst", "reference/generated/dpnp.ndarray.squeeze.rst", "reference/generated/dpnp.ndarray.std.rst", "reference/generated/dpnp.ndarray.strides.rst", "reference/generated/dpnp.ndarray.sum.rst", "reference/generated/dpnp.ndarray.swapaxes.rst", "reference/generated/dpnp.ndarray.take.rst", "reference/generated/dpnp.ndarray.trace.rst", "reference/generated/dpnp.ndarray.transpose.rst", "reference/generated/dpnp.ndarray.var.rst", "reference/generated/dpnp.ndim.rst", "reference/generated/dpnp.negative.rst", "reference/generated/dpnp.nextafter.rst", "reference/generated/dpnp.nonzero.rst", "reference/generated/dpnp.not_equal.rst", "reference/generated/dpnp.ogrid.rst", "reference/generated/dpnp.ones.rst", "reference/generated/dpnp.ones_like.rst", "reference/generated/dpnp.outer.rst", "reference/generated/dpnp.partition.rst", "reference/generated/dpnp.permute_dims.rst", "reference/generated/dpnp.place.rst", "reference/generated/dpnp.positive.rst", "reference/generated/dpnp.pow.rst", "reference/generated/dpnp.power.rst", "reference/generated/dpnp.prod.rst", "reference/generated/dpnp.proj.rst", "reference/generated/dpnp.ptp.rst", "reference/generated/dpnp.put.rst", "reference/generated/dpnp.put_along_axis.rst", "reference/generated/dpnp.putmask.rst", "reference/generated/dpnp.rad2deg.rst", "reference/generated/dpnp.radians.rst", "reference/generated/dpnp.random.RandomState.rst", "reference/generated/dpnp.random.beta.rst", "reference/generated/dpnp.random.binomial.rst", "reference/generated/dpnp.random.bytes.rst", "reference/generated/dpnp.random.chisquare.rst", "reference/generated/dpnp.random.choice.rst", "reference/generated/dpnp.random.dirichlet.rst", "reference/generated/dpnp.random.exponential.rst", "reference/generated/dpnp.random.f.rst", "reference/generated/dpnp.random.gamma.rst", "reference/generated/dpnp.random.geometric.rst", "reference/generated/dpnp.random.gumbel.rst", "reference/generated/dpnp.random.hypergeometric.rst", "reference/generated/dpnp.random.laplace.rst", "reference/generated/dpnp.random.logistic.rst", "reference/generated/dpnp.random.lognormal.rst", "reference/generated/dpnp.random.logseries.rst", "reference/generated/dpnp.random.multinomial.rst", "reference/generated/dpnp.random.multivariate_normal.rst", "reference/generated/dpnp.random.negative_binomial.rst", "reference/generated/dpnp.random.noncentral_chisquare.rst", "reference/generated/dpnp.random.noncentral_f.rst", "reference/generated/dpnp.random.normal.rst", "reference/generated/dpnp.random.pareto.rst", "reference/generated/dpnp.random.permutation.rst", "reference/generated/dpnp.random.poisson.rst", "reference/generated/dpnp.random.power.rst", "reference/generated/dpnp.random.rand.rst", "reference/generated/dpnp.random.randint.rst", "reference/generated/dpnp.random.randn.rst", "reference/generated/dpnp.random.random.rst", "reference/generated/dpnp.random.random_integers.rst", "reference/generated/dpnp.random.random_sample.rst", "reference/generated/dpnp.random.ranf.rst", "reference/generated/dpnp.random.rayleigh.rst", "reference/generated/dpnp.random.sample.rst", "reference/generated/dpnp.random.seed.rst", "reference/generated/dpnp.random.shuffle.rst", "reference/generated/dpnp.random.standard_cauchy.rst", "reference/generated/dpnp.random.standard_exponential.rst", "reference/generated/dpnp.random.standard_gamma.rst", "reference/generated/dpnp.random.standard_normal.rst", "reference/generated/dpnp.random.standard_t.rst", "reference/generated/dpnp.random.triangular.rst", "reference/generated/dpnp.random.uniform.rst", "reference/generated/dpnp.random.vonmises.rst", "reference/generated/dpnp.random.wald.rst", "reference/generated/dpnp.random.weibull.rst", "reference/generated/dpnp.random.zipf.rst", "reference/generated/dpnp.ravel.rst", "reference/generated/dpnp.ravel_multi_index.rst", "reference/generated/dpnp.real.rst", "reference/generated/dpnp.real_if_close.rst", "reference/generated/dpnp.reciprocal.rst", "reference/generated/dpnp.reduce_hypot.rst", "reference/generated/dpnp.remainder.rst", "reference/generated/dpnp.repeat.rst", "reference/generated/dpnp.require.rst", "reference/generated/dpnp.reshape.rst", "reference/generated/dpnp.resize.rst", "reference/generated/dpnp.result_type.rst", "reference/generated/dpnp.right_shift.rst", "reference/generated/dpnp.rint.rst", "reference/generated/dpnp.roll.rst", "reference/generated/dpnp.rollaxis.rst", "reference/generated/dpnp.rot90.rst", "reference/generated/dpnp.round.rst", "reference/generated/dpnp.row_stack.rst", "reference/generated/dpnp.rsqrt.rst", "reference/generated/dpnp.searchsorted.rst", "reference/generated/dpnp.select.rst", "reference/generated/dpnp.shape.rst", "reference/generated/dpnp.sign.rst", "reference/generated/dpnp.signbit.rst", "reference/generated/dpnp.sin.rst", "reference/generated/dpnp.sinh.rst", "reference/generated/dpnp.size.rst", "reference/generated/dpnp.sort.rst", "reference/generated/dpnp.sort_complex.rst", "reference/generated/dpnp.split.rst", "reference/generated/dpnp.sqrt.rst", "reference/generated/dpnp.square.rst", "reference/generated/dpnp.squeeze.rst", "reference/generated/dpnp.stack.rst", "reference/generated/dpnp.std.rst", "reference/generated/dpnp.subtract.rst", "reference/generated/dpnp.sum.rst", "reference/generated/dpnp.swapaxes.rst", "reference/generated/dpnp.take.rst", "reference/generated/dpnp.take_along_axis.rst", "reference/generated/dpnp.tan.rst", "reference/generated/dpnp.tanh.rst", "reference/generated/dpnp.tensordot.rst", "reference/generated/dpnp.tile.rst", "reference/generated/dpnp.trace.rst", "reference/generated/dpnp.transpose.rst", "reference/generated/dpnp.trapezoid.rst", "reference/generated/dpnp.tri.rst", "reference/generated/dpnp.tril.rst", "reference/generated/dpnp.tril_indices.rst", "reference/generated/dpnp.tril_indices_from.rst", "reference/generated/dpnp.trim_zeros.rst", "reference/generated/dpnp.triu.rst", "reference/generated/dpnp.triu_indices.rst", "reference/generated/dpnp.triu_indices_from.rst", "reference/generated/dpnp.true_divide.rst", "reference/generated/dpnp.trunc.rst", "reference/generated/dpnp.unique.rst", "reference/generated/dpnp.unravel_index.rst", "reference/generated/dpnp.unwrap.rst", "reference/generated/dpnp.vander.rst", "reference/generated/dpnp.var.rst", "reference/generated/dpnp.vdot.rst", "reference/generated/dpnp.vsplit.rst", "reference/generated/dpnp.vstack.rst", "reference/generated/dpnp.where.rst", "reference/generated/dpnp.zeros.rst", "reference/generated/dpnp.zeros_like.rst", "reference/index.rst", "reference/indexing.rst", "reference/linalg.rst", "reference/logic.rst", "reference/manipulation.rst", "reference/math.rst", "reference/misc.rst", "reference/ndarray.rst", "reference/pad.rst", "reference/polynomials.rst", "reference/random.rst", "reference/routines.rst", "reference/sorting.rst", "reference/special.rst", "reference/statistics.rst", "reference/ufunc.rst"], "indexentries": {"__abs__() (dpnp.ndarray method)": [[252, "dpnp.ndarray.__abs__", false]], "__add__() (dpnp.ndarray method)": [[253, "dpnp.ndarray.__add__", false]], "__and__() (dpnp.ndarray method)": [[254, "dpnp.ndarray.__and__", false]], "__bool__() (dpnp.ndarray method)": [[255, "dpnp.ndarray.__bool__", false]], "__complex__() (dpnp.ndarray method)": [[256, "dpnp.ndarray.__complex__", false]], "__copy__() (dpnp.ndarray method)": [[257, "dpnp.ndarray.__copy__", false]], "__eq__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__eq__", false]], "__eq__() (dpnp.dtype method)": [[101, "dpnp.dtype.__eq__", false]], "__eq__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__eq__", false]], "__eq__() (dpnp.ndarray method)": [[258, "dpnp.ndarray.__eq__", false]], "__eq__() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.__eq__", false]], "__float__() (dpnp.ndarray method)": [[259, "dpnp.ndarray.__float__", false]], "__floordiv__() (dpnp.ndarray method)": [[260, "dpnp.ndarray.__floordiv__", false]], "__ge__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__ge__", false]], "__ge__() (dpnp.dtype method)": [[101, "dpnp.dtype.__ge__", false]], "__ge__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__ge__", false]], "__ge__() (dpnp.ndarray method)": [[261, "dpnp.ndarray.__ge__", false]], "__ge__() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.__ge__", false]], "__getitem__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__getitem__", false]], "__getitem__() (dpnp.dtype method)": [[101, "dpnp.dtype.__getitem__", false]], "__getitem__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__getitem__", false]], "__getitem__() (dpnp.ndarray method)": [[262, "dpnp.ndarray.__getitem__", false]], "__gt__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__gt__", false]], "__gt__() (dpnp.dtype method)": [[101, "dpnp.dtype.__gt__", false]], "__gt__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__gt__", false]], "__gt__() (dpnp.ndarray method)": [[263, "dpnp.ndarray.__gt__", false]], "__gt__() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.__gt__", false]], "__iadd__() (dpnp.ndarray method)": [[264, "dpnp.ndarray.__iadd__", false]], "__iand__() (dpnp.ndarray method)": [[265, "dpnp.ndarray.__iand__", false]], "__ifloordiv__() (dpnp.ndarray method)": [[266, "dpnp.ndarray.__ifloordiv__", false]], "__ilshift__() (dpnp.ndarray method)": [[267, "dpnp.ndarray.__ilshift__", false]], "__imod__() (dpnp.ndarray method)": [[268, "dpnp.ndarray.__imod__", false]], "__imul__() (dpnp.ndarray method)": [[269, "dpnp.ndarray.__imul__", false]], "__int__() (dpnp.ndarray method)": [[270, "dpnp.ndarray.__int__", false]], "__invert__() (dpnp.ndarray method)": [[271, "dpnp.ndarray.__invert__", false]], "__ior__() (dpnp.ndarray method)": [[272, "dpnp.ndarray.__ior__", false]], "__ipow__() (dpnp.ndarray method)": [[273, "dpnp.ndarray.__ipow__", false]], "__irshift__() (dpnp.ndarray method)": [[274, "dpnp.ndarray.__irshift__", false]], "__isub__() (dpnp.ndarray method)": [[275, "dpnp.ndarray.__isub__", false]], "__iter__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__iter__", false]], "__itruediv__() (dpnp.ndarray method)": [[276, "dpnp.ndarray.__itruediv__", false]], "__ixor__() (dpnp.ndarray method)": [[277, "dpnp.ndarray.__ixor__", false]], "__le__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__le__", false]], "__le__() (dpnp.dtype method)": [[101, "dpnp.dtype.__le__", false]], "__le__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__le__", false]], "__le__() (dpnp.ndarray method)": [[278, "dpnp.ndarray.__le__", false]], "__le__() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.__le__", false]], "__len__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__len__", false]], "__len__() (dpnp.dtype method)": [[101, "dpnp.dtype.__len__", false]], "__len__() (dpnp.ndarray method)": [[279, "dpnp.ndarray.__len__", false]], "__lshift__() (dpnp.ndarray method)": [[280, "dpnp.ndarray.__lshift__", false]], "__lt__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__lt__", false]], "__lt__() (dpnp.dtype method)": [[101, "dpnp.dtype.__lt__", false]], "__lt__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__lt__", false]], "__lt__() (dpnp.ndarray method)": [[281, "dpnp.ndarray.__lt__", false]], "__lt__() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.__lt__", false]], "__matmul__() (dpnp.ndarray method)": [[282, "dpnp.ndarray.__matmul__", false]], "__mod__() (dpnp.ndarray method)": [[283, "dpnp.ndarray.__mod__", false]], "__mul__() (dpnp.ndarray method)": [[284, "dpnp.ndarray.__mul__", false]], "__ne__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__ne__", false]], "__ne__() (dpnp.dtype method)": [[101, "dpnp.dtype.__ne__", false]], "__ne__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__ne__", false]], "__ne__() (dpnp.ndarray method)": [[285, "dpnp.ndarray.__ne__", false]], "__ne__() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.__ne__", false]], "__neg__() (dpnp.ndarray method)": [[286, "dpnp.ndarray.__neg__", false]], "__new__() (dpnp.ndarray method)": [[287, "dpnp.ndarray.__new__", false]], "__next__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__next__", false]], "__or__() (dpnp.ndarray method)": [[288, "dpnp.ndarray.__or__", false]], "__pos__() (dpnp.ndarray method)": [[289, "dpnp.ndarray.__pos__", false]], "__pow__() (dpnp.ndarray method)": [[290, "dpnp.ndarray.__pow__", false]], "__repr__() (dpnp.ndarray method)": [[291, "dpnp.ndarray.__repr__", false]], "__rshift__() (dpnp.ndarray method)": [[292, "dpnp.ndarray.__rshift__", false]], "__setitem__() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.__setitem__", false]], "__setitem__() (dpnp.flatiter method)": [[137, "dpnp.flatiter.__setitem__", false]], "__setitem__() (dpnp.ndarray method)": [[293, "dpnp.ndarray.__setitem__", false]], "__str__() (dpnp.ndarray method)": [[294, "dpnp.ndarray.__str__", false]], "__sub__() (dpnp.ndarray method)": [[295, "dpnp.ndarray.__sub__", false]], "__truediv__() (dpnp.ndarray method)": [[296, "dpnp.ndarray.__truediv__", false]], "__xor__() (dpnp.ndarray method)": [[297, "dpnp.ndarray.__xor__", false]], "abs() (in module dpnp)": [[11, "dpnp.abs", false]], "absolute() (in module dpnp)": [[12, "dpnp.absolute", false]], "acos() (in module dpnp)": [[13, "dpnp.acos", false]], "acosh() (in module dpnp)": [[14, "dpnp.acosh", false]], "add() (in module dpnp)": [[15, "dpnp.add", false]], "alignment (dpnp.dtype attribute)": [[101, "dpnp.dtype.alignment", false]], "all() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.all", false]], "all() (dpnp.ndarray method)": [[298, "dpnp.ndarray.all", false]], "all() (in module dpnp)": [[16, "dpnp.all", false]], "allclose() (in module dpnp)": [[17, "dpnp.allclose", false]], "amax() (in module dpnp)": [[18, "dpnp.amax", false]], "amin() (in module dpnp)": [[19, "dpnp.amin", false]], "angle() (in module dpnp)": [[20, "dpnp.angle", false]], "any() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.any", false]], "any() (dpnp.ndarray method)": [[299, "dpnp.ndarray.any", false]], "any() (in module dpnp)": [[21, "dpnp.any", false]], "append() (in module dpnp)": [[22, "dpnp.append", false]], "arange() (in module dpnp)": [[23, "dpnp.arange", false]], "arccos() (in module dpnp)": [[24, "dpnp.arccos", false]], "arccosh() (in module dpnp)": [[25, "dpnp.arccosh", false]], "arcsin() (in module dpnp)": [[26, "dpnp.arcsin", false]], "arcsinh() (in module dpnp)": [[27, "dpnp.arcsinh", false]], "arctan() (in module dpnp)": [[28, "dpnp.arctan", false]], "arctan2() (in module dpnp)": [[29, "dpnp.arctan2", false]], "arctanh() (in module dpnp)": [[30, "dpnp.arctanh", false]], "argmax() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.argmax", false]], "argmax() (dpnp.ndarray method)": [[300, "dpnp.ndarray.argmax", false]], "argmax() (in module dpnp)": [[31, "dpnp.argmax", false]], "argmin() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.argmin", false]], "argmin() (dpnp.ndarray method)": [[301, "dpnp.ndarray.argmin", false]], "argmin() (in module dpnp)": [[32, "dpnp.argmin", false]], "argsort() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.argsort", false]], "argsort() (dpnp.ndarray method)": [[302, "dpnp.ndarray.argsort", false]], "argsort() (in module dpnp)": [[33, "dpnp.argsort", false]], "argwhere() (in module dpnp)": [[34, "dpnp.argwhere", false]], "around() (in module dpnp)": [[35, "dpnp.around", false]], "array() (in module dpnp)": [[36, "dpnp.array", false]], "array_equal() (in module dpnp)": [[37, "dpnp.array_equal", false]], "array_equiv() (in module dpnp)": [[38, "dpnp.array_equiv", false]], "array_split() (in module dpnp)": [[39, "dpnp.array_split", false]], "asanyarray() (in module dpnp)": [[40, "dpnp.asanyarray", false]], "asarray() (in module dpnp)": [[41, "dpnp.asarray", false]], "asarray_chkfinite() (in module dpnp)": [[42, "dpnp.asarray_chkfinite", false]], "ascontiguousarray() (in module dpnp)": [[43, "dpnp.ascontiguousarray", false]], "asfarray() (in module dpnp)": [[44, "dpnp.asfarray", false]], "asfortranarray() (in module dpnp)": [[45, "dpnp.asfortranarray", false]], "asin() (in module dpnp)": [[46, "dpnp.asin", false]], "asinh() (in module dpnp)": [[47, "dpnp.asinh", false]], "asnumpy() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.asnumpy", false]], "asnumpy() (in module dpnp)": [[48, "dpnp.asnumpy", false]], "astype() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.astype", false]], "astype() (dpnp.ndarray method)": [[303, "dpnp.ndarray.astype", false]], "astype() (in module dpnp)": [[49, "dpnp.astype", false]], "atan() (in module dpnp)": [[50, "dpnp.atan", false]], "atan2() (in module dpnp)": [[51, "dpnp.atan2", false]], "atanh() (in module dpnp)": [[52, "dpnp.atanh", false]], "atleast_1d() (in module dpnp)": [[53, "dpnp.atleast_1d", false]], "atleast_2d() (in module dpnp)": [[54, "dpnp.atleast_2d", false]], "atleast_3d() (in module dpnp)": [[55, "dpnp.atleast_3d", false]], "average() (in module dpnp)": [[56, "dpnp.average", false]], "base (dpnp.dtype attribute)": [[101, "dpnp.dtype.base", false]], "beta() (in module dpnp.random)": [[371, "dpnp.random.beta", false]], "bincount() (in module dpnp)": [[57, "dpnp.bincount", false]], "binomial() (in module dpnp.random)": [[372, "dpnp.random.binomial", false]], "bitwise_and() (in module dpnp)": [[58, "dpnp.bitwise_and", false]], "bitwise_not() (in module dpnp)": [[59, "dpnp.bitwise_not", false]], "bitwise_or() (in module dpnp)": [[60, "dpnp.bitwise_or", false]], "bitwise_xor() (in module dpnp)": [[61, "dpnp.bitwise_xor", false]], "broadcast_arrays() (in module dpnp)": [[62, "dpnp.broadcast_arrays", false]], "broadcast_to() (in module dpnp)": [[63, "dpnp.broadcast_to", false]], "byteorder (dpnp.dtype attribute)": [[101, "dpnp.dtype.byteorder", false]], "bytes() (in module dpnp.random)": [[373, "dpnp.random.bytes", false]], "can_cast() (in module dpnp)": [[64, "dpnp.can_cast", false]], "cbrt() (in module dpnp)": [[65, "dpnp.cbrt", false]], "ceil() (in module dpnp)": [[66, "dpnp.ceil", false]], "char (dpnp.dtype attribute)": [[101, "dpnp.dtype.char", false]], "chisquare() (in module dpnp.random)": [[374, "dpnp.random.chisquare", false]], "choice() (in module dpnp.random)": [[375, "dpnp.random.choice", false]], "cholesky() (in module dpnp.linalg)": [[190, "dpnp.linalg.cholesky", false]], "choose() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.choose", false]], "choose() (dpnp.ndarray method)": [[304, "dpnp.ndarray.choose", false]], "choose() (in module dpnp)": [[67, "dpnp.choose", false]], "clip() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.clip", false]], "clip() (dpnp.ndarray method)": [[305, "dpnp.ndarray.clip", false]], "clip() (in module dpnp)": [[68, "dpnp.clip", false]], "column_stack() (in module dpnp)": [[69, "dpnp.column_stack", false]], "concat() (in module dpnp)": [[70, "dpnp.concat", false]], "concatenate() (in module dpnp)": [[71, "dpnp.concatenate", false]], "cond() (in module dpnp.linalg)": [[191, "dpnp.linalg.cond", false]], "conj() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.conj", false]], "conj() (dpnp.ndarray method)": [[306, "dpnp.ndarray.conj", false]], "conj() (in module dpnp)": [[72, "dpnp.conj", false]], "conjugate() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.conjugate", false]], "conjugate() (dpnp.ndarray method)": [[307, "dpnp.ndarray.conjugate", false]], "conjugate() (in module dpnp)": [[73, "dpnp.conjugate", false]], "convolve() (in module dpnp)": [[74, "dpnp.convolve", false]], "copy() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.copy", false]], "copy() (dpnp.ndarray method)": [[308, "dpnp.ndarray.copy", false]], "copy() (in module dpnp)": [[75, "dpnp.copy", false]], "copysign() (in module dpnp)": [[76, "dpnp.copysign", false]], "copyto() (in module dpnp)": [[77, "dpnp.copyto", false]], "correlate() (in module dpnp)": [[78, "dpnp.correlate", false]], "cos() (in module dpnp)": [[79, "dpnp.cos", false]], "cosh() (in module dpnp)": [[80, "dpnp.cosh", false]], "count_nonzero() (in module dpnp)": [[81, "dpnp.count_nonzero", false]], "cov() (in module dpnp)": [[82, "dpnp.cov", false]], "cross() (in module dpnp)": [[83, "dpnp.cross", false]], "cumlogsumexp() (in module dpnp)": [[84, "dpnp.cumlogsumexp", false]], "cumprod() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.cumprod", false]], "cumprod() (dpnp.ndarray method)": [[309, "dpnp.ndarray.cumprod", false]], "cumprod() (in module dpnp)": [[85, "dpnp.cumprod", false]], "cumsum() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.cumsum", false]], "cumsum() (dpnp.ndarray method)": [[310, "dpnp.ndarray.cumsum", false]], "cumsum() (in module dpnp)": [[86, "dpnp.cumsum", false]], "deg2rad() (in module dpnp)": [[87, "dpnp.deg2rad", false]], "degrees() (in module dpnp)": [[88, "dpnp.degrees", false]], "descr (dpnp.dtype attribute)": [[101, "dpnp.dtype.descr", false]], "det() (in module dpnp.linalg)": [[192, "dpnp.linalg.det", false]], "device (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.device", false]], "diag() (in module dpnp)": [[89, "dpnp.diag", false]], "diag_indices() (in module dpnp)": [[90, "dpnp.diag_indices", false]], "diag_indices_from() (in module dpnp)": [[91, "dpnp.diag_indices_from", false]], "diagflat() (in module dpnp)": [[92, "dpnp.diagflat", false]], "diagonal() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.diagonal", false]], "diagonal() (dpnp.ndarray method)": [[311, "dpnp.ndarray.diagonal", false]], "diagonal() (in module dpnp)": [[93, "dpnp.diagonal", false]], "diff() (in module dpnp)": [[94, "dpnp.diff", false]], "digitize() (in module dpnp)": [[95, "dpnp.digitize", false]], "dirichlet() (in module dpnp.random)": [[376, "dpnp.random.dirichlet", false]], "divide() (in module dpnp)": [[96, "dpnp.divide", false]], "dot() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.dot", false]], "dot() (in module dpnp)": [[97, "dpnp.dot", false]], "dpnp": [[3, "module-dpnp", false]], "dpnp.fft": [[10, "module-dpnp.fft", false]], "dpnp.random": [[498, "module-dpnp.random", false]], "dpnp_array (class in dpnp.dpnp_array)": [[98, "dpnp.dpnp_array.dpnp_array", false]], "dsplit() (in module dpnp)": [[99, "dpnp.dsplit", false]], "dstack() (in module dpnp)": [[100, "dpnp.dstack", false]], "dtype (class in dpnp)": [[101, "dpnp.dtype", false]], "dtype (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.dtype", false]], "dtype (dpnp.ndarray property)": [[312, "dpnp.ndarray.dtype", false]], "ediff1d() (in module dpnp)": [[102, "dpnp.ediff1d", false]], "eig() (in module dpnp.linalg)": [[193, "dpnp.linalg.eig", false]], "eigh() (in module dpnp.linalg)": [[194, "dpnp.linalg.eigh", false]], "eigvals() (in module dpnp.linalg)": [[195, "dpnp.linalg.eigvals", false]], "eigvalsh() (in module dpnp.linalg)": [[196, "dpnp.linalg.eigvalsh", false]], "einsum() (in module dpnp)": [[103, "dpnp.einsum", false]], "einsum_path() (in module dpnp)": [[104, "dpnp.einsum_path", false]], "empty() (in module dpnp)": [[105, "dpnp.empty", false]], "empty_like() (in module dpnp)": [[106, "dpnp.empty_like", false]], "equal() (in module dpnp)": [[107, "dpnp.equal", false]], "erf() (in module dpnp)": [[108, "dpnp.erf", false]], "exp() (in module dpnp)": [[109, "dpnp.exp", false]], "exp2() (in module dpnp)": [[110, "dpnp.exp2", false]], "expand_dims() (in module dpnp)": [[111, "dpnp.expand_dims", false]], "expm1() (in module dpnp)": [[112, "dpnp.expm1", false]], "exponential() (in module dpnp.random)": [[377, "dpnp.random.exponential", false]], "extract() (in module dpnp)": [[113, "dpnp.extract", false]], "eye() (in module dpnp)": [[114, "dpnp.eye", false]], "f() (in module dpnp.random)": [[378, "dpnp.random.f", false]], "fabs() (in module dpnp)": [[115, "dpnp.fabs", false]], "fft() (in module dpnp.fft)": [[116, "dpnp.fft.fft", false]], "fft2() (in module dpnp.fft)": [[117, "dpnp.fft.fft2", false]], "fftfreq() (in module dpnp.fft)": [[118, "dpnp.fft.fftfreq", false]], "fftn() (in module dpnp.fft)": [[119, "dpnp.fft.fftn", false]], "fftshift() (in module dpnp.fft)": [[120, "dpnp.fft.fftshift", false]], "fields (dpnp.dtype attribute)": [[101, "dpnp.dtype.fields", false]], "fill() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.fill", false]], "fill() (dpnp.ndarray method)": [[313, "dpnp.ndarray.fill", false]], "fill_diagonal() (in module dpnp)": [[134, "dpnp.fill_diagonal", false]], "finfo() (in module dpnp)": [[135, "dpnp.finfo", false]], "fix() (in module dpnp)": [[136, "dpnp.fix", false]], "flags (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.flags", false]], "flags (dpnp.dtype attribute)": [[101, "dpnp.dtype.flags", false]], "flags (dpnp.ndarray property)": [[314, "dpnp.ndarray.flags", false]], "flat (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.flat", false]], "flat (dpnp.ndarray property)": [[315, "dpnp.ndarray.flat", false]], "flatiter (class in dpnp)": [[137, "dpnp.flatiter", false]], "flatnonzero() (in module dpnp)": [[138, "dpnp.flatnonzero", false]], "flatten() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.flatten", false]], "flatten() (dpnp.ndarray method)": [[316, "dpnp.ndarray.flatten", false]], "flip() (in module dpnp)": [[139, "dpnp.flip", false]], "fliplr() (in module dpnp)": [[140, "dpnp.fliplr", false]], "flipud() (in module dpnp)": [[141, "dpnp.flipud", false]], "float_power() (in module dpnp)": [[142, "dpnp.float_power", false]], "floor() (in module dpnp)": [[143, "dpnp.floor", false]], "floor_divide() (in module dpnp)": [[144, "dpnp.floor_divide", false]], "fmax() (in module dpnp)": [[145, "dpnp.fmax", false]], "fmin() (in module dpnp)": [[146, "dpnp.fmin", false]], "fmod() (in module dpnp)": [[147, "dpnp.fmod", false]], "from_dlpack() (in module dpnp)": [[148, "dpnp.from_dlpack", false]], "frombuffer() (in module dpnp)": [[149, "dpnp.frombuffer", false]], "fromfile() (in module dpnp)": [[150, "dpnp.fromfile", false]], "fromfunction() (in module dpnp)": [[151, "dpnp.fromfunction", false]], "fromiter() (in module dpnp)": [[152, "dpnp.fromiter", false]], "fromstring() (in module dpnp)": [[153, "dpnp.fromstring", false]], "full() (in module dpnp)": [[154, "dpnp.full", false]], "full_like() (in module dpnp)": [[155, "dpnp.full_like", false]], "gamma() (in module dpnp.random)": [[379, "dpnp.random.gamma", false]], "geometric() (in module dpnp.random)": [[380, "dpnp.random.geometric", false]], "geomspace() (in module dpnp)": [[156, "dpnp.geomspace", false]], "get_array() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.get_array", false]], "get_include() (in module dpnp)": [[157, "dpnp.get_include", false]], "get_state() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.get_state", false]], "get_sycl_device() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.get_sycl_device", false]], "get_sycl_queue() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.get_sycl_queue", false]], "gradient() (in module dpnp)": [[158, "dpnp.gradient", false]], "greater() (in module dpnp)": [[159, "dpnp.greater", false]], "greater_equal() (in module dpnp)": [[160, "dpnp.greater_equal", false]], "gumbel() (in module dpnp.random)": [[381, "dpnp.random.gumbel", false]], "hasobject (dpnp.dtype attribute)": [[101, "dpnp.dtype.hasobject", false]], "heaviside() (in module dpnp)": [[161, "dpnp.heaviside", false]], "hfft() (in module dpnp.fft)": [[121, "dpnp.fft.hfft", false]], "histogram() (in module dpnp)": [[162, "dpnp.histogram", false]], "histogram_bin_edges() (in module dpnp)": [[163, "dpnp.histogram_bin_edges", false]], "hsplit() (in module dpnp)": [[164, "dpnp.hsplit", false]], "hstack() (in module dpnp)": [[165, "dpnp.hstack", false]], "hypergeometric() (in module dpnp.random)": [[382, "dpnp.random.hypergeometric", false]], "hypot() (in module dpnp)": [[166, "dpnp.hypot", false]], "identity() (in module dpnp)": [[167, "dpnp.identity", false]], "ifft() (in module dpnp.fft)": [[122, "dpnp.fft.ifft", false]], "ifft2() (in module dpnp.fft)": [[123, "dpnp.fft.ifft2", false]], "ifftn() (in module dpnp.fft)": [[124, "dpnp.fft.ifftn", false]], "ifftshift() (in module dpnp.fft)": [[125, "dpnp.fft.ifftshift", false]], "ihfft() (in module dpnp.fft)": [[126, "dpnp.fft.ihfft", false]], "iinfo() (in module dpnp)": [[168, "dpnp.iinfo", false]], "imag (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.imag", false]], "imag (dpnp.ndarray property)": [[317, "dpnp.ndarray.imag", false]], "imag() (in module dpnp)": [[169, "dpnp.imag", false]], "indices() (in module dpnp)": [[170, "dpnp.indices", false]], "inner() (in module dpnp)": [[171, "dpnp.inner", false]], "inv() (in module dpnp.linalg)": [[197, "dpnp.linalg.inv", false]], "invert() (in module dpnp)": [[172, "dpnp.invert", false]], "irfft() (in module dpnp.fft)": [[127, "dpnp.fft.irfft", false]], "irfft2() (in module dpnp.fft)": [[128, "dpnp.fft.irfft2", false]], "irfftn() (in module dpnp.fft)": [[129, "dpnp.fft.irfftn", false]], "isalignedstruct (dpnp.dtype attribute)": [[101, "dpnp.dtype.isalignedstruct", false]], "isbuiltin (dpnp.dtype attribute)": [[101, "dpnp.dtype.isbuiltin", false]], "isclose() (in module dpnp)": [[173, "dpnp.isclose", false]], "iscomplex() (in module dpnp)": [[174, "dpnp.iscomplex", false]], "iscomplexobj() (in module dpnp)": [[175, "dpnp.iscomplexobj", false]], "isfinite() (in module dpnp)": [[176, "dpnp.isfinite", false]], "isinf() (in module dpnp)": [[177, "dpnp.isinf", false]], "isnan() (in module dpnp)": [[178, "dpnp.isnan", false]], "isnative (dpnp.dtype attribute)": [[101, "dpnp.dtype.isnative", false]], "isneginf() (in module dpnp)": [[179, "dpnp.isneginf", false]], "isposinf() (in module dpnp)": [[180, "dpnp.isposinf", false]], "isreal() (in module dpnp)": [[181, "dpnp.isreal", false]], "isrealobj() (in module dpnp)": [[182, "dpnp.isrealobj", false]], "isscalar() (in module dpnp)": [[183, "dpnp.isscalar", false]], "issubdtype() (in module dpnp)": [[184, "dpnp.issubdtype", false]], "item() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.item", false]], "item() (dpnp.ndarray method)": [[318, "dpnp.ndarray.item", false]], "itemsize (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.itemsize", false]], "itemsize (dpnp.dtype attribute)": [[101, "dpnp.dtype.itemsize", false]], "itemsize (dpnp.ndarray property)": [[319, "dpnp.ndarray.itemsize", false]], "ix_() (in module dpnp)": [[185, "dpnp.ix_", false]], "kind (dpnp.dtype attribute)": [[101, "dpnp.dtype.kind", false]], "kron() (in module dpnp)": [[186, "dpnp.kron", false]], "laplace() (in module dpnp.random)": [[383, "dpnp.random.laplace", false]], "left_shift() (in module dpnp)": [[187, "dpnp.left_shift", false]], "less() (in module dpnp)": [[188, "dpnp.less", false]], "less_equal() (in module dpnp)": [[189, "dpnp.less_equal", false]], "linspace() (in module dpnp)": [[210, "dpnp.linspace", false]], "loadtxt() (in module dpnp)": [[211, "dpnp.loadtxt", false]], "log() (in module dpnp)": [[212, "dpnp.log", false]], "log10() (in module dpnp)": [[213, "dpnp.log10", false]], "log1p() (in module dpnp)": [[214, "dpnp.log1p", false]], "log2() (in module dpnp)": [[215, "dpnp.log2", false]], "logaddexp() (in module dpnp)": [[216, "dpnp.logaddexp", false]], "logaddexp2() (in module dpnp)": [[217, "dpnp.logaddexp2", false]], "logical_and() (in module dpnp)": [[218, "dpnp.logical_and", false]], "logical_not() (in module dpnp)": [[219, "dpnp.logical_not", false]], "logical_or() (in module dpnp)": [[220, "dpnp.logical_or", false]], "logical_xor() (in module dpnp)": [[221, "dpnp.logical_xor", false]], "logistic() (in module dpnp.random)": [[384, "dpnp.random.logistic", false]], "lognormal() (in module dpnp.random)": [[385, "dpnp.random.lognormal", false]], "logseries() (in module dpnp.random)": [[386, "dpnp.random.logseries", false]], "logspace() (in module dpnp)": [[222, "dpnp.logspace", false]], "logsumexp() (in module dpnp)": [[223, "dpnp.logsumexp", false]], "lstsq() (in module dpnp.linalg)": [[198, "dpnp.linalg.lstsq", false]], "mask_indices() (in module dpnp)": [[224, "dpnp.mask_indices", false]], "matmul() (in module dpnp)": [[225, "dpnp.matmul", false]], "matrix_power() (in module dpnp.linalg)": [[199, "dpnp.linalg.matrix_power", false]], "matrix_rank() (in module dpnp.linalg)": [[200, "dpnp.linalg.matrix_rank", false]], "max() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.max", false]], "max() (dpnp.ndarray method)": [[320, "dpnp.ndarray.max", false]], "max() (in module dpnp)": [[226, "dpnp.max", false]], "maximum() (in module dpnp)": [[227, "dpnp.maximum", false]], "mean() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.mean", false]], "mean() (dpnp.ndarray method)": [[321, "dpnp.ndarray.mean", false]], "mean() (in module dpnp)": [[228, "dpnp.mean", false]], "median() (in module dpnp)": [[229, "dpnp.median", false]], "meshgrid() (in module dpnp)": [[230, "dpnp.meshgrid", false]], "metadata (dpnp.dtype attribute)": [[101, "dpnp.dtype.metadata", false]], "mgrid (in module dpnp)": [[231, "dpnp.mgrid", false]], "min() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.min", false]], "min() (dpnp.ndarray method)": [[322, "dpnp.ndarray.min", false]], "min() (in module dpnp)": [[232, "dpnp.min", false]], "minimum() (in module dpnp)": [[233, "dpnp.minimum", false]], "mod() (in module dpnp)": [[234, "dpnp.mod", false]], "modf() (in module dpnp)": [[235, "dpnp.modf", false]], "module": [[3, "module-dpnp", false], [10, "module-dpnp.fft", false], [498, "module-dpnp.random", false]], "moveaxis() (in module dpnp)": [[236, "dpnp.moveaxis", false]], "multi_dot() (in module dpnp.linalg)": [[201, "dpnp.linalg.multi_dot", false]], "multinomial() (in module dpnp.random)": [[387, "dpnp.random.multinomial", false]], "multiply() (in module dpnp)": [[237, "dpnp.multiply", false]], "multivariate_normal() (in module dpnp.random)": [[388, "dpnp.random.multivariate_normal", false]], "name (dpnp.dtype attribute)": [[101, "dpnp.dtype.name", false]], "names (dpnp.dtype attribute)": [[101, "dpnp.dtype.names", false]], "nan_to_num() (in module dpnp)": [[238, "dpnp.nan_to_num", false]], "nanargmax() (in module dpnp)": [[239, "dpnp.nanargmax", false]], "nanargmin() (in module dpnp)": [[240, "dpnp.nanargmin", false]], "nancumprod() (in module dpnp)": [[241, "dpnp.nancumprod", false]], "nancumsum() (in module dpnp)": [[242, "dpnp.nancumsum", false]], "nanmax() (in module dpnp)": [[243, "dpnp.nanmax", false]], "nanmean() (in module dpnp)": [[244, "dpnp.nanmean", false]], "nanmin() (in module dpnp)": [[245, "dpnp.nanmin", false]], "nanprod() (in module dpnp)": [[246, "dpnp.nanprod", false]], "nanstd() (in module dpnp)": [[247, "dpnp.nanstd", false]], "nansum() (in module dpnp)": [[248, "dpnp.nansum", false]], "nanvar() (in module dpnp)": [[249, "dpnp.nanvar", false]], "nbytes (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.nbytes", false]], "nbytes (dpnp.ndarray property)": [[323, "dpnp.ndarray.nbytes", false]], "ndarray (in module dpnp)": [[250, "dpnp.ndarray", false]], "ndim (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.ndim", false]], "ndim (dpnp.dtype attribute)": [[101, "dpnp.dtype.ndim", false]], "ndim (dpnp.ndarray property)": [[324, "dpnp.ndarray.ndim", false]], "ndim() (in module dpnp)": [[347, "dpnp.ndim", false]], "negative() (in module dpnp)": [[348, "dpnp.negative", false]], "negative_binomial() (in module dpnp.random)": [[389, "dpnp.random.negative_binomial", false]], "newbyteorder() (dpnp.dtype method)": [[101, "dpnp.dtype.newbyteorder", false]], "nextafter() (in module dpnp)": [[349, "dpnp.nextafter", false]], "noncentral_chisquare() (in module dpnp.random)": [[390, "dpnp.random.noncentral_chisquare", false]], "noncentral_f() (in module dpnp.random)": [[391, "dpnp.random.noncentral_f", false]], "nonzero() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.nonzero", false]], "nonzero() (dpnp.ndarray method)": [[325, "dpnp.ndarray.nonzero", false]], "nonzero() (in module dpnp)": [[350, "dpnp.nonzero", false]], "norm() (in module dpnp.linalg)": [[202, "dpnp.linalg.norm", false]], "normal() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.normal", false]], "normal() (in module dpnp.random)": [[392, "dpnp.random.normal", false]], "not_equal() (in module dpnp)": [[351, "dpnp.not_equal", false]], "num (dpnp.dtype attribute)": [[101, "dpnp.dtype.num", false]], "ogrid (in module dpnp)": [[352, "dpnp.ogrid", false]], "ones() (in module dpnp)": [[353, "dpnp.ones", false]], "ones_like() (in module dpnp)": [[354, "dpnp.ones_like", false]], "outer() (in module dpnp)": [[355, "dpnp.outer", false]], "pareto() (in module dpnp.random)": [[393, "dpnp.random.pareto", false]], "partition() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.partition", false]], "partition() (dpnp.ndarray method)": [[326, "dpnp.ndarray.partition", false]], "partition() (in module dpnp)": [[356, "dpnp.partition", false]], "permutation() (in module dpnp.random)": [[394, "dpnp.random.permutation", false]], "permute_dims() (in module dpnp)": [[357, "dpnp.permute_dims", false]], "pinv() (in module dpnp.linalg)": [[203, "dpnp.linalg.pinv", false]], "place() (in module dpnp)": [[358, "dpnp.place", false]], "poisson() (in module dpnp.random)": [[395, "dpnp.random.poisson", false]], "positive() (in module dpnp)": [[359, "dpnp.positive", false]], "pow() (in module dpnp)": [[360, "dpnp.pow", false]], "power() (in module dpnp)": [[361, "dpnp.power", false]], "power() (in module dpnp.random)": [[396, "dpnp.random.power", false]], "prod() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.prod", false]], "prod() (dpnp.ndarray method)": [[327, "dpnp.ndarray.prod", false]], "prod() (in module dpnp)": [[362, "dpnp.prod", false]], "proj() (in module dpnp)": [[363, "dpnp.proj", false]], "ptp() (in module dpnp)": [[364, "dpnp.ptp", false]], "put() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.put", false]], "put() (dpnp.ndarray method)": [[328, "dpnp.ndarray.put", false]], "put() (in module dpnp)": [[365, "dpnp.put", false]], "put_along_axis() (in module dpnp)": [[366, "dpnp.put_along_axis", false]], "putmask() (in module dpnp)": [[367, "dpnp.putmask", false]], "qr() (in module dpnp.linalg)": [[204, "dpnp.linalg.qr", false]], "rad2deg() (in module dpnp)": [[368, "dpnp.rad2deg", false]], "radians() (in module dpnp)": [[369, "dpnp.radians", false]], "rand() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.rand", false]], "rand() (in module dpnp.random)": [[397, "dpnp.random.rand", false]], "randint() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.randint", false]], "randint() (in module dpnp.random)": [[398, "dpnp.random.randint", false]], "randn() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.randn", false]], "randn() (in module dpnp.random)": [[399, "dpnp.random.randn", false]], "random() (in module dpnp.random)": [[400, "dpnp.random.random", false]], "random_integers() (in module dpnp.random)": [[401, "dpnp.random.random_integers", false]], "random_sample() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.random_sample", false]], "random_sample() (in module dpnp.random)": [[402, "dpnp.random.random_sample", false]], "randomstate (class in dpnp.random)": [[370, "dpnp.random.RandomState", false]], "ranf() (in module dpnp.random)": [[403, "dpnp.random.ranf", false]], "ravel() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.ravel", false]], "ravel() (dpnp.ndarray method)": [[329, "dpnp.ndarray.ravel", false]], "ravel() (in module dpnp)": [[419, "dpnp.ravel", false]], "ravel_multi_index() (in module dpnp)": [[420, "dpnp.ravel_multi_index", false]], "rayleigh() (in module dpnp.random)": [[404, "dpnp.random.rayleigh", false]], "real (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.real", false]], "real (dpnp.ndarray property)": [[330, "dpnp.ndarray.real", false]], "real() (in module dpnp)": [[421, "dpnp.real", false]], "real_if_close() (in module dpnp)": [[422, "dpnp.real_if_close", false]], "reciprocal() (in module dpnp)": [[423, "dpnp.reciprocal", false]], "reduce_hypot() (in module dpnp)": [[424, "dpnp.reduce_hypot", false]], "remainder() (in module dpnp)": [[425, "dpnp.remainder", false]], "repeat() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.repeat", false]], "repeat() (dpnp.ndarray method)": [[331, "dpnp.ndarray.repeat", false]], "repeat() (in module dpnp)": [[426, "dpnp.repeat", false]], "require() (in module dpnp)": [[427, "dpnp.require", false]], "reshape() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.reshape", false]], "reshape() (dpnp.ndarray method)": [[332, "dpnp.ndarray.reshape", false]], "reshape() (in module dpnp)": [[428, "dpnp.reshape", false]], "resize() (in module dpnp)": [[429, "dpnp.resize", false]], "result_type() (in module dpnp)": [[430, "dpnp.result_type", false]], "rfft() (in module dpnp.fft)": [[130, "dpnp.fft.rfft", false]], "rfft2() (in module dpnp.fft)": [[131, "dpnp.fft.rfft2", false]], "rfftfreq() (in module dpnp.fft)": [[132, "dpnp.fft.rfftfreq", false]], "rfftn() (in module dpnp.fft)": [[133, "dpnp.fft.rfftn", false]], "right_shift() (in module dpnp)": [[431, "dpnp.right_shift", false]], "rint() (in module dpnp)": [[432, "dpnp.rint", false]], "roll() (in module dpnp)": [[433, "dpnp.roll", false]], "rollaxis() (in module dpnp)": [[434, "dpnp.rollaxis", false]], "rot90() (in module dpnp)": [[435, "dpnp.rot90", false]], "round() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.round", false]], "round() (dpnp.ndarray method)": [[333, "dpnp.ndarray.round", false]], "round() (in module dpnp)": [[436, "dpnp.round", false]], "row_stack() (in module dpnp)": [[437, "dpnp.row_stack", false]], "rsqrt() (in module dpnp)": [[438, "dpnp.rsqrt", false]], "sample() (in module dpnp.random)": [[405, "dpnp.random.sample", false]], "searchsorted() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.searchsorted", false]], "searchsorted() (dpnp.ndarray method)": [[334, "dpnp.ndarray.searchsorted", false]], "searchsorted() (in module dpnp)": [[439, "dpnp.searchsorted", false]], "seed() (in module dpnp.random)": [[406, "dpnp.random.seed", false]], "select() (in module dpnp)": [[440, "dpnp.select", false]], "shape (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.shape", false]], "shape (dpnp.dtype attribute)": [[101, "dpnp.dtype.shape", false]], "shape (dpnp.ndarray property)": [[335, "dpnp.ndarray.shape", false]], "shape() (in module dpnp)": [[441, "dpnp.shape", false]], "shuffle() (in module dpnp.random)": [[407, "dpnp.random.shuffle", false]], "sign() (in module dpnp)": [[442, "dpnp.sign", false]], "signbit() (in module dpnp)": [[443, "dpnp.signbit", false]], "sin() (in module dpnp)": [[444, "dpnp.sin", false]], "sinh() (in module dpnp)": [[445, "dpnp.sinh", false]], "size (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.size", false]], "size (dpnp.ndarray property)": [[336, "dpnp.ndarray.size", false]], "size() (in module dpnp)": [[446, "dpnp.size", false]], "slogdet() (in module dpnp.linalg)": [[205, "dpnp.linalg.slogdet", false]], "solve() (in module dpnp.linalg)": [[206, "dpnp.linalg.solve", false]], "sort() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.sort", false]], "sort() (dpnp.ndarray method)": [[337, "dpnp.ndarray.sort", false]], "sort() (in module dpnp)": [[447, "dpnp.sort", false]], "sort_complex() (in module dpnp)": [[448, "dpnp.sort_complex", false]], "split() (in module dpnp)": [[449, "dpnp.split", false]], "sqrt() (in module dpnp)": [[450, "dpnp.sqrt", false]], "square() (in module dpnp)": [[451, "dpnp.square", false]], "squeeze() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.squeeze", false]], "squeeze() (dpnp.ndarray method)": [[338, "dpnp.ndarray.squeeze", false]], "squeeze() (in module dpnp)": [[452, "dpnp.squeeze", false]], "stack() (in module dpnp)": [[453, "dpnp.stack", false]], "standard_cauchy() (in module dpnp.random)": [[408, "dpnp.random.standard_cauchy", false]], "standard_exponential() (in module dpnp.random)": [[409, "dpnp.random.standard_exponential", false]], "standard_gamma() (in module dpnp.random)": [[410, "dpnp.random.standard_gamma", false]], "standard_normal() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.standard_normal", false]], "standard_normal() (in module dpnp.random)": [[411, "dpnp.random.standard_normal", false]], "standard_t() (in module dpnp.random)": [[412, "dpnp.random.standard_t", false]], "std() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.std", false]], "std() (dpnp.ndarray method)": [[339, "dpnp.ndarray.std", false]], "std() (in module dpnp)": [[454, "dpnp.std", false]], "str (dpnp.dtype attribute)": [[101, "dpnp.dtype.str", false]], "strides (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.strides", false]], "strides (dpnp.ndarray property)": [[340, "dpnp.ndarray.strides", false]], "subdtype (dpnp.dtype attribute)": [[101, "dpnp.dtype.subdtype", false]], "subtract() (in module dpnp)": [[455, "dpnp.subtract", false]], "sum() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.sum", false]], "sum() (dpnp.ndarray method)": [[341, "dpnp.ndarray.sum", false]], "sum() (in module dpnp)": [[456, "dpnp.sum", false]], "svd() (in module dpnp.linalg)": [[207, "dpnp.linalg.svd", false]], "swapaxes() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.swapaxes", false]], "swapaxes() (dpnp.ndarray method)": [[342, "dpnp.ndarray.swapaxes", false]], "swapaxes() (in module dpnp)": [[457, "dpnp.swapaxes", false]], "sycl_context (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.sycl_context", false]], "sycl_device (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.sycl_device", false]], "sycl_queue (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.sycl_queue", false]], "t (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.T", false]], "t (dpnp.ndarray property)": [[251, "dpnp.ndarray.T", false]], "take() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.take", false]], "take() (dpnp.ndarray method)": [[343, "dpnp.ndarray.take", false]], "take() (in module dpnp)": [[458, "dpnp.take", false]], "take_along_axis() (in module dpnp)": [[459, "dpnp.take_along_axis", false]], "tan() (in module dpnp)": [[460, "dpnp.tan", false]], "tanh() (in module dpnp)": [[461, "dpnp.tanh", false]], "tensordot() (in module dpnp)": [[462, "dpnp.tensordot", false]], "tensorinv() (in module dpnp.linalg)": [[208, "dpnp.linalg.tensorinv", false]], "tensorsolve() (in module dpnp.linalg)": [[209, "dpnp.linalg.tensorsolve", false]], "tile() (in module dpnp)": [[463, "dpnp.tile", false]], "to_device() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.to_device", false]], "trace() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.trace", false]], "trace() (dpnp.ndarray method)": [[344, "dpnp.ndarray.trace", false]], "trace() (in module dpnp)": [[464, "dpnp.trace", false]], "transpose() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.transpose", false]], "transpose() (dpnp.ndarray method)": [[345, "dpnp.ndarray.transpose", false]], "transpose() (in module dpnp)": [[465, "dpnp.transpose", false]], "trapezoid() (in module dpnp)": [[466, "dpnp.trapezoid", false]], "tri() (in module dpnp)": [[467, "dpnp.tri", false]], "triangular() (in module dpnp.random)": [[413, "dpnp.random.triangular", false]], "tril() (in module dpnp)": [[468, "dpnp.tril", false]], "tril_indices() (in module dpnp)": [[469, "dpnp.tril_indices", false]], "tril_indices_from() (in module dpnp)": [[470, "dpnp.tril_indices_from", false]], "trim_zeros() (in module dpnp)": [[471, "dpnp.trim_zeros", false]], "triu() (in module dpnp)": [[472, "dpnp.triu", false]], "triu_indices() (in module dpnp)": [[473, "dpnp.triu_indices", false]], "triu_indices_from() (in module dpnp)": [[474, "dpnp.triu_indices_from", false]], "true_divide() (in module dpnp)": [[475, "dpnp.true_divide", false]], "trunc() (in module dpnp)": [[476, "dpnp.trunc", false]], "type (dpnp.dtype attribute)": [[101, "dpnp.dtype.type", false]], "uniform() (dpnp.random.randomstate method)": [[370, "dpnp.random.RandomState.uniform", false]], "uniform() (in module dpnp.random)": [[414, "dpnp.random.uniform", false]], "unique() (in module dpnp)": [[477, "dpnp.unique", false]], "unravel_index() (in module dpnp)": [[478, "dpnp.unravel_index", false]], "unwrap() (in module dpnp)": [[479, "dpnp.unwrap", false]], "usm_type (dpnp.dpnp_array.dpnp_array attribute)": [[98, "dpnp.dpnp_array.dpnp_array.usm_type", false]], "vander() (in module dpnp)": [[480, "dpnp.vander", false]], "var() (dpnp.dpnp_array.dpnp_array method)": [[98, "dpnp.dpnp_array.dpnp_array.var", false]], "var() (dpnp.ndarray method)": [[346, "dpnp.ndarray.var", false]], "var() (in module dpnp)": [[481, "dpnp.var", false]], "vdot() (in module dpnp)": [[482, "dpnp.vdot", false]], "vonmises() (in module dpnp.random)": [[415, "dpnp.random.vonmises", false]], "vsplit() (in module dpnp)": [[483, "dpnp.vsplit", false]], "vstack() (in module dpnp)": [[484, "dpnp.vstack", false]], "wald() (in module dpnp.random)": [[416, "dpnp.random.wald", false]], "weibull() (in module dpnp.random)": [[417, "dpnp.random.weibull", false]], "where() (in module dpnp)": [[485, "dpnp.where", false]], "zeros() (in module dpnp)": [[486, "dpnp.zeros", false]], "zeros_like() (in module dpnp)": [[487, "dpnp.zeros_like", false]], "zipf() (in module dpnp.random)": [[418, "dpnp.random.zipf", false]]}, "objects": {"": [[3, 0, 0, "-", "dpnp"]], "dpnp": [[11, 1, 1, "", "abs"], [12, 1, 1, "", "absolute"], [13, 1, 1, "", "acos"], [14, 1, 1, "", "acosh"], [15, 1, 1, "", "add"], [16, 1, 1, "", "all"], [17, 1, 1, "", "allclose"], [18, 1, 1, "", "amax"], [19, 1, 1, "", "amin"], [20, 1, 1, "", "angle"], [21, 1, 1, "", "any"], [22, 1, 1, "", "append"], [23, 1, 1, "", "arange"], [24, 1, 1, "", "arccos"], [25, 1, 1, "", "arccosh"], [26, 1, 1, "", "arcsin"], [27, 1, 1, "", "arcsinh"], [28, 1, 1, "", "arctan"], [29, 1, 1, "", "arctan2"], [30, 1, 1, "", "arctanh"], [31, 1, 1, "", "argmax"], [32, 1, 1, "", "argmin"], [33, 1, 1, "", "argsort"], [34, 1, 1, "", "argwhere"], [35, 1, 1, "", "around"], [36, 1, 1, "", "array"], [37, 1, 1, "", "array_equal"], [38, 1, 1, "", "array_equiv"], [39, 1, 1, "", "array_split"], [40, 1, 1, "", "asanyarray"], [41, 1, 1, "", "asarray"], [42, 1, 1, "", "asarray_chkfinite"], [43, 1, 1, "", "ascontiguousarray"], [44, 1, 1, "", "asfarray"], [45, 1, 1, "", "asfortranarray"], [46, 1, 1, "", "asin"], [47, 1, 1, "", "asinh"], [48, 1, 1, "", "asnumpy"], [49, 1, 1, "", "astype"], [50, 1, 1, "", "atan"], [51, 1, 1, "", "atan2"], [52, 1, 1, "", "atanh"], [53, 1, 1, "", "atleast_1d"], [54, 1, 1, "", "atleast_2d"], [55, 1, 1, "", "atleast_3d"], [56, 1, 1, "", "average"], [57, 1, 1, "", "bincount"], [58, 1, 1, "", "bitwise_and"], [59, 1, 1, "", "bitwise_not"], [60, 1, 1, "", "bitwise_or"], [61, 1, 1, "", "bitwise_xor"], [62, 1, 1, "", "broadcast_arrays"], [63, 1, 1, "", "broadcast_to"], [64, 1, 1, "", "can_cast"], [65, 1, 1, "", "cbrt"], [66, 1, 1, "", "ceil"], [67, 1, 1, "", "choose"], [68, 1, 1, "", "clip"], [69, 1, 1, "", "column_stack"], [70, 1, 1, "", "concat"], [71, 1, 1, "", "concatenate"], [72, 1, 1, "", "conj"], [73, 1, 1, "", "conjugate"], [74, 1, 1, "", "convolve"], [75, 1, 1, "", "copy"], [76, 1, 1, "", "copysign"], [77, 1, 1, "", "copyto"], [78, 1, 1, "", "correlate"], [79, 1, 1, "", "cos"], [80, 1, 1, "", "cosh"], [81, 1, 1, "", "count_nonzero"], [82, 1, 1, "", "cov"], [83, 1, 1, "", "cross"], [84, 1, 1, "", "cumlogsumexp"], [85, 1, 1, "", "cumprod"], [86, 1, 1, "", "cumsum"], [87, 1, 1, "", "deg2rad"], [88, 1, 1, "", "degrees"], [89, 1, 1, "", "diag"], [90, 1, 1, "", "diag_indices"], [91, 1, 1, "", "diag_indices_from"], [92, 1, 1, "", "diagflat"], [93, 1, 1, "", "diagonal"], [94, 1, 1, "", "diff"], [95, 1, 1, "", "digitize"], [96, 1, 1, "", "divide"], [97, 1, 1, "", "dot"], [99, 1, 1, "", "dsplit"], [100, 1, 1, "", "dstack"], [101, 2, 1, "", "dtype"], [102, 1, 1, "", "ediff1d"], [103, 1, 1, "", "einsum"], [104, 1, 1, "", "einsum_path"], [105, 1, 1, "", "empty"], [106, 1, 1, "", "empty_like"], [107, 1, 1, "", "equal"], [108, 1, 1, "", "erf"], [109, 1, 1, "", "exp"], [110, 1, 1, "", "exp2"], [111, 1, 1, "", "expand_dims"], [112, 1, 1, "", "expm1"], [113, 1, 1, "", "extract"], [114, 1, 1, "", "eye"], [115, 1, 1, "", "fabs"], [10, 0, 0, "-", "fft"], [134, 1, 1, "", "fill_diagonal"], [135, 1, 1, "", "finfo"], [136, 1, 1, "", "fix"], [137, 2, 1, "", "flatiter"], [138, 1, 1, "", "flatnonzero"], [139, 1, 1, "", "flip"], [140, 1, 1, "", "fliplr"], [141, 1, 1, "", "flipud"], [142, 1, 1, "", "float_power"], [143, 1, 1, "", "floor"], [144, 1, 1, "", "floor_divide"], [145, 1, 1, "", "fmax"], [146, 1, 1, "", "fmin"], [147, 1, 1, "", "fmod"], [148, 1, 1, "", "from_dlpack"], [149, 1, 1, "", "frombuffer"], [150, 1, 1, "", "fromfile"], [151, 1, 1, "", "fromfunction"], [152, 1, 1, "", "fromiter"], [153, 1, 1, "", "fromstring"], [154, 1, 1, "", "full"], [155, 1, 1, "", "full_like"], [156, 1, 1, "", "geomspace"], [157, 1, 1, "", "get_include"], [158, 1, 1, "", "gradient"], [159, 1, 1, "", "greater"], [160, 1, 1, "", "greater_equal"], [161, 1, 1, "", "heaviside"], [162, 1, 1, "", "histogram"], [163, 1, 1, "", "histogram_bin_edges"], [164, 1, 1, "", "hsplit"], [165, 1, 1, "", "hstack"], [166, 1, 1, "", "hypot"], [167, 1, 1, "", "identity"], [168, 1, 1, "", "iinfo"], [169, 1, 1, "", "imag"], [170, 1, 1, "", "indices"], [171, 1, 1, "", "inner"], [172, 1, 1, "", "invert"], [173, 1, 1, "", "isclose"], [174, 1, 1, "", "iscomplex"], [175, 1, 1, "", "iscomplexobj"], [176, 1, 1, "", "isfinite"], [177, 1, 1, "", "isinf"], [178, 1, 1, "", "isnan"], [179, 1, 1, "", "isneginf"], [180, 1, 1, "", "isposinf"], [181, 1, 1, "", "isreal"], [182, 1, 1, "", "isrealobj"], [183, 1, 1, "", "isscalar"], [184, 1, 1, "", "issubdtype"], [185, 1, 1, "", "ix_"], [186, 1, 1, "", "kron"], [187, 1, 1, "", "left_shift"], [188, 1, 1, "", "less"], [189, 1, 1, "", "less_equal"], [210, 1, 1, "", "linspace"], [211, 1, 1, "", "loadtxt"], [212, 1, 1, "", "log"], [213, 1, 1, "", "log10"], [214, 1, 1, "", "log1p"], [215, 1, 1, "", "log2"], [216, 1, 1, "", "logaddexp"], [217, 1, 1, "", "logaddexp2"], [218, 1, 1, "", "logical_and"], [219, 1, 1, "", "logical_not"], [220, 1, 1, "", "logical_or"], [221, 1, 1, "", "logical_xor"], [222, 1, 1, "", "logspace"], [223, 1, 1, "", "logsumexp"], [224, 1, 1, "", "mask_indices"], [225, 1, 1, "", "matmul"], [226, 1, 1, "", "max"], [227, 1, 1, "", "maximum"], [228, 1, 1, "", "mean"], [229, 1, 1, "", "median"], [230, 1, 1, "", "meshgrid"], [231, 5, 1, "", "mgrid"], [232, 1, 1, "", "min"], [233, 1, 1, "", "minimum"], [234, 1, 1, "", "mod"], [235, 1, 1, "", "modf"], [236, 1, 1, "", "moveaxis"], [237, 1, 1, "", "multiply"], [238, 1, 1, "", "nan_to_num"], [239, 1, 1, "", "nanargmax"], [240, 1, 1, "", "nanargmin"], [241, 1, 1, "", "nancumprod"], [242, 1, 1, "", "nancumsum"], [243, 1, 1, "", "nanmax"], [244, 1, 1, "", "nanmean"], [245, 1, 1, "", "nanmin"], [246, 1, 1, "", "nanprod"], [247, 1, 1, "", "nanstd"], [248, 1, 1, "", "nansum"], [249, 1, 1, "", "nanvar"], [250, 3, 1, "", "ndarray"], [347, 1, 1, "", "ndim"], [348, 1, 1, "", "negative"], [349, 1, 1, "", "nextafter"], [350, 1, 1, "", "nonzero"], [351, 1, 1, "", "not_equal"], [352, 5, 1, "", "ogrid"], [353, 1, 1, "", "ones"], [354, 1, 1, "", "ones_like"], [355, 1, 1, "", "outer"], [356, 1, 1, "", "partition"], [357, 1, 1, "", "permute_dims"], [358, 1, 1, "", "place"], [359, 1, 1, "", "positive"], [360, 1, 1, "", "pow"], [361, 1, 1, "", "power"], [362, 1, 1, "", "prod"], [363, 1, 1, "", "proj"], [364, 1, 1, "", "ptp"], [365, 1, 1, "", "put"], [366, 1, 1, "", "put_along_axis"], [367, 1, 1, "", "putmask"], [368, 1, 1, "", "rad2deg"], [369, 1, 1, "", "radians"], [498, 0, 0, "-", "random"], [419, 1, 1, "", "ravel"], [420, 1, 1, "", "ravel_multi_index"], [421, 1, 1, "", "real"], [422, 1, 1, "", "real_if_close"], [423, 1, 1, "", "reciprocal"], [424, 1, 1, "", "reduce_hypot"], [425, 1, 1, "", "remainder"], [426, 1, 1, "", "repeat"], [427, 1, 1, "", "require"], [428, 1, 1, "", "reshape"], [429, 1, 1, "", "resize"], [430, 1, 1, "", "result_type"], [431, 1, 1, "", "right_shift"], [432, 1, 1, "", "rint"], [433, 1, 1, "", "roll"], [434, 1, 1, "", "rollaxis"], [435, 1, 1, "", "rot90"], [436, 1, 1, "", "round"], [437, 1, 1, "", "row_stack"], [438, 1, 1, "", "rsqrt"], [439, 1, 1, "", "searchsorted"], [440, 1, 1, "", "select"], [441, 1, 1, "", "shape"], [442, 1, 1, "", "sign"], [443, 1, 1, "", "signbit"], [444, 1, 1, "", "sin"], [445, 1, 1, "", "sinh"], [446, 1, 1, "", "size"], [447, 1, 1, "", "sort"], [448, 1, 1, "", "sort_complex"], [449, 1, 1, "", "split"], [450, 1, 1, "", "sqrt"], [451, 1, 1, "", "square"], [452, 1, 1, "", "squeeze"], [453, 1, 1, "", "stack"], [454, 1, 1, "", "std"], [455, 1, 1, "", "subtract"], [456, 1, 1, "", "sum"], [457, 1, 1, "", "swapaxes"], [458, 1, 1, "", "take"], [459, 1, 1, "", "take_along_axis"], [460, 1, 1, "", "tan"], [461, 1, 1, "", "tanh"], [462, 1, 1, "", "tensordot"], [463, 1, 1, "", "tile"], [464, 1, 1, "", "trace"], [465, 1, 1, "", "transpose"], [466, 1, 1, "", "trapezoid"], [467, 1, 1, "", "tri"], [468, 1, 1, "", "tril"], [469, 1, 1, "", "tril_indices"], [470, 1, 1, "", "tril_indices_from"], [471, 1, 1, "", "trim_zeros"], [472, 1, 1, "", "triu"], [473, 1, 1, "", "triu_indices"], [474, 1, 1, "", "triu_indices_from"], [475, 1, 1, "", "true_divide"], [476, 1, 1, "", "trunc"], [477, 1, 1, "", "unique"], [478, 1, 1, "", "unravel_index"], [479, 1, 1, "", "unwrap"], [480, 1, 1, "", "vander"], [481, 1, 1, "", "var"], [482, 1, 1, "", "vdot"], [483, 1, 1, "", "vsplit"], [484, 1, 1, "", "vstack"], [485, 1, 1, "", "where"], [486, 1, 1, "", "zeros"], [487, 1, 1, "", "zeros_like"]], "dpnp.dpnp_array": [[98, 2, 1, "", "dpnp_array"]], "dpnp.dpnp_array.dpnp_array": [[98, 3, 1, "", "T"], [98, 4, 1, "", "__eq__"], [98, 4, 1, "", "__ge__"], [98, 4, 1, "", "__getitem__"], [98, 4, 1, "", "__gt__"], [98, 4, 1, "", "__le__"], [98, 4, 1, "", "__len__"], [98, 4, 1, "", "__lt__"], [98, 4, 1, "", "__ne__"], [98, 4, 1, "", "__setitem__"], [98, 4, 1, "", "all"], [98, 4, 1, "", "any"], [98, 4, 1, "", "argmax"], [98, 4, 1, "", "argmin"], [98, 4, 1, "", "argsort"], [98, 4, 1, "", "asnumpy"], [98, 4, 1, "", "astype"], [98, 4, 1, "", "choose"], [98, 4, 1, "", "clip"], [98, 4, 1, "", "conj"], [98, 4, 1, "", "conjugate"], [98, 4, 1, "", "copy"], [98, 4, 1, "", "cumprod"], [98, 4, 1, "", "cumsum"], [98, 3, 1, "", "device"], [98, 4, 1, "", "diagonal"], [98, 4, 1, "", "dot"], [98, 3, 1, "", "dtype"], [98, 4, 1, "", "fill"], [98, 3, 1, "", "flags"], [98, 3, 1, "", "flat"], [98, 4, 1, "", "flatten"], [98, 4, 1, "", "get_array"], [98, 3, 1, "", "imag"], [98, 4, 1, "", "item"], [98, 3, 1, "", "itemsize"], [98, 4, 1, "", "max"], [98, 4, 1, "", "mean"], [98, 4, 1, "", "min"], [98, 3, 1, "", "nbytes"], [98, 3, 1, "", "ndim"], [98, 4, 1, "", "nonzero"], [98, 4, 1, "", "partition"], [98, 4, 1, "", "prod"], [98, 4, 1, "", "put"], [98, 4, 1, "", "ravel"], [98, 3, 1, "", "real"], [98, 4, 1, "", "repeat"], [98, 4, 1, "", "reshape"], [98, 4, 1, "", "round"], [98, 4, 1, "", "searchsorted"], [98, 3, 1, "", "shape"], [98, 3, 1, "", "size"], [98, 4, 1, "", "sort"], [98, 4, 1, "", "squeeze"], [98, 4, 1, "", "std"], [98, 3, 1, "", "strides"], [98, 4, 1, "", "sum"], [98, 4, 1, "", "swapaxes"], [98, 3, 1, "", "sycl_context"], [98, 3, 1, "", "sycl_device"], [98, 3, 1, "", "sycl_queue"], [98, 4, 1, "", "take"], [98, 4, 1, "", "to_device"], [98, 4, 1, "", "trace"], [98, 4, 1, "", "transpose"], [98, 3, 1, "", "usm_type"], [98, 4, 1, "", "var"]], "dpnp.dtype": [[101, 4, 1, "", "__eq__"], [101, 4, 1, "", "__ge__"], [101, 4, 1, "", "__getitem__"], [101, 4, 1, "", "__gt__"], [101, 4, 1, "", "__le__"], [101, 4, 1, "", "__len__"], [101, 4, 1, "", "__lt__"], [101, 4, 1, "", "__ne__"], [101, 3, 1, "", "alignment"], [101, 3, 1, "", "base"], [101, 3, 1, "", "byteorder"], [101, 3, 1, "", "char"], [101, 3, 1, "", "descr"], [101, 3, 1, "", "fields"], [101, 3, 1, "", "flags"], [101, 3, 1, "", "hasobject"], [101, 3, 1, "", "isalignedstruct"], [101, 3, 1, "", "isbuiltin"], [101, 3, 1, "", "isnative"], [101, 3, 1, "", "itemsize"], [101, 3, 1, "", "kind"], [101, 3, 1, "", "metadata"], [101, 3, 1, "", "name"], [101, 3, 1, "", "names"], [101, 3, 1, "", "ndim"], [101, 4, 1, "", "newbyteorder"], [101, 3, 1, "", "num"], [101, 3, 1, "", "shape"], [101, 3, 1, "", "str"], [101, 3, 1, "", "subdtype"], [101, 3, 1, "", "type"]], "dpnp.fft": [[116, 1, 1, "", "fft"], [117, 1, 1, "", "fft2"], [118, 1, 1, "", "fftfreq"], [119, 1, 1, "", "fftn"], [120, 1, 1, "", "fftshift"], [121, 1, 1, "", "hfft"], [122, 1, 1, "", "ifft"], [123, 1, 1, "", "ifft2"], [124, 1, 1, "", "ifftn"], [125, 1, 1, "", "ifftshift"], [126, 1, 1, "", "ihfft"], [127, 1, 1, "", "irfft"], [128, 1, 1, "", "irfft2"], [129, 1, 1, "", "irfftn"], [130, 1, 1, "", "rfft"], [131, 1, 1, "", "rfft2"], [132, 1, 1, "", "rfftfreq"], [133, 1, 1, "", "rfftn"]], "dpnp.flatiter": [[137, 4, 1, "", "__eq__"], [137, 4, 1, "", "__ge__"], [137, 4, 1, "", "__getitem__"], [137, 4, 1, "", "__gt__"], [137, 4, 1, "", "__iter__"], [137, 4, 1, "", "__le__"], [137, 4, 1, "", "__lt__"], [137, 4, 1, "", "__ne__"], [137, 4, 1, "", "__next__"], [137, 4, 1, "", "__setitem__"]], "dpnp.linalg": [[190, 1, 1, "", "cholesky"], [191, 1, 1, "", "cond"], [192, 1, 1, "", "det"], [193, 1, 1, "", "eig"], [194, 1, 1, "", "eigh"], [195, 1, 1, "", "eigvals"], [196, 1, 1, "", "eigvalsh"], [197, 1, 1, "", "inv"], [198, 1, 1, "", "lstsq"], [199, 1, 1, "", "matrix_power"], [200, 1, 1, "", "matrix_rank"], [201, 1, 1, "", "multi_dot"], [202, 1, 1, "", "norm"], [203, 1, 1, "", "pinv"], [204, 1, 1, "", "qr"], [205, 1, 1, "", "slogdet"], [206, 1, 1, "", "solve"], [207, 1, 1, "", "svd"], [208, 1, 1, "", "tensorinv"], [209, 1, 1, "", "tensorsolve"]], "dpnp.ndarray": [[251, 6, 1, "", "T"], [252, 4, 1, "", "__abs__"], [253, 4, 1, "", "__add__"], [254, 4, 1, "", "__and__"], [255, 4, 1, "", "__bool__"], [256, 4, 1, "", "__complex__"], [257, 4, 1, "", "__copy__"], [258, 4, 1, "", "__eq__"], [259, 4, 1, "", "__float__"], [260, 4, 1, "", "__floordiv__"], [261, 4, 1, "", "__ge__"], [262, 4, 1, "", "__getitem__"], [263, 4, 1, "", "__gt__"], [264, 4, 1, "", "__iadd__"], [265, 4, 1, "", "__iand__"], [266, 4, 1, "", "__ifloordiv__"], [267, 4, 1, "", "__ilshift__"], [268, 4, 1, "", "__imod__"], [269, 4, 1, "", "__imul__"], [270, 4, 1, "", "__int__"], [271, 4, 1, "", "__invert__"], [272, 4, 1, "", "__ior__"], [273, 4, 1, "", "__ipow__"], [274, 4, 1, "", "__irshift__"], [275, 4, 1, "", "__isub__"], [276, 4, 1, "", "__itruediv__"], [277, 4, 1, "", "__ixor__"], [278, 4, 1, "", "__le__"], [279, 4, 1, "", "__len__"], [280, 4, 1, "", "__lshift__"], [281, 4, 1, "", "__lt__"], [282, 4, 1, "", "__matmul__"], [283, 4, 1, "", "__mod__"], [284, 4, 1, "", "__mul__"], [285, 4, 1, "", "__ne__"], [286, 4, 1, "", "__neg__"], [287, 4, 1, "", "__new__"], [288, 4, 1, "", "__or__"], [289, 4, 1, "", "__pos__"], [290, 4, 1, "", "__pow__"], [291, 4, 1, "", "__repr__"], [292, 4, 1, "", "__rshift__"], [293, 4, 1, "", "__setitem__"], [294, 4, 1, "", "__str__"], [295, 4, 1, "", "__sub__"], [296, 4, 1, "", "__truediv__"], [297, 4, 1, "", "__xor__"], [298, 4, 1, "", "all"], [299, 4, 1, "", "any"], [300, 4, 1, "", "argmax"], [301, 4, 1, "", "argmin"], [302, 4, 1, "", "argsort"], [303, 4, 1, "", "astype"], [304, 4, 1, "", "choose"], [305, 4, 1, "", "clip"], [306, 4, 1, "", "conj"], [307, 4, 1, "", "conjugate"], [308, 4, 1, "", "copy"], [309, 4, 1, "", "cumprod"], [310, 4, 1, "", "cumsum"], [311, 4, 1, "", "diagonal"], [312, 6, 1, "", "dtype"], [313, 4, 1, "", "fill"], [314, 6, 1, "", "flags"], [315, 6, 1, "", "flat"], [316, 4, 1, "", "flatten"], [317, 6, 1, "", "imag"], [318, 4, 1, "", "item"], [319, 6, 1, "", "itemsize"], [320, 4, 1, "", "max"], [321, 4, 1, "", "mean"], [322, 4, 1, "", "min"], [323, 6, 1, "", "nbytes"], [324, 6, 1, "", "ndim"], [325, 4, 1, "", "nonzero"], [326, 4, 1, "", "partition"], [327, 4, 1, "", "prod"], [328, 4, 1, "", "put"], [329, 4, 1, "", "ravel"], [330, 6, 1, "", "real"], [331, 4, 1, "", "repeat"], [332, 4, 1, "", "reshape"], [333, 4, 1, "", "round"], [334, 4, 1, "", "searchsorted"], [335, 6, 1, "", "shape"], [336, 6, 1, "", "size"], [337, 4, 1, "", "sort"], [338, 4, 1, "", "squeeze"], [339, 4, 1, "", "std"], [340, 6, 1, "", "strides"], [341, 4, 1, "", "sum"], [342, 4, 1, "", "swapaxes"], [343, 4, 1, "", "take"], [344, 4, 1, "", "trace"], [345, 4, 1, "", "transpose"], [346, 4, 1, "", "var"]], "dpnp.random": [[370, 2, 1, "", "RandomState"], [371, 1, 1, "", "beta"], [372, 1, 1, "", "binomial"], [373, 1, 1, "", "bytes"], [374, 1, 1, "", "chisquare"], [375, 1, 1, "", "choice"], [376, 1, 1, "", "dirichlet"], [377, 1, 1, "", "exponential"], [378, 1, 1, "", "f"], [379, 1, 1, "", "gamma"], [380, 1, 1, "", "geometric"], [381, 1, 1, "", "gumbel"], [382, 1, 1, "", "hypergeometric"], [383, 1, 1, "", "laplace"], [384, 1, 1, "", "logistic"], [385, 1, 1, "", "lognormal"], [386, 1, 1, "", "logseries"], [387, 1, 1, "", "multinomial"], [388, 1, 1, "", "multivariate_normal"], [389, 1, 1, "", "negative_binomial"], [390, 1, 1, "", "noncentral_chisquare"], [391, 1, 1, "", "noncentral_f"], [392, 1, 1, "", "normal"], [393, 1, 1, "", "pareto"], [394, 1, 1, "", "permutation"], [395, 1, 1, "", "poisson"], [396, 1, 1, "", "power"], [397, 1, 1, "", "rand"], [398, 1, 1, "", "randint"], [399, 1, 1, "", "randn"], [400, 1, 1, "", "random"], [401, 1, 1, "", "random_integers"], [402, 1, 1, "", "random_sample"], [403, 1, 1, "", "ranf"], [404, 1, 1, "", "rayleigh"], [405, 1, 1, "", "sample"], [406, 1, 1, "", "seed"], [407, 1, 1, "", "shuffle"], [408, 1, 1, "", "standard_cauchy"], [409, 1, 1, "", "standard_exponential"], [410, 1, 1, "", "standard_gamma"], [411, 1, 1, "", "standard_normal"], [412, 1, 1, "", "standard_t"], [413, 1, 1, "", "triangular"], [414, 1, 1, "", "uniform"], [415, 1, 1, "", "vonmises"], [416, 1, 1, "", "wald"], [417, 1, 1, "", "weibull"], [418, 1, 1, "", "zipf"]], "dpnp.random.RandomState": [[370, 4, 1, "", "__eq__"], [370, 4, 1, "", "__ge__"], [370, 4, 1, "", "__gt__"], [370, 4, 1, "", "__le__"], [370, 4, 1, "", "__lt__"], [370, 4, 1, "", "__ne__"], [370, 4, 1, "", "get_state"], [370, 4, 1, "", "get_sycl_device"], [370, 4, 1, "", "get_sycl_queue"], [370, 4, 1, "", "normal"], [370, 4, 1, "", "rand"], [370, 4, 1, "", "randint"], [370, 4, 1, "", "randn"], [370, 4, 1, "", "random_sample"], [370, 4, 1, "", "standard_normal"], [370, 4, 1, "", "uniform"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "data", "Python data"], "6": ["py", "property", "Python property"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:data", "6": "py:property"}, "terms": {"": [0, 3, 4, 10, 22, 83, 86, 98, 101, 102, 117, 119, 121, 123, 124, 126, 128, 129, 131, 133, 134, 149, 150, 198, 200, 202, 207, 312, 345, 370, 371, 372, 377, 378, 379, 381, 382, 383, 384, 385, 387, 389, 392, 393, 395, 396, 397, 398, 399, 400, 402, 403, 404, 405, 408, 410, 411, 412, 413, 414, 415, 416, 417, 418, 463, 495], "0": [0, 4, 6, 10, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 64, 66, 68, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 155, 156, 158, 161, 162, 163, 164, 167, 170, 171, 173, 176, 177, 178, 179, 180, 185, 186, 187, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 202, 205, 210, 211, 212, 213, 214, 215, 219, 221, 222, 224, 225, 226, 227, 228, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 308, 311, 313, 317, 318, 330, 333, 335, 337, 339, 344, 345, 346, 347, 350, 352, 353, 354, 357, 358, 360, 361, 362, 363, 364, 365, 366, 369, 370, 372, 377, 379, 380, 381, 383, 384, 385, 387, 388, 389, 392, 394, 395, 396, 397, 400, 402, 403, 404, 405, 408, 411, 413, 414, 415, 420, 423, 425, 426, 429, 431, 432, 433, 434, 435, 436, 438, 439, 440, 441, 442, 444, 445, 446, 447, 448, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 479, 480, 481, 483, 485, 486, 487, 495], "00": [79, 104, 116, 444], "000": [238, 372], "00000000005e": 112, "00000000e": [116, 238], "000000082740371e": 112, "000000e": [79, 444], "00001e10": [17, 173], "0001e10": 173, "000e": 104, "000j": 238, "002": 238, "00867716": 374, "01": 104, "02": [104, 238], "03": 238, "03088525e": 105, "0396842": 222, "04": 104, "04719755": 369, "04921661": 370, "05": [17, 104, 173], "0614962j": [117, 131], "06310682": 370, "07": 238, "07944154": [84, 205], "08": [17, 79, 104, 142, 173, 388, 444], "08156915": 370, "0943951": 369, "09640474": 217, "09861229": [84, 205, 214], "0d": 34, "0dev1": 6, "0j": [20, 97, 98, 174, 175, 181, 182, 225, 317, 330, 442], "0th": 462, "1": [0, 3, 4, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 62, 63, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 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, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 158, 160, 161, 162, 163, 164, 165, 167, 169, 170, 171, 173, 174, 175, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 208, 210, 211, 212, 214, 215, 218, 219, 220, 221, 222, 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, 302, 303, 308, 311, 313, 316, 317, 318, 324, 326, 330, 335, 337, 344, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 369, 370, 372, 374, 375, 377, 379, 381, 383, 384, 385, 387, 388, 389, 392, 394, 395, 396, 397, 398, 400, 402, 403, 404, 405, 409, 411, 414, 419, 420, 421, 422, 423, 425, 426, 428, 429, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 446, 447, 448, 449, 450, 451, 452, 453, 454, 456, 457, 458, 459, 460, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 495], "10": [0, 4, 14, 15, 25, 27, 31, 32, 47, 56, 68, 75, 84, 85, 86, 90, 91, 94, 95, 98, 99, 101, 103, 104, 112, 113, 120, 132, 154, 156, 162, 163, 164, 169, 173, 185, 186, 187, 212, 213, 214, 215, 222, 223, 229, 237, 332, 364, 366, 370, 372, 382, 394, 424, 430, 431, 433, 436, 439, 449, 453, 459, 468, 469, 470, 472, 473, 474, 483, 485], "100": [90, 132, 156, 173, 186, 201, 222, 382, 408, 422, 479], "1000": [64, 156, 201, 222, 371, 372, 377, 379, 381, 382, 383, 384, 385, 392, 393, 396, 398, 400, 403, 405, 411, 415, 416, 417, 418, 422, 466], "10000": [86, 201, 380, 395, 404, 414], "100000": 389, "1000000": [408, 410, 412, 413], "1024": 0, "105": 104, "11": [31, 32, 56, 80, 90, 91, 98, 99, 113, 158, 164, 202, 332, 389, 398, 436, 439, 445, 468, 469, 470, 472, 473, 474, 483, 485], "110": [103, 171], "111111": 238, "113": 216, "11570901": 370, "1179187": 370, "118033988749895": 454, "119": 103, "1196081": 370, "12": [10, 31, 32, 55, 83, 88, 90, 91, 95, 99, 101, 103, 113, 117, 131, 164, 169, 222, 362, 364, 369, 394, 420, 439, 468, 469, 470, 472, 473, 474, 483, 485], "120": [85, 88], "123": [98, 104, 318], "125": [142, 360, 361, 480], "127": 156, "128": [0, 156, 238], "12th": 103, "13": [10, 31, 32, 59, 90, 91, 97, 99, 101, 103, 164, 172, 225, 420, 439, 469, 470, 473, 474, 478, 483], "130": 103, "134": 171, "13436424": 370, "135": [29, 51], "13710533": 374, "139884456208480": 16, "13j": 422, "14": [31, 32, 58, 59, 90, 91, 97, 99, 136, 164, 171, 172, 439, 462, 469, 470, 473, 474, 483], "140": 479, "140053638309840": 21, "14157194": 466, "14159265": [13, 24, 29, 51, 87, 369], "14423775e": 116, "14j": 422, "15": [31, 32, 86, 90, 91, 95, 99, 103, 121, 126, 164, 203, 213, 394, 439, 469, 470, 473, 474, 483], "150": 88, "15888336": 222, "15j": 422, "16": [6, 58, 90, 91, 99, 101, 116, 142, 152, 156, 158, 164, 237, 360, 361, 422, 440, 460, 469, 470, 473, 474, 483], "1621": [420, 478], "16227766": [191, 424], "16394577": 370, "164": 217, "166": 217, "16j": 116, "17": [6, 116, 117, 131], "17157288": [194, 196], "17281316e": 116, "177": [156, 222], "17j": 116, "18": [6, 85, 101, 102, 103, 119, 202, 222], "180": [29, 51, 87, 88, 103, 368, 479, 503], "1805": 10, "18236388": 370, "18557831": 370, "1887902": 369, "19": [10, 81, 101, 420, 479], "1923875335537315": 399, "19245009": 438, "1924881e": 142, "1965": 10, "19722458": 84, "1d": [102, 365, 366, 459, 466], "1e": [17, 112, 173, 193, 203, 213, 214, 216, 217, 388], "1e10": [17, 173], "1j": [11, 12, 20, 27, 28, 37, 47, 50, 72, 73, 98, 127, 169, 174, 181, 193, 207, 317, 330, 421, 448, 451], "1th": 462, "2": [0, 3, 4, 10, 11, 12, 13, 14, 15, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 52, 53, 54, 56, 58, 60, 62, 63, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 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, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 156, 158, 159, 160, 161, 162, 163, 164, 165, 167, 169, 170, 171, 174, 181, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 239, 240, 241, 242, 243, 244, 245, 246, 248, 303, 308, 311, 313, 316, 318, 324, 326, 335, 336, 345, 347, 349, 350, 351, 352, 353, 354, 355, 357, 358, 360, 361, 362, 363, 364, 365, 368, 369, 370, 374, 378, 382, 388, 394, 397, 399, 410, 412, 413, 416, 418, 419, 421, 422, 423, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 436, 437, 439, 440, 441, 443, 444, 445, 446, 448, 449, 450, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487], "20": [6, 85, 95, 103, 132, 170, 173, 186, 187, 202, 366, 372, 387, 439, 459, 479], "20000": 372, "2007": 10, "200e": 104, "20477401j": [117, 131], "2048": 0, "21": [86, 101], "210": 88, "215": 222, "21941987": 370, "21968665": 370, "22": [365, 420, 478], "220": 479, "220446049250313e": 422, "222222": 238, "22460635e": 460, "22464680e": 116, "22497216": 202, "22776602": 222, "23": [6, 370, 420], "230": 103, "23598776": 369, "23606798": 202, "24": [31, 32, 83, 85, 98, 102, 103, 171, 186, 208, 335, 362, 462, 464], "240": 88, "24264069": 202, "24544512": 370, "247219128924647": 247, "25": [101, 103, 108, 118, 158, 162, 163, 197, 210, 237, 249, 399, 408, 440, 480, 481], "255": [58, 60], "25506903": 370, "256": [0, 156], "26": [61, 103], "260": 479, "26618007j": 215, "267": 6, "27": [65, 142, 222, 360, 361, 438, 480], "270": 88, "28": 103, "28000000e": 238, "2800000e": 238, "283185307179586": 479, "28318531": 479, "28352814": 370, "28904982": 217, "297": 10, "299": 6, "2d": [207, 225, 435, 477], "2e": 86, "2f": 0, "2j": [72, 73, 97, 116, 169, 174, 181, 194, 196, 225, 421, 442, 448, 482], "2k": 479, "3": [0, 3, 4, 13, 15, 22, 23, 24, 29, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 51, 53, 54, 55, 56, 58, 61, 62, 63, 65, 68, 69, 70, 71, 74, 75, 76, 77, 78, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 116, 118, 119, 120, 121, 125, 126, 128, 129, 132, 134, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 154, 156, 158, 162, 163, 164, 165, 166, 167, 169, 170, 171, 174, 175, 181, 182, 183, 185, 186, 187, 191, 192, 193, 197, 198, 199, 200, 202, 204, 205, 206, 207, 208, 209, 210, 211, 213, 214, 216, 217, 219, 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 308, 311, 316, 318, 324, 326, 335, 336, 337, 345, 347, 350, 351, 352, 353, 354, 355, 357, 358, 360, 361, 362, 363, 365, 369, 370, 374, 378, 385, 388, 394, 397, 398, 399, 409, 413, 416, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 435, 436, 437, 439, 440, 441, 443, 446, 447, 448, 449, 450, 452, 453, 454, 455, 457, 458, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "30": [83, 88, 98, 103, 132, 336, 366, 369, 459, 482], "300": [88, 479], "3003003": 423, "301": 10, "30102999566": 213, "3012989": 445, "30258509": [84, 223], "308": 238, "308j": 238, "31": [61, 156, 420, 478], "312": 105, "316": 222, "32": [101, 103, 156, 246, 248, 462], "33": 423, "330": 88, "333": 201, "33333333": 238, "3333333e": 238, "33340275": 466, "33486982e": 116, "33836967": 370, "340": 479, "34074171": 370, "34132519": 222, "34846923": 202, "34960421": 222, "35": [103, 380], "35106603e": 202, "35355338": 438, "36": 83, "360": 479, "37": [420, 436, 478], "371139e": 79, "38": [171, 372], "380": 479, "38268343": 194, "38268343j": 194, "38629436": 84, "38885": 372, "389056099": [109, 112], "39": 6, "392": 6, "39295758": 370, "397": 6, "3e": [0, 86, 422], "3j": [97, 225, 448], "3rd": [70, 71, 99, 449], "3x3": 224, "3x8000": 409, "4": [0, 15, 16, 22, 23, 31, 32, 34, 36, 37, 39, 53, 55, 56, 58, 60, 62, 68, 69, 70, 71, 74, 77, 79, 81, 83, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 107, 110, 113, 117, 118, 120, 121, 122, 123, 124, 125, 126, 128, 131, 132, 133, 134, 138, 139, 142, 144, 145, 146, 150, 151, 152, 154, 156, 158, 159, 160, 162, 163, 164, 165, 166, 169, 170, 171, 174, 181, 185, 186, 189, 192, 197, 199, 200, 202, 205, 208, 209, 210, 215, 218, 222, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 236, 237, 239, 240, 242, 244, 247, 249, 308, 311, 316, 324, 326, 335, 337, 345, 347, 350, 352, 354, 357, 360, 361, 362, 364, 365, 369, 370, 371, 374, 394, 399, 415, 419, 420, 421, 422, 425, 426, 428, 429, 433, 434, 435, 436, 437, 440, 442, 446, 447, 449, 450, 453, 454, 455, 457, 458, 462, 463, 465, 466, 468, 469, 470, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 487], "40": [103, 132, 187, 366, 459], "40882036": 370, "4096": 0, "41": [420, 478], "41421356": [191, 202], "42": 440, "420": 479, "429": 6, "44": [358, 365], "4400": [103, 462], "443469": 222, "44509285e": 116, "45": [20, 29, 51], "4532": [103, 462], "46": 103, "460": 479, "46394577": 370, "464": 222, "4664": [103, 462], "47": 6, "4730": [103, 462], "4796": [103, 462], "48": [6, 83], "48093112": 370, "4874": [103, 462], "48927254": 370, "49": 6, "4928": [103, 462], "49543509": 370, "49778714": 479, "499128": 97, "4d": 207, "4e": 422, "4j": [169, 421, 482], "4x4": [469, 473], "5": [0, 6, 15, 16, 21, 22, 23, 30, 31, 34, 39, 52, 53, 56, 57, 58, 60, 61, 62, 66, 68, 70, 71, 74, 77, 78, 81, 83, 85, 86, 89, 90, 91, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 108, 113, 117, 118, 120, 128, 131, 132, 134, 139, 140, 141, 142, 143, 144, 145, 146, 147, 152, 156, 158, 161, 162, 163, 164, 165, 166, 169, 170, 171, 174, 181, 185, 186, 187, 190, 194, 196, 197, 201, 202, 206, 210, 218, 219, 220, 221, 222, 224, 226, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 244, 247, 303, 308, 336, 347, 350, 352, 353, 354, 357, 360, 361, 364, 365, 369, 370, 371, 372, 374, 377, 389, 393, 394, 395, 396, 399, 402, 417, 419, 420, 421, 422, 423, 425, 428, 431, 432, 433, 434, 435, 436, 437, 439, 440, 442, 446, 448, 449, 453, 454, 456, 457, 458, 462, 463, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 476, 478, 479, 480, 482, 483, 484, 485, 486, 487], "50": [117, 131, 132, 156, 186, 216, 217, 222, 366, 459, 462, 466, 485], "500": [186, 479], "5018": [103, 462], "5091786": 80, "51": 6, "512": 0, "5162": [103, 462], "52069395e": 116, "52359878": 369, "52928804": 370, "5306": [103, 462], "5399045e": 142, "54": 370, "540": 479, "542": 6, "54288406": 370, "54465213": 370, "548739": 445, "54930614": [30, 52], "55": [358, 365, 440], "5555555555555554": 249, "56": 6, "562": 222, "5620499351813308": [11, 12], "56920387": 370, "5707963267948966": [26, 46], "57079633": [20, 29, 51, 369, 479], "58997253": 370, "591953": 80, "5e": [216, 217], "5j": [231, 352, 448], "6": [0, 4, 6, 15, 22, 23, 31, 32, 34, 39, 53, 56, 60, 61, 68, 70, 71, 77, 83, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 99, 101, 102, 103, 107, 112, 113, 118, 121, 132, 139, 142, 155, 158, 164, 165, 169, 170, 171, 185, 186, 202, 203, 204, 207, 208, 210, 222, 224, 241, 242, 246, 308, 318, 335, 347, 350, 354, 358, 360, 361, 364, 370, 387, 389, 394, 399, 419, 420, 421, 427, 428, 433, 434, 435, 436, 437, 440, 446, 448, 449, 453, 455, 456, 457, 458, 462, 464, 466, 468, 469, 470, 472, 473, 474, 475, 477, 478, 479, 482, 483, 484, 485, 487], "60": [83, 88, 103, 366, 459, 462, 479, 485], "600": 186, "60943791": 84, "61799388": 369, "62": 171, "6227766": 156, "62318272": 374, "62341325": 156, "624": 104, "63": 156, "63317787e": 460, "63522211": 370, "63836967": 370, "64": [0, 4, 103, 142, 156, 246, 248, 360, 361, 436], "64000": 103, "65745445": [14, 25], "66519143": 369, "6666666666666665": 244, "67": 103, "67305985": 149, "673174": 370, "67718303": 370, "69295758": 370, "69314718": [84, 205, 214], "6990877": 370, "6j": [169, 421, 482], "7": [15, 17, 22, 23, 39, 53, 66, 68, 77, 81, 83, 86, 89, 90, 91, 93, 94, 96, 98, 99, 102, 109, 113, 139, 143, 156, 158, 164, 171, 173, 185, 186, 202, 207, 224, 229, 234, 237, 318, 350, 363, 364, 370, 394, 420, 421, 425, 430, 432, 433, 435, 449, 455, 456, 457, 458, 462, 468, 469, 470, 472, 473, 474, 475, 476, 478, 479, 482, 483, 485], "70": [186, 482, 485], "700": 186, "700e": 104, "70710677": [98, 317, 330], "70710678": [191, 193], "70710678j": 193, "70882036": 370, "71238898": 369, "718281828": [109, 112], "72": 83, "720": [85, 479], "72075441": 222, "72538256": [27, 47], "74165739": 202, "742278e": 444, "74596669": 202, "74921661": 370, "75": [56, 108, 118, 158, 163, 197, 210], "754": 135, "75958653": 369, "76096244": 370, "76377462": 370, "77447665": 217, "78539816": [20, 28, 29, 50, 51, 479], "78927254": 370, "79175947": 84, "79769313e": 238, "7j": 363, "8": [4, 15, 17, 22, 39, 53, 65, 68, 77, 83, 89, 90, 91, 93, 94, 98, 99, 101, 103, 104, 113, 116, 118, 132, 133, 139, 142, 156, 158, 164, 169, 173, 185, 192, 202, 205, 207, 208, 210, 222, 224, 335, 350, 360, 361, 362, 364, 370, 394, 413, 420, 421, 433, 435, 438, 444, 449, 458, 462, 464, 466, 468, 469, 470, 472, 473, 474, 478, 479, 480, 483, 485], "80": [101, 103, 485], "8000": 409, "80226506": 370, "81715362": 370, "827941": [156, 222], "82842712": [194, 196], "84288406": 370, "84401099": 370, "84743374": 370, "84803548": 202, "85": 103, "86": 171, "87649168": 216, "88": 102, "88178420e": 116, "88997253": 370, "89920014": 374, "8f": 101, "8j": 482, "9": [4, 15, 22, 39, 53, 68, 77, 83, 86, 89, 90, 91, 93, 96, 98, 99, 103, 105, 113, 116, 119, 120, 125, 136, 142, 144, 152, 156, 158, 164, 173, 185, 193, 198, 202, 203, 204, 207, 222, 224, 237, 238, 318, 350, 364, 370, 372, 374, 394, 420, 421, 433, 449, 450, 455, 462, 468, 469, 470, 472, 473, 474, 475, 478, 479, 480, 483, 485], "90": [20, 88, 368, 435, 485], "917152": 461, "92387953": 194, "92387953j": 194, "94": 103, "94591015": 84, "95": 198, "95799250e": 116, "98": 225, "98024613": 222, "99": [102, 214, 366], "99322285": [14, 25], "99532227": 108, "996272": 461, "99822295": [27, 47], "99853728": 108, "999": 104, "9990000e": 238, "99959305": 108, "99989938": 108, "9999": 238, "99997791": 108, "999999e": 173, "A": [10, 11, 12, 13, 14, 15, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 58, 59, 60, 61, 62, 63, 65, 66, 68, 69, 72, 73, 75, 76, 77, 79, 80, 84, 85, 86, 87, 88, 89, 90, 92, 93, 96, 98, 99, 101, 103, 104, 105, 106, 107, 109, 110, 111, 112, 114, 115, 117, 118, 119, 122, 123, 124, 128, 129, 130, 131, 132, 133, 136, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 164, 166, 167, 169, 170, 172, 176, 177, 178, 179, 180, 187, 188, 189, 190, 194, 195, 196, 198, 200, 201, 204, 205, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 224, 225, 227, 231, 233, 234, 237, 241, 242, 246, 248, 303, 308, 316, 348, 349, 350, 351, 352, 353, 354, 355, 357, 359, 360, 361, 363, 368, 369, 370, 372, 389, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 419, 420, 423, 425, 431, 432, 435, 438, 442, 443, 444, 445, 449, 450, 451, 455, 457, 458, 460, 461, 462, 463, 465, 467, 469, 471, 473, 475, 476, 480, 483, 485, 486, 487, 503], "AND": [16, 58, 59, 60, 61, 172, 218, 219, 220, 221], "And": [4, 48, 49, 90, 98, 303, 469, 473], "As": 477, "Be": 193, "Being": 3, "But": [4, 101], "By": [31, 32, 42, 49, 83, 98, 117, 121, 123, 127, 129, 133, 156, 198, 210, 222, 225, 226, 228, 232, 239, 240, 243, 244, 245, 246, 247, 248, 249, 303, 419, 426, 433, 446, 454, 458, 467, 469, 471, 473, 481], "For": [0, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, 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, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 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, 316, 317, 318, 324, 330, 332, 335, 340, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 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, 407, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 495, 503], "If": [4, 10, 11, 12, 16, 17, 21, 22, 23, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 49, 56, 68, 70, 71, 81, 83, 84, 85, 86, 89, 93, 94, 97, 98, 99, 101, 102, 103, 104, 111, 113, 114, 115, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 139, 145, 146, 148, 153, 156, 158, 162, 163, 164, 165, 169, 170, 171, 173, 179, 180, 181, 190, 198, 199, 200, 201, 202, 203, 204, 207, 209, 210, 211, 222, 223, 226, 227, 228, 230, 232, 233, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 337, 357, 358, 362, 365, 366, 370, 392, 414, 421, 422, 424, 426, 427, 428, 429, 433, 436, 437, 439, 447, 449, 452, 453, 454, 456, 457, 458, 459, 462, 463, 464, 465, 466, 477, 479, 480, 481, 482, 483, 484, 485, 495, 503], "In": [4, 10, 31, 32, 85, 86, 103, 104, 122, 123, 124, 127, 129, 158, 190, 195, 201, 204, 217, 222, 241, 242, 244, 246, 248, 362, 365, 370, 414, 420, 428, 429, 456, 458, 476], "It": [4, 10, 16, 21, 22, 31, 32, 68, 85, 86, 95, 97, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 134, 158, 194, 196, 217, 225, 228, 239, 240, 241, 242, 243, 244, 245, 247, 249, 362, 429, 440, 454, 456, 458, 481, 503], "Its": [68, 208, 366, 464], "NOT": [59, 172, 218, 219, 220, 221], "No": [41, 42, 103, 190], "Not": [16, 21, 42, 176, 238, 241, 242, 243, 245, 246, 248, 362], "OR": [21, 58, 59, 60, 61, 172, 218, 219, 220, 221], "On": 4, "One": [53, 54, 55, 83, 100, 101, 127, 428], "Or": [158, 466], "That": 224, "The": [3, 4, 10, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 56, 58, 59, 60, 61, 63, 65, 68, 69, 70, 71, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 98, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 139, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 165, 166, 167, 170, 172, 173, 175, 176, 177, 178, 182, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 199, 201, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 220, 222, 223, 224, 225, 226, 227, 231, 232, 233, 234, 236, 237, 238, 239, 240, 241, 242, 243, 245, 246, 247, 248, 249, 303, 308, 317, 324, 326, 330, 335, 347, 348, 349, 350, 351, 352, 353, 354, 357, 359, 360, 361, 362, 364, 365, 366, 368, 369, 370, 373, 375, 376, 386, 391, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 419, 420, 423, 424, 425, 426, 427, 428, 429, 430, 431, 433, 434, 435, 437, 438, 440, 441, 442, 443, 444, 445, 447, 449, 450, 451, 453, 454, 455, 456, 458, 459, 460, 461, 462, 463, 465, 466, 467, 469, 470, 471, 473, 474, 475, 476, 477, 478, 480, 481, 484, 485, 486, 487, 495, 499, 503], "Then": [10, 43, 45, 224], "There": [10, 210, 477], "These": [4, 22, 101, 103, 104, 111, 224, 236, 366, 459, 469, 473, 495, 499], "To": [4, 121, 127, 129, 142, 350, 479], "With": [31, 32, 56, 81, 164, 202, 226, 232, 239, 240, 246, 248, 362, 456, 483], "_": [0, 163, 453, 466], "__array_interface__": 101, "__bool__": 495, "__dlpack__": 148, "__dlpack_device__": 148, "__eq__": [98, 101, 137, 370], "__ge__": [98, 101, 137, 370], "__getitem__": [98, 101, 137], "__gt__": [98, 101, 137, 370], "__iter__": 137, "__le__": [98, 101, 137, 370], "__len__": [98, 101], "__lt__": [98, 101, 137, 370], "__main__": 0, "__name__": 0, "__ne__": [98, 101, 137, 370], "__next__": 137, "__setitem__": [98, 137], "__sycl_usm_array_interface__": 44, "_dtypes_list": 0, "a1": [37, 38], "a2": [37, 38], "a_": 10, "a_k": 10, "a_m": 10, "a_max": 68, "a_min": 68, "a_resamp": 127, "ab": [6, 10, 12, 17, 173], "abc": 103, "abcd": 104, "about": [43, 45, 98, 135, 193, 314, 427, 495], "abov": [3, 13, 14, 24, 25, 26, 27, 30, 46, 47, 52, 84, 89, 92, 119, 124, 129, 133, 170, 204, 223, 238, 424, 467, 468, 472], "absolut": [6, 11, 17, 20, 115, 173, 205, 247, 249, 363, 422, 454, 479, 481, 503], "accept": [33, 103, 370, 447, 469, 473], "access": [10, 90, 91, 134, 224, 469, 473, 495], "accord": [16, 21, 56, 64, 101, 133, 135, 193, 194, 195, 196, 223, 228, 244, 247, 249, 424, 431, 454, 481], "accordingli": [243, 245], "account": 428, "accumul": [84, 85, 86, 103, 162, 241, 242, 246, 248, 362, 456, 464], "accur": [101, 112, 158, 214, 216], "accuraci": [122, 123, 124, 127, 129], "achiev": 103, "aco": 24, "acosh": 25, "across": [93, 163, 241, 242, 246, 248], "activ": 4, "actual": [101, 162, 163, 190, 201], "ad": [17, 101, 104, 111, 127, 173, 192, 205, 217, 479, 499], "add": [6, 101, 503], "add_docstr": 6, "add_newdoc": 6, "add_newdoc_ufunc": 6, "addit": [84, 190, 244, 477], "address": 101, "adjac": 479, "advanc": 103, "advers": 103, "advis": 4, "affect": [23, 93, 103, 134, 162, 163], "after": [100, 134, 349, 389, 433], "ag": 101, "against": [17, 31, 32, 62, 63, 68, 81, 157, 173, 202, 203, 226, 232, 239, 240, 246, 248, 362, 366, 456, 459], "ai": [3, 366, 459], "ai_max": 459, "ai_min": 459, "ainv": [197, 208], "al": 10, "algebra": [488, 499], "algorithm": [10, 103, 104, 116, 122, 130], "alia": [10, 13, 14, 18, 19, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 59, 70, 71, 96, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 135, 172, 187, 234, 250, 357, 360, 361, 370, 400, 403, 405, 425, 431, 437, 465, 475, 479, 484], "alias": [9, 121, 122, 127, 129], "align": 101, "all": [4, 6, 9, 17, 20, 21, 22, 37, 38, 42, 49, 56, 69, 81, 88, 94, 98, 100, 101, 103, 104, 109, 110, 112, 114, 119, 120, 124, 125, 128, 129, 133, 134, 139, 140, 141, 149, 150, 152, 156, 158, 165, 167, 169, 185, 190, 200, 203, 210, 222, 226, 232, 239, 240, 243, 245, 303, 306, 313, 326, 362, 372, 421, 422, 433, 437, 440, 452, 456, 477, 484, 495, 503], "allclos": [6, 37, 173, 197, 203, 204, 206, 207, 209], "alloc": [3, 4, 22, 23, 36, 40, 41, 42, 43, 44, 45, 49, 56, 75, 84, 89, 90, 92, 98, 105, 106, 114, 118, 132, 136, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 179, 180, 210, 211, 222, 223, 224, 228, 231, 244, 247, 249, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 424, 452, 454, 467, 469, 473, 480, 481, 486, 487], "allow": [39, 49, 98, 103, 162, 163, 217, 224, 303, 332, 458, 495], "alltru": 6, "almost": [34, 193, 469], "along": [3, 4, 16, 18, 19, 21, 22, 31, 32, 33, 39, 56, 69, 70, 71, 81, 84, 85, 86, 89, 90, 92, 93, 94, 98, 99, 100, 102, 113, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 134, 139, 140, 141, 145, 146, 151, 156, 158, 164, 165, 170, 202, 204, 208, 209, 210, 222, 223, 226, 227, 228, 229, 230, 232, 233, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 300, 301, 302, 309, 310, 320, 322, 327, 328, 336, 339, 341, 343, 344, 346, 358, 362, 364, 365, 366, 424, 426, 433, 434, 435, 437, 440, 446, 447, 449, 453, 454, 456, 458, 459, 462, 463, 464, 466, 469, 470, 473, 474, 477, 479, 481, 483, 484, 495], "alpha": [371, 376, 377, 393, 396], "alreadi": [4, 10, 41, 42, 53, 54, 55, 355, 477], "also": [3, 4, 10, 13, 14, 15, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 58, 60, 61, 76, 96, 98, 101, 103, 107, 111, 119, 124, 128, 129, 130, 133, 142, 144, 145, 146, 147, 151, 153, 158, 159, 160, 161, 162, 166, 173, 187, 188, 189, 190, 216, 217, 224, 227, 233, 234, 236, 237, 335, 350, 351, 360, 361, 408, 425, 431, 455, 458, 475, 477, 495], "alter": 93, "altern": [3, 4, 16, 21, 85, 86, 97, 98, 225, 226, 228, 232, 241, 242, 244, 246, 247, 248, 249, 345, 362, 454, 456, 481], "although": [20, 101, 123, 124, 125, 463], "alwai": [4, 10, 13, 14, 24, 25, 26, 27, 28, 30, 33, 40, 46, 47, 49, 50, 52, 93, 98, 99, 102, 115, 142, 148, 164, 194, 196, 247, 249, 303, 350, 428, 448, 454, 481, 483], "amax": [6, 226], "ambigu": 495, "amin": [6, 232], "among": 102, "amplitud": 10, "an": [0, 3, 4, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 79, 80, 84, 85, 86, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 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, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 182, 185, 187, 188, 189, 192, 195, 198, 200, 201, 202, 204, 205, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 228, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 257, 302, 303, 304, 305, 308, 318, 320, 324, 326, 328, 331, 332, 335, 336, 337, 338, 342, 343, 345, 347, 348, 350, 351, 352, 353, 354, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 370, 372, 377, 378, 380, 389, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 418, 419, 420, 421, 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, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 483, 484, 485, 486, 487, 495, 503], "anaconda": 3, "analog": [117, 119, 121, 123, 124, 126], "analysi": 10, "analyt": [3, 13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52], "angl": [6, 10, 13, 14, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 87, 88, 169, 368, 369, 421, 422, 479, 503], "ani": [3, 6, 16, 17, 22, 36, 40, 41, 42, 43, 44, 45, 49, 62, 63, 75, 89, 92, 94, 98, 101, 103, 104, 117, 119, 123, 124, 129, 133, 134, 154, 155, 156, 158, 163, 165, 175, 182, 183, 199, 209, 210, 222, 224, 243, 245, 303, 324, 370, 414, 427, 447, 480, 495], "anoth": [4, 77, 98, 113, 123, 124, 148, 308, 328, 358, 365, 434], "answer": 372, "anti": [93, 134], "anyth": 101, "ap": 198, "apart": 466, "api": [0, 2, 3, 6, 23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 101, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "appear": [111, 140, 141, 477], "append": [0, 6, 94, 102, 104, 111, 122, 123, 124, 187], "appli": [31, 32, 33, 56, 64, 103, 238, 420, 429, 430, 462, 466], "applic": [10, 101], "apply_along_axi": 6, "apply_over_ax": 6, "approach": [98, 101, 122, 123, 124, 335], "appropri": [4, 31, 32, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 157, 209, 239, 240, 243, 245, 370, 398, 401, 429, 458, 495], "approxim": [135, 466], "ar": [3, 4, 10, 11, 12, 13, 14, 15, 16, 17, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 42, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 65, 66, 68, 69, 70, 71, 72, 73, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 93, 94, 96, 97, 98, 101, 102, 103, 104, 107, 108, 109, 110, 111, 112, 114, 115, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 151, 156, 158, 159, 160, 161, 162, 163, 166, 171, 172, 173, 176, 177, 178, 187, 188, 189, 190, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 207, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 325, 326, 335, 347, 348, 349, 350, 351, 356, 358, 359, 360, 361, 362, 363, 366, 367, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 392, 393, 395, 396, 398, 401, 402, 404, 410, 412, 413, 414, 415, 416, 417, 418, 419, 420, 423, 424, 425, 429, 431, 432, 433, 436, 437, 438, 439, 440, 442, 443, 444, 446, 447, 450, 451, 453, 454, 455, 456, 458, 459, 460, 461, 462, 464, 466, 470, 474, 475, 476, 477, 478, 479, 480, 481, 482, 484, 485, 495, 503], "arang": [0, 6, 15, 31, 32, 34, 39, 53, 54, 55, 56, 57, 68, 76, 88, 89, 90, 91, 93, 96, 97, 98, 99, 103, 107, 109, 110, 112, 113, 116, 138, 139, 142, 147, 155, 156, 158, 162, 164, 170, 171, 185, 186, 202, 210, 213, 214, 218, 219, 220, 221, 222, 224, 225, 226, 230, 232, 234, 237, 311, 351, 354, 358, 360, 361, 365, 369, 394, 425, 427, 430, 433, 435, 440, 449, 455, 462, 464, 466, 469, 470, 473, 474, 475, 483, 485, 487], "arbitrari": [48, 97, 101, 103, 171, 225, 430, 469, 473], "arbitrarili": 103, "arc": [20, 26, 28, 46, 50], "arcco": [6, 13, 14, 25, 26, 28, 29, 46, 50, 51, 79], "arccosh": [6, 13, 14, 24, 27, 30, 47, 52, 80], "arcsin": [6, 13, 24, 27, 28, 29, 46, 47, 50, 51, 444], "arcsinh": [6, 14, 25, 26, 30, 46, 47, 52, 445], "arctan": [6, 13, 20, 24, 26, 29, 30, 46, 50, 51, 52, 460], "arctan2": [6, 20, 26, 28, 46, 50, 51], "arctanh": [6, 14, 25, 27, 28, 29, 47, 50, 51, 52, 461], "area": 466, "arg": [62, 185, 370], "arg1": 184, "arg2": 184, "argmax": [0, 6, 32, 98, 239, 366, 459, 495], "argmin": [6, 31, 98, 240, 459, 495], "argpartit": [6, 33, 366, 459, 495], "argsort": [6, 98, 357, 366, 439, 447, 459, 465, 495], "argument": [0, 10, 11, 12, 13, 14, 15, 20, 23, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 58, 59, 60, 61, 64, 65, 66, 68, 70, 71, 76, 79, 80, 87, 88, 96, 97, 98, 101, 104, 108, 109, 110, 112, 142, 143, 144, 145, 146, 147, 161, 166, 169, 172, 183, 184, 187, 201, 202, 213, 214, 215, 216, 217, 224, 225, 227, 233, 234, 235, 237, 332, 345, 348, 349, 359, 360, 361, 363, 365, 368, 369, 421, 422, 423, 425, 430, 431, 432, 438, 442, 443, 444, 445, 453, 455, 460, 461, 462, 466, 475, 476, 495, 503], "argwher": [6, 350], "ari": [39, 53, 54, 55, 99, 102, 164, 449, 483], "arithmet": [56, 156, 228, 229, 244, 247, 249, 359, 454, 456, 481, 488, 499], "around": [6, 98, 156, 365, 420, 436], "arr": [22, 42, 91, 101, 163, 367, 394, 420, 470, 474], "arr2": 101, "arr_t": [49, 98, 303], "arrai": [0, 2, 3, 4, 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, 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, 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, 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, 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, 251, 257, 300, 301, 302, 303, 304, 305, 308, 311, 312, 313, 314, 316, 317, 318, 319, 321, 323, 324, 326, 328, 329, 330, 331, 332, 333, 335, 336, 337, 338, 339, 340, 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, 374, 375, 377, 378, 379, 380, 381, 382, 383, 384, 385, 389, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 499, 503], "array2str": 6, "array_equ": 6, "array_equiv": [6, 37], "array_lik": [22, 36, 40, 41, 42, 43, 44, 45, 48, 56, 75, 77, 89, 92, 102, 113, 154, 155, 156, 175, 182, 210, 222, 347, 358, 365, 366, 370, 435, 441, 446, 458, 462, 480], "array_of_diagon": 93, "array_repr": 6, "array_split": [6, 70, 71, 449], "array_str": 6, "arrays_and_dtyp": 430, "art": 10, "asanyarrai": [6, 41, 42, 45, 427], "asarrai": [4, 6, 40, 42, 43, 45, 48, 347, 427, 446], "asarray_chkfinit": [6, 40, 41], "ascend": [194, 196, 439], "ascii": 101, "ascontiguousarrai": [6, 40, 41, 42, 45, 427], "asfarrai": [6, 40, 41], "asfortranarrai": [6, 40, 41, 42, 43, 427], "asin": 26, "asinh": 27, "asmatrix": 6, "asnumpi": 98, "aspect": 101, "assembl": [70, 71, 100, 165, 437, 453, 484], "assign": [98, 313, 335, 469, 473], "associ": [56, 162, 163, 495], "assum": [10, 56, 104, 121, 127, 129, 200, 203, 207, 224, 466], "astyp": [6, 98, 156, 350], "atan": 28, "atan2": 29, "atanh": 30, "atleast_1d": [6, 54, 55, 111], "atleast_2d": [6, 53, 55, 111], "atleast_3d": [6, 53, 54, 111], "atol": [17, 173], "attain": 0, "attempt": [97, 201], "attribut": [98, 101, 106, 135, 155, 168, 204, 354, 487, 488], "automat": [162, 163], "avail": [2, 3, 4, 10, 78, 82, 101, 108, 229, 235, 239, 240, 243, 245, 246, 488, 495], "averag": [6, 98, 228, 244, 321, 456, 499], "avg": 56, "avoid": [36, 41, 54, 55, 121, 127, 129], "aweight": 82, "ax": [16, 21, 31, 32, 56, 81, 84, 94, 97, 98, 103, 111, 117, 119, 120, 123, 124, 125, 128, 129, 131, 133, 139, 158, 171, 202, 206, 208, 209, 223, 225, 226, 228, 232, 236, 239, 240, 243, 244, 245, 246, 247, 248, 249, 342, 345, 355, 357, 362, 424, 429, 433, 434, 435, 452, 454, 456, 457, 462, 463, 464, 465, 477, 481], "axi": [16, 18, 19, 21, 22, 31, 32, 33, 39, 56, 69, 70, 71, 81, 83, 84, 85, 86, 93, 94, 98, 99, 100, 102, 103, 111, 113, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 139, 140, 141, 145, 146, 151, 156, 158, 164, 165, 170, 198, 202, 210, 222, 223, 225, 226, 227, 228, 229, 232, 233, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 298, 299, 300, 301, 302, 309, 310, 316, 320, 321, 322, 326, 327, 328, 331, 336, 337, 338, 339, 341, 343, 345, 346, 356, 357, 358, 362, 364, 365, 366, 419, 424, 426, 428, 429, 433, 434, 435, 437, 440, 446, 447, 449, 452, 453, 454, 456, 457, 458, 459, 462, 463, 464, 465, 466, 477, 479, 481, 483, 484, 495], "axis1": [93, 98, 311, 342, 344, 457, 464], "axis2": [93, 98, 311, 342, 344, 457, 464], "axisa": 83, "axisb": 83, "axisc": 83, "axiserror": [33, 447], "b": [10, 15, 17, 22, 31, 32, 37, 38, 58, 61, 69, 70, 71, 77, 83, 86, 97, 98, 100, 101, 103, 104, 107, 149, 150, 159, 160, 165, 171, 173, 186, 188, 189, 192, 198, 201, 202, 203, 205, 206, 207, 208, 209, 218, 220, 225, 226, 232, 349, 351, 355, 360, 361, 371, 430, 437, 453, 462, 463, 471, 482, 484, 503], "back": [98, 151, 316, 419, 428, 429, 434, 471], "backend": [2, 157, 373, 375, 376, 386, 391, 407], "backward": [10, 49, 98, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 158, 303, 433, 434], "bad": 382, "bartlett": 6, "base": [0, 4, 101, 103, 110, 113, 142, 156, 162, 163, 207, 212, 213, 214, 215, 216, 217, 222, 223, 225, 358, 360, 361, 365, 367], "base_repr": 6, "basic": [64, 103, 495, 499], "bc": [192, 205], "bcde": 104, "becaus": [10, 16, 21, 121, 127, 129, 479, 495], "becom": [10, 98, 162, 345], "been": [100, 366, 434, 459], "befor": [4, 22, 33, 70, 71, 84, 98, 102, 122, 123, 124, 140, 141, 209, 223, 226, 232, 247, 249, 326, 337, 362, 424, 433, 434, 447, 454, 456, 463, 481, 482], "begin": [102, 104, 156, 210, 222, 440], "behav": [211, 365], "behavior": [98, 131, 238, 308, 429, 463], "behind": [98, 326], "being": [3, 101, 145, 146, 227, 233], "belong": [95, 162], "below": [0, 4, 9, 13, 24, 26, 27, 30, 46, 47, 52, 89, 92, 101, 127, 200, 467, 468, 472, 479, 495], "best": 104, "beta": [6, 381], "between": [17, 23, 39, 64, 94, 102, 135, 150, 153, 158, 171, 173, 210, 222, 387, 401, 455, 466, 479], "beyond": [4, 433], "bia": 82, "big": 101, "bin": [95, 116, 118, 132, 162, 163, 408], "bin_edg": [162, 163], "binari": [58, 60, 61, 149, 150, 152, 153, 488, 499], "binary_repr": 6, "bincount": [6, 95, 162], "binomi": [6, 389], "bins_0": 163, "bins_1": 163, "bit": [58, 59, 60, 61, 101, 135, 168, 172, 187, 218, 220, 221, 246, 248, 431, 443, 499], "bitwis": [58, 60, 61], "bitwise_and": [6, 59, 60, 61, 172, 218], "bitwise_invert": [59, 172], "bitwise_left_shift": 187, "bitwise_not": 6, "bitwise_or": [6, 58, 59, 61, 172, 220], "bitwise_right_shift": 431, "bitwise_xor": [6, 58, 59, 60, 172, 221], "biufcmmosuv": 101, "blackman": 6, "block": [6, 70, 71, 100, 134, 165, 186, 437, 453, 484], "bmat": 6, "bool": [9, 16, 17, 21, 31, 32, 36, 37, 38, 41, 44, 49, 56, 64, 77, 81, 84, 95, 98, 101, 104, 107, 134, 148, 156, 159, 160, 162, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 188, 189, 190, 200, 202, 203, 207, 210, 222, 223, 226, 228, 230, 232, 238, 239, 240, 243, 244, 245, 246, 247, 248, 249, 303, 350, 351, 362, 424, 428, 440, 443, 454, 456, 458, 477, 480, 481, 495], "bool_": 9, "boolean": [58, 59, 60, 61, 77, 84, 101, 113, 142, 148, 170, 172, 173, 176, 177, 178, 179, 180, 181, 185, 218, 220, 223, 224, 228, 244, 246, 247, 249, 350, 358, 424, 428, 454, 458, 481], "boolean_sequ": 185, "both": [10, 15, 17, 22, 29, 37, 38, 51, 56, 58, 60, 61, 68, 76, 83, 96, 97, 107, 123, 130, 142, 144, 145, 146, 147, 159, 160, 161, 166, 171, 173, 186, 187, 188, 189, 202, 216, 217, 218, 220, 221, 225, 227, 233, 234, 237, 248, 349, 351, 360, 361, 425, 431, 455, 462, 464, 469, 471, 473, 475, 482, 485], "bound": [365, 420, 439, 458, 459], "boundari": [158, 365, 420], "branch": [13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52], "briefli": 495, "broadcast": [15, 16, 21, 31, 32, 38, 56, 62, 63, 68, 77, 81, 96, 103, 113, 142, 145, 146, 166, 179, 180, 202, 203, 221, 223, 225, 226, 227, 228, 232, 233, 237, 239, 240, 244, 246, 247, 248, 249, 360, 361, 362, 365, 366, 424, 426, 454, 455, 456, 459, 463, 475, 481, 485], "broadcast_arrai": [6, 63], "broadcast_shap": 6, "broadcast_to": [6, 62, 463], "brought": 10, "buffer": [44, 85, 86, 98, 148, 149, 150, 152, 153, 211, 226, 232, 241, 242, 428], "buffer_lik": 149, "buffererror": 148, "build": 499, "build_loc": 4, "built": 101, "busday_count": 6, "busday_offset": 6, "byte": [6, 49, 98, 101, 103, 149, 150, 211, 303, 319, 323], "byte_bound": 6, "byteord": 101, "byteswap": 6, "bz2": 211, "c": [2, 4, 11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 36, 38, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 79, 80, 83, 87, 88, 96, 97, 98, 101, 103, 104, 105, 106, 107, 109, 110, 112, 114, 115, 136, 142, 143, 144, 145, 146, 147, 154, 155, 157, 159, 160, 161, 166, 169, 171, 172, 176, 177, 178, 186, 187, 188, 189, 192, 198, 201, 202, 205, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 227, 233, 234, 237, 303, 308, 316, 329, 348, 349, 350, 351, 353, 354, 359, 360, 361, 363, 368, 369, 419, 420, 423, 425, 427, 428, 429, 431, 432, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 462, 463, 475, 476, 477, 478, 485, 486, 487, 503], "c_contigu": [43, 45, 98, 308, 427], "ca": 74, "calcul": [10, 11, 12, 15, 20, 29, 51, 56, 84, 86, 94, 96, 102, 103, 107, 109, 110, 112, 116, 125, 142, 143, 144, 147, 158, 163, 166, 193, 194, 195, 196, 198, 203, 214, 216, 217, 223, 225, 228, 234, 237, 244, 247, 249, 351, 360, 361, 362, 424, 425, 454, 455, 475, 481, 482, 488, 503], "call": [10, 20, 22, 29, 31, 32, 33, 43, 45, 51, 101, 122, 123, 124, 127, 130, 151, 193, 195, 201, 224, 257, 350, 452, 458, 463, 466, 503], "callabl": [151, 224], "cambridg": 10, "can": [0, 3, 4, 10, 15, 17, 22, 23, 29, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 48, 49, 51, 56, 58, 59, 60, 61, 64, 75, 76, 83, 89, 90, 92, 93, 96, 97, 98, 101, 103, 104, 105, 106, 107, 114, 116, 117, 118, 119, 122, 123, 124, 127, 128, 129, 132, 134, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 165, 166, 167, 170, 171, 172, 173, 175, 182, 183, 185, 186, 187, 188, 189, 190, 197, 198, 199, 209, 210, 211, 216, 217, 218, 220, 221, 222, 224, 225, 227, 231, 233, 234, 237, 246, 248, 303, 308, 335, 337, 348, 349, 350, 351, 352, 353, 354, 359, 360, 361, 366, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 420, 425, 427, 428, 431, 447, 455, 458, 459, 462, 464, 466, 467, 469, 473, 474, 475, 477, 480, 482, 485, 486, 487, 495, 503], "can_cast": [6, 499], "cannot": [13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 70, 71, 239, 240, 449, 452, 453], "capabl": [23, 36, 40, 41, 43, 45, 56, 115, 156, 210, 222, 225], "care": [23, 193], "cartesian": 230, "case": [4, 16, 21, 23, 31, 32, 36, 40, 41, 42, 43, 45, 56, 75, 85, 86, 89, 92, 94, 103, 104, 105, 106, 114, 118, 121, 126, 130, 132, 149, 150, 151, 152, 154, 155, 156, 158, 167, 193, 204, 207, 210, 211, 217, 222, 231, 241, 242, 246, 248, 352, 353, 354, 362, 428, 429, 456, 462, 467, 479, 480, 486, 487, 495], "cast": [16, 21, 49, 64, 70, 71, 77, 84, 85, 86, 98, 103, 142, 165, 193, 223, 225, 228, 238, 241, 242, 244, 246, 247, 248, 249, 303, 362, 424, 437, 453, 454, 456, 481, 484], "cat": [372, 389], "cauchi": 408, "cbrt": [6, 450], "cdef": 104, "cdot": 462, "cdoubl": 9, "ceil": [6, 35, 136, 143, 144, 432, 436, 476], "center": [117, 118, 119, 120, 124, 125, 132], "central": [158, 390, 391], "certain": [101, 224], "ch": 10, "chain": [97, 98, 103, 104], "chang": [49, 75, 83, 98, 101, 103, 113, 241, 242, 303, 316, 340, 345, 348, 358, 359, 365, 366, 367, 419, 428, 429, 434, 479, 499], "char": 101, "charact": [101, 150], "check": [16, 21, 40, 41, 42, 64, 121, 175, 182, 190, 203, 206], "check_valid": 388, "chi": [374, 390], "chisquar": 6, "choic": [6, 67, 98, 116, 117, 119, 122, 123, 124, 128, 129, 131, 133, 194, 196, 304], "choicelist": 440, "choleski": 6, "choos": [6, 20, 26, 28, 46, 50, 98, 104, 440, 485, 495], "chosen": [34, 162, 477, 485], "circ": 503, "circl": [205, 466], "clamp": [365, 458, 459], "clariti": 134, "class": [3, 4, 98, 101, 137, 149, 150, 151, 153, 170, 211, 370, 398, 467, 499], "classic": 103, "clear": [101, 495], "clip": [6, 98, 365, 420, 458, 459, 495], "close": [13, 14, 20, 24, 25, 26, 28, 46, 48, 49, 50, 98, 103, 111, 169, 210, 303, 370, 398, 421, 422, 432, 436, 466], "closer": 476, "cloud": 3, "cmake": 4, "co": [6, 13, 14, 24, 25, 26, 46, 80, 195, 444, 460, 466], "code": [44, 101, 184, 427], "codeplai": 4, "coeffici": [198, 206, 209], "coerc": [44, 149, 150, 151, 152, 153, 211], "coin": 372, "col": 170, "collaps": [98, 316, 477], "column": [6, 40, 41, 42, 43, 45, 48, 49, 69, 70, 71, 85, 86, 93, 98, 100, 114, 134, 140, 141, 158, 164, 165, 167, 193, 194, 198, 201, 204, 207, 303, 419, 420, 427, 437, 449, 453, 467, 469, 473, 478, 480, 484], "column_stack": [6, 70, 71, 100, 165, 437, 453, 484], "com": 4, "combin": [0, 101, 111, 119, 124, 129, 133, 158], "combinatori": 104, "come": 477, "comma": [101, 103], "command": 4, "common": [122, 123, 124, 350, 462], "common_typ": 6, "compani": [372, 389], "compar": [17, 37, 107, 145, 146, 163, 173, 227, 233], "compare_chararrai": 6, "comparison": [2, 107, 159, 160, 188, 189, 351, 488, 499], "compat": [3, 4, 10, 16, 21, 49, 56, 98, 223, 228, 243, 244, 245, 247, 249, 303, 424, 428, 454, 481, 499], "compil": [4, 101, 157, 427], "complement": 479, "complementari": [144, 479], "complet": [3, 4, 104, 150, 151, 204, 434, 495], "complex": [10, 11, 12, 13, 14, 20, 24, 25, 26, 27, 28, 29, 30, 37, 46, 47, 50, 51, 52, 64, 84, 97, 98, 101, 104, 108, 115, 116, 117, 119, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 135, 142, 145, 146, 169, 174, 175, 181, 182, 193, 194, 195, 196, 204, 205, 207, 223, 225, 227, 233, 238, 247, 249, 306, 307, 363, 421, 422, 424, 448, 454, 477, 481, 482, 495, 499], "complex128": [9, 56, 430], "complex64": [9, 56, 98, 142, 336], "compliant": 98, "complic": [103, 503], "compon": [10, 37, 120, 125, 132, 135, 169, 238, 421], "compos": 76, "composit": [86, 186, 456, 466], "compress": [6, 113, 440, 458, 495], "comput": [4, 10, 13, 14, 20, 24, 25, 26, 27, 28, 29, 30, 35, 46, 47, 50, 51, 52, 56, 58, 59, 60, 61, 65, 72, 73, 79, 80, 84, 85, 86, 94, 95, 103, 109, 110, 111, 112, 115, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 143, 158, 159, 160, 161, 162, 163, 169, 170, 172, 186, 188, 189, 191, 192, 193, 194, 195, 196, 197, 201, 202, 203, 204, 205, 207, 208, 209, 212, 213, 214, 215, 218, 219, 220, 221, 223, 225, 228, 229, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 348, 359, 363, 421, 423, 424, 425, 432, 436, 438, 442, 443, 444, 445, 450, 454, 456, 460, 461, 462, 466, 469, 473, 481], "compute_uv": [191, 207], "concat": 71, "concaten": [6, 69, 70, 100, 165, 437, 449, 453, 459, 484], "concept": [23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487, 495], "cond": [6, 197], "condit": [34, 49, 97, 98, 113, 191, 197, 201, 303, 350, 358, 365, 367, 440, 485], "condlist": 440, "confus": 147, "conj": [6, 73, 98, 121, 169, 190, 193, 363], "conjug": [6, 10, 72, 97, 98, 127, 130, 169, 190, 193, 194, 195, 196, 225, 306, 363, 482], "consecut": [94, 102, 158], "conserv": 230, "consid": [17, 23, 36, 37, 40, 41, 43, 45, 104, 132, 156, 173, 176, 194, 196, 200, 210, 222, 225, 370, 398, 429, 477], "consist": [37, 38, 102, 116, 117, 119, 122, 123, 124, 128, 129, 131, 133, 150, 163, 209, 210, 459, 462], "constant": [9, 101, 158], "constraint": 56, "construct": [40, 41, 42, 67, 89, 92, 93, 98, 101, 114, 149, 150, 151, 152, 153, 167, 185, 211, 231, 304, 352, 440, 463, 464, 485, 488], "constructor": 495, "consum": [98, 323], "contain": [10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 42, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 76, 77, 79, 80, 83, 84, 93, 96, 98, 101, 107, 109, 110, 112, 117, 118, 119, 122, 127, 130, 132, 138, 142, 143, 144, 145, 146, 147, 148, 153, 157, 158, 159, 160, 162, 163, 166, 169, 170, 172, 187, 188, 189, 194, 204, 207, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 227, 228, 233, 234, 237, 239, 240, 243, 244, 245, 247, 249, 332, 348, 350, 351, 357, 359, 360, 361, 363, 370, 421, 423, 424, 425, 431, 432, 436, 438, 442, 443, 444, 445, 450, 451, 454, 455, 460, 461, 465, 469, 470, 473, 474, 475, 476, 481, 495], "content": [43, 98, 407], "context": 10, "contigu": [40, 41, 42, 43, 45, 97, 98, 103, 201, 329, 419, 427, 428], "continu": [13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 370, 402], "contourf": 230, "contract": [103, 104, 462], "contrast": [103, 365], "contribut": [10, 56, 162, 163], "control": [4, 49, 64, 70, 71, 77, 98, 103, 165, 225, 303, 437, 453, 484], "conveni": [98, 345, 370], "convent": [13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 97, 103, 104, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 171, 209, 225, 355, 462], "convers": [49, 98, 103, 303, 488], "convert": [22, 31, 32, 36, 40, 41, 42, 43, 44, 45, 48, 53, 54, 55, 75, 87, 88, 89, 92, 101, 103, 104, 111, 154, 155, 156, 175, 182, 210, 222, 368, 369, 420, 427, 478, 479, 480], "convolut": [10, 74, 78], "convolv": [6, 78], "coolei": 10, "coordin": [81, 151, 158, 170, 185, 230, 420, 478], "copi": [6, 22, 23, 33, 36, 37, 40, 41, 42, 43, 44, 45, 49, 53, 54, 55, 77, 89, 90, 92, 93, 98, 101, 105, 106, 113, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 230, 231, 238, 257, 303, 316, 318, 326, 332, 335, 352, 353, 354, 356, 358, 359, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 427, 428, 429, 439, 447, 452, 467, 468, 469, 472, 473, 480, 486, 487, 495], "copysign": [6, 348, 359], "copyto": [6, 98, 113, 308, 358], "core": [3, 101, 103, 495], "corner": [117, 119, 123, 124], "corrcoef": [6, 82], "correct": [11, 12, 13, 14, 15, 20, 22, 24, 25, 26, 27, 28, 29, 30, 34, 35, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 70, 71, 72, 73, 76, 79, 80, 87, 88, 96, 107, 109, 110, 112, 115, 121, 127, 129, 136, 142, 143, 144, 145, 146, 147, 159, 160, 161, 166, 169, 172, 176, 177, 178, 187, 188, 189, 206, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 227, 233, 234, 237, 348, 349, 351, 359, 360, 361, 363, 368, 369, 423, 425, 427, 431, 432, 436, 438, 442, 443, 444, 445, 450, 451, 453, 455, 460, 461, 475, 476], "correctli": [20, 26, 28, 31, 32, 46, 50, 81, 202, 226, 232, 239, 240, 246, 248, 350, 362, 456], "correl": [6, 499], "correspond": [6, 10, 23, 31, 32, 36, 39, 40, 41, 42, 43, 44, 45, 49, 68, 70, 71, 75, 87, 88, 89, 90, 92, 93, 98, 99, 105, 106, 114, 117, 118, 119, 121, 123, 124, 127, 128, 129, 130, 131, 132, 133, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 164, 167, 170, 185, 193, 194, 210, 211, 222, 224, 225, 231, 303, 308, 312, 352, 353, 354, 357, 368, 369, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 433, 440, 441, 449, 454, 462, 465, 466, 467, 469, 473, 480, 481, 483, 486, 487, 495], "correspondingli": [10, 449], "cosh": [6, 14, 25, 79, 445, 461], "cosin": [13, 14, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 79, 80, 444, 445, 460, 461], "cost": [103, 104], "costli": 104, "could": [98, 121, 127, 129, 337], "count": [16, 21, 57, 81, 95, 101, 104, 139, 149, 150, 152, 153, 158, 162, 163, 350, 362, 372, 446, 456, 477, 488, 499], "count_nonzero": [6, 350], "counterclockwis": [140, 141, 435], "counterpart": [10, 121, 127, 129, 495], "cov": [6, 388], "covari": 82, "cover": [469, 473, 499], "cpu": [4, 23, 36, 40, 41, 42, 43, 45, 75, 78, 82, 89, 92, 105, 106, 108, 114, 118, 132, 149, 150, 151, 152, 154, 155, 156, 167, 210, 211, 222, 229, 231, 235, 246, 352, 353, 354, 467, 480, 486, 487], "creat": [3, 4, 23, 36, 38, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 91, 92, 93, 98, 101, 104, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 238, 303, 308, 352, 353, 354, 366, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 464, 467, 469, 470, 473, 474, 480, 486, 487, 495, 499], "creation": [101, 104, 488, 495, 499, 503], "crop": [116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133], "cross": [6, 78, 185], "csingl": 9, "ct": 10, "ctype": 427, "cube": [65, 142, 450], "cubic": 104, "cuda": 4, "cumprod": [6, 98, 241, 495], "cumproduct": 6, "cumsum": [6, 94, 98, 242, 456, 466, 495], "cumul": [84, 85, 86, 94, 98, 241, 242, 309, 310, 456, 466], "cupi": [2, 488], "current": [10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 76, 79, 80, 87, 88, 96, 98, 101, 104, 109, 110, 112, 142, 143, 144, 145, 146, 147, 150, 161, 163, 166, 167, 172, 187, 213, 214, 215, 216, 217, 227, 233, 234, 235, 237, 335, 348, 349, 359, 360, 361, 363, 368, 369, 423, 425, 427, 431, 432, 438, 442, 443, 444, 445, 455, 460, 461, 475, 476], "curv": 466, "custom": 495, "customarili": 10, "cut": [13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 198], "cutoff": 203, "cycl": [118, 132, 185, 429], "cyclic": 365, "cython": 4, "d": [0, 16, 21, 23, 56, 69, 70, 71, 85, 86, 89, 90, 91, 92, 93, 97, 98, 100, 101, 114, 118, 120, 125, 132, 134, 138, 140, 141, 153, 164, 165, 167, 171, 185, 192, 194, 195, 201, 202, 205, 225, 230, 241, 242, 248, 316, 350, 360, 361, 362, 365, 375, 419, 428, 437, 439, 441, 453, 456, 458, 462, 463, 464, 471, 477, 480, 484, 495], "d0": [370, 397, 399], "d1": [370, 399], "d3": 90, "data": [1, 3, 4, 11, 12, 13, 14, 15, 16, 17, 20, 21, 24, 25, 26, 27, 28, 29, 30, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 56, 58, 59, 60, 61, 63, 64, 65, 66, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 84, 87, 88, 89, 92, 95, 96, 97, 98, 101, 103, 105, 106, 107, 108, 109, 110, 112, 114, 115, 121, 127, 129, 135, 136, 138, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 162, 163, 165, 166, 167, 168, 169, 170, 172, 173, 175, 176, 177, 178, 179, 180, 182, 187, 188, 189, 198, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 227, 228, 229, 233, 234, 235, 237, 238, 239, 240, 243, 244, 245, 246, 247, 249, 303, 332, 345, 347, 348, 349, 351, 353, 354, 358, 359, 360, 361, 363, 365, 366, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 389, 392, 393, 395, 396, 397, 398, 399, 400, 402, 403, 404, 405, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, 423, 424, 425, 426, 427, 428, 429, 431, 432, 433, 434, 436, 437, 438, 439, 442, 443, 444, 445, 446, 450, 451, 452, 453, 454, 455, 459, 460, 461, 464, 467, 475, 476, 481, 484, 485, 486, 487, 488, 499], "datatyp": [101, 200], "date": 4, "datetim": 101, "datetime_as_str": 6, "datetime_data": 6, "dcmake_c_compil": 4, "dcmake_cxx_compil": 4, "ddof": [82, 98, 247, 249, 339, 346, 454, 481], "decai": 383, "decim": [35, 98, 135, 136, 333, 432, 436], "decomposit": [190, 197, 200, 203, 207, 499], "decompress": 211, "decreas": [95, 466], "decreasingli": [10, 117, 119, 123, 124], "deem": 148, "def": 0, "default": [3, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 56, 58, 59, 60, 61, 62, 63, 65, 66, 68, 70, 71, 72, 73, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 98, 101, 102, 103, 104, 105, 106, 107, 109, 110, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 165, 166, 167, 169, 170, 172, 173, 176, 177, 178, 179, 180, 187, 188, 189, 190, 191, 194, 196, 198, 200, 201, 202, 203, 204, 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, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 308, 316, 348, 349, 351, 352, 353, 354, 356, 357, 359, 360, 361, 362, 363, 365, 368, 369, 370, 374, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 408, 409, 411, 414, 419, 420, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 442, 443, 444, 445, 446, 447, 449, 450, 451, 453, 454, 455, 456, 458, 459, 460, 461, 462, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 483, 484, 485, 486, 487, 495], "default_rng": 6, "defg": 104, "defici": 200, "defin": [10, 29, 51, 83, 101, 106, 116, 145, 146, 155, 161, 162, 163, 227, 233, 238, 354, 359, 422, 435, 487, 495], "definit": [83, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 143, 190, 466], "deg": [20, 369], "deg2rad": [6, 368, 369, 479], "degre": [6, 20, 87, 247, 249, 368, 369, 412, 435, 454, 479, 481, 503], "del": 503, "delet": [6, 22], "delta": [10, 247, 249, 454, 479, 481], "demonstr": [0, 4, 101], "dens": [170, 185, 231], "densiti": 162, "depend": [4, 34, 93, 115, 121, 127, 129, 194, 198, 204, 206, 207, 210, 246, 248, 440, 485], "deprec": 6, "deprecate_with_doc": 6, "depth": [69, 70, 71, 99, 100, 165, 437, 449, 453, 484], "deriv": 158, "descend": 207, "descr": 101, "describ": [84, 101, 223, 424, 499], "descript": [84, 101, 122, 124, 162, 223, 424, 495], "design": 10, "desir": [23, 36, 40, 41, 43, 45, 48, 63, 105, 106, 114, 122, 123, 124, 154, 155, 156, 167, 210, 222, 353, 354, 463, 467, 486, 487], "destin": [70, 71, 165, 236, 365, 366, 437, 453, 459, 484], "destruct": 503, "det": [6, 205], "detail": [35, 117, 119, 123, 124, 128, 129, 131, 133, 148, 436, 469, 470, 473, 474, 477, 495], "determin": [13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 58, 60, 61, 65, 76, 79, 80, 87, 88, 96, 109, 110, 112, 144, 145, 146, 147, 150, 151, 153, 166, 187, 192, 198, 204, 205, 212, 213, 214, 215, 216, 217, 225, 227, 233, 234, 237, 349, 360, 361, 368, 369, 420, 423, 425, 431, 438, 440, 442, 444, 445, 450, 451, 455, 460, 461, 464, 475, 476, 478], "devel": 4, "develop": [3, 4], "deviat": [98, 228, 244, 247, 249, 339, 370, 385, 392, 454, 481], "devic": [0, 2, 3, 23, 36, 40, 41, 42, 43, 44, 45, 49, 56, 75, 84, 89, 90, 92, 98, 103, 105, 106, 114, 115, 118, 132, 136, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 223, 224, 225, 228, 231, 244, 247, 249, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 424, 452, 454, 467, 469, 473, 480, 481, 486, 487], "df": [374, 390, 412, 413], "dfden": [378, 391], "dfnum": [378, 391], "dft": [10, 116, 121, 122, 126, 127, 130], "di": [90, 91], "diag": [6, 92, 93, 103, 114, 140, 141, 167, 193, 195, 207, 440, 464], "diag_indic": [6, 91, 134], "diag_indices_from": [6, 90, 134], "diagflat": [6, 89, 93, 464], "diagon": [6, 89, 90, 91, 92, 98, 103, 114, 134, 167, 190, 194, 195, 196, 224, 344, 440, 464, 467, 468, 469, 470, 472, 473, 474, 495], "dice": 387, "dictionari": 101, "diff": [6, 86, 102, 158, 162], "differ": [3, 10, 17, 23, 36, 39, 40, 41, 42, 43, 45, 56, 75, 84, 86, 89, 92, 94, 98, 101, 102, 105, 106, 114, 117, 118, 122, 123, 125, 128, 131, 132, 135, 140, 141, 142, 149, 150, 151, 152, 154, 155, 156, 158, 167, 173, 196, 210, 211, 222, 223, 225, 231, 308, 352, 353, 354, 358, 360, 361, 366, 424, 429, 435, 455, 459, 467, 469, 473, 479, 480, 486, 487, 499], "digit": [6, 10, 135, 162], "dim": [17, 420], "dimens": [16, 21, 22, 31, 32, 36, 53, 54, 55, 56, 69, 70, 71, 77, 81, 82, 83, 90, 93, 94, 98, 99, 101, 111, 123, 124, 136, 140, 141, 158, 165, 170, 171, 185, 200, 202, 204, 223, 226, 228, 230, 231, 232, 236, 239, 240, 243, 244, 245, 246, 247, 248, 249, 316, 324, 335, 347, 350, 352, 362, 366, 370, 400, 402, 403, 405, 420, 424, 428, 435, 441, 449, 452, 453, 454, 456, 457, 458, 459, 463, 464, 469, 470, 473, 474, 477, 478, 481, 483, 495, 499], "dimension": [2, 4, 33, 74, 78, 81, 84, 90, 91, 92, 93, 94, 95, 98, 102, 103, 116, 117, 119, 121, 122, 123, 124, 127, 128, 129, 130, 131, 133, 134, 149, 150, 152, 158, 164, 170, 185, 198, 204, 208, 209, 223, 226, 230, 231, 232, 239, 240, 243, 245, 247, 249, 338, 347, 352, 355, 362, 424, 447, 454, 456, 458, 463, 466, 477, 481, 482, 483, 488], "direct": [10, 83, 94, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 140, 141, 158, 349, 435], "directli": [101, 151, 170, 222, 350, 459], "directori": 157, "dirichlet": 6, "discard": 476, "discont": 479, "discontinu": 479, "discret": [3, 10, 74, 78, 86, 94, 102, 116, 117, 118, 119, 122, 123, 124, 127, 128, 129, 130, 131, 132, 133, 158, 370, 488], "disp": 6, "dispers": 415, "displac": [98, 340], "disregard": 429, "distanc": 158, "distinct": [145, 146, 227, 233, 429], "distinguish": 101, "distribut": [3, 4, 222, 370, 371, 372, 374, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, 399, 401, 402, 404, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 499], "divid": [6, 39, 99, 100, 144, 147, 164, 234, 425, 449, 475, 483], "divis": [96, 144, 147, 234, 360, 361, 425, 449, 475, 476], "divisor": [247, 249, 454, 481], "divmod": [6, 495], "dlpack": 148, "dmlc": 148, "dn": [370, 397, 399], "do": [3, 4, 101, 224, 372, 434, 466], "docstr": 495, "document": [0, 11, 12, 13, 14, 15, 16, 17, 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, 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, 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, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 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, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 316, 317, 318, 320, 321, 322, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 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, 407, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 495], "doe": [22, 23, 39, 64, 103, 113, 115, 130, 145, 146, 148, 204, 238, 241, 242, 358, 429, 449, 458], "domain": [10, 121, 126], "done": [3, 49, 98, 103, 209, 303, 477, 479], "dot": [6, 98, 103, 104, 171, 190, 195, 197, 201, 203, 204, 206, 207, 208, 209, 225, 462, 482], "doubl": [9, 383, 462], "down": 141, "dp": [96, 192, 194, 205, 206, 360, 361, 455, 475], "dpc": 4, "dpcpp": 4, "dpcpp_linux": 4, "dpcpp_win": 4, "dpctl": [0, 4, 23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 239, 240, 243, 245, 246, 303, 308, 352, 353, 354, 364, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "dpnp": [0, 2, 3, 4, 10, 488, 495, 499, 500, 503], "dpnp_arrai": [23, 36, 40, 41, 42, 43, 45, 49, 75, 89, 90, 92, 105, 106, 114, 118, 132, 135, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 168, 170, 210, 211, 222, 224, 231, 250, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487, 488], "dpnp_iface_arraycr": [231, 352], "draw": [370, 371, 372, 374, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 398, 404, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417], "drawn": [370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 392, 393, 395, 396, 398, 401, 404, 410, 411, 412, 413, 414, 415, 416, 417, 418, 440], "drill": [372, 389], "driver": 2, "drop": [3, 101], "dsplit": [6, 70, 71, 100, 449], "dst": 77, "dstack": [6, 69, 70, 71, 165, 437, 449, 453, 484], "dt": [101, 466], "dt2": 101, "dtype": [0, 9, 11, 12, 13, 14, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 56, 58, 59, 60, 61, 64, 65, 66, 70, 71, 72, 73, 76, 79, 80, 82, 84, 85, 86, 87, 88, 90, 96, 98, 103, 105, 106, 107, 109, 110, 112, 114, 115, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 165, 166, 167, 168, 169, 170, 172, 176, 177, 178, 179, 180, 187, 188, 189, 201, 207, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 232, 233, 234, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 309, 310, 321, 327, 336, 339, 341, 344, 346, 348, 349, 351, 353, 354, 359, 360, 361, 362, 363, 368, 369, 370, 392, 398, 414, 423, 424, 425, 427, 430, 431, 432, 436, 437, 438, 442, 443, 444, 445, 448, 450, 451, 453, 454, 455, 456, 458, 460, 461, 464, 467, 468, 472, 475, 476, 481, 483, 484, 486, 487, 495], "due": [130, 503], "dump": 6, "dx": [158, 466], "dy": 158, "dz": 158, "e": [9, 10, 14, 25, 27, 47, 84, 85, 93, 101, 105, 106, 111, 114, 117, 121, 122, 123, 124, 127, 129, 130, 142, 150, 154, 155, 158, 167, 187, 193, 205, 208, 212, 353, 354, 370, 422, 426, 429, 457, 467, 486, 487], "ea": 104, "each": [0, 11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 39, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 72, 73, 76, 79, 80, 85, 86, 90, 93, 95, 96, 98, 99, 101, 104, 107, 109, 110, 112, 117, 119, 121, 123, 124, 127, 128, 129, 131, 133, 140, 141, 142, 143, 144, 147, 151, 158, 159, 160, 162, 163, 164, 169, 172, 176, 177, 178, 185, 187, 188, 189, 193, 194, 195, 196, 198, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 234, 236, 237, 238, 333, 348, 350, 351, 359, 360, 361, 363, 366, 372, 389, 420, 421, 423, 425, 426, 429, 431, 432, 433, 436, 438, 442, 443, 444, 445, 449, 450, 451, 453, 455, 459, 460, 461, 463, 466, 469, 470, 473, 474, 475, 476, 477, 478, 483, 495], "easier": 458, "easiest": 4, "easili": [0, 163], "edg": [68, 95, 162, 163], "edge_ord": 158, "ediff1d": [6, 94, 158], "effect": [104, 142, 145, 146, 227, 233, 360, 361, 479], "effici": [10, 116, 130, 150, 200, 203, 207], "efgh": 104, "eig": [6, 194, 195, 196], "eigenvalu": [193, 194, 195, 196, 499], "eigenvector": [193, 194, 195, 196], "eigh": [6, 193, 195, 196], "eigval": [6, 193, 194, 196], "eigvalsh": [6, 193, 194, 195], "einstein": [97, 103, 104, 171, 209, 225, 355, 462], "einsum": [6, 97, 104, 171, 209, 225, 355, 462], "einsum_path": [6, 103], "either": [37, 38, 45, 56, 84, 93, 101, 117, 119, 121, 123, 124, 127, 129, 131, 133, 134, 158, 171, 194, 196, 202, 204, 223, 239, 240, 243, 245, 246, 248, 420, 424, 429, 439, 440, 459, 466], "element": [4, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 42, 46, 47, 50, 51, 52, 56, 57, 58, 59, 60, 61, 65, 66, 68, 72, 73, 76, 77, 79, 80, 84, 85, 86, 91, 93, 94, 95, 96, 98, 101, 102, 104, 107, 109, 110, 112, 113, 114, 115, 117, 119, 123, 124, 128, 129, 130, 131, 133, 134, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 153, 158, 159, 160, 161, 162, 163, 166, 167, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 187, 188, 189, 190, 195, 199, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 230, 232, 233, 234, 235, 237, 238, 241, 242, 243, 245, 246, 247, 248, 249, 298, 299, 306, 307, 309, 310, 312, 313, 316, 318, 319, 321, 323, 325, 326, 331, 332, 333, 334, 336, 339, 340, 343, 346, 348, 349, 350, 351, 358, 359, 360, 361, 362, 363, 365, 367, 419, 421, 422, 423, 424, 425, 426, 428, 429, 431, 432, 433, 434, 435, 436, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 450, 451, 454, 455, 456, 458, 460, 461, 462, 463, 464, 466, 468, 470, 472, 474, 475, 476, 477, 478, 479, 481, 485, 495, 499, 503], "element_count": [98, 336, 446], "ellipsi": 103, "els": [0, 205, 255], "elsewher": [114, 167, 467, 485], "empti": [4, 6, 36, 98, 106, 117, 119, 123, 124, 128, 129, 131, 133, 150, 154, 155, 198, 313, 353, 354, 358, 449, 486, 487], "empty_lik": [6, 36, 105, 155, 354, 487], "enabl": [134, 200, 203, 207], "encount": [241, 242, 243, 245, 440], "end": [22, 23, 93, 101, 102, 104, 122, 156, 210, 222], "end_tim": 0, "endian": 101, "endpoint": [23, 156, 210, 222, 466], "engin": 406, "enlarg": 429, "enough": 162, "ensur": 427, "entir": [56, 84, 121, 162, 163, 223, 228, 243, 244, 245, 247, 249, 424, 454, 481], "entiti": 429, "entri": [39, 98, 99, 101, 105, 113, 121, 127, 129, 134, 139, 140, 141, 164, 338, 449, 452, 483], "enumer": 148, "env": 4, "environ": 4, "ep": [135, 200, 349, 422], "epsilon": [200, 422], "epsneg": 135, "equal": [6, 16, 17, 21, 37, 38, 39, 56, 70, 71, 78, 82, 86, 98, 99, 114, 156, 158, 159, 160, 162, 163, 164, 165, 173, 175, 182, 184, 187, 188, 189, 199, 203, 204, 209, 210, 222, 234, 326, 351, 370, 380, 414, 425, 431, 432, 436, 437, 442, 449, 452, 453, 467, 469, 473, 483, 484], "equal_nan": [17, 37, 173, 477], "equat": [198, 206, 208, 209, 499], "equiv": [49, 64, 70, 71, 77, 98, 103, 165, 199, 225, 303, 437, 453, 484], "equival": [10, 15, 16, 18, 19, 21, 31, 32, 33, 35, 38, 56, 75, 83, 84, 87, 88, 96, 97, 98, 99, 100, 104, 111, 113, 138, 145, 146, 147, 164, 185, 208, 223, 234, 237, 257, 298, 299, 311, 324, 332, 335, 345, 347, 350, 355, 357, 359, 368, 369, 370, 398, 424, 425, 428, 435, 436, 441, 447, 455, 456, 458, 462, 465, 475, 477, 483, 495, 503], "error": [84, 99, 103, 108, 121, 126, 164, 193, 223, 420, 424, 449, 452, 483, 488, 495], "essenti": 4, "estim": [82, 163, 372, 389, 466], "et": 10, "etc": [10, 36, 41, 101, 117, 119, 123, 124, 128, 129, 131, 133, 389], "euclidean": 198, "euler_gamma": 9, "evalu": [16, 17, 21, 98, 103, 104, 107, 175, 182, 209, 230, 298, 299, 355, 440, 462, 495], "even": [10, 101, 118, 120, 121, 122, 125, 126, 127, 129, 130, 132, 175, 182, 432, 436], "evenli": [23, 156, 210, 222, 432, 466], "event": 217, "everi": [129, 366, 459], "everywher": 127, "exact": [113, 201, 358], "exactli": [10, 48, 153, 370, 398, 440], "examin": 198, "exampl": [2, 3, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 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, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 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, 303, 308, 311, 313, 316, 317, 318, 324, 326, 330, 332, 335, 336, 337, 340, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 392, 393, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 405, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 503], "exce": [217, 449], "except": [4, 11, 12, 13, 14, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 40, 41, 42, 43, 45, 46, 47, 50, 51, 52, 58, 59, 60, 61, 62, 63, 65, 66, 68, 70, 71, 72, 73, 75, 76, 79, 80, 87, 88, 94, 95, 96, 97, 98, 105, 106, 107, 109, 110, 112, 114, 128, 129, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 164, 165, 166, 167, 172, 176, 177, 178, 187, 188, 189, 201, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 226, 227, 228, 232, 233, 234, 237, 243, 244, 245, 246, 247, 248, 249, 303, 348, 349, 351, 353, 354, 359, 360, 361, 362, 363, 368, 369, 423, 425, 426, 427, 428, 431, 432, 438, 442, 443, 444, 445, 447, 449, 450, 451, 454, 455, 456, 460, 461, 475, 476, 481, 486, 487], "exclud": [11, 12, 22, 210, 370, 414], "exclus": [370, 398], "execut": [3, 4, 40, 41, 42, 78, 82, 108, 151, 229, 235, 246, 373, 375, 376, 386, 391, 407, 503], "executor": 0, "exist": [10, 69, 70, 71, 100, 101, 111, 148, 165, 428, 437, 449, 453, 484, 499], "exp": [6, 10, 110, 112, 116, 205, 214, 216, 223], "exp2": [6, 109, 112], "expand": [94, 111], "expand_dim": [6, 31, 32], "expect": [4, 11, 12, 13, 14, 15, 16, 17, 20, 21, 24, 25, 26, 27, 28, 29, 30, 35, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 72, 73, 76, 79, 80, 81, 84, 85, 86, 87, 88, 96, 97, 101, 107, 109, 110, 112, 115, 127, 136, 142, 143, 144, 145, 146, 147, 159, 160, 161, 166, 169, 172, 173, 176, 177, 178, 187, 188, 189, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 226, 227, 228, 232, 233, 234, 237, 241, 242, 244, 246, 247, 248, 249, 348, 349, 351, 359, 360, 361, 362, 363, 368, 369, 421, 423, 424, 425, 431, 432, 436, 438, 442, 443, 444, 445, 450, 451, 454, 455, 456, 460, 461, 475, 476, 481, 485], "explain": [119, 124, 129, 133, 495], "explan": 101, "explicit": 103, "explicitli": [93, 117, 119, 123, 124, 128, 129, 131, 133], "exploit": [10, 130], "explor": [104, 372, 389], "expm1": [6, 109, 110, 214], "expon": [10, 109, 110, 112, 142, 199, 216, 217, 223, 360, 361, 396, 499], "exponenti": [6, 10, 104, 216, 217, 223, 383, 409], "expos": [149, 495], "express": [10, 13, 14, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 103, 104, 211, 503], "extend": [10, 101, 186, 495], "extens": [0, 1, 3, 4, 9, 157, 211, 488], "extobj": 225, "extra": [101, 127, 153], "extract": [6, 89, 92, 93, 103, 114, 138, 167, 170, 224, 358, 440, 458, 464], "extrapol": 429, "extrema": 499, "ey": [6, 72, 73, 81, 98, 123, 124, 145, 146, 167, 171, 186, 197, 199, 200, 208, 209, 221, 227, 233, 441, 464], "f": [0, 6, 10, 11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 36, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 79, 80, 87, 88, 96, 98, 101, 103, 105, 106, 107, 109, 110, 112, 114, 115, 118, 130, 132, 136, 142, 143, 144, 145, 146, 147, 154, 155, 158, 159, 160, 161, 166, 169, 172, 176, 177, 178, 187, 188, 189, 199, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 227, 233, 234, 237, 303, 308, 316, 348, 349, 351, 353, 354, 359, 360, 361, 363, 368, 369, 391, 419, 420, 423, 425, 427, 428, 431, 432, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 471, 475, 476, 478, 485, 486, 487], "f0": 101, "f1": 101, "f2": 101, "f4": 64, "f8": [64, 101], "f_contigu": [43, 45, 427], "f_k": 10, "fab": [6, 11, 12], "fact": 195, "factor": [10, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 190, 204], "fail": [98, 335, 372], "fallback": [193, 195, 373, 375, 376, 386, 391, 407], "fals": [16, 17, 18, 19, 20, 21, 31, 32, 36, 37, 38, 41, 43, 45, 49, 56, 58, 59, 61, 62, 63, 64, 75, 81, 82, 84, 86, 95, 98, 101, 103, 104, 106, 107, 113, 134, 148, 151, 155, 156, 159, 160, 162, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 188, 189, 190, 191, 200, 202, 203, 207, 210, 218, 219, 220, 221, 222, 223, 226, 228, 229, 230, 232, 238, 239, 240, 243, 244, 245, 246, 247, 248, 249, 255, 298, 299, 300, 301, 303, 320, 321, 322, 327, 339, 341, 346, 350, 351, 354, 362, 364, 424, 427, 428, 440, 443, 454, 456, 477, 480, 481, 485, 487, 495], "famili": 10, "fanci": 458, "fashion": [217, 495], "fast": [10, 116, 117, 119, 123, 124, 129, 130, 133], "fastcopyandtranspos": 6, "faster": [10, 145, 146], "fastest": [98, 316, 419, 428], "fb": [104, 471], "featur": 101, "few": 134, "fft": [6, 488, 499], "fft2": [6, 116, 119, 123], "fftfreq": [6, 10, 116, 120, 125, 132], "fftn": [6, 116, 117, 124, 130, 133], "fftshift": [6, 10, 117, 119, 124, 125], "fh": 150, "field": [101, 230], "field1": 101, "file": [149, 150, 152, 153, 157, 211], "filenam": [150, 211], "fill": [6, 22, 36, 98, 105, 106, 134, 154, 155, 162, 163, 230, 238, 308, 353, 354, 429, 467, 486, 487], "fill_diagon": 6, "fill_valu": [154, 155], "filt": 471, "filter": [10, 23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "final": [4, 10, 129, 130, 131, 133, 156, 222], "find": [34, 57, 95, 98, 115, 162, 200, 203, 207, 334, 349, 350, 426, 439, 447, 477, 499], "find_common_typ": 6, "fine": 4, "finfo": [349, 422], "finfo_object": 135, "finit": [42, 176, 177, 178, 179, 180, 238], "first": [15, 16, 17, 21, 29, 31, 32, 33, 37, 38, 51, 56, 58, 60, 61, 69, 70, 71, 76, 83, 84, 93, 96, 97, 98, 101, 104, 107, 110, 117, 119, 121, 123, 124, 139, 142, 144, 145, 146, 147, 158, 159, 160, 162, 163, 164, 166, 171, 173, 184, 186, 187, 188, 189, 201, 208, 211, 216, 217, 218, 220, 221, 224, 225, 226, 227, 230, 232, 233, 234, 237, 239, 240, 316, 351, 355, 358, 360, 361, 362, 419, 425, 428, 431, 433, 435, 437, 439, 440, 447, 448, 451, 455, 456, 457, 459, 462, 464, 475, 477, 482, 483, 484], "fit": [198, 426], "fix": [6, 35, 66, 93, 101, 143, 365, 432, 436, 476], "flag": [43, 45, 98, 101, 308, 427], "flanneri": 10, "flat": [31, 32, 98, 102, 137, 316, 420, 426, 478], "flatnonzero": [6, 350], "flatten": [6, 22, 31, 32, 33, 70, 71, 81, 85, 86, 89, 92, 93, 98, 102, 134, 138, 162, 163, 226, 232, 239, 240, 241, 242, 246, 248, 315, 329, 337, 350, 355, 366, 419, 420, 426, 433, 447, 458, 459, 464, 477, 478, 482], "flexibl": [97, 101, 150, 201], "flip": [6, 59, 93, 134, 140, 141, 172, 372, 435], "fliplr": [6, 93, 134, 139, 141, 435], "flipud": [6, 93, 134, 139, 140, 435], "float": [11, 12, 20, 23, 29, 40, 41, 44, 51, 56, 64, 76, 84, 86, 101, 105, 106, 110, 114, 115, 118, 132, 135, 136, 142, 149, 150, 151, 152, 153, 154, 155, 158, 162, 163, 167, 169, 198, 199, 200, 202, 203, 210, 211, 216, 217, 222, 223, 226, 228, 232, 238, 244, 247, 249, 349, 353, 354, 360, 361, 370, 374, 399, 400, 402, 403, 405, 408, 409, 411, 414, 421, 422, 423, 424, 438, 454, 467, 479, 481, 486, 487, 495, 499], "float16": [9, 142], "float32": [0, 9, 42, 44, 49, 64, 85, 98, 101, 103, 142, 303, 349, 370, 392, 397, 399, 400, 402, 403, 405, 411, 414, 427, 430], "float64": [0, 9, 44, 49, 56, 64, 86, 98, 101, 103, 303, 370, 371, 377, 378, 379, 381, 383, 384, 385, 392, 393, 396, 397, 399, 400, 402, 403, 404, 405, 410, 411, 412, 413, 414, 415, 416, 417, 418, 422, 430, 483], "float_pow": [6, 360, 361], "floor": [6, 35, 66, 136, 144, 234, 425, 432, 436, 476], "floor_divid": [6, 234, 425], "flop": 104, "flush": 150, "fmax": [6, 146, 226, 227, 233, 243, 360, 361], "fmin": [6, 145, 227, 232, 233, 245, 360, 361], "fmod": [6, 234, 360, 361, 425], "fn": 151, "fname": 211, "follow": [4, 10, 56, 101, 111, 127, 135, 148, 168, 194, 196, 203, 427, 462, 495, 499], "forc": [101, 103], "forg": 4, "form": [10, 22, 36, 40, 41, 42, 43, 44, 45, 69, 75, 89, 92, 98, 100, 103, 104, 123, 124, 127, 154, 155, 156, 175, 182, 185, 210, 222, 345, 429, 437, 480, 484], "format": [101, 148, 150, 153, 499], "format_float_posit": 6, "format_float_scientif": 6, "former": [13, 24, 26, 27, 28, 30, 46, 47, 50, 52, 366, 459], "forth": 462, "fortran": [45, 49, 98, 303, 316, 419, 420, 427, 428, 478], "forward": [10, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 158], "found": [4, 439, 495], "four": [370, 399], "fourier": [10, 116, 117, 118, 119, 122, 123, 124, 127, 128, 129, 130, 131, 132, 133, 488], "fourth": 117, "frac": [10, 466], "fraction": [235, 476], "free": [98, 332], "freedom": [247, 249, 412, 454, 481], "freq": [118, 120, 125, 132], "freq_spectrum": 121, "frequenc": [10, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 132], "freshli": [179, 180], "frexp": 6, "fro": [191, 202], "frobeniu": 191, "from": [3, 10, 13, 14, 16, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 40, 41, 42, 43, 44, 45, 46, 47, 50, 52, 62, 64, 67, 70, 71, 75, 77, 84, 87, 88, 89, 90, 92, 93, 98, 100, 101, 103, 105, 106, 110, 113, 114, 118, 122, 131, 132, 133, 139, 142, 148, 149, 150, 151, 152, 153, 154, 155, 158, 162, 165, 167, 170, 185, 193, 195, 196, 200, 201, 211, 223, 224, 230, 231, 304, 308, 338, 343, 352, 353, 354, 358, 362, 366, 368, 369, 370, 371, 372, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 420, 424, 428, 429, 430, 435, 437, 439, 440, 451, 452, 453, 456, 458, 459, 464, 467, 469, 471, 473, 474, 477, 479, 480, 484, 485, 486, 487, 499], "from_": 64, "from_dlpack": 6, "frombuff": [6, 150, 152, 153, 211], "fromfil": [6, 149, 152, 153], "fromfunct": [6, 40, 41, 42], "fromit": [6, 40, 41, 42, 149, 150, 153], "frompyfunc": 6, "fromregex": [6, 211], "fromstr": [6, 149, 150, 152, 211], "front": 471, "full": [6, 11, 12, 13, 14, 15, 16, 17, 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, 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, 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, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 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, 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, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 316, 317, 318, 320, 321, 322, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 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, 407, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "full_lik": [6, 36, 106, 154, 354, 487], "full_matric": 207, "fulli": 101, "function": [0, 2, 3, 11, 12, 13, 14, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 39, 40, 41, 42, 43, 45, 46, 47, 48, 50, 51, 52, 75, 78, 82, 84, 87, 88, 93, 96, 98, 103, 105, 106, 108, 112, 114, 115, 116, 117, 119, 120, 122, 123, 124, 125, 127, 129, 130, 133, 134, 142, 147, 149, 150, 151, 152, 153, 154, 155, 157, 158, 161, 162, 163, 167, 185, 193, 195, 201, 211, 214, 216, 217, 223, 224, 229, 230, 234, 235, 246, 298, 299, 308, 311, 332, 335, 345, 353, 354, 360, 361, 366, 368, 369, 370, 373, 375, 376, 386, 391, 407, 424, 425, 427, 429, 436, 437, 442, 454, 458, 459, 463, 469, 470, 473, 474, 475, 481, 484, 485, 486, 487, 488, 495, 499], "fundament": [10, 101], "further": [469, 473], "futur": [101, 163], "fweight": 82, "g": [4, 10, 101, 105, 106, 114, 154, 155, 167, 353, 354, 370, 467, 486, 487, 503], "g69a3b6ac3c2": 6, "gamma": [6, 410], "gauss": 10, "gaussian": [370, 392, 416], "gc": 104, "gcd": 6, "gen": 103, "gender": 101, "gener": [4, 10, 33, 56, 101, 122, 127, 130, 133, 156, 171, 193, 194, 195, 196, 203, 204, 211, 222, 370, 372, 375, 406, 466, 469, 473, 480, 495, 499], "genfromtxt": [6, 211], "geometr": [6, 156, 210], "geomspac": [6, 210, 222], "get": [23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 91, 92, 98, 105, 106, 114, 118, 121, 127, 129, 132, 142, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 308, 335, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 459, 467, 469, 470, 473, 474, 480, 486, 487, 495], "get_arrai": 98, "get_array_wrap": 6, "get_dtyp": 0, "get_includ": 6, "get_printopt": 6, "get_stat": [6, 370], "get_sycl_devic": 370, "get_sycl_queu": 370, "getbufs": 6, "geterr": 6, "geterrcal": 6, "geterrobj": 6, "getfield": [6, 101], "getter": [98, 335], "gid": 163, "github": 148, "give": [10, 92, 98, 142, 163, 345, 428, 441, 446, 477], "given": [16, 17, 21, 22, 23, 31, 32, 35, 36, 37, 40, 41, 43, 45, 49, 56, 69, 75, 81, 82, 85, 86, 94, 97, 98, 100, 101, 102, 104, 105, 106, 113, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 139, 145, 146, 154, 155, 156, 158, 162, 163, 173, 197, 210, 222, 224, 226, 227, 230, 232, 233, 241, 242, 243, 245, 246, 247, 248, 249, 300, 301, 303, 309, 310, 322, 327, 328, 333, 336, 339, 341, 346, 350, 353, 354, 358, 362, 364, 365, 370, 375, 397, 414, 424, 426, 427, 432, 433, 434, 435, 437, 439, 440, 446, 449, 454, 456, 458, 462, 463, 466, 467, 477, 481, 484, 486, 487, 495], "global": 0, "good": 382, "gpu": [0, 3, 4, 23, 36, 40, 41, 42, 43, 45, 75, 89, 92, 105, 106, 114, 118, 132, 149, 150, 151, 152, 154, 155, 156, 167, 210, 211, 222, 231, 352, 353, 354, 467, 480, 486, 487], "grade": 101, "gradient": [6, 94, 102, 198], "graphic": 4, "great": 10, "greater": [6, 98, 99, 107, 144, 160, 187, 188, 189, 200, 204, 326, 351, 431, 440, 442, 452, 479], "greater_equ": [6, 107, 159, 188, 189, 351], "greatest": 144, "greedi": [103, 104], "grid": [40, 41, 42, 151, 170, 230, 231, 352], "group": [34, 350], "guarante": [101, 427, 428], "guid": [2, 3], "gumbel": 6, "gz": 211, "h": [157, 190, 204, 230], "ha": [4, 10, 11, 12, 13, 14, 16, 20, 21, 22, 24, 25, 26, 27, 28, 30, 31, 32, 33, 46, 47, 50, 52, 56, 84, 85, 86, 95, 101, 107, 111, 121, 126, 127, 151, 158, 159, 160, 165, 169, 174, 175, 181, 182, 188, 189, 195, 205, 207, 223, 228, 234, 241, 242, 244, 246, 247, 248, 249, 351, 362, 421, 422, 423, 424, 425, 426, 434, 438, 440, 452, 453, 454, 456, 457, 458, 463, 464, 478, 481, 495], "had": [366, 459], "hadamard": 104, "half": [14, 25, 117, 119, 120, 121, 123, 124, 210, 370, 400, 402, 403, 405, 414, 457], "ham": 6, "han": 6, "hand": [83, 209], "handl": [23, 101, 115, 211, 350, 420, 458, 459, 499], "happen": [49, 56, 98, 303, 372, 466], "hardwar": 4, "has_aspect_fp64": 0, "hasobject": 101, "have": [3, 4, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 47, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 63, 65, 66, 69, 70, 71, 72, 73, 76, 79, 80, 83, 84, 85, 86, 87, 88, 96, 97, 100, 101, 107, 109, 110, 112, 115, 123, 124, 133, 135, 136, 142, 143, 144, 145, 146, 147, 159, 160, 161, 165, 166, 169, 172, 173, 176, 177, 178, 179, 180, 187, 188, 189, 198, 201, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 225, 227, 228, 233, 234, 237, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 348, 349, 351, 358, 359, 360, 361, 362, 363, 368, 369, 389, 421, 423, 424, 425, 426, 427, 431, 432, 436, 437, 438, 442, 443, 444, 445, 450, 451, 453, 454, 455, 456, 460, 461, 463, 475, 476, 479, 481, 484, 495], "hd": 104, "header": 157, "heavisid": 6, "hello": 101, "help": 503, "helper": 499, "henc": [111, 158], "here": [6, 33, 101, 103, 121, 126, 127, 447, 469, 473], "hermit": [194, 196], "hermitian": [121, 126, 127, 129, 130, 190, 193, 194, 195, 196, 200, 203, 207, 499], "hfft": [6, 10, 126], "hierarchi": 184, "high": [127, 370, 398, 401, 414], "higher": [103, 164, 482, 483], "highest": 116, "highli": 150, "hist": [162, 408], "hist_0": 163, "hist_1": 163, "histogram": [6, 95, 163, 439, 499], "histogram2d": 6, "histogram_bin_edg": [6, 162], "histogramdd": [6, 162], "hold": [68, 85, 86, 162, 202, 241, 242, 246, 248, 464], "homogen": 101, "horizont": [69, 70, 71, 93, 100, 134, 139, 164, 165, 435, 437, 449, 453, 484], "host": [3, 4, 23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 467, 469, 473, 480, 486, 487], "household": 204, "how": [0, 4, 101, 127, 130, 158, 365, 420, 458, 459, 469, 473], "howev": [98, 337, 458], "hsplit": [6, 70, 71, 449], "hstack": [6, 69, 70, 71, 100, 437, 449, 453, 484], "http": [4, 148], "hyperbol": [13, 14, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 79, 80, 444, 445, 460, 461, 499], "hypergeometr": 6, "hypot": [6, 424], "hypotenus": [166, 424], "i": [0, 3, 4, 6, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 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, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 166, 167, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 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, 257, 303, 308, 326, 332, 335, 337, 340, 345, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 389, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, 422, 423, 424, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 447, 449, 450, 451, 452, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 475, 476, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 495, 503], "i0": 6, "i1": [98, 101, 340], "i2": [98, 101, 340], "i3": [98, 340], "i4": [64, 101], "i7": 103, "i8": [64, 101], "icpx": 4, "icx": 4, "id": [16, 21, 98, 318], "ident": [3, 6, 16, 21, 42, 84, 101, 114, 125, 134, 206, 409], "identifi": 101, "ieee": 135, "ifft": [6, 116, 123, 124, 126, 127, 132], "ifft2": [6, 117, 122, 124], "ifftn": [6, 119, 122, 123], "ifftshift": [6, 10, 120, 124], "ignor": [31, 32, 83, 101, 145, 146, 153, 162, 163, 226, 227, 228, 232, 233, 239, 240, 243, 244, 245, 247, 249, 454, 481], "ihfft": [6, 121], "ii": [103, 393], "iinfo": 387, "iinfo_object": 168, "ij": [103, 104, 230], "ijk": 103, "il": 104, "il1": 469, "il2": 469, "illustr": 195, "ilm": 103, "imag": [6, 10, 20, 37, 98, 421, 422, 429, 495], "imaginari": [20, 37, 98, 127, 145, 146, 169, 174, 175, 181, 182, 193, 194, 196, 199, 227, 233, 238, 317, 421, 422, 448, 477], "implement": [3, 4, 6, 44, 116, 148], "impli": 101, "implicit": 103, "import": [0, 3, 4, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 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, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 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, 303, 308, 311, 316, 317, 324, 326, 330, 335, 336, 337, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 368, 369, 395, 404, 408, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "improv": 103, "in1d": 6, "in_array1": 108, "includ": [4, 10, 16, 21, 22, 23, 36, 40, 41, 42, 43, 44, 45, 56, 75, 84, 89, 92, 95, 103, 104, 115, 154, 155, 156, 157, 162, 163, 175, 182, 203, 210, 222, 223, 228, 243, 244, 245, 247, 249, 370, 414, 424, 454, 480, 481], "include_initi": 84, "inclus": [370, 398, 401, 440], "increas": [95, 101, 111, 122, 127, 162, 429, 480], "ind": [33, 95, 208, 365, 366, 469, 470, 473, 474], "index": [22, 31, 32, 33, 34, 67, 98, 101, 104, 114, 117, 123, 131, 138, 148, 170, 185, 230, 239, 240, 304, 316, 340, 350, 365, 366, 419, 420, 428, 429, 439, 440, 449, 458, 459, 469, 473, 477, 478, 485, 488, 499], "index_arrai": [31, 32, 33], "indic": [6, 10, 31, 32, 33, 34, 39, 84, 90, 91, 95, 98, 99, 101, 103, 104, 113, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 134, 138, 148, 151, 162, 164, 208, 209, 224, 225, 231, 239, 240, 300, 301, 302, 325, 328, 334, 343, 350, 357, 365, 366, 420, 428, 439, 442, 443, 447, 449, 458, 459, 465, 469, 470, 473, 474, 477, 478, 483, 485], "indices_or_sect": [39, 99, 164, 449, 483], "indirect": [33, 447], "individu": 380, "inequ": 351, "inexact": [142, 238, 246, 248], "inf": [9, 13, 14, 17, 24, 25, 26, 29, 30, 40, 41, 42, 46, 51, 52, 76, 96, 173, 176, 177, 178, 179, 180, 191, 202, 212, 213, 215, 227, 233, 238, 239, 240, 243, 245, 248, 363, 450, 475], "infer": [42, 84, 223, 424, 428], "infin": [13, 14, 16, 21, 24, 25, 26, 27, 28, 30, 42, 46, 47, 50, 52, 144, 176, 177, 178, 179, 180, 234, 238, 243, 245, 248, 425, 476, 499], "infinit": [13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 191], "infj": [27, 28, 47, 50], "info": 6, "inform": [0, 43, 45, 98, 101, 121, 127, 129, 135, 314, 427, 495, 499], "initi": [18, 19, 84, 98, 105, 153, 226, 232, 243, 245, 246, 248, 320, 322, 327, 341, 362, 370, 456], "inner": [6, 83, 103, 104, 201, 225, 355], "input": [10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 92, 93, 94, 95, 96, 97, 98, 99, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 153, 154, 155, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 192, 194, 200, 202, 204, 205, 207, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 316, 324, 347, 348, 349, 350, 351, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 369, 370, 392, 398, 414, 419, 421, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 436, 438, 439, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 471, 472, 475, 476, 477, 479, 480, 481, 482, 483, 486, 487], "insert": [6, 22, 31, 32, 93, 95, 98, 103, 111, 156, 162, 210, 222, 239, 240, 243, 245, 334, 366, 439, 440, 499], "instal": 2, "instanc": [3, 23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 121, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 167, 170, 210, 211, 222, 224, 225, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "instead": [34, 49, 93, 97, 98, 103, 111, 143, 156, 162, 163, 170, 201, 210, 217, 222, 226, 232, 303, 350, 362, 420, 429, 456, 495], "instruct": 4, "int": [9, 16, 21, 22, 23, 31, 32, 33, 35, 39, 44, 56, 63, 70, 71, 81, 83, 84, 85, 86, 89, 90, 92, 93, 94, 98, 99, 101, 105, 106, 107, 111, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 139, 149, 150, 151, 152, 153, 154, 155, 156, 158, 162, 163, 164, 167, 168, 170, 198, 199, 202, 208, 209, 210, 222, 223, 224, 226, 228, 232, 236, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 324, 336, 345, 347, 353, 354, 356, 357, 362, 365, 366, 370, 398, 401, 420, 424, 426, 428, 429, 433, 434, 435, 436, 446, 447, 449, 452, 453, 454, 456, 457, 458, 459, 462, 463, 464, 465, 466, 467, 468, 469, 470, 472, 473, 474, 477, 478, 479, 480, 481, 483, 486, 487, 495], "int16": 101, "int32": [0, 9, 44, 64, 101, 105, 106, 114, 149, 152, 154, 155, 167, 211, 246, 248, 353, 354, 370, 372, 380, 382, 387, 389, 395, 398, 414, 430, 456, 467, 486, 487], "int64": [0, 9, 64, 101, 246, 248, 430], "int8": [101, 362], "int_": 9, "int_0": 466, "int_t": 466, "intc": 9, "integ": [23, 35, 39, 56, 57, 58, 59, 60, 61, 63, 66, 84, 85, 86, 95, 98, 99, 101, 136, 139, 142, 143, 144, 148, 162, 164, 168, 172, 185, 187, 199, 202, 208, 223, 226, 228, 232, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 337, 345, 360, 361, 362, 365, 370, 398, 401, 406, 420, 424, 425, 426, 428, 431, 432, 433, 435, 436, 439, 440, 441, 449, 451, 454, 456, 458, 462, 464, 476, 477, 478, 479, 481, 483, 495], "integer_lik": 462, "integr": [3, 4, 56, 84, 86, 142, 162, 223, 228, 235, 244, 247, 249, 360, 361, 424, 454, 456, 466, 481], "intel": [3, 103], "intend": [98, 345], "intent": 142, "interchang": [98, 236, 342, 457], "interfac": [0, 149], "interior": 158, "intermedi": [85, 103, 104], "intern": 370, "interp": 6, "interpol": [127, 429], "interpret": [2, 40, 41, 42, 48, 63, 75, 101, 121, 127, 129, 149, 185, 224, 350, 365, 495], "intersect1d": 6, "interv": [10, 13, 14, 23, 24, 25, 26, 28, 46, 50, 95, 111, 156, 210, 222, 370, 398, 400, 402, 403, 405, 413, 414, 457], "intp": [246, 248], "intrins": 495, "introduc": 433, "introduct": 10, "introselect": [98, 326, 356], "inv": [6, 191, 203], "invers": [10, 13, 14, 20, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 79, 80, 110, 111, 112, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 197, 203, 208, 209, 214, 416, 444, 445, 460, 461, 477], "invert": [6, 59, 197, 203, 208], "invok": 495, "involv": 208, "io": [148, 211], "irfft": [6, 118, 121, 126, 128, 129, 130, 132], "irfft2": [6, 127, 129, 131], "irfftn": [6, 127, 128, 133], "irrespect": 33, "is_busdai": 6, "isalignedstruct": 101, "isbuiltin": 101, "isclos": [6, 17], "iscomplex": [6, 175, 181], "iscomplexobj": [6, 174, 182], "isfinit": [6, 177, 178, 179, 180, 238, 243, 245, 248], "isfortran": 6, "isin": 6, "isinf": [6, 176, 178, 179, 180, 238], "isn": 101, "isnan": [6, 176, 177, 179, 180, 238, 241, 242, 243, 245, 246, 248], "isnat": [6, 178], "isneginf": [6, 176, 177, 178, 180, 238], "isposinf": [6, 176, 177, 178, 179, 238], "isreal": [6, 174, 182], "isrealobj": [6, 175, 181], "isscalar": 6, "issctyp": 6, "issu": 123, "issubclass_": 6, "issubdtyp": 6, "issubsctyp": 6, "item": [6, 34, 98, 149, 150, 152, 477, 488], "item_dtyp": 101, "item_hasobject": 101, "item_is_point": 101, "items": [98, 101], "itemset": 6, "iter": [6, 40, 41, 42, 98, 104, 137, 149, 150, 152, 153, 315, 316, 366, 429, 459, 499], "its": [4, 6, 10, 11, 12, 16, 21, 33, 56, 89, 98, 121, 127, 129, 135, 162, 163, 167, 193, 194, 195, 196, 201, 203, 209, 228, 244, 247, 249, 345, 357, 407, 419, 424, 428, 447, 454, 465, 466, 467, 481, 495], "itself": [49, 98, 101, 238, 303, 495], "iu": 224, "iu1": [224, 473], "iu2": 473, "ix_": 6, "ixgrid": 185, "j": [72, 73, 98, 103, 117, 119, 121, 122, 123, 124, 126, 127, 130, 131, 133, 142, 151, 169, 170, 186, 190, 193, 194, 215, 225, 238, 345, 355, 363, 366, 421, 448, 451, 459, 462], "j1": 186, "jame": 10, "ji": 103, "jil": 103, "jk": [103, 104], "jl": 104, "john": 10, "join": [69, 70, 71, 100, 165, 437, 449, 453, 484, 499], "jump": [87, 368], "just": [69, 93, 101, 117, 123, 128, 130, 131], "k": [10, 11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 36, 40, 41, 42, 46, 47, 48, 49, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 79, 80, 87, 88, 89, 92, 96, 98, 103, 107, 109, 110, 112, 114, 115, 136, 142, 143, 144, 145, 146, 147, 159, 160, 161, 166, 169, 172, 176, 177, 178, 186, 187, 188, 189, 198, 204, 206, 207, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 224, 225, 227, 233, 234, 237, 257, 303, 308, 348, 349, 351, 359, 360, 361, 363, 368, 369, 423, 425, 431, 432, 435, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 462, 467, 468, 469, 470, 472, 473, 474, 475, 476, 479, 485, 503], "kaiser": 6, "kappa": 415, "keep": [48, 49, 98, 303, 477], "keepdim": [16, 18, 19, 21, 31, 32, 56, 81, 98, 202, 223, 226, 228, 229, 232, 239, 240, 243, 244, 245, 246, 247, 248, 249, 298, 299, 300, 301, 320, 321, 322, 327, 339, 341, 346, 362, 364, 366, 424, 454, 456, 459, 481], "kei": [3, 33, 98, 101, 137, 262, 293, 447], "key2": 101, "keyword": [10, 11, 12, 13, 14, 15, 23, 24, 25, 26, 27, 28, 29, 30, 36, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 75, 76, 79, 80, 83, 87, 88, 89, 90, 92, 96, 98, 105, 106, 109, 110, 112, 114, 118, 132, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 158, 161, 166, 167, 170, 172, 187, 211, 213, 214, 215, 216, 217, 224, 225, 227, 231, 233, 234, 235, 237, 238, 308, 348, 349, 352, 353, 354, 359, 360, 361, 363, 368, 369, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 423, 425, 431, 432, 438, 442, 443, 444, 445, 455, 460, 461, 467, 469, 473, 475, 476, 480, 485, 486, 487, 495], "ki": 103, "kind": [33, 49, 64, 70, 71, 77, 84, 98, 101, 103, 135, 165, 201, 223, 225, 302, 303, 326, 337, 356, 424, 437, 447, 453, 484, 499], "kl": [10, 103, 104], "known": [10, 13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 150, 408], "kron": 6, "kroneck": 186, "kth": [98, 326, 356], "kwarg": [11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 76, 79, 80, 87, 88, 96, 98, 107, 109, 110, 112, 115, 136, 142, 143, 144, 145, 146, 147, 151, 159, 160, 161, 166, 169, 172, 176, 177, 178, 187, 188, 189, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 227, 233, 234, 235, 237, 287, 305, 332, 348, 349, 351, 359, 360, 361, 363, 368, 369, 423, 425, 431, 432, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 475, 476], "l": [10, 39, 101, 190, 194, 196], "la": [193, 195, 196], "label": 103, "laid": 45, "lam": 395, "lambda": 151, "lapack": [193, 195], "laplac": 6, "laptop": 4, "larg": [10, 87, 101, 162, 203, 238, 368, 479, 503], "larger": [103, 116, 117, 119, 122, 123, 124, 126, 128, 129, 130, 131, 133, 135, 429, 464, 479, 495], "largest": [10, 104, 130, 135, 143, 168, 198, 234, 238, 425], "largest_singular_valu": 203, "last": [16, 21, 22, 33, 83, 93, 94, 98, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 139, 156, 158, 171, 201, 210, 222, 225, 316, 362, 419, 428, 433, 439, 447, 452, 456, 462, 479], "later": 503, "latest": [4, 148], "latter": [13, 24, 26, 27, 28, 30, 46, 47, 50, 52, 145, 146, 227, 233, 366, 459], "layout": [4, 11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 36, 40, 41, 42, 43, 45, 46, 47, 48, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 79, 80, 87, 88, 96, 98, 103, 105, 106, 107, 109, 110, 112, 114, 115, 136, 142, 143, 144, 145, 146, 147, 154, 155, 159, 160, 161, 166, 169, 172, 176, 177, 178, 187, 188, 189, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 227, 233, 234, 237, 308, 314, 348, 349, 351, 353, 354, 359, 360, 361, 363, 368, 369, 423, 425, 427, 428, 431, 432, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 475, 476, 485, 486, 487, 488], "lcm": 6, "ldexp": 6, "ldot": 10, "lead": [122, 123, 124, 241, 242, 471], "learn": [3, 4, 217], "least": [53, 54, 55, 56, 91, 100, 101, 104, 111, 134, 140, 145, 146, 150, 175, 198, 204, 227, 233, 437, 484], "left": [10, 28, 31, 32, 35, 50, 81, 93, 95, 98, 140, 141, 187, 195, 202, 226, 232, 239, 240, 246, 248, 334, 362, 413, 431, 436, 439, 456, 466, 480], "left_shift": [6, 431], "leg": [166, 424], "legaci": 406, "len": [98, 101, 119, 120, 121, 124, 126, 127, 128, 129, 133, 170, 198, 226, 230, 231, 232, 279, 441, 480], "length": [23, 39, 56, 85, 86, 94, 107, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 153, 156, 158, 162, 165, 193, 207, 222, 226, 230, 232, 241, 242, 366, 373, 428, 430, 437, 439, 440, 441, 452, 459, 462, 463, 484], "less": [6, 85, 86, 107, 159, 160, 162, 163, 189, 198, 203, 241, 242, 246, 248, 351, 362, 440, 442, 456, 464], "less_equ": [6, 107, 159, 160, 188, 351], "let": 372, "level": [488, 495], "level_zero": [23, 36, 40, 41, 42, 43, 45, 75, 89, 92, 105, 106, 114, 118, 132, 149, 150, 151, 152, 154, 155, 156, 167, 210, 211, 222, 231, 352, 353, 354, 467, 480, 486, 487], "lexicograph": 477, "lexsort": [6, 33, 447], "li": [13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 433, 434], "librari": [3, 4, 495], "light": 10, "like": [23, 36, 40, 41, 43, 45, 49, 53, 54, 55, 69, 98, 100, 103, 105, 114, 129, 149, 150, 151, 152, 153, 154, 156, 167, 210, 211, 222, 224, 303, 316, 324, 347, 353, 366, 370, 414, 427, 428, 459, 486, 499], "limit": [3, 4, 11, 12, 13, 14, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 40, 41, 43, 45, 46, 47, 50, 51, 52, 58, 59, 60, 61, 62, 63, 65, 66, 68, 72, 73, 75, 76, 78, 79, 80, 82, 87, 88, 96, 98, 101, 105, 106, 107, 108, 109, 110, 112, 114, 135, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 166, 167, 168, 172, 176, 177, 178, 187, 188, 189, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 226, 227, 228, 229, 232, 233, 234, 235, 237, 239, 240, 243, 244, 245, 246, 247, 248, 249, 303, 305, 348, 349, 351, 353, 354, 356, 359, 360, 361, 362, 363, 364, 367, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 392, 393, 395, 396, 398, 401, 404, 406, 407, 408, 409, 410, 412, 413, 414, 415, 416, 417, 418, 423, 425, 427, 428, 431, 432, 438, 442, 443, 444, 445, 447, 450, 451, 454, 455, 456, 460, 461, 475, 476, 481, 486, 487], "linalg": [6, 97, 103, 104, 451], "line": [198, 211], "linear": [10, 74, 78, 198, 206, 222, 488, 499], "linspac": [0, 6, 23, 108, 156, 222, 230, 466, 479], "linux": 4, "list": [3, 6, 9, 22, 36, 39, 40, 41, 42, 43, 45, 53, 54, 55, 62, 70, 71, 75, 89, 92, 98, 99, 100, 101, 103, 104, 120, 125, 134, 154, 155, 156, 158, 164, 165, 175, 182, 210, 211, 222, 225, 345, 357, 420, 426, 427, 429, 430, 437, 440, 449, 453, 462, 465, 478, 480, 483, 484, 485], "list_pickl": 101, "littl": 101, "ln": 222, "load": [6, 150, 211], "loadtxt": [6, 150], "loc": [370, 381, 383, 384, 392, 416], "local": 4, "locat": [0, 4, 157, 179, 180, 224, 355, 381, 383, 439], "log": [6, 112, 156, 205, 210, 213, 214, 215, 216, 222, 223, 385], "log10": [6, 212, 214, 215], "log1p": [6, 110, 112, 212, 213, 215], "log2": [6, 212, 213, 214, 217], "log_bas": 222, "logabsdet": 205, "logaddexp": [6, 84, 217, 223], "logaddexp2": [6, 216, 223], "logarithm": [84, 192, 205, 210, 212, 213, 214, 215, 216, 217, 223, 386, 499], "logic": [16, 21, 218, 219, 220, 221, 488, 499], "logical_and": [6, 58, 219, 220, 221], "logical_not": [6, 59, 172, 218, 220, 221], "logical_or": [6, 60, 218, 219, 221], "logical_xor": [6, 61, 218, 219, 220], "logist": 6, "lognorm": 6, "logseri": 6, "logspac": [6, 156, 210], "logsumexp": [84, 216, 217], "lomax": 393, "long": [101, 199], "longer": [121, 127, 503], "look": [349, 459], "lookfor": 6, "loop": 103, "loos": 102, "lorentz": 408, "lose": [121, 127, 129], "low": [117, 119, 123, 124, 370, 398, 401, 414, 495], "lower": [89, 114, 162, 163, 184, 190, 194, 196, 224, 467, 468, 469, 470, 473, 474], "lowest": [56, 103, 104, 370, 398], "lstsq": 6, "m": [4, 10, 82, 100, 101, 103, 114, 117, 119, 121, 123, 124, 127, 128, 129, 133, 139, 140, 141, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 224, 225, 366, 435, 440, 458, 459, 467, 468, 469, 470, 472, 473, 474], "machin": [4, 10, 135, 168, 198, 217, 422], "machineri": 101, "made": [36, 41, 53, 101, 148, 186, 238, 449], "magnitud": [11, 12, 76, 115, 363], "mai": [16, 20, 21, 49, 64, 68, 70, 71, 77, 86, 98, 101, 103, 104, 111, 117, 119, 121, 122, 123, 124, 126, 127, 130, 133, 158, 163, 165, 191, 193, 194, 198, 202, 204, 217, 222, 225, 238, 244, 247, 249, 303, 335, 366, 422, 429, 437, 453, 463, 484, 495], "main": [89, 90, 91, 92, 93, 114, 134, 167, 196, 224, 464, 467, 468, 469, 472, 473], "mainstai": 10, "maintain": [95, 98, 101, 162, 334, 439, 459], "major": [4, 40, 41, 42, 43, 45, 48, 49, 98, 303, 350, 419, 420, 427, 478], "make": [43, 45, 69, 101, 230, 427, 477, 479], "manag": 0, "mani": [10, 13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 495], "manipul": [3, 90, 488, 499], "manual": [4, 101, 463], "mappingproxi": 101, "mask": [101, 185, 224, 350, 358, 367, 458, 469, 473], "mask_func": 224, "mask_indic": [6, 469, 473], "mass": 162, "mat": 6, "match": [11, 12, 41, 70, 71, 77, 81, 84, 94, 101, 148, 150, 158, 171, 223, 225, 365, 366, 424, 453, 458, 459, 462, 485], "math": [10, 108], "mathemat": [488, 499], "matlab": 147, "matmul": [6, 97, 204, 207, 482], "matplotlib": [230, 408], "matric": [134, 151, 170, 185, 192, 193, 195, 197, 200, 202, 203, 204, 205, 207, 225, 230, 499], "matrix": [82, 97, 103, 171, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 225, 230, 451, 472, 480, 482, 488, 499], "matrix_pow": [6, 451], "matrix_rank": 6, "matter": 477, "max": [0, 6, 18, 31, 98, 135, 145, 146, 162, 163, 168, 198, 200, 227, 232, 233, 243, 305, 387, 459, 463, 479, 495], "max_arg": 0, "max_val": 0, "maxima": [145, 226, 227], "maximum": [0, 6, 18, 31, 32, 68, 98, 104, 145, 146, 226, 232, 233, 239, 240, 243, 245, 300, 320, 360, 361, 364, 366, 479], "maximum_sctyp": 6, "may_share_memori": 6, "mean": [3, 6, 10, 23, 36, 38, 40, 41, 42, 43, 44, 45, 49, 56, 75, 81, 89, 90, 92, 98, 103, 105, 106, 114, 117, 118, 119, 123, 124, 128, 129, 130, 131, 132, 133, 149, 150, 151, 152, 153, 154, 155, 158, 167, 170, 191, 202, 211, 224, 229, 231, 244, 247, 249, 303, 308, 316, 345, 352, 353, 354, 370, 383, 385, 388, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 415, 416, 419, 428, 435, 454, 456, 467, 469, 473, 480, 481, 486, 487, 495], "meaningfulli": 495, "meant": 495, "median": [0, 6], "meet": 440, "memori": [3, 11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 36, 40, 41, 42, 43, 45, 46, 47, 48, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 79, 80, 87, 88, 96, 98, 101, 103, 105, 106, 107, 109, 110, 112, 114, 115, 136, 142, 143, 144, 145, 146, 147, 148, 154, 155, 159, 160, 161, 166, 169, 172, 176, 177, 178, 187, 188, 189, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 227, 230, 233, 234, 237, 308, 314, 340, 348, 349, 351, 353, 354, 359, 360, 361, 363, 368, 369, 423, 425, 427, 428, 431, 432, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 475, 476, 485, 486, 487, 488, 503], "mersenn": 370, "mesh": 185, "meshgrid": [6, 151, 170, 185, 231, 352], "met": [97, 201], "meta": 101, "metadata": 101, "method": [10, 16, 18, 19, 21, 33, 49, 75, 97, 98, 101, 137, 148, 150, 200, 203, 207, 303, 308, 324, 332, 335, 347, 350, 357, 370, 428, 441, 456, 458, 465, 488], "mgrid": [117, 119, 128, 131, 170, 185], "mgridclass": 231, "middl": [10, 93, 117, 119, 123, 124, 195], "might": [103, 122, 123, 124], "min": [6, 19, 32, 68, 98, 135, 145, 146, 162, 163, 168, 191, 198, 204, 207, 226, 227, 233, 245, 305, 459, 495], "min_scalar_typ": 6, "minima": [146, 232, 233], "minimum": [6, 19, 31, 32, 68, 98, 142, 145, 146, 226, 227, 232, 239, 240, 243, 245, 301, 322, 360, 361, 364], "minlength": 57, "mintypecod": 6, "minu": [112, 144, 234, 425, 476], "miscellan": [2, 488, 499], "mise": 415, "miss": 211, "mix": 225, "mk": 10, "mkl": 4, "mn": 10, "mod": [6, 113, 425, 479], "mode": [67, 74, 78, 98, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 204, 304, 328, 343, 365, 408, 413, 420, 439, 458, 459], "model": [4, 372], "modf": 6, "modifi": [75, 93, 134, 407], "modul": [116, 157, 488], "modulu": [147, 234, 425], "monoton": [95, 162], "moor": 203, "more": [0, 3, 4, 33, 36, 53, 54, 55, 100, 101, 103, 104, 112, 128, 131, 140, 141, 148, 150, 163, 165, 170, 198, 199, 200, 201, 203, 207, 214, 216, 429, 435, 453, 462, 466, 477, 479, 495, 503], "most": [3, 4, 22, 93, 94, 101, 104, 116, 122, 238, 370, 406, 429, 452], "move": [98, 236, 326, 357, 433, 434, 465, 477], "moveaxi": [6, 357, 433, 434, 465], "msg": 0, "msort": 6, "mt19937": 406, "mu": [381, 385, 392, 415], "multi": [2, 98, 170, 185, 231, 340, 352, 420, 477, 488], "multi_dot": [6, 97, 103, 104], "multi_index": 420, "multiarrai": 101, "multidimension": [162, 171, 485], "multinomi": 6, "multipl": [4, 10, 31, 32, 33, 39, 56, 70, 71, 83, 84, 99, 101, 103, 117, 119, 123, 124, 128, 129, 131, 133, 163, 164, 165, 185, 193, 194, 195, 196, 197, 201, 223, 226, 228, 232, 243, 244, 245, 247, 249, 424, 437, 440, 447, 449, 453, 454, 466, 477, 481, 483, 484, 488], "multipli": [6, 85, 103, 195, 246, 362], "multivalu": [13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52], "multivari": 388, "multivariate_norm": 6, "must": [11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 46, 47, 50, 51, 52, 56, 58, 59, 60, 61, 63, 65, 66, 68, 69, 70, 71, 72, 73, 76, 79, 80, 81, 84, 85, 86, 87, 88, 94, 96, 97, 100, 109, 110, 111, 112, 115, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 134, 136, 140, 142, 143, 144, 145, 146, 147, 150, 153, 158, 159, 160, 161, 162, 163, 165, 166, 169, 172, 176, 177, 178, 179, 180, 187, 188, 189, 190, 201, 202, 208, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 225, 226, 227, 228, 232, 233, 234, 236, 237, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 348, 349, 351, 357, 358, 359, 360, 361, 362, 363, 365, 366, 368, 369, 423, 424, 425, 426, 431, 432, 433, 435, 436, 437, 438, 439, 442, 443, 444, 445, 450, 451, 453, 454, 455, 456, 457, 459, 460, 461, 462, 464, 465, 475, 476, 481, 484, 485], "mx": 198, "n": [0, 4, 10, 34, 39, 86, 90, 91, 94, 95, 98, 99, 100, 101, 102, 111, 114, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 134, 143, 151, 158, 164, 167, 185, 198, 199, 200, 203, 204, 207, 208, 209, 224, 225, 230, 247, 249, 345, 357, 358, 365, 372, 387, 389, 399, 409, 439, 441, 449, 451, 454, 457, 458, 459, 462, 465, 466, 467, 468, 469, 470, 472, 473, 474, 480, 481, 483, 495], "n1": 230, "n2": [211, 230], "n3": 230, "naiv": 104, "name": [0, 6, 101], "namedtupl": 204, "nan": [9, 13, 14, 16, 17, 21, 24, 25, 26, 27, 28, 30, 31, 32, 37, 40, 41, 42, 46, 47, 50, 52, 96, 142, 145, 146, 173, 176, 177, 178, 179, 180, 213, 226, 227, 228, 232, 233, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 360, 361, 362, 450, 454, 475, 477, 481, 499], "nan_to_num": 6, "nanargmax": [6, 31, 240], "nanargmin": [6, 32, 239], "nancumprod": 6, "nancumsum": 6, "nanmax": [6, 145, 146, 226, 227, 233, 245], "nanmean": [6, 228, 247, 249, 454, 481], "nanmedian": 6, "nanmin": [6, 145, 146, 227, 232, 233, 243], "nanpercentil": 6, "nanprod": [6, 362], "nanquantil": 6, "nanstd": [6, 228, 244, 249, 454, 481], "nansum": 6, "nanvar": [6, 228, 244, 247, 454, 481], "nat": 178, "nativ": 101, "native_cod": 101, "native_dt": 101, "natur": [205, 212, 213, 214, 215, 216, 217, 223], "nbad": 382, "nbyte": 98, "ndarrai": [2, 3, 6, 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, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 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, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 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, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 500], "ndim": [6, 34, 36, 45, 53, 54, 55, 82, 90, 93, 98, 101, 134, 186, 207, 226, 232, 353, 357, 463, 465, 486], "ndmin": 36, "nearest": [35, 66, 136, 143, 144, 234, 425, 432, 436, 476], "necessari": [4, 16, 21, 23, 36, 40, 41, 43, 45, 53, 77, 85, 86, 102, 113, 121, 127, 129, 134, 148, 156, 210, 222, 225, 228, 241, 242, 244, 246, 247, 248, 249, 362, 428, 429, 454, 456, 481, 503], "necessarili": [193, 195], "need": [4, 36, 41, 93, 103, 157, 427, 458, 459, 485], "needs_init": 101, "needs_pyapi": 101, "neg": [6, 10, 16, 21, 35, 57, 76, 92, 93, 95, 98, 111, 114, 117, 119, 122, 123, 124, 127, 130, 139, 142, 153, 158, 162, 176, 177, 178, 179, 180, 199, 238, 243, 245, 247, 248, 249, 335, 359, 360, 361, 362, 365, 389, 420, 436, 454, 456, 458, 459, 464, 481], "negat": 440, "negative_binomi": 6, "neginf": 238, "neither": [97, 145, 146, 207, 225, 243, 245], "nest": [44, 100, 165, 437, 453, 484], "nested_it": 6, "net": [145, 146, 227, 233], "never": [428, 479], "new": [22, 36, 49, 62, 63, 69, 70, 71, 81, 84, 85, 86, 93, 98, 100, 101, 102, 105, 106, 111, 145, 146, 148, 152, 153, 154, 155, 156, 165, 167, 210, 222, 223, 224, 227, 233, 236, 241, 242, 246, 248, 303, 332, 335, 345, 353, 354, 357, 424, 428, 429, 433, 434, 437, 449, 453, 463, 465, 484, 485, 486, 487, 495], "new_dtyp": 101, "new_ord": 101, "new_shap": 429, "newaxi": 111, "newbyteord": [6, 101], "newli": [11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 36, 40, 41, 42, 46, 47, 49, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 79, 80, 87, 88, 96, 98, 105, 106, 107, 109, 110, 112, 114, 115, 136, 142, 143, 144, 145, 146, 147, 154, 155, 159, 160, 161, 166, 169, 172, 176, 177, 178, 187, 188, 189, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 227, 233, 234, 237, 303, 308, 348, 349, 351, 353, 354, 359, 360, 361, 363, 368, 369, 423, 425, 431, 432, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 475, 476, 486, 487], "newshap": 428, "next": [4, 135, 349], "nextaft": 6, "ngood": 382, "ni": [230, 366, 458, 459], "nine": 372, "ninja": 4, "nj": [366, 458, 459], "njm": 103, "nk": [366, 458, 459], "nl": 10, "nlk": 103, "nn": 230, "noisi": 198, "non": [23, 34, 36, 40, 41, 42, 43, 44, 45, 49, 56, 57, 75, 81, 89, 90, 92, 95, 98, 105, 106, 113, 114, 118, 127, 130, 132, 138, 142, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 162, 163, 167, 170, 174, 176, 185, 210, 211, 222, 224, 231, 238, 239, 240, 243, 245, 247, 249, 303, 308, 325, 335, 350, 352, 353, 354, 358, 360, 361, 370, 390, 391, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 454, 462, 467, 469, 473, 480, 481, 485, 486, 487], "nonc": [390, 391], "noncentral_chisquar": 6, "noncentral_f": 6, "none": [10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 56, 57, 58, 59, 60, 61, 65, 66, 67, 68, 70, 71, 72, 73, 75, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 94, 96, 97, 98, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 136, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 165, 166, 167, 169, 170, 172, 176, 177, 178, 179, 180, 187, 188, 189, 191, 198, 200, 201, 202, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 298, 299, 300, 301, 302, 303, 304, 305, 308, 309, 310, 318, 320, 321, 322, 326, 327, 328, 331, 333, 334, 337, 338, 339, 341, 343, 344, 345, 346, 348, 349, 351, 352, 353, 354, 355, 356, 357, 359, 360, 361, 362, 363, 364, 365, 366, 368, 369, 370, 371, 372, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 420, 423, 424, 425, 426, 427, 428, 431, 432, 433, 436, 437, 438, 439, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 454, 455, 456, 458, 459, 460, 461, 464, 465, 466, 467, 469, 473, 475, 476, 477, 478, 479, 480, 481, 484, 485, 486, 487, 495], "nonzero": [6, 34, 81, 98, 138, 185, 485, 495], "nor": [145, 146, 195, 243, 245], "norm": [6, 10, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 191, 195, 198, 499], "normal": [6, 82, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 162, 193, 194, 204, 217, 370, 385, 388, 399, 411, 420], "not_equ": [6, 107, 159, 160, 188, 189], "note": [11, 12, 13, 14, 15, 16, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 46, 47, 48, 50, 51, 52, 59, 70, 71, 75, 83, 87, 93, 95, 96, 98, 101, 103, 104, 111, 113, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 143, 145, 146, 149, 150, 151, 152, 153, 162, 170, 172, 176, 187, 193, 211, 222, 234, 237, 247, 248, 249, 308, 332, 350, 357, 358, 360, 361, 365, 368, 373, 375, 376, 386, 391, 425, 427, 428, 429, 431, 435, 447, 454, 455, 457, 462, 463, 465, 466, 475, 477, 479, 481, 482], "notic": [101, 127, 130], "notimplementederror": [11, 12, 13, 14, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 40, 41, 43, 45, 46, 47, 50, 51, 52, 58, 59, 60, 61, 62, 63, 65, 66, 68, 72, 73, 75, 76, 79, 80, 87, 88, 96, 98, 105, 106, 107, 109, 110, 112, 114, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 166, 167, 172, 176, 177, 178, 187, 188, 189, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 226, 227, 228, 232, 233, 234, 237, 243, 244, 245, 247, 248, 249, 303, 348, 349, 351, 353, 354, 359, 360, 361, 362, 363, 368, 369, 423, 425, 427, 431, 432, 438, 442, 443, 444, 445, 447, 450, 451, 454, 455, 456, 460, 461, 475, 476, 481, 486, 487], "now": [16, 21, 43, 45, 90, 195, 198, 224], "np": [3, 4, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 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, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, 303, 308, 311, 313, 316, 317, 318, 324, 326, 330, 335, 336, 337, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 357, 358, 359, 362, 363, 364, 365, 366, 368, 369, 395, 404, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "nr": 10, "nsamp": 382, "nsampl": 382, "nth": 462, "nuc": 202, "num": [0, 101, 108, 156, 210, 222, 466, 479], "number": [10, 13, 14, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 34, 35, 42, 46, 47, 50, 52, 56, 57, 62, 63, 81, 90, 92, 94, 95, 98, 101, 102, 103, 104, 111, 114, 115, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 133, 135, 136, 144, 149, 150, 152, 153, 156, 158, 162, 163, 167, 168, 173, 174, 175, 176, 182, 185, 191, 197, 200, 204, 205, 207, 208, 209, 210, 217, 222, 234, 238, 241, 242, 243, 245, 246, 247, 248, 249, 324, 333, 336, 347, 350, 357, 358, 362, 363, 370, 372, 382, 406, 425, 426, 429, 432, 433, 434, 435, 436, 443, 446, 454, 457, 463, 465, 467, 476, 477, 480, 481, 495, 499], "number_of_dimens": [98, 324, 347], "numer": [3, 4, 10, 11, 12, 13, 14, 15, 17, 24, 25, 26, 27, 28, 30, 35, 46, 47, 50, 52, 72, 73, 76, 79, 80, 96, 101, 107, 109, 112, 122, 123, 124, 127, 129, 144, 145, 146, 159, 160, 169, 173, 176, 177, 178, 188, 189, 212, 213, 214, 215, 227, 233, 237, 348, 351, 359, 360, 361, 363, 421, 432, 436, 442, 443, 444, 445, 455, 460, 461, 475, 499], "numpi": [0, 1, 3, 4, 9, 11, 12, 13, 14, 15, 16, 17, 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, 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, 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, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 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, 312, 316, 317, 318, 324, 330, 335, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 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, 407, 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, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 495, 499], "nvidia": 4, "nx": 230, "ny": 230, "nyquist": [10, 117, 119, 120, 121, 122, 123, 124, 127, 129, 130, 132], "o": [4, 16, 21, 101], "obj": [31, 32, 33, 101, 148, 162], "obj2sctyp": 6, "object": [23, 36, 40, 41, 42, 43, 44, 45, 48, 49, 75, 89, 90, 92, 98, 101, 105, 106, 111, 114, 118, 132, 135, 137, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 168, 170, 191, 194, 202, 210, 211, 222, 224, 231, 303, 308, 332, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 428, 467, 469, 473, 480, 486, 487, 495], "obtain": [10, 93, 190, 350], "obviou": 10, "occupi": [135, 168], "occur": [22, 49, 64, 70, 71, 77, 98, 103, 165, 193, 225, 238, 303, 437, 453, 484], "occurr": [31, 32, 57, 95, 162, 239, 240, 477], "odd": [10, 118, 121, 125, 126, 127, 129, 130, 132], "off": [23, 121, 126, 193, 198], "offset": [93, 98, 101, 149, 150, 224, 311, 344, 464, 469, 470, 473, 474], "often": 161, "ogrid": [170, 185, 485], "ogridclass": 352, "oil": [372, 389], "old": 429, "omit": [370, 398], "onc": 197, "one": [3, 4, 31, 32, 33, 36, 38, 44, 53, 54, 55, 56, 68, 74, 77, 78, 81, 98, 101, 105, 107, 111, 113, 114, 116, 117, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 140, 141, 142, 145, 146, 150, 154, 158, 163, 165, 167, 170, 175, 185, 195, 199, 202, 212, 213, 215, 224, 226, 227, 230, 231, 232, 233, 239, 240, 246, 248, 308, 316, 319, 350, 352, 354, 358, 362, 389, 420, 434, 440, 447, 452, 453, 456, 458, 462, 466, 469, 470, 473, 474, 477, 486, 495], "oneapi": [4, 23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "onedpl": 4, "onemkl": [4, 193, 195], "ones": [6, 36, 43, 45, 56, 84, 96, 98, 103, 105, 106, 107, 111, 114, 133, 154, 155, 166, 167, 186, 198, 200, 223, 224, 241, 246, 354, 357, 362, 424, 430, 434, 465, 467, 475, 486, 487], "ones_lik": [6, 36, 106, 155, 353, 487], "onli": [10, 16, 21, 23, 31, 32, 33, 36, 39, 40, 41, 43, 45, 49, 53, 56, 68, 75, 78, 82, 98, 101, 103, 104, 105, 106, 114, 120, 130, 134, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 162, 163, 170, 190, 194, 196, 204, 207, 210, 211, 222, 224, 225, 226, 228, 229, 232, 238, 239, 240, 243, 244, 245, 246, 247, 249, 303, 335, 337, 353, 354, 356, 358, 359, 362, 370, 392, 398, 414, 427, 428, 447, 454, 456, 459, 473, 477, 479, 481, 485, 486, 487, 495], "open": [150, 170, 185, 210, 352, 370, 400, 402, 403, 405, 414, 457], "opencl": [23, 36, 40, 41, 42, 43, 45, 75, 89, 92, 105, 106, 114, 118, 132, 149, 150, 151, 152, 154, 155, 156, 167, 210, 211, 222, 231, 352, 353, 354, 467, 480, 486, 487], "oper": [10, 15, 58, 59, 60, 61, 96, 101, 103, 104, 107, 111, 134, 144, 147, 159, 160, 172, 187, 188, 189, 190, 218, 220, 225, 226, 232, 234, 237, 238, 239, 240, 348, 351, 359, 360, 361, 365, 425, 431, 455, 463, 475, 477, 479, 488, 499], "operand": [103, 104, 209, 355, 462], "opposit": [10, 101, 113, 121, 126, 358], "optim": [4, 103, 104, 162, 163], "option": [10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 56, 58, 59, 60, 61, 64, 65, 66, 68, 70, 71, 72, 73, 75, 76, 77, 79, 80, 81, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 101, 102, 103, 105, 106, 107, 109, 110, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 165, 166, 167, 169, 170, 172, 173, 176, 177, 178, 179, 180, 187, 188, 189, 190, 191, 194, 196, 198, 200, 201, 202, 203, 204, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 230, 231, 232, 233, 234, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 308, 316, 345, 348, 349, 351, 352, 353, 354, 355, 357, 359, 360, 361, 362, 363, 365, 368, 369, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 419, 420, 422, 423, 424, 425, 426, 427, 428, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 442, 443, 444, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 458, 459, 460, 461, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 484, 485, 486, 487, 503], "ord": 202, "order": [10, 11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 33, 36, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 79, 80, 87, 88, 93, 95, 96, 98, 101, 103, 104, 105, 106, 107, 109, 110, 112, 114, 115, 117, 119, 122, 123, 124, 127, 129, 133, 134, 136, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150, 154, 155, 158, 159, 160, 161, 162, 166, 169, 172, 176, 177, 178, 187, 188, 189, 191, 193, 194, 195, 196, 207, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 227, 230, 233, 234, 236, 237, 257, 302, 303, 308, 316, 326, 329, 334, 337, 345, 348, 349, 350, 351, 353, 354, 356, 357, 359, 360, 361, 363, 368, 369, 419, 420, 423, 425, 427, 428, 429, 431, 432, 435, 438, 439, 442, 443, 444, 445, 447, 450, 451, 455, 460, 461, 462, 465, 475, 476, 477, 478, 480, 485, 486, 487, 499], "ordin": [198, 206], "ordinari": [127, 171, 190], "orient": [83, 366, 459], "origin": [62, 93, 98, 121, 127, 129, 202, 230, 236, 246, 248, 428, 429, 433, 477], "ortho": [10, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133], "orthogon": [195, 204], "orthonorm": 204, "other": [33, 38, 49, 62, 63, 94, 98, 101, 122, 123, 124, 127, 129, 143, 151, 167, 193, 195, 201, 236, 253, 254, 258, 260, 261, 263, 264, 265, 266, 267, 268, 269, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 283, 284, 285, 288, 290, 292, 295, 296, 297, 303, 370, 414, 429, 434, 447, 477, 488, 499], "otherwis": [3, 11, 12, 13, 14, 15, 16, 17, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 72, 73, 75, 76, 78, 79, 80, 81, 82, 87, 88, 89, 94, 96, 98, 101, 103, 105, 106, 107, 108, 109, 110, 112, 114, 136, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161, 166, 167, 171, 172, 176, 177, 178, 187, 188, 189, 198, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 232, 233, 234, 235, 237, 239, 240, 243, 244, 245, 246, 247, 248, 249, 303, 332, 348, 349, 351, 353, 354, 359, 360, 361, 362, 363, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 410, 411, 412, 413, 414, 415, 416, 417, 418, 423, 424, 425, 426, 427, 428, 431, 432, 438, 439, 442, 443, 444, 445, 447, 450, 451, 452, 454, 455, 456, 460, 461, 464, 475, 476, 481, 485, 486, 487], "otim": 462, "out": [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, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 96, 97, 98, 100, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 191, 197, 201, 202, 203, 206, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 231, 232, 233, 234, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 298, 299, 300, 301, 304, 305, 308, 309, 310, 316, 320, 321, 322, 327, 333, 339, 341, 343, 344, 345, 346, 348, 349, 350, 351, 352, 353, 354, 355, 357, 359, 360, 361, 362, 363, 364, 365, 368, 369, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 442, 443, 444, 445, 447, 448, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 471, 472, 475, 476, 479, 480, 481, 482, 484, 485, 486, 487], "outer": [6, 83, 93, 103, 104, 186], "output": [10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 36, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 79, 80, 84, 85, 86, 87, 88, 89, 90, 92, 94, 96, 97, 98, 101, 103, 104, 105, 106, 107, 109, 110, 112, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 127, 128, 129, 130, 132, 133, 136, 138, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161, 166, 167, 169, 170, 172, 173, 174, 176, 177, 178, 185, 187, 188, 189, 201, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 224, 225, 226, 227, 228, 230, 231, 232, 233, 234, 237, 240, 241, 242, 244, 246, 247, 248, 249, 303, 308, 348, 349, 351, 352, 353, 354, 359, 360, 361, 362, 363, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 389, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 422, 423, 425, 426, 431, 432, 436, 438, 440, 442, 443, 444, 445, 447, 450, 451, 452, 454, 455, 456, 458, 460, 461, 463, 464, 467, 469, 473, 475, 476, 477, 479, 480, 481, 485, 486, 487, 499, 503], "outsid": [162, 163], "over": [10, 16, 21, 56, 84, 85, 86, 97, 98, 103, 104, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 137, 139, 151, 156, 162, 163, 171, 202, 210, 222, 223, 225, 226, 228, 230, 232, 241, 242, 243, 244, 245, 246, 247, 248, 249, 316, 362, 366, 370, 397, 402, 413, 414, 424, 429, 454, 456, 458, 459, 462, 466, 479, 481, 499], "overal": [117, 119, 123, 124, 128, 129, 131, 133], "overflow": 142, "overrid": [83, 106, 155, 354, 487], "overview": 2, "overwrite_input": 229, "p": [10, 191, 198, 199, 372, 375, 380, 386, 389, 479], "pack": [93, 419, 499], "packag": [0, 3], "packbit": 6, "pad": [6, 101, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 429], "page": [3, 499], "pair": [10, 104, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 193], "parallel": [1, 3, 4, 9, 488], "paramet": [11, 12, 13, 14, 15, 16, 17, 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, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 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, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 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, 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, 303, 308, 313, 316, 332, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 365, 366, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "parameter": [370, 392, 414], "parametr": 466, "pareto": 6, "pars": [150, 211], "part": [3, 10, 13, 14, 20, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 98, 127, 145, 146, 169, 174, 175, 181, 182, 193, 194, 196, 224, 227, 233, 235, 317, 330, 421, 422, 448, 469, 473, 476, 477, 495], "partial": [33, 447], "particular": [101, 201], "particularli": 103, "partit": [6, 23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 447, 467, 469, 473, 480, 486, 487, 495], "pass": [23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 92, 98, 101, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 163, 167, 170, 185, 198, 211, 224, 231, 238, 308, 332, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 427, 467, 469, 470, 473, 474, 480, 486, 487], "path": [4, 103, 104, 150, 211], "path_info": 104, "pathlib": 211, "pattern": 56, "penros": 203, "per": [103, 118, 132, 420], "percentil": [6, 229], "perf_count": 0, "perform": [16, 21, 41, 42, 68, 94, 103, 117, 119, 122, 123, 124, 128, 129, 131, 133, 139, 190, 362, 456], "perhap": 427, "period": [10, 479], "permit": 150, "permut": [6, 98, 103, 236, 345, 357, 465, 499], "permute_dim": 465, "phase": [10, 20, 479], "phase_deg": 479, "pi": [0, 9, 10, 13, 24, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 79, 80, 87, 88, 116, 368, 444, 445, 460, 461, 466, 479, 503], "pickl": [150, 211], "piecewis": 6, "pinv": 6, "pip": 4, "place": [6, 16, 17, 21, 22, 35, 68, 70, 71, 85, 86, 97, 98, 111, 113, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 134, 148, 170, 173, 225, 226, 228, 232, 238, 241, 242, 244, 246, 247, 248, 249, 316, 335, 337, 345, 352, 362, 365, 366, 407, 428, 429, 433, 436, 447, 453, 454, 456, 458, 464, 481, 495], "plane": 435, "platform": [85, 86, 101, 241, 242, 246, 248, 362, 456], "pleas": [0, 3, 39, 99, 103, 162, 164, 483, 495], "plot": 408, "plt": [230, 408], "plu": [212, 213, 215], "plugin": 4, "point": [10, 11, 12, 20, 23, 29, 35, 40, 41, 51, 56, 76, 84, 101, 105, 106, 110, 114, 115, 116, 121, 122, 126, 127, 128, 129, 130, 135, 136, 142, 149, 150, 151, 153, 154, 155, 158, 167, 169, 198, 199, 210, 211, 216, 217, 223, 228, 238, 244, 247, 249, 349, 353, 354, 370, 399, 411, 421, 423, 424, 436, 438, 439, 454, 466, 467, 481, 486, 487, 499], "pointer": 101, "poisson": 6, "poli": 6, "polyadd": 6, "polyd": 6, "polydiv": 6, "polyfit": 6, "polyint": 6, "polymul": 6, "polysub": 6, "polyv": 6, "popul": [11, 12, 13, 14, 15, 20, 24, 25, 26, 27, 28, 29, 30, 35, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 72, 73, 76, 79, 80, 87, 88, 96, 98, 107, 109, 110, 112, 115, 136, 142, 143, 144, 145, 146, 147, 159, 160, 161, 166, 169, 172, 176, 177, 178, 187, 188, 189, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 227, 233, 234, 237, 348, 349, 351, 359, 360, 361, 363, 368, 369, 370, 397, 423, 425, 431, 432, 436, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 475, 476], "portion": [162, 163], "posinf": 238, "posit": [6, 10, 16, 17, 21, 23, 35, 40, 41, 42, 65, 76, 92, 93, 98, 111, 114, 115, 117, 119, 122, 123, 124, 127, 130, 132, 135, 142, 150, 173, 176, 177, 178, 179, 180, 190, 199, 208, 236, 238, 243, 245, 248, 326, 340, 348, 357, 372, 396, 433, 434, 436, 438, 440, 450, 451, 464, 465], "possess": 193, "possibl": [10, 48, 49, 54, 55, 98, 99, 103, 104, 111, 145, 146, 158, 162, 164, 224, 303, 332, 357, 428, 449, 452, 457, 458, 459, 465, 483], "possibli": 44, "pow": [361, 495], "power": [6, 10, 110, 116, 142, 199, 360, 451, 480], "pre": 163, "precis": [11, 12, 56, 85, 86, 101, 103, 135, 142, 169, 198, 224, 241, 242, 246, 248, 362, 421, 456, 464], "predecessor": 479, "prefer": [67, 75, 98, 308, 335, 350], "prepend": [94, 102, 463], "present": [23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 92, 98, 101, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 167, 170, 211, 224, 231, 243, 245, 248, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 467, 469, 473, 480, 486, 487], "preserv": [49, 53, 54, 55, 68, 98, 101, 103, 139, 140, 141, 142, 194, 195, 196, 303, 427, 464, 477], "press": 10, "prevent": 103, "previou": 56, "print": [0, 4, 42, 56, 57, 74, 95, 101, 104, 370, 389, 394], "print_device_info": 0, "printabl": 104, "printopt": 6, "prior": 94, "prob1": [216, 217], "prob12": [216, 217], "prob2": [216, 217], "probabl": [162, 217, 372, 380, 389], "proce": 495, "process": 10, "processor": 103, "prod": [6, 85, 98, 208, 209, 246, 495], "produc": [10, 34, 101, 211, 366, 439, 459], "product": [6, 83, 85, 97, 98, 103, 104, 171, 185, 186, 201, 206, 208, 209, 225, 237, 241, 246, 309, 355, 362, 462, 482, 499], "program": [4, 143], "progress": [156, 210], "project": [4, 101, 363], "promot": [13, 14, 15, 20, 23, 24, 25, 26, 27, 28, 29, 30, 36, 40, 41, 43, 45, 46, 47, 50, 51, 52, 58, 60, 61, 64, 65, 76, 79, 80, 87, 88, 96, 109, 110, 112, 142, 144, 145, 146, 147, 156, 166, 187, 210, 212, 213, 214, 215, 216, 217, 222, 225, 227, 233, 234, 237, 349, 360, 361, 368, 369, 423, 425, 430, 431, 438, 442, 444, 445, 450, 451, 455, 460, 461, 463, 475, 476], "promote_typ": 6, "propag": [101, 145, 146, 226, 227, 232, 233, 241, 242, 243, 245, 246, 248], "proper": [145, 146, 193, 195], "properti": [10, 23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 194, 196, 204, 210, 211, 222, 224, 231, 251, 303, 308, 312, 314, 315, 317, 319, 323, 324, 330, 335, 336, 340, 345, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487, 495], "protocol": [44, 101, 148], "prototyp": 106, "provid": [0, 6, 10, 31, 32, 70, 71, 77, 84, 98, 99, 103, 104, 111, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 152, 162, 163, 165, 179, 180, 223, 239, 240, 243, 245, 246, 248, 370, 398, 401, 424, 427, 437, 453, 458, 466, 477, 484, 485, 503], "pseudo": [203, 370], "ptp": 6, "pure": [10, 121, 127, 129, 130], "purpos": [34, 198], "put": [6, 10, 98, 113, 121, 127, 129, 358, 366, 459, 495], "put_along_axi": [6, 365, 459], "putmask": [6, 365], "pval": 387, "py": 4, "pyplot": [230, 408], "pytest": 4, "python": [0, 2, 3, 44, 98, 101, 147, 148, 234, 318, 425, 426, 495], "q": [195, 199, 204, 209, 229], "qquad": 10, "qr": 6, "quad": 10, "quadrant": [20, 26, 28, 46, 50, 117], "quantil": 6, "quaternion": 199, "question": 89, "queue": [23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "quick": [2, 3], "quickli": [185, 503], "quotient": [29, 51], "r": [88, 204], "r2": 204, "rad": 88, "rad2deg": [6, 87, 88, 479], "radian": [6, 13, 14, 20, 24, 25, 26, 28, 29, 46, 50, 51, 87, 88, 368, 479, 503], "rais": [11, 12, 13, 14, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 40, 41, 42, 43, 45, 46, 47, 50, 51, 52, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 72, 73, 75, 76, 77, 79, 80, 84, 87, 88, 95, 96, 97, 98, 99, 105, 106, 107, 109, 110, 112, 114, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 164, 166, 167, 172, 176, 177, 178, 187, 188, 189, 199, 201, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 225, 226, 227, 228, 232, 233, 234, 237, 239, 240, 243, 244, 245, 247, 248, 249, 303, 304, 348, 349, 351, 353, 354, 359, 360, 361, 362, 363, 368, 369, 420, 423, 424, 425, 427, 428, 431, 432, 438, 442, 443, 444, 445, 447, 449, 450, 451, 452, 454, 455, 456, 460, 461, 475, 476, 481, 483, 486, 487, 495], "rand": [6, 104, 370, 400, 402, 403, 405], "randint": [6, 98, 318, 370, 401], "randn": [6, 139, 140, 141, 203, 204, 207, 209, 370, 453], "random": [98, 104, 139, 140, 141, 195, 201, 203, 204, 207, 209, 318, 453, 488, 499], "random_integ": [6, 370, 398], "random_sampl": [6, 370, 397, 400, 403, 405], "randomli": 394, "randomst": 398, "ranf": 6, "rang": [0, 95, 152, 162, 163, 217, 357, 364, 365, 389, 394, 420, 426, 453, 462, 465, 479, 499], "rank": [111, 113, 151, 198, 200, 457], "rate": [118, 132], "rather": 350, "ratio": [0, 96, 144, 198, 475, 503], "ration": 499, "ravel": [6, 98, 113, 138, 202, 316, 355, 495], "ravel_multi_index": [6, 478], "raveled_indic": 420, "raw": 204, "rayleigh": 6, "rcond": [198, 203], "re": [31, 32, 57, 89, 127, 433], "read": [89, 93, 98, 101, 149, 150, 152, 153, 211, 316, 419, 428], "readonli": 101, "real": [6, 11, 12, 13, 14, 20, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46, 47, 50, 51, 52, 65, 66, 76, 84, 98, 116, 119, 121, 126, 127, 128, 129, 130, 131, 133, 135, 143, 145, 146, 147, 166, 169, 174, 181, 182, 190, 193, 194, 195, 196, 200, 203, 204, 205, 207, 216, 217, 223, 227, 233, 234, 238, 247, 249, 372, 389, 422, 423, 424, 425, 438, 448, 454, 476, 477, 481, 495, 499], "real_if_clos": [6, 20, 169, 421], "rearrang": [98, 326, 499], "reason": 129, "rebuild": 100, "recal": 101, "recent": [22, 452], "recfromcsv": 6, "recfromtxt": 6, "recip": [4, 10], "reciproc": [6, 438, 450], "recommend": [103, 350, 463], "reconstruct": [101, 207, 477], "recov": 10, "reduc": [16, 21, 31, 32, 56, 204, 207, 223, 226, 228, 230, 232, 239, 240, 243, 244, 245, 246, 247, 248, 249, 362, 424, 429, 454, 456, 481], "reduce_hypot": 166, "reduct": [16, 21], "redund": 130, "refer": [0, 2, 3, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, 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, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 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, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 316, 317, 318, 320, 321, 322, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 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, 407, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 495], "reflect": 495, "reflector": 204, "regardless": [101, 194, 196, 483], "regular": 211, "rel": [17, 98, 173, 340, 433, 434], "relat": 101, "relev": [101, 156, 210, 222], "rem": 147, "remain": [16, 21, 56, 104, 131, 133, 162, 223, 228, 236, 244, 247, 249, 424, 428, 454, 481], "remaind": [6, 144, 147, 234, 360, 361], "remov": [31, 32, 87, 93, 98, 111, 127, 338, 362, 368, 452, 456, 499], "reorder": [103, 139, 209, 236], "rep": 463, "repeat": [6, 98, 117, 119, 123, 124, 128, 129, 131, 133, 134, 193, 194, 195, 196, 230, 358, 429, 463, 466, 477, 495], "repeatedli": 103, "repetit": [0, 426, 463], "replac": [3, 10, 44, 68, 113, 238, 241, 242, 358, 366, 375, 440, 495], "replic": 463, "repo": 4, "repr": 291, "repres": [10, 23, 36, 40, 41, 43, 44, 45, 56, 101, 104, 122, 130, 148, 151, 156, 158, 170, 205, 210, 222, 230, 249, 370, 429, 471, 477, 495], "represent": [58, 60, 61, 104, 135, 168, 170, 238, 349, 495], "request": 434, "requir": [4, 6, 36, 41, 42, 43, 45, 49, 98, 101, 103, 115, 170, 238, 303, 335, 429], "res_cpu": 89, "res_host": 89, "rese": 406, "reset": 495, "reshap": [0, 6, 15, 31, 32, 34, 53, 55, 56, 89, 90, 91, 93, 96, 97, 98, 99, 100, 103, 111, 113, 120, 125, 139, 147, 164, 170, 171, 185, 186, 202, 224, 225, 226, 232, 237, 311, 316, 335, 345, 358, 394, 419, 427, 429, 433, 435, 455, 462, 464, 466, 469, 470, 473, 474, 475, 477, 483, 495], "resid": [111, 115, 148], "residu": 198, "resiz": [6, 111, 495], "resolut": 135, "resolv": [84, 111, 223, 424], "resourc": 0, "respect": [15, 29, 51, 58, 60, 61, 96, 98, 107, 142, 144, 147, 158, 159, 160, 187, 188, 189, 216, 217, 218, 220, 221, 234, 237, 340, 351, 360, 361, 425, 431, 455, 475, 479], "rest": 39, "restor": 433, "result": [0, 4, 10, 16, 21, 29, 31, 32, 34, 51, 56, 58, 59, 60, 61, 64, 68, 70, 71, 76, 81, 84, 85, 86, 96, 97, 101, 104, 106, 107, 112, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 136, 142, 144, 149, 150, 151, 152, 153, 155, 156, 159, 160, 162, 163, 170, 172, 176, 177, 178, 179, 180, 187, 188, 189, 190, 193, 202, 204, 210, 211, 214, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 228, 232, 235, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 350, 351, 354, 355, 360, 361, 362, 365, 370, 372, 402, 424, 428, 430, 431, 432, 434, 436, 439, 442, 443, 449, 453, 454, 456, 458, 459, 462, 463, 466, 471, 475, 476, 477, 481, 485, 487, 495], "result_dpnp": 0, "result_numpi": 0, "result_typ": [6, 64, 101, 499], "ret": 369, "retriev": [93, 101], "retstep": 210, "return": [0, 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, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 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, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 252, 253, 254, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 292, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 307, 308, 309, 310, 311, 312, 314, 315, 316, 318, 320, 321, 322, 324, 325, 326, 327, 329, 332, 333, 336, 339, 340, 341, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 366, 368, 369, 370, 373, 392, 394, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 495], "return_count": 477, "return_index": 477, "return_invers": 477, "reus": [148, 163, 428], "revers": [93, 98, 134, 139, 140, 141, 345, 357, 435, 465, 466, 480], "rewrit": 198, "rfft": [6, 10, 118, 121, 126, 127, 128, 129, 131, 132, 133], "rfft2": [6, 128], "rfftfreq": [6, 118], "rfftn": [6, 116, 119, 129, 130, 131], "right": [10, 28, 50, 68, 83, 93, 95, 140, 141, 166, 187, 193, 194, 195, 196, 201, 209, 224, 413, 424, 431, 439, 464, 466, 469, 473, 480], "right_shift": [6, 187], "rightmost": [162, 163, 209], "rint": [6, 35, 66, 136, 143, 436, 476], "roll": [6, 434], "rollaxi": [6, 433], "root": [6, 65, 166, 191, 423, 424, 438, 450, 451], "rot90": [6, 140, 141], "rotat": [140, 141, 435], "roughli": [101, 198], "round": [6, 23, 35, 66, 98, 121, 126, 136, 143, 144, 193, 234, 425, 432, 476, 495, 499], "round_": 6, "routin": [2, 488, 495], "row": [45, 49, 69, 70, 71, 85, 86, 93, 98, 100, 114, 140, 141, 158, 165, 167, 170, 201, 207, 303, 350, 419, 420, 437, 449, 453, 467, 469, 477, 478, 483, 484], "row_stack": [6, 484], "rowvar": 82, "rsqrt": [423, 450], "rtol": [17, 173], "rule": [13, 14, 15, 16, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 36, 40, 41, 43, 45, 46, 47, 50, 51, 52, 56, 58, 60, 61, 64, 65, 76, 77, 79, 80, 83, 86, 87, 88, 96, 109, 110, 112, 144, 145, 146, 147, 156, 166, 187, 210, 212, 213, 214, 215, 216, 217, 222, 223, 225, 227, 228, 233, 234, 237, 244, 247, 249, 349, 360, 361, 368, 369, 423, 424, 425, 430, 431, 438, 442, 444, 445, 450, 451, 454, 455, 456, 460, 461, 466, 475, 476, 481], "run": [0, 4], "runtim": 4, "runtimewarn": [243, 245], "s1": [98, 101, 186, 340], "s10": 101, "s16": 101, "s2": [98, 101, 340], "s25": 101, "s3": [98, 340], "safe": [49, 64, 70, 71, 77, 98, 103, 165, 225, 303, 437, 453, 484], "safe_ev": 6, "said": 209, "same": [4, 10, 11, 12, 15, 16, 17, 21, 22, 29, 31, 32, 33, 34, 35, 37, 38, 43, 45, 48, 49, 51, 56, 58, 59, 60, 61, 63, 69, 70, 71, 76, 84, 85, 86, 93, 94, 95, 96, 97, 98, 100, 106, 107, 111, 113, 122, 123, 124, 129, 134, 136, 142, 144, 145, 146, 147, 148, 155, 158, 159, 160, 161, 162, 163, 165, 166, 169, 171, 172, 173, 179, 180, 181, 186, 187, 188, 189, 195, 199, 204, 216, 217, 218, 220, 221, 223, 226, 227, 228, 232, 233, 234, 237, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 332, 345, 349, 351, 354, 358, 360, 361, 362, 366, 370, 392, 398, 414, 419, 421, 424, 425, 426, 431, 433, 434, 437, 439, 440, 447, 452, 453, 454, 455, 456, 458, 459, 462, 464, 468, 470, 472, 474, 475, 478, 481, 482, 484, 487, 503], "same_kind": [49, 64, 70, 71, 77, 98, 103, 165, 225, 303, 437, 453, 484], "sampl": [10, 118, 125, 127, 130, 132, 156, 158, 162, 210, 222, 366, 370, 371, 372, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, 399, 401, 404, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 459, 466, 469, 473, 488, 499], "sample_r": 132, "satisfi": [36, 41, 43, 45, 49, 98, 113, 197, 303, 358, 427, 440], "save": [6, 150, 503], "savetxt": 6, "savez": 6, "savez_compress": 6, "scalar": [15, 17, 22, 29, 36, 37, 38, 40, 41, 43, 44, 45, 51, 58, 60, 61, 64, 75, 76, 77, 83, 89, 92, 94, 96, 97, 98, 101, 103, 104, 107, 113, 118, 132, 134, 142, 144, 145, 146, 147, 154, 155, 156, 158, 159, 160, 161, 162, 163, 166, 171, 173, 175, 182, 183, 186, 187, 188, 189, 206, 210, 216, 217, 218, 220, 221, 222, 224, 225, 227, 230, 233, 234, 237, 313, 318, 347, 349, 351, 358, 360, 361, 365, 366, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 389, 392, 393, 395, 396, 398, 401, 404, 406, 410, 412, 413, 414, 415, 416, 417, 418, 422, 425, 431, 439, 440, 455, 458, 462, 466, 475, 476, 480, 482, 485, 495], "scale": [10, 104, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 156, 186, 204, 210, 222, 370, 377, 379, 381, 382, 383, 384, 392, 404, 409, 416], "scientif": 10, "scipi": 108, "scope": 4, "script": 4, "sctype2char": 6, "search": [104, 488, 499], "searchsort": [6, 95, 98, 162, 447, 495], "second": [15, 17, 29, 37, 38, 51, 56, 58, 60, 61, 76, 83, 93, 96, 97, 101, 104, 107, 110, 117, 118, 119, 120, 123, 124, 127, 130, 132, 142, 144, 145, 146, 147, 158, 159, 160, 162, 163, 164, 165, 166, 171, 173, 186, 187, 188, 189, 216, 217, 218, 220, 221, 224, 225, 226, 227, 230, 232, 233, 234, 237, 351, 355, 360, 361, 425, 431, 435, 451, 455, 457, 462, 464, 475, 482], "section": [4, 39, 101, 119, 124, 129, 133, 495], "see": [3, 35, 101, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 148, 162, 198, 387, 436, 469, 470, 473, 474, 477, 495], "seed": [6, 98, 104, 318, 370], "seek": 150, "seldom": 142, "select": [6, 77, 113, 226, 232, 452, 458, 466, 488], "select_cpu_devic": 0, "select_default_devic": 0, "selector": [23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "self": [98, 101, 137, 252, 253, 254, 255, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 315, 370], "semant": 162, "sens": 209, "sep": [150, 153], "separ": [10, 98, 101, 103, 150, 153, 163, 238, 332, 429], "sequenc": [39, 44, 53, 54, 55, 69, 70, 71, 74, 78, 99, 100, 103, 104, 105, 106, 117, 119, 123, 124, 127, 128, 129, 131, 133, 154, 155, 156, 162, 163, 164, 165, 170, 185, 201, 210, 222, 236, 353, 354, 358, 394, 407, 426, 427, 430, 437, 449, 453, 462, 466, 483, 484, 486, 487], "sequenti": [78, 82, 108, 229, 235, 246], "seri": [10, 127, 386], "set": [10, 31, 32, 36, 49, 67, 81, 89, 90, 92, 95, 98, 101, 103, 105, 154, 162, 163, 167, 170, 200, 202, 203, 210, 226, 232, 239, 240, 248, 293, 303, 304, 315, 335, 353, 354, 362, 440, 442, 443, 456, 469, 473, 486, 487, 495], "set_numeric_op": 6, "set_printopt": 6, "set_stat": 6, "set_string_funct": 6, "setbufs": 6, "setdiff1d": 6, "seterr": 6, "seterrcal": 6, "seterrobj": 6, "setfield": [6, 101], "setflag": 6, "setup": 4, "setuptool": 4, "setxor1d": 6, "sever": 197, "sh": [98, 332], "shape": [4, 6, 11, 12, 13, 14, 15, 16, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 43, 46, 47, 49, 50, 51, 52, 55, 56, 58, 59, 60, 61, 62, 63, 65, 66, 68, 70, 71, 72, 73, 76, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 90, 91, 94, 95, 96, 97, 98, 100, 101, 105, 106, 107, 109, 110, 111, 112, 115, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 136, 139, 142, 143, 144, 145, 146, 147, 151, 154, 155, 158, 159, 160, 161, 162, 163, 165, 166, 169, 170, 171, 172, 176, 177, 178, 179, 180, 181, 183, 185, 186, 187, 188, 189, 192, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 224, 225, 226, 227, 228, 230, 231, 232, 233, 234, 236, 237, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 324, 332, 336, 338, 345, 347, 348, 349, 351, 352, 353, 354, 357, 359, 360, 361, 362, 363, 365, 366, 368, 369, 370, 379, 382, 387, 388, 393, 397, 398, 399, 400, 401, 402, 403, 405, 410, 411, 417, 419, 420, 423, 424, 425, 426, 428, 429, 431, 432, 433, 434, 436, 437, 438, 439, 442, 443, 444, 445, 446, 447, 450, 451, 452, 453, 454, 455, 456, 458, 460, 461, 462, 463, 464, 465, 467, 468, 470, 472, 473, 474, 475, 476, 478, 481, 483, 484, 485, 486, 487, 488, 499], "share": [23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 467, 469, 473, 480, 486, 487], "shared_bin": 163, "shares_memori": 6, "shift": [10, 117, 119, 120, 124, 125, 187, 431, 433], "short": [476, 495], "shorter": [121, 127], "shorthand": [11, 12, 15, 58, 59, 60, 61, 96, 107, 144, 159, 160, 172, 187, 188, 189, 218, 220, 225, 234, 237, 348, 351, 359, 360, 361, 425, 431, 455, 475, 485], "should": [31, 32, 39, 49, 93, 95, 97, 98, 103, 104, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 147, 150, 157, 162, 185, 198, 199, 225, 236, 239, 240, 243, 245, 303, 334, 387, 420, 428, 429, 439, 458, 462, 464, 478, 479, 495], "show": [9, 38, 101, 134, 166, 221, 230, 238, 241, 242, 243, 245, 248, 408], "show_config": 6, "shown": 4, "shuffl": 6, "side": [98, 158, 195, 334, 439], "sigma": [385, 392], "sign": [6, 10, 17, 76, 101, 173, 192, 205, 234, 348, 359, 362, 425, 443, 456, 476], "signal": [10, 118, 121, 126, 127, 129, 132, 479], "signatur": [224, 225], "signbit": [6, 442], "signific": 103, "signum": 442, "similar": [3, 40, 41, 98, 101, 156, 210, 222, 224, 308, 335, 358, 370, 398, 469, 470, 473, 474], "simpl": [4, 221, 499], "simpli": [91, 98, 150, 162, 163, 345], "sin": [0, 6, 26, 27, 46, 47, 79, 195, 230, 445, 460, 466], "sinc": [6, 98, 127, 193, 195, 337, 350], "sine": [13, 14, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 79, 80, 444, 445, 460, 461], "singl": [9, 10, 33, 63, 69, 98, 103, 104, 158, 201, 226, 232, 338, 362, 370, 389, 398, 399, 400, 401, 402, 403, 405, 411, 456, 466, 495], "singleton": [16, 21, 56, 111, 223, 228, 243, 244, 245, 247, 249, 424, 452, 454, 481], "singular": [197, 198, 200, 203, 207], "sinh": [6, 14, 25, 27, 47, 80, 444, 461], "size": [0, 6, 23, 31, 32, 36, 39, 56, 70, 71, 78, 81, 82, 85, 86, 90, 95, 98, 99, 101, 104, 113, 116, 118, 122, 132, 150, 156, 158, 164, 165, 202, 204, 207, 210, 222, 224, 226, 228, 232, 239, 240, 241, 242, 244, 246, 248, 318, 319, 335, 353, 358, 362, 370, 371, 372, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 398, 400, 401, 402, 403, 404, 405, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 429, 433, 437, 449, 452, 453, 456, 462, 473, 479, 483, 484, 486], "skip": 93, "slice": [113, 239, 240, 243, 244, 245, 247, 249, 365, 366, 440, 459, 466, 473, 474, 495], "slogdet": [6, 192], "slower": 462, "slowest": [98, 316, 419, 428], "small": [17, 112, 173, 198, 203, 214, 216, 217, 238, 473], "smaller": [94, 98, 116, 117, 119, 122, 123, 124, 126, 128, 129, 130, 131, 133, 135, 198, 234, 326, 358, 425, 479], "smallest": [135, 168, 477], "smallest_norm": 135, "smat": 207, "so": [10, 13, 14, 16, 21, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 56, 101, 107, 121, 126, 142, 162, 182, 210, 217, 223, 228, 230, 244, 247, 249, 408, 424, 454, 462, 463, 481], "softwar": 4, "solut": [198, 206, 429], "solv": [6, 198, 208, 209, 499], "some": [23, 101, 111, 113, 143, 171, 198, 358, 479, 485, 495], "sometim": [161, 495], "sometru": 6, "somewhat": 199, "sophist": 199, "sort": [6, 33, 39, 98, 99, 164, 207, 302, 326, 357, 439, 448, 449, 459, 465, 466, 477, 483, 488, 495, 499], "sort_complex": 6, "sorter": [98, 334, 439], "sought": 191, "sourc": [4, 6, 16, 17, 18, 19, 21, 22, 23, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 53, 54, 55, 56, 57, 62, 63, 64, 67, 68, 69, 71, 74, 75, 77, 78, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 102, 103, 104, 105, 106, 108, 111, 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 137, 138, 139, 140, 141, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 162, 163, 164, 165, 167, 168, 170, 171, 173, 174, 175, 179, 180, 181, 182, 183, 184, 185, 186, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 222, 223, 224, 225, 226, 228, 229, 230, 232, 235, 236, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 347, 350, 353, 354, 355, 356, 358, 362, 364, 365, 366, 367, 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, 422, 424, 426, 427, 428, 429, 430, 433, 434, 435, 439, 440, 441, 446, 447, 448, 449, 452, 453, 454, 456, 457, 458, 459, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "space": [6, 23, 118, 120, 132, 150, 156, 158, 210, 222, 466, 503], "spars": [170, 230], "special": [2, 101, 108, 488, 499], "specif": [0, 4, 101, 151], "specifi": [16, 21, 22, 23, 31, 32, 33, 35, 36, 40, 41, 42, 43, 45, 56, 63, 64, 70, 71, 75, 84, 85, 86, 89, 92, 93, 98, 103, 104, 105, 106, 113, 114, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 139, 142, 149, 150, 151, 152, 154, 155, 156, 158, 167, 194, 196, 202, 208, 209, 210, 211, 222, 223, 228, 229, 231, 241, 242, 244, 246, 247, 248, 249, 302, 311, 352, 353, 354, 357, 358, 362, 365, 366, 370, 383, 393, 411, 419, 420, 424, 427, 429, 433, 434, 435, 436, 440, 446, 453, 454, 456, 458, 459, 462, 464, 465, 466, 467, 477, 480, 481, 486, 487], "spectrum": [10, 120, 121, 125, 126], "speed": 103, "speedup": 104, "spell": 350, "split": [6, 39, 70, 71, 99, 100, 164, 165, 437, 453, 483, 484, 499], "spreadsheet": 143, "sqrt": [6, 10, 65, 98, 317, 330, 424, 438, 451], "squar": [6, 65, 166, 167, 190, 191, 193, 194, 195, 197, 198, 199, 205, 208, 209, 224, 247, 249, 374, 390, 423, 424, 438, 440, 450, 454, 470, 474, 480, 481], "squeez": [6, 98, 111, 495], "src": 77, "stabl": [33, 447], "stack": [6, 69, 70, 71, 100, 165, 192, 200, 203, 204, 205, 225, 350, 437, 449, 459, 484], "stand": 158, "standard": [98, 135, 144, 147, 228, 234, 244, 247, 249, 318, 339, 370, 385, 392, 399, 408, 409, 410, 411, 412, 425, 454, 481, 495, 499], "standard_cauchi": 6, "standard_exponenti": 6, "standard_gamma": 6, "standard_norm": [6, 370, 399], "standard_t": 6, "start": [2, 3, 23, 43, 45, 104, 118, 122, 132, 149, 156, 210, 222, 224, 429, 434, 469, 473], "start_tim": 0, "state": 370, "statist": [488, 499], "std": [6, 98, 228, 244, 247, 249, 481, 495], "stdev": [370, 411], "step": [4, 23, 104, 156, 161, 210, 222], "sticki": 101, "still": [56, 164, 483], "stop": [23, 156, 210, 222], "store": [136, 156, 179, 180, 210, 217, 222, 225, 355], "str": [42, 44, 70, 71, 101, 103, 104, 150, 153, 165, 211, 294, 427, 437, 453, 471, 484], "str_": 101, "straightforward": 170, "stride": [48, 49, 98, 303], "string": [23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 101, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 471, 473, 480, 486, 487, 495], "string_repr": 104, "stringio": 211, "strongli": [4, 463], "struct": 101, "structur": [101, 211], "student": 412, "style": [49, 98, 303, 350, 419, 420, 478], "sub": [39, 70, 71, 93, 99, 101, 103, 164, 165, 209, 437, 449, 453, 464, 467, 483, 484], "subarrai": [101, 170, 477], "subclass": [41, 427], "subdivid": 101, "subdtyp": 101, "subject": 4, "subok": [11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 36, 46, 47, 49, 50, 51, 52, 58, 59, 60, 61, 62, 63, 65, 66, 72, 73, 75, 76, 79, 80, 87, 88, 96, 98, 106, 107, 109, 110, 112, 115, 136, 142, 143, 144, 145, 146, 147, 155, 159, 160, 161, 166, 169, 172, 176, 177, 178, 187, 188, 189, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 227, 233, 234, 237, 303, 348, 349, 351, 354, 359, 360, 361, 363, 368, 369, 423, 425, 431, 432, 438, 442, 443, 444, 445, 450, 451, 455, 460, 461, 475, 476, 487], "subscript": [103, 104], "subset": [3, 158, 452, 499], "subtract": 6, "subtyp": 419, "succeed": 102, "success": [42, 372, 380, 389], "sugar": [91, 470, 474], "suggest": 93, "suit": 4, "suitabl": [34, 98, 345, 366, 429, 439, 459], "sum": [0, 3, 4, 6, 10, 15, 56, 84, 86, 89, 92, 93, 94, 97, 98, 103, 122, 162, 166, 171, 191, 198, 208, 216, 217, 223, 225, 241, 242, 248, 310, 344, 372, 387, 389, 424, 462, 464, 466, 495, 499], "sum_": 10, "sum_along_diagon": 464, "sum_of_weight": 56, "summari": 488, "summat": [97, 103, 104, 171, 209, 225, 355, 462], "suppli": [121, 126, 201, 370, 399], "support": [3, 4, 9, 11, 12, 13, 14, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 40, 41, 43, 44, 45, 46, 47, 50, 51, 52, 58, 59, 60, 61, 62, 63, 65, 66, 72, 73, 75, 76, 78, 79, 80, 82, 87, 88, 96, 98, 101, 103, 105, 106, 107, 108, 109, 110, 112, 114, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 166, 167, 172, 176, 177, 178, 187, 188, 189, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 225, 226, 227, 228, 229, 232, 233, 234, 235, 237, 239, 240, 243, 244, 245, 246, 247, 248, 249, 303, 335, 348, 349, 351, 353, 354, 356, 359, 360, 361, 362, 363, 364, 367, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 388, 389, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 410, 411, 412, 413, 414, 415, 416, 417, 418, 423, 425, 427, 428, 431, 438, 442, 443, 444, 447, 450, 451, 454, 455, 456, 460, 461, 475, 476, 481, 486, 487, 503], "sure": 427, "surnam": 101, "surpris": [122, 123, 124], "svd": [6, 191, 197, 200, 203], "swap": [101, 117, 120, 457], "swapax": [6, 98, 236, 495], "swapped_cod": 101, "swapped_dt": 101, "sy": 101, "sycl": [0, 3, 23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "sycl_context": 98, "sycl_devic": 98, "sycl_queu": [23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "sycldevic": [23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "syclqueu": [23, 36, 40, 41, 42, 43, 44, 45, 49, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 148, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 303, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 467, 469, 473, 480, 486, 487], "symmetr": [121, 127, 129, 130, 190, 193, 194, 195, 196, 200, 203, 207], "symmetri": [10, 116, 121, 126, 127, 130], "syntact": [91, 470, 474], "syntax": 495, "sys_is_l": 101, "system": [3, 4, 206], "t": [10, 70, 71, 82, 98, 101, 121, 190, 193, 195, 198, 345, 350, 412, 466], "t1": 503, "tabl": [2, 9, 488], "tack": 101, "take": [6, 69, 98, 113, 185, 224, 358, 366, 428, 439, 440, 459, 477, 479, 495, 503], "take_along_axi": [6, 31, 32, 33, 67, 366, 458], "taken": [56, 93, 94, 102, 104, 121, 127, 128, 129, 130, 131, 133, 161, 162, 225, 247, 249, 440, 454, 464, 467, 469, 473, 481, 482], "tall": 134, "tan": [6, 26, 28, 29, 30, 46, 50, 51, 52, 79, 444, 461], "tangent": [13, 14, 20, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 79, 80, 444, 445, 460, 461], "tanh": [6, 14, 25, 30, 52, 80, 445, 460], "target": [49, 64, 98, 303, 365], "target_devic": 98, "tau": 204, "tbb": 4, "tempfil": 150, "temporari": [150, 503], "temporaryfil": 150, "ten": 380, "tensor": [44, 98, 103, 104, 148, 208, 209, 239, 240, 243, 245, 246, 364, 462], "tensordot": [6, 97, 103, 171, 208, 209, 225, 355], "tensorinv": [6, 209], "tensorsolv": [6, 208], "term": [10, 15, 96, 104, 116, 117, 119, 122, 123, 124, 127, 130, 237, 455, 475], "test": [0, 2, 16, 17, 21, 107, 159, 160, 174, 176, 177, 178, 179, 180, 188, 189, 246, 350, 351, 372, 495, 499], "test_repetit": 0, "test_typ": 0, "teukolski": 10, "text": [149, 150, 152, 153, 211], "th": [86, 89, 92, 94, 98, 102, 114, 158, 170, 229, 345, 352, 357, 440, 465, 468, 470, 472, 474], "than": [36, 85, 86, 98, 99, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 135, 140, 141, 144, 151, 159, 160, 162, 163, 165, 187, 188, 189, 198, 200, 203, 204, 241, 242, 246, 248, 326, 350, 358, 362, 429, 431, 440, 442, 452, 453, 456, 462, 464, 476, 479, 495, 503], "thei": [17, 38, 101, 173, 195, 198, 437, 439, 462, 466, 469, 473, 479, 480, 484, 495], "them": [69, 495], "theor": 193, "theoret": 104, "therefor": [116, 130, 151, 194, 196, 429], "theta": 466, "thi": [10, 11, 12, 18, 19, 22, 23, 29, 31, 32, 34, 35, 36, 40, 41, 42, 43, 44, 45, 48, 49, 51, 68, 70, 71, 75, 81, 84, 89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103, 104, 112, 113, 115, 116, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 134, 135, 138, 140, 141, 142, 147, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 163, 165, 175, 182, 185, 194, 196, 198, 201, 202, 205, 210, 211, 214, 216, 217, 222, 223, 224, 225, 226, 232, 234, 236, 238, 239, 240, 243, 245, 246, 248, 303, 308, 313, 316, 326, 332, 345, 350, 358, 362, 365, 366, 403, 405, 419, 424, 425, 427, 428, 429, 434, 435, 437, 453, 456, 458, 459, 463, 466, 470, 474, 477, 479, 480, 484, 485], "thing": 458, "third": [69, 70, 71, 99, 100, 117, 165, 437, 449, 453, 484], "those": [10, 68, 199, 366], "though": 122, "thousand": 380, "three": [53, 54, 55, 111, 199, 224, 370, 406, 462, 477], "threshold": 200, "through": [41, 101, 163, 185, 193, 195, 198, 224, 427, 495], "throw": 387, "thu": [10, 121, 127, 129, 463], "tile": [6, 426, 499], "time": [0, 10, 15, 17, 29, 37, 38, 51, 58, 60, 61, 76, 94, 96, 97, 107, 117, 119, 121, 123, 124, 126, 128, 129, 131, 133, 142, 144, 145, 146, 147, 159, 160, 161, 166, 171, 173, 178, 186, 187, 188, 189, 198, 216, 217, 218, 220, 221, 227, 233, 234, 237, 349, 351, 360, 361, 372, 387, 425, 431, 435, 455, 459, 462, 463, 475, 477, 482], "time_dpnp": 0, "time_numpi": 0, "timedelta": 101, "timeit": 103, "timestep": 118, "tini": 135, "titl": 101, "tm": 147, "to_begin": 102, "to_devic": 98, "to_end": 102, "tobyt": 6, "todo": 390, "tofil": [6, 150], "togeth": [17, 70, 71, 101, 122, 173, 185, 453, 485], "tol": [200, 388, 422], "toler": [17, 37, 173, 422], "tolist": 6, "too": [4, 117, 119, 123, 124, 128, 129, 131, 133, 485], "toolkit": 3, "tostr": 6, "total": [6, 81, 85, 98, 323, 429, 446, 454, 481], "toward": [35, 66, 136, 143, 144, 162, 163, 234, 349, 425, 432, 435, 436, 476], "trace": [6, 89, 92, 93, 98, 103, 495], "traceback": [22, 452], "trail": 471, "transfer": 98, "transform": [104, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 488], "transpos": [6, 34, 98, 103, 190, 195, 236, 251, 357, 495, 499], "trapezoid": [86, 456], "trapz": 6, "treat": [17, 121, 127, 129, 150, 158, 173, 194, 196, 198, 201, 211, 241, 242, 246, 248, 362, 366, 439, 459, 463, 477, 479, 495], "tri": 6, "trial": 372, "triangl": [89, 166, 224, 424, 467, 468, 469, 470, 472, 473, 474], "triangular": [6, 190, 194, 196, 204, 224, 469, 470, 473, 474], "trigonometr": [13, 14, 20, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 79, 80, 444, 445, 460, 461, 499], "tril": [6, 89, 224, 467, 469, 470, 473], "tril_indic": [6, 224, 470, 473], "tril_indices_from": [6, 474], "trili": 470, "trili1": 470, "trim": [117, 119, 123, 124, 128, 129, 131, 133, 471], "trim_zero": 6, "triu": [6, 89, 224, 467, 469, 473, 474], "triu_indic": [6, 224, 469, 474], "triu_indices_from": [6, 470], "triui": 474, "triuim1": 474, "trivial": [193, 459], "true": [0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 37, 38, 41, 43, 45, 46, 47, 49, 50, 51, 52, 53, 56, 58, 59, 60, 61, 64, 65, 66, 72, 73, 75, 76, 77, 79, 80, 81, 82, 86, 87, 88, 95, 96, 98, 101, 103, 104, 107, 109, 110, 111, 112, 113, 115, 134, 136, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 151, 156, 159, 160, 161, 162, 166, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 197, 200, 202, 203, 204, 206, 207, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 230, 232, 233, 234, 237, 238, 239, 240, 243, 244, 245, 246, 247, 248, 249, 255, 298, 299, 303, 308, 320, 321, 322, 327, 339, 341, 346, 348, 349, 350, 351, 358, 359, 360, 361, 362, 363, 366, 368, 369, 375, 423, 424, 425, 427, 428, 431, 432, 438, 440, 442, 443, 444, 445, 450, 451, 454, 455, 456, 459, 460, 461, 462, 466, 475, 476, 477, 480, 481, 485], "true_divid": [6, 96], "trunc": [6, 35, 66, 136, 143, 432, 436], "truncat": [35, 66, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 136, 143, 408, 432, 436, 476], "trust": [239, 240], "truth": [58, 59, 60, 61, 107, 159, 160, 172, 188, 189, 218, 219, 220, 221, 351, 495, 499], "try": [4, 42], "tukei": 10, "tup": [69, 100, 165, 437, 484], "tupl": [16, 21, 22, 31, 32, 36, 40, 41, 42, 43, 45, 56, 63, 75, 81, 84, 89, 90, 91, 92, 98, 101, 104, 111, 120, 125, 139, 148, 151, 154, 155, 156, 158, 162, 163, 170, 175, 182, 185, 186, 202, 204, 209, 210, 222, 223, 224, 225, 226, 228, 230, 231, 232, 243, 244, 245, 246, 247, 248, 249, 335, 345, 350, 352, 357, 362, 420, 424, 426, 428, 429, 433, 441, 452, 454, 456, 463, 465, 469, 470, 473, 474, 478, 480, 481, 495], "turn": 69, "twister": 370, "two": [10, 17, 37, 53, 54, 58, 59, 60, 61, 74, 78, 83, 92, 93, 94, 97, 98, 101, 103, 104, 111, 116, 117, 119, 122, 123, 124, 127, 128, 129, 131, 133, 145, 146, 158, 171, 172, 173, 186, 194, 198, 201, 206, 218, 220, 221, 225, 226, 227, 232, 233, 236, 243, 245, 326, 342, 355, 370, 399, 432, 435, 436, 440, 457, 462, 464, 469, 470, 473, 474, 482], "type": [0, 2, 3, 4, 11, 12, 13, 14, 15, 16, 17, 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, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 75, 76, 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, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 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, 199, 200, 201, 202, 203, 206, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 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, 303, 308, 312, 316, 324, 332, 336, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 357, 359, 360, 361, 362, 363, 364, 368, 369, 370, 371, 372, 374, 377, 378, 379, 380, 381, 382, 383, 384, 385, 389, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 499], "type_nam": 0, "typeerror": [56, 77, 98, 148, 335], "typenam": 6, "typestr": 101, "typic": [17, 121, 173, 439, 495], "u": [101, 190, 194, 196, 207, 224, 246, 248, 477], "u1": [101, 149, 150], "u16": 101, "u4": 64, "u8": 101, "ufunc": [2, 488, 495], "uint64": 101, "uint8": [101, 149, 150], "uk": 10, "un": 101, "unari": 495, "unchang": 133, "undefin": [20, 98, 326], "underli": [58, 60, 61, 428], "undo": [10, 124], "undocu": 101, "unexpect": [246, 248], "unicod": 101, "uniform": [6, 101, 158, 162, 163, 222, 370, 397, 400, 402, 403, 405], "uniformli": [222, 370, 414], "uniniti": [36, 105, 106, 154, 353, 486], "union1d": 6, "uniqu": [6, 56, 57, 84, 95, 101, 223, 228, 236, 244, 247, 249, 424, 426, 454, 481], "unique_count": 477, "unique_indic": 477, "unique_invers": 477, "unit": [98, 118, 132, 185, 193, 199, 205, 340], "unitari": [10, 158, 204, 207], "uniti": 162, "univ": 10, "univers": [2, 488, 495], "unless": [16, 21, 49, 85, 86, 98, 103, 162, 193, 200, 202, 222, 241, 242, 246, 248, 303, 362, 456, 477], "unlik": [33, 98, 132, 332, 335, 447], "unmodifi": 163, "unpackbit": 6, "unravel": 478, "unravel_index": [6, 31, 32, 420], "unraveled_coord": 478, "unsaf": [49, 64, 70, 71, 77, 98, 103, 165, 225, 303, 437, 453, 484], "unscal": 10, "unsign": [101, 362, 456], "unspecifi": 428, "unsupport": [11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 68, 76, 79, 80, 87, 88, 96, 109, 110, 112, 142, 143, 144, 145, 146, 147, 148, 161, 166, 172, 187, 213, 214, 215, 216, 217, 227, 233, 234, 235, 237, 348, 349, 359, 360, 361, 363, 368, 369, 423, 425, 431, 432, 438, 442, 443, 444, 445, 455, 460, 461, 475, 476], "until": [104, 433, 434], "unwrap": [6, 87, 368], "up": [4, 10, 101, 103, 141, 459, 470, 477], "updat": 4, "uplo": [194, 196], "upon": [98, 340], "upper": [89, 114, 162, 163, 190, 194, 196, 204, 224, 467, 469, 470, 472, 473, 474], "us": [4, 10, 15, 22, 23, 29, 34, 36, 40, 41, 42, 43, 44, 45, 48, 49, 51, 58, 59, 60, 61, 64, 68, 70, 71, 75, 83, 85, 86, 89, 90, 92, 93, 96, 98, 101, 103, 104, 105, 106, 107, 111, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 134, 138, 143, 144, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 167, 170, 171, 172, 185, 187, 188, 189, 190, 191, 194, 195, 196, 198, 200, 201, 202, 203, 210, 211, 217, 218, 220, 222, 224, 225, 226, 228, 230, 231, 232, 234, 237, 238, 239, 240, 241, 242, 244, 246, 247, 248, 249, 257, 303, 308, 316, 335, 348, 350, 351, 352, 353, 354, 358, 359, 360, 361, 362, 366, 370, 373, 375, 376, 386, 391, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 407, 411, 414, 419, 422, 425, 426, 427, 428, 429, 431, 433, 439, 440, 442, 448, 454, 455, 456, 458, 459, 462, 463, 464, 466, 467, 469, 470, 473, 474, 475, 477, 478, 480, 481, 485, 486, 487, 495, 503], "usabl": 142, "usag": [3, 4, 118, 132], "use_getitem": 101, "use_setitem": 101, "user": [101, 238], "usm": [23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 452, 467, 469, 473, 480, 486, 487], "usm_ndarrai": [11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 44, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 76, 77, 79, 80, 81, 83, 84, 85, 86, 87, 88, 89, 91, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 106, 107, 109, 110, 111, 112, 113, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 155, 158, 159, 160, 161, 162, 163, 164, 165, 166, 169, 171, 172, 173, 174, 176, 177, 178, 179, 180, 181, 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, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 225, 226, 227, 228, 230, 232, 233, 234, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 347, 348, 349, 350, 351, 354, 355, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 368, 369, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 442, 443, 444, 445, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 468, 470, 471, 472, 474, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 487], "usm_typ": [23, 36, 40, 41, 42, 43, 44, 45, 75, 89, 90, 92, 98, 105, 106, 114, 118, 132, 149, 150, 151, 152, 153, 154, 155, 156, 167, 170, 210, 211, 222, 224, 231, 308, 352, 353, 354, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 467, 469, 473, 480, 486, 487], "usual": [90, 98, 101, 225, 335], "util": 488, "v": [74, 89, 92, 98, 101, 193, 194, 334, 365, 439], "v0": 6, "v1": 6, "v10": 101, "v9": 6, "val": [98, 134, 137, 293, 328, 358], "valid": [78, 111, 224, 457, 469, 470, 473, 474], "valu": [10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 40, 41, 43, 45, 46, 47, 49, 50, 51, 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 84, 86, 87, 88, 89, 94, 95, 96, 98, 101, 103, 105, 106, 107, 109, 110, 112, 113, 114, 115, 121, 122, 127, 129, 130, 134, 135, 136, 137, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 166, 167, 169, 170, 172, 173, 175, 176, 177, 178, 181, 182, 185, 187, 188, 189, 190, 193, 194, 195, 196, 197, 198, 199, 200, 203, 205, 206, 207, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 232, 233, 234, 237, 238, 239, 240, 243, 244, 245, 246, 247, 248, 249, 253, 254, 258, 260, 261, 263, 264, 265, 266, 267, 268, 269, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 283, 284, 285, 288, 290, 292, 293, 295, 296, 297, 300, 301, 303, 305, 308, 313, 315, 326, 328, 335, 348, 349, 350, 351, 353, 354, 356, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 380, 397, 398, 414, 421, 423, 424, 425, 426, 427, 428, 431, 432, 433, 436, 438, 439, 440, 442, 443, 444, 447, 450, 451, 454, 455, 456, 458, 459, 460, 461, 464, 466, 469, 473, 475, 476, 477, 479, 481, 485, 486, 487, 495, 499], "value2": 101, "valueerror": [22, 36, 41, 42, 148, 239, 240, 428, 449, 452], "vander": 6, "vandermond": 480, "var": [6, 98, 228, 244, 247, 249, 454, 495], "vararg": 158, "vari": [10, 16, 20, 21, 93, 104, 117, 119, 121, 122, 123, 124, 126, 127, 130, 133, 151, 170, 191, 193, 194, 198, 202, 238, 244, 247, 249, 422], "variabl": [82, 198, 206], "varianc": [98, 228, 244, 247, 249, 346, 454, 481, 499], "variou": 503, "vdot": [6, 97, 225], "vector": [83, 103, 151, 170, 171, 185, 191, 200, 201, 202, 207, 225, 230, 355, 482, 499], "vendor": 4, "veri": [3, 10, 17, 173, 230, 238], "verif": 0, "verifi": 190, "version": [4, 81, 98, 101, 138, 315, 350, 420, 478], "vertic": [69, 70, 71, 93, 100, 134, 139, 140, 165, 435, 437, 449, 453, 483, 484], "vetterlin": 10, "vh": 207, "via": 127, "view": [6, 39, 53, 54, 55, 62, 89, 93, 98, 99, 111, 117, 119, 123, 124, 128, 129, 131, 133, 139, 140, 141, 164, 230, 236, 251, 332, 345, 357, 366, 420, 428, 435, 449, 452, 457, 465, 478, 483], "violat": 77, "void": 101, "void640": 101, "von": 415, "vonmis": 6, "vsplit": [6, 70, 71, 449], "vstack": [6, 69, 70, 71, 100, 165, 198, 437, 449, 453], "w": [10, 56, 193, 194, 195, 196, 199, 427], "wa": [10, 84, 101, 201, 223, 243, 245, 247, 249, 370, 411, 424, 454, 481], "wai": [3, 4, 10, 98, 104, 116, 122, 123, 124, 129, 150, 326, 462], "wald": 6, "walk": 101, "want": [4, 459], "warn": [101, 239, 240, 388, 429], "we": [75, 90, 93, 104, 134, 198, 224, 366, 459, 466], "weibul": [6, 418], "weight": [56, 57, 82, 162, 163, 228, 244, 456], "well": [101, 103, 150, 162, 163, 362, 372, 389, 408], "were": [70, 71, 151, 370, 399, 453, 479], "what": [10, 49, 64, 70, 71, 77, 98, 101, 103, 107, 116, 117, 119, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 133, 165, 174, 225, 303, 372, 389, 437, 453, 484, 495], "when": [10, 22, 23, 36, 37, 40, 41, 43, 45, 48, 49, 56, 75, 77, 95, 98, 101, 103, 116, 127, 129, 130, 145, 146, 156, 161, 193, 202, 204, 210, 217, 222, 224, 225, 234, 241, 242, 243, 245, 246, 248, 303, 425, 429, 432, 434, 436, 440, 458, 462, 466, 477, 485, 503], "whenev": [111, 357, 457, 465], "where": [0, 6, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 34, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56, 58, 59, 60, 61, 65, 66, 68, 72, 73, 75, 76, 77, 79, 80, 84, 87, 88, 89, 90, 92, 94, 95, 96, 98, 99, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 118, 121, 127, 128, 129, 132, 136, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161, 162, 164, 166, 167, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 181, 182, 187, 188, 189, 190, 198, 204, 207, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 228, 231, 232, 233, 234, 237, 243, 244, 245, 246, 247, 248, 249, 298, 299, 303, 308, 320, 321, 322, 327, 334, 339, 341, 346, 348, 349, 350, 351, 352, 353, 354, 355, 357, 358, 359, 360, 361, 362, 363, 368, 369, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 406, 411, 414, 423, 424, 425, 429, 431, 432, 434, 438, 439, 440, 442, 443, 444, 445, 449, 450, 451, 454, 455, 456, 460, 461, 464, 465, 467, 469, 473, 475, 476, 479, 480, 481, 483, 486, 487], "wherev": 77, "whether": [16, 17, 21, 37, 84, 95, 101, 148, 173, 174, 190, 204, 210, 238, 246, 248, 420, 428, 443, 477, 478], "which": [3, 4, 10, 16, 21, 22, 23, 31, 32, 33, 36, 39, 40, 41, 42, 43, 44, 45, 49, 56, 62, 70, 71, 75, 77, 81, 84, 85, 86, 89, 90, 92, 93, 94, 95, 97, 98, 101, 103, 104, 105, 106, 111, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 135, 139, 145, 146, 149, 150, 151, 152, 153, 154, 155, 156, 158, 162, 163, 165, 167, 170, 176, 177, 178, 179, 180, 190, 193, 200, 202, 209, 211, 222, 223, 224, 225, 226, 227, 228, 231, 232, 233, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 303, 308, 350, 352, 353, 354, 357, 362, 365, 370, 392, 397, 398, 399, 400, 401, 402, 403, 405, 411, 414, 420, 424, 426, 429, 433, 440, 446, 447, 449, 452, 453, 454, 456, 458, 464, 465, 466, 467, 468, 469, 472, 473, 476, 479, 480, 481, 485, 486, 487, 495, 503], "whichev": 171, "while": [10, 131, 133, 162, 163, 228, 244, 247, 249, 350, 358, 362, 433, 454, 456, 467, 481], "whitespac": [150, 153], "who": 6, "whole": [117, 119, 123, 124, 128, 129, 131, 133, 469, 473], "whose": [11, 12, 13, 14, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 93, 101, 113, 114, 134, 191, 194, 195, 196, 208, 224, 236, 433, 470, 474, 478], "why": 127, "wide": 134, "width": [101, 162, 163], "wild": [372, 389], "window": [4, 118, 132], "wise": [11, 12, 13, 14, 15, 17, 20, 24, 25, 26, 27, 28, 29, 30, 35, 37, 46, 47, 50, 51, 52, 58, 59, 60, 61, 65, 66, 69, 70, 71, 72, 73, 76, 79, 80, 84, 96, 98, 100, 107, 109, 110, 112, 115, 136, 142, 143, 144, 145, 146, 147, 159, 160, 161, 164, 165, 166, 169, 172, 173, 176, 177, 178, 179, 180, 187, 188, 189, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 226, 227, 232, 233, 234, 235, 237, 243, 245, 246, 307, 348, 349, 351, 359, 360, 361, 363, 421, 423, 425, 431, 432, 436, 437, 438, 442, 443, 444, 445, 449, 450, 451, 453, 455, 460, 461, 475, 476, 483, 484, 495, 499, 503], "within": [17, 23, 37, 49, 98, 103, 121, 122, 123, 124, 126, 127, 129, 162, 163, 173, 303, 365, 370, 414], "without": [93, 98, 105, 134, 345, 419, 428, 429, 495], "won": 101, "word": [122, 123, 124, 127, 129, 143, 195, 370, 414], "work": [4, 35, 48, 459, 495], "world": [101, 372, 389], "would": [33, 70, 71, 98, 101, 151, 170, 201, 224, 225, 326, 357, 370, 420, 447, 449, 453, 459, 465, 479], "wrap": [87, 98, 134, 328, 343, 365, 368, 420, 439, 458, 459, 479], "wrapper": 98, "writabl": 427, "write": [89, 93, 98, 134, 150, 316, 428], "writeabl": 427, "written": [4, 81, 84, 134, 150, 223, 424, 485], "x": [0, 3, 4, 11, 12, 13, 14, 16, 20, 21, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 45, 46, 47, 50, 52, 53, 54, 55, 59, 62, 63, 65, 66, 72, 73, 75, 76, 78, 79, 80, 82, 83, 84, 87, 88, 89, 92, 94, 95, 98, 99, 101, 102, 105, 106, 108, 109, 110, 111, 112, 114, 115, 117, 118, 119, 120, 123, 124, 125, 131, 132, 133, 136, 137, 138, 143, 149, 150, 151, 152, 154, 155, 156, 158, 164, 167, 169, 170, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 191, 195, 198, 202, 204, 206, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 220, 221, 222, 223, 224, 230, 231, 235, 236, 238, 303, 308, 317, 318, 324, 330, 335, 336, 348, 350, 352, 353, 354, 359, 362, 363, 364, 368, 369, 388, 394, 419, 421, 423, 424, 426, 427, 432, 433, 434, 436, 438, 440, 442, 443, 444, 445, 449, 450, 451, 452, 457, 458, 460, 461, 466, 467, 476, 480, 483, 485, 486, 487], "x0": [43, 45, 75, 92, 354, 480, 487], "x00": 150, "x01": [149, 150], "x02": [149, 150], "x03": [149, 150], "x04": [149, 150], "x05": 149, "x1": [15, 17, 20, 26, 28, 29, 37, 38, 46, 49, 50, 51, 57, 58, 60, 61, 67, 76, 78, 96, 98, 107, 142, 144, 145, 146, 147, 159, 160, 161, 166, 185, 187, 188, 189, 216, 217, 218, 219, 220, 221, 225, 227, 229, 230, 233, 234, 235, 237, 303, 348, 349, 351, 356, 359, 360, 361, 367, 407, 425, 431, 433, 455, 475], "x1_i": [15, 29, 51, 58, 60, 61, 76, 96, 107, 142, 144, 147, 159, 160, 166, 187, 188, 189, 216, 217, 218, 220, 221, 234, 237, 351, 360, 361, 425, 431, 455, 475], "x2": [15, 16, 17, 20, 21, 26, 28, 29, 36, 37, 38, 46, 50, 51, 58, 60, 61, 76, 78, 96, 107, 142, 144, 145, 146, 147, 159, 160, 161, 166, 185, 187, 188, 189, 216, 217, 218, 219, 220, 221, 225, 227, 230, 233, 234, 237, 348, 349, 351, 359, 360, 361, 425, 431, 433, 450, 455, 475], "x2_i": [15, 29, 51, 58, 60, 61, 76, 96, 107, 142, 144, 147, 159, 160, 166, 187, 188, 189, 216, 217, 218, 220, 221, 234, 237, 351, 360, 361, 425, 431, 455, 475], "x3": [16, 21, 142], "x_i": [11, 12, 13, 14, 20, 24, 25, 26, 27, 28, 30, 46, 47, 50, 52, 59, 65, 66, 72, 73, 79, 80, 109, 110, 112, 143, 169, 172, 212, 213, 214, 215, 219, 348, 359, 363, 421, 423, 432, 436, 438, 442, 443, 444, 445, 450, 451, 460, 461, 476], "xi": [215, 230], "xn": [185, 230], "xor": [58, 59, 60, 61, 172, 218, 219, 220, 221], "xv": 230, "xx": 230, "xy": 230, "y": [0, 4, 13, 14, 23, 24, 25, 26, 27, 28, 30, 36, 40, 41, 42, 43, 45, 46, 47, 50, 52, 53, 62, 75, 82, 83, 92, 98, 101, 102, 105, 106, 111, 114, 118, 132, 149, 150, 151, 152, 154, 155, 156, 158, 167, 179, 180, 191, 198, 210, 211, 222, 230, 231, 235, 238, 308, 324, 332, 335, 352, 353, 354, 427, 466, 467, 480, 485, 486, 487], "yet": [4, 6], "yield": [13, 14, 24, 25, 26, 27, 28, 30, 33, 46, 47, 50, 52, 246, 248, 350, 370, 485, 495], "you": [4, 93, 121, 126, 127, 224, 458, 459, 495, 503], "your": [4, 93, 503], "yv": 230, "yy": 230, "z": [13, 14, 16, 21, 23, 24, 25, 26, 27, 28, 30, 36, 40, 41, 42, 43, 45, 46, 47, 50, 52, 75, 92, 105, 106, 114, 118, 132, 149, 150, 151, 152, 154, 155, 156, 167, 210, 211, 222, 230, 231, 352, 353, 354, 380, 467, 480, 486, 487], "zero": [6, 10, 16, 20, 21, 33, 34, 35, 36, 66, 81, 84, 90, 94, 98, 105, 106, 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 138, 143, 150, 154, 155, 167, 169, 174, 175, 179, 180, 181, 182, 187, 193, 194, 196, 198, 199, 200, 203, 207, 223, 224, 226, 228, 232, 236, 238, 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 324, 325, 335, 336, 340, 347, 350, 353, 354, 362, 370, 372, 400, 402, 403, 405, 421, 422, 424, 429, 432, 436, 442, 447, 454, 456, 462, 467, 468, 471, 472, 476, 481, 485, 487], "zeros_lik": [6, 36, 88, 106, 155, 354, 369, 486], "zipf": 6}, "titles": ["Interplay with the Data Parallel Control Library", "C++ backend API Reference", "Data Parallel Extension for NumPy*", "Overview", "Quick Start Guide", "Binary Operations", "Comparison Table NumPy/ DPNP/ CuPy", "Array creation routines", "Data type routines", "Available array data types", "FFT Functions", "dpnp.abs", "dpnp.absolute", "dpnp.acos", "dpnp.acosh", "dpnp.add", "dpnp.all", "dpnp.allclose", "dpnp.amax", "dpnp.amin", "dpnp.angle", "dpnp.any", "dpnp.append", "dpnp.arange", "dpnp.arccos", "dpnp.arccosh", "dpnp.arcsin", "dpnp.arcsinh", "dpnp.arctan", "dpnp.arctan2", "dpnp.arctanh", "dpnp.argmax", "dpnp.argmin", "dpnp.argsort", "dpnp.argwhere", "dpnp.around", "dpnp.array", "dpnp.array_equal", "dpnp.array_equiv", "dpnp.array_split", "dpnp.asanyarray", "dpnp.asarray", "dpnp.asarray_chkfinite", "dpnp.ascontiguousarray", "dpnp.asfarray", "dpnp.asfortranarray", "dpnp.asin", "dpnp.asinh", "dpnp.asnumpy", "dpnp.astype", "dpnp.atan", "dpnp.atan2", "dpnp.atanh", "dpnp.atleast_1d", "dpnp.atleast_2d", "dpnp.atleast_3d", "dpnp.average", "dpnp.bincount", "dpnp.bitwise_and", "dpnp.bitwise_not", "dpnp.bitwise_or", "dpnp.bitwise_xor", "dpnp.broadcast_arrays", "dpnp.broadcast_to", "dpnp.can_cast", "dpnp.cbrt", "dpnp.ceil", "dpnp.choose", "dpnp.clip", "dpnp.column_stack", "dpnp.concat", "dpnp.concatenate", "dpnp.conj", "dpnp.conjugate", "dpnp.convolve", "dpnp.copy", "dpnp.copysign", "dpnp.copyto", "dpnp.correlate", "dpnp.cos", "dpnp.cosh", "dpnp.count_nonzero", "dpnp.cov", "dpnp.cross", "dpnp.cumlogsumexp", "dpnp.cumprod", "dpnp.cumsum", "dpnp.deg2rad", "dpnp.degrees", "dpnp.diag", "dpnp.diag_indices", "dpnp.diag_indices_from", "dpnp.diagflat", "dpnp.diagonal", "dpnp.diff", "dpnp.digitize", "dpnp.divide", "dpnp.dot", "dpnp.dpnp_array.dpnp_array", "dpnp.dsplit", "dpnp.dstack", "dpnp.dtype", "dpnp.ediff1d", "dpnp.einsum", "dpnp.einsum_path", "dpnp.empty", "dpnp.empty_like", "dpnp.equal", "dpnp.erf", "dpnp.exp", "dpnp.exp2", "dpnp.expand_dims", "dpnp.expm1", "dpnp.extract", "dpnp.eye", "dpnp.fabs", "dpnp.fft.fft", "dpnp.fft.fft2", "dpnp.fft.fftfreq", "dpnp.fft.fftn", "dpnp.fft.fftshift", "dpnp.fft.hfft", "dpnp.fft.ifft", "dpnp.fft.ifft2", "dpnp.fft.ifftn", "dpnp.fft.ifftshift", "dpnp.fft.ihfft", "dpnp.fft.irfft", "dpnp.fft.irfft2", "dpnp.fft.irfftn", "dpnp.fft.rfft", "dpnp.fft.rfft2", "dpnp.fft.rfftfreq", "dpnp.fft.rfftn", "dpnp.fill_diagonal", "dpnp.finfo", "dpnp.fix", "dpnp.flatiter", "dpnp.flatnonzero", "dpnp.flip", "dpnp.fliplr", "dpnp.flipud", "dpnp.float_power", "dpnp.floor", "dpnp.floor_divide", "dpnp.fmax", "dpnp.fmin", "dpnp.fmod", "dpnp.from_dlpack", "dpnp.frombuffer", "dpnp.fromfile", "dpnp.fromfunction", "dpnp.fromiter", "dpnp.fromstring", "dpnp.full", "dpnp.full_like", "dpnp.geomspace", "dpnp.get_include", "dpnp.gradient", "dpnp.greater", "dpnp.greater_equal", "dpnp.heaviside", "dpnp.histogram", "dpnp.histogram_bin_edges", "dpnp.hsplit", "dpnp.hstack", "dpnp.hypot", "dpnp.identity", "dpnp.iinfo", "dpnp.imag", "dpnp.indices", "dpnp.inner", "dpnp.invert", "dpnp.isclose", "dpnp.iscomplex", "dpnp.iscomplexobj", "dpnp.isfinite", "dpnp.isinf", "dpnp.isnan", "dpnp.isneginf", "dpnp.isposinf", "dpnp.isreal", "dpnp.isrealobj", "dpnp.isscalar", "dpnp.issubdtype", "dpnp.ix_", "dpnp.kron", "dpnp.left_shift", "dpnp.less", "dpnp.less_equal", "dpnp.linalg.cholesky", "dpnp.linalg.cond", "dpnp.linalg.det", "dpnp.linalg.eig", "dpnp.linalg.eigh", "dpnp.linalg.eigvals", "dpnp.linalg.eigvalsh", "dpnp.linalg.inv", "dpnp.linalg.lstsq", "dpnp.linalg.matrix_power", "dpnp.linalg.matrix_rank", "dpnp.linalg.multi_dot", "dpnp.linalg.norm", "dpnp.linalg.pinv", "dpnp.linalg.qr", "dpnp.linalg.slogdet", "dpnp.linalg.solve", "dpnp.linalg.svd", "dpnp.linalg.tensorinv", "dpnp.linalg.tensorsolve", "dpnp.linspace", "dpnp.loadtxt", "dpnp.log", "dpnp.log10", "dpnp.log1p", "dpnp.log2", "dpnp.logaddexp", "dpnp.logaddexp2", "dpnp.logical_and", "dpnp.logical_not", "dpnp.logical_or", "dpnp.logical_xor", "dpnp.logspace", "dpnp.logsumexp", "dpnp.mask_indices", "dpnp.matmul", "dpnp.max", "dpnp.maximum", "dpnp.mean", "dpnp.median", "dpnp.meshgrid", "dpnp.mgrid", "dpnp.min", "dpnp.minimum", "dpnp.mod", "dpnp.modf", "dpnp.moveaxis", "dpnp.multiply", "dpnp.nan_to_num", "dpnp.nanargmax", "dpnp.nanargmin", "dpnp.nancumprod", "dpnp.nancumsum", "dpnp.nanmax", "dpnp.nanmean", "dpnp.nanmin", "dpnp.nanprod", "dpnp.nanstd", "dpnp.nansum", "dpnp.nanvar", "dpnp.ndarray", "dpnp.ndarray.T", "dpnp.ndarray.__abs__", "dpnp.ndarray.__add__", "dpnp.ndarray.__and__", "dpnp.ndarray.__bool__", "dpnp.ndarray.__complex__", "dpnp.ndarray.__copy__", "dpnp.ndarray.__eq__", "dpnp.ndarray.__float__", "dpnp.ndarray.__floordiv__", "dpnp.ndarray.__ge__", "dpnp.ndarray.__getitem__", "dpnp.ndarray.__gt__", "dpnp.ndarray.__iadd__", "dpnp.ndarray.__iand__", "dpnp.ndarray.__ifloordiv__", "dpnp.ndarray.__ilshift__", "dpnp.ndarray.__imod__", "dpnp.ndarray.__imul__", "dpnp.ndarray.__int__", "dpnp.ndarray.__invert__", "dpnp.ndarray.__ior__", "dpnp.ndarray.__ipow__", "dpnp.ndarray.__irshift__", "dpnp.ndarray.__isub__", "dpnp.ndarray.__itruediv__", "dpnp.ndarray.__ixor__", "dpnp.ndarray.__le__", "dpnp.ndarray.__len__", "dpnp.ndarray.__lshift__", "dpnp.ndarray.__lt__", "dpnp.ndarray.__matmul__", "dpnp.ndarray.__mod__", "dpnp.ndarray.__mul__", "dpnp.ndarray.__ne__", "dpnp.ndarray.__neg__", "dpnp.ndarray.__new__", "dpnp.ndarray.__or__", "dpnp.ndarray.__pos__", "dpnp.ndarray.__pow__", "dpnp.ndarray.__repr__", "dpnp.ndarray.__rshift__", "dpnp.ndarray.__setitem__", "dpnp.ndarray.__str__", "dpnp.ndarray.__sub__", "dpnp.ndarray.__truediv__", "dpnp.ndarray.__xor__", "dpnp.ndarray.all", "dpnp.ndarray.any", "dpnp.ndarray.argmax", "dpnp.ndarray.argmin", "dpnp.ndarray.argsort", "dpnp.ndarray.astype", "dpnp.ndarray.choose", "dpnp.ndarray.clip", "dpnp.ndarray.conj", "dpnp.ndarray.conjugate", "dpnp.ndarray.copy", "dpnp.ndarray.cumprod", "dpnp.ndarray.cumsum", "dpnp.ndarray.diagonal", "dpnp.ndarray.dtype", "dpnp.ndarray.fill", "dpnp.ndarray.flags", "dpnp.ndarray.flat", "dpnp.ndarray.flatten", "dpnp.ndarray.imag", "dpnp.ndarray.item", "dpnp.ndarray.itemsize", "dpnp.ndarray.max", "dpnp.ndarray.mean", "dpnp.ndarray.min", "dpnp.ndarray.nbytes", "dpnp.ndarray.ndim", "dpnp.ndarray.nonzero", "dpnp.ndarray.partition", "dpnp.ndarray.prod", "dpnp.ndarray.put", "dpnp.ndarray.ravel", "dpnp.ndarray.real", "dpnp.ndarray.repeat", "dpnp.ndarray.reshape", "dpnp.ndarray.round", "dpnp.ndarray.searchsorted", "dpnp.ndarray.shape", "dpnp.ndarray.size", "dpnp.ndarray.sort", "dpnp.ndarray.squeeze", "dpnp.ndarray.std", "dpnp.ndarray.strides", "dpnp.ndarray.sum", "dpnp.ndarray.swapaxes", "dpnp.ndarray.take", "dpnp.ndarray.trace", "dpnp.ndarray.transpose", "dpnp.ndarray.var", "dpnp.ndim", "dpnp.negative", "dpnp.nextafter", "dpnp.nonzero", "dpnp.not_equal", "dpnp.ogrid", "dpnp.ones", "dpnp.ones_like", "dpnp.outer", "dpnp.partition", "dpnp.permute_dims", "dpnp.place", "dpnp.positive", "dpnp.pow", "dpnp.power", "dpnp.prod", "dpnp.proj", "dpnp.ptp", "dpnp.put", "dpnp.put_along_axis", "dpnp.putmask", "dpnp.rad2deg", "dpnp.radians", "dpnp.random.RandomState", "dpnp.random.beta", "dpnp.random.binomial", "dpnp.random.bytes", "dpnp.random.chisquare", "dpnp.random.choice", "dpnp.random.dirichlet", "dpnp.random.exponential", "dpnp.random.f", "dpnp.random.gamma", "dpnp.random.geometric", "dpnp.random.gumbel", "dpnp.random.hypergeometric", "dpnp.random.laplace", "dpnp.random.logistic", "dpnp.random.lognormal", "dpnp.random.logseries", "dpnp.random.multinomial", "dpnp.random.multivariate_normal", "dpnp.random.negative_binomial", "dpnp.random.noncentral_chisquare", "dpnp.random.noncentral_f", "dpnp.random.normal", "dpnp.random.pareto", "dpnp.random.permutation", "dpnp.random.poisson", "dpnp.random.power", "dpnp.random.rand", "dpnp.random.randint", "dpnp.random.randn", "dpnp.random.random", "dpnp.random.random_integers", "dpnp.random.random_sample", "dpnp.random.ranf", "dpnp.random.rayleigh", "dpnp.random.sample", "dpnp.random.seed", "dpnp.random.shuffle", "dpnp.random.standard_cauchy", "dpnp.random.standard_exponential", "dpnp.random.standard_gamma", "dpnp.random.standard_normal", "dpnp.random.standard_t", "dpnp.random.triangular", "dpnp.random.uniform", "dpnp.random.vonmises", "dpnp.random.wald", "dpnp.random.weibull", "dpnp.random.zipf", "dpnp.ravel", "dpnp.ravel_multi_index", "dpnp.real", "dpnp.real_if_close", "dpnp.reciprocal", "dpnp.reduce_hypot", "dpnp.remainder", "dpnp.repeat", "dpnp.require", "dpnp.reshape", "dpnp.resize", "dpnp.result_type", "dpnp.right_shift", "dpnp.rint", "dpnp.roll", "dpnp.rollaxis", "dpnp.rot90", "dpnp.round", "dpnp.row_stack", "dpnp.rsqrt", "dpnp.searchsorted", "dpnp.select", "dpnp.shape", "dpnp.sign", "dpnp.signbit", "dpnp.sin", "dpnp.sinh", "dpnp.size", "dpnp.sort", "dpnp.sort_complex", "dpnp.split", "dpnp.sqrt", "dpnp.square", "dpnp.squeeze", "dpnp.stack", "dpnp.std", "dpnp.subtract", "dpnp.sum", "dpnp.swapaxes", "dpnp.take", "dpnp.take_along_axis", "dpnp.tan", "dpnp.tanh", "dpnp.tensordot", "dpnp.tile", "dpnp.trace", "dpnp.transpose", "dpnp.trapezoid", "dpnp.tri", "dpnp.tril", "dpnp.tril_indices", "dpnp.tril_indices_from", "dpnp.trim_zeros", "dpnp.triu", "dpnp.triu_indices", "dpnp.triu_indices_from", "dpnp.true_divide", "dpnp.trunc", "dpnp.unique", "dpnp.unravel_index", "dpnp.unwrap", "dpnp.vander", "dpnp.var", "dpnp.vdot", "dpnp.vsplit", "dpnp.vstack", "dpnp.where", "dpnp.zeros", "dpnp.zeros_like", "API Reference", "Indexing routines", "Linear Algebra", "Logic Functions", "Array Manipulation Routines", "Mathematical functions", "Miscellaneous routines", "Multi-Dimensional Array (ndarray)", "Padding", "Polynomials", "Random Sampling (dpnp.random)", "Routines", "Sorting, Searching, and Counting", "Special Functions", "Statistical Functions", "Universal Functions (ufunc)"], "titleterms": {"The": 7, "__abs__": 252, "__add__": 253, "__and__": 254, "__bool__": 255, "__complex__": 256, "__copy__": 257, "__eq__": 258, "__float__": 259, "__floordiv__": 260, "__ge__": 261, "__getitem__": 262, "__gt__": 263, "__iadd__": 264, "__iand__": 265, "__ifloordiv__": 266, "__ilshift__": 267, "__imod__": 268, "__imul__": 269, "__int__": 270, "__invert__": 271, "__ior__": 272, "__ipow__": 273, "__irshift__": 274, "__isub__": 275, "__itruediv__": 276, "__ixor__": 277, "__le__": 278, "__len__": 279, "__lshift__": 280, "__lt__": 281, "__matmul__": 282, "__mod__": 283, "__mul__": 284, "__ne__": 285, "__neg__": 286, "__new__": 287, "__or__": 288, "__pos__": 289, "__pow__": 290, "__repr__": 291, "__rshift__": 292, "__setitem__": 293, "__str__": 294, "__sub__": 295, "__truediv__": 296, "__xor__": 297, "ab": 11, "absolut": 12, "aco": 13, "acosh": 14, "ad": 492, "add": 15, "algebra": [6, 490], "all": [16, 298], "allclos": 17, "amax": 18, "amin": 19, "angl": 20, "ani": [21, 299], "api": [1, 488], "append": 22, "arang": 23, "arcco": 24, "arccosh": 25, "arcsin": 26, "arcsinh": 27, "arctan": 28, "arctan2": 29, "arctanh": 30, "argmax": [31, 300], "argmin": [32, 301], "argsort": [33, 302], "argwher": 34, "arithmet": [493, 495, 497], "around": 35, "arrai": [6, 7, 9, 36, 489, 491, 492, 495], "array_equ": 37, "array_equiv": 38, "array_split": 39, "asanyarrai": 40, "asarrai": 41, "asarray_chkfinit": 42, "ascontiguousarrai": 43, "asfarrai": 44, "asfortranarrai": 45, "asin": 46, "asinh": 47, "asnumpi": 48, "astyp": [49, 303], "atan": 50, "atan2": 51, "atanh": 52, "atleast_1d": 53, "atleast_2d": 54, "atleast_3d": 55, "attribut": 495, "avail": [9, 503], "averag": [56, 502], "backend": 1, "background": 10, "basic": [492, 497], "beta": 371, "binari": 5, "bincount": 57, "binomi": 372, "bit": [5, 503], "bitwise_and": 58, "bitwise_not": 59, "bitwise_or": 60, "bitwise_xor": 61, "broadcast_arrai": 62, "broadcast_to": 63, "build": [4, 7], "byte": 373, "c": 1, "calcul": 495, "can_cast": 64, "cbrt": 65, "ceil": 66, "chang": 492, "channel": 4, "chisquar": 374, "choic": 375, "choleski": 190, "choos": [67, 304], "class": 7, "clip": [68, 305], "co": 79, "column_stack": 69, "comparison": [6, 491, 495, 503], "complex": 493, "concat": 70, "concaten": 71, "cond": 191, "conda": 4, "conj": [72, 306], "conjug": [73, 307], "construct": 495, "control": 0, "convers": 495, "convolv": 74, "copi": [75, 308], "copysign": 76, "copyto": 77, "correl": [78, 502], "cosh": 80, "count": 500, "count_nonzero": 81, "cov": 82, "creat": 8, "creation": 7, "cross": 83, "cumlogsumexp": 84, "cumprod": [85, 309], "cumsum": [86, 310], "cupi": 6, "custom": 4, "data": [0, 2, 7, 8, 9, 489, 495, 498], "decomposit": 490, "deg2rad": 87, "degre": 88, "det": 192, "detail": 10, "develop": 2, "devic": 4, "diag": 89, "diag_indic": 90, "diag_indices_from": 91, "diagflat": 92, "diagon": [93, 311], "diff": 94, "differ": 493, "digit": 95, "dimens": [10, 492], "dimension": [6, 495], "dirichlet": 376, "discret": 6, "distribut": 498, "divid": 96, "dot": 97, "dpnp": [6, 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, 316, 317, 318, 319, 320, 321, 322, 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, 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, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 498], "dpnp_arrai": 98, "driver": 4, "dsplit": 99, "dstack": 100, "dtype": [101, 312], "ediff1d": 102, "eig": 193, "eigenvalu": 490, "eigh": 194, "eigval": 195, "eigvalsh": 196, "einsum": 103, "einsum_path": 104, "element": [5, 492], "empti": 105, "empty_lik": 106, "equal": 107, "equat": 490, "erf": 108, "error": 501, "exampl": [0, 4], "exist": 7, "exp": 109, "exp2": 110, "expand_dim": 111, "expm1": 112, "expon": 493, "exponenti": 377, "extens": 2, "extract": 113, "extrema": 493, "ey": 114, "f": 378, "fab": 115, "fft": [10, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133], "fft2": 117, "fftfreq": 118, "fftn": 119, "fftshift": 120, "fill": 313, "fill_diagon": 134, "find": 493, "finfo": 135, "fix": 136, "flag": 314, "flat": 315, "flatit": 137, "flatnonzero": 138, "flatten": 316, "flip": 139, "fliplr": 140, "flipud": 141, "float": [493, 503], "float_pow": 142, "floor": 143, "floor_divid": 144, "fmax": 145, "fmin": 146, "fmod": 147, "format": 5, "fourier": 6, "from": [4, 7], "from_dlpack": 148, "frombuff": 149, "fromfil": 150, "fromfunct": 151, "fromit": 152, "fromstr": 153, "full": 154, "full_lik": 155, "function": [10, 491, 493, 501, 502, 503], "gamma": 379, "gener": [489, 498], "geometr": 380, "geomspac": 156, "get_includ": 157, "gradient": 158, "greater": 159, "greater_equ": 160, "guid": 4, "gumbel": 381, "handl": 493, "heavisid": 161, "helper": 10, "hermitian": 10, "hfft": 121, "higher": 10, "histogram": [162, 502], "histogram_bin_edg": 163, "hsplit": 164, "hstack": 165, "hyperbol": 493, "hypergeometr": 382, "hypot": 166, "ident": 167, "ifft": 122, "ifft2": 123, "ifftn": 124, "ifftshift": 125, "ihfft": 126, "iinfo": 168, "imag": [169, 317], "implement": 10, "index": [489, 495], "indic": 170, "infin": 491, "inform": [2, 8, 10], "inner": 171, "insert": 489, "instal": 4, "intel": 4, "interplai": 0, "interpret": 4, "inv": 197, "invert": 172, "irfft": 127, "irfft2": 128, "irfftn": 129, "isclos": 173, "iscomplex": 174, "iscomplexobj": 175, "isfinit": 176, "isinf": 177, "isnan": 178, "isneginf": 179, "isposinf": 180, "isreal": 181, "isrealobj": 182, "isscalar": 183, "issubdtyp": 184, "item": [318, 495], "items": 319, "iter": 489, "ix_": 185, "join": 492, "kind": 492, "kron": 186, "laplac": 383, "layout": 495, "left_shift": 187, "less": 188, "less_equ": 189, "level": 6, "librari": 0, "like": [489, 492], "linalg": [190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209], "linear": [6, 490], "linspac": 210, "loadtxt": 211, "log": 212, "log10": 213, "log1p": 214, "log2": 215, "logaddexp": 216, "logaddexp2": 217, "logarithm": 493, "logic": 491, "logical_and": 218, "logical_not": 219, "logical_or": 220, "logical_xor": 221, "logist": 384, "lognorm": 385, "logseri": 386, "logspac": 222, "logsumexp": 223, "lstsq": 198, "manipul": [492, 495], "mask_indic": 224, "math": 503, "mathemat": 493, "matmul": 225, "matric": 7, "matrix": [7, 490, 495], "matrix_pow": 199, "matrix_rank": 200, "max": [226, 320], "maximum": 227, "mean": [228, 321], "median": 229, "memori": 495, "meshgrid": 230, "method": 495, "mgrid": 231, "min": [232, 322], "minimum": 233, "miscellan": [8, 493, 494], "mod": 234, "modf": 235, "modul": [6, 497], "moveaxi": 236, "multi": [6, 495], "multi_dot": 201, "multinomi": 387, "multipl": 495, "multipli": 237, "multivariate_norm": 388, "nan": 491, "nan_to_num": 238, "nanargmax": 239, "nanargmin": 240, "nancumprod": 241, "nancumsum": 242, "nanmax": 243, "nanmean": 244, "nanmin": 245, "nanprod": 246, "nanstd": 247, "nansum": 248, "nanvar": 249, "nbyte": 323, "ndarrai": [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, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 495], "ndim": [324, 347], "neg": 348, "negative_binomi": 389, "nextaft": 349, "noncentral_chisquar": 390, "noncentral_f": 391, "nonzero": [325, 350], "norm": [202, 490], "normal": [10, 392], "not_equ": 351, "number": [490, 492, 493], "numer": 7, "numpi": [2, 6], "ogrid": 352, "ones": 353, "ones_lik": 354, "oper": [5, 489, 491, 492, 493, 495, 503], "order": 502, "other": [490, 493, 495], "outer": 355, "output": 5, "over": 489, "overview": 3, "pack": 5, "packag": [4, 497], "pad": 496, "parallel": [0, 2], "pareto": 393, "partit": [326, 356], "permut": [394, 498], "permute_dim": 357, "pinv": 203, "place": 358, "point": 493, "poisson": 395, "poly1d": 497, "polynomi": 497, "polyutil": 497, "posit": 359, "pow": 360, "power": [361, 396], "prod": [327, 362], "product": [490, 493], "proj": 363, "ptp": 364, "put": [328, 365], "put_along_axi": 366, "putmask": 367, "python": 4, "qr": 204, "quick": 4, "r": 4, "rad2deg": 368, "radian": 369, "rand": 397, "randint": 398, "randn": 399, "random": [6, 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, 498], "random_integ": 401, "random_sampl": 402, "randomst": 370, "ranf": 403, "rang": 7, "ration": 493, "ravel": [329, 419], "ravel_multi_index": 420, "rayleigh": 404, "real": [10, 330, 421], "real_if_clos": 422, "rearrang": 492, "reciproc": 423, "reduce_hypot": 424, "refer": [1, 488], "remaind": 425, "remov": 492, "repeat": [331, 426], "requir": 427, "reshap": [332, 428], "resiz": 429, "result_typ": 430, "rfft": 130, "rfft2": 131, "rfftfreq": 132, "rfftn": 133, "right_shift": 431, "rint": 432, "roll": 433, "rollaxi": 434, "rot90": 435, "round": [333, 436, 493], "routin": [7, 8, 10, 489, 492, 493, 494, 499], "row_stack": 437, "rsqrt": 438, "sampl": [6, 405, 498], "scikit": 4, "search": 500, "searchsort": [334, 439], "seed": 406, "select": [440, 495], "shape": [7, 335, 441, 492, 495], "shuffl": 407, "sign": 442, "signbit": 443, "simpl": 498, "sin": 444, "sinh": 445, "size": [336, 446], "slogdet": 205, "solv": [206, 490], "sort": [337, 447, 500], "sort_complex": 448, "special": [493, 495, 501], "split": [449, 492], "sqrt": 450, "squar": 451, "squeez": [338, 452], "stack": 453, "standard": 10, "standard_cauchi": 408, "standard_exponenti": 409, "standard_gamma": 410, "standard_norm": 411, "standard_t": 412, "start": 4, "statist": 502, "std": [339, 454], "stride": 340, "subtract": 455, "sum": [341, 456, 493], "summari": 6, "svd": 207, "swapax": [342, 457], "sycl": 4, "t": 251, "tabl": 6, "take": [343, 458], "take_along_axi": 459, "tan": 460, "tanh": 461, "target": 4, "tensordot": 462, "tensorinv": 208, "tensorsolv": 209, "test": [4, 8, 491], "tile": [463, 492], "trace": [344, 464], "transform": [6, 10], "transpos": [345, 465, 492], "trapezoid": 466, "tri": 467, "triangular": 413, "trigonometr": [493, 503], "tril": 468, "tril_indic": 469, "tril_indices_from": 470, "trim_zero": 471, "triu": 472, "triu_indic": 473, "triu_indices_from": 474, "true_divid": 475, "trunc": 476, "truth": 491, "twiddl": 503, "type": [8, 9, 491, 495], "ufunc": 503, "uniform": 414, "uniqu": 477, "univers": 503, "unravel_index": 478, "unwrap": 479, "util": 494, "valu": [7, 491], "vander": 480, "var": [346, 481], "varianc": 502, "vdot": 482, "vector": 490, "vonmis": 415, "vsplit": 483, "vstack": 484, "wald": 416, "weibul": 417, "where": 485, "wise": 5, "zero": 486, "zeros_lik": 487, "zipf": 418}}) \ No newline at end of file