Skip to content

Commit f68dd3c

Browse files
Extend nan_to_num with broadcast support of nan, posinf, and neginf d68603f
1 parent e1804eb commit f68dd3c

File tree

760 files changed

+1965
-1842
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

760 files changed

+1965
-1842
lines changed

pull/2754/.buildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: 303f2e5993f8c1630c0ab2317bc9c275
3+
config: 1ca7f3a69d1234acccbd3a9d56a0d0c5
44
tags: 645f666f9bcd5a90fca523b33c5a78b7

pull/2754/_modules/dpnp/dpnp_array.html

Lines changed: 68 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
</script>
1515

1616
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
17-
<title>dpnp.dpnp_array &mdash; Data Parallel Extension for NumPy 0.20.0dev2+17.g665bbc7b684 documentation</title>
17+
<title>dpnp.dpnp_array &mdash; Data Parallel Extension for NumPy 0.20.0dev2+19.gd68603fccb7 documentation</title>
1818
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=03e43079" />
1919
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
2020

2121

2222
<script src="../../_static/jquery.js?v=5d32c60e"></script>
2323
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
24-
<script src="../../_static/documentation_options.js?v=4a91de6c"></script>
24+
<script src="../../_static/documentation_options.js?v=0e011d4e"></script>
2525
<script src="../../_static/doctools.js?v=9bcbadda"></script>
2626
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
2727
<script src="../../_static/js/theme.js"></script>
@@ -192,6 +192,16 @@ <h1>Source code for dpnp.dpnp_array</h1><div class="highlight"><pre>
192192
<span class="k">else</span><span class="p">:</span>
193193
<span class="n">buffer</span> <span class="o">=</span> <span class="n">usm_type</span>
194194

195+
<span class="k">if</span> <span class="n">strides</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
196+
<span class="c1"># dpctl expects strides as elements displacement in memory,</span>
197+
<span class="c1"># while dpnp (and numpy as well) relies on bytes displacement</span>
198+
<span class="k">if</span> <span class="n">dtype</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
199+
<span class="n">dtype</span> <span class="o">=</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">default_float_type</span><span class="p">(</span>
200+
<span class="n">device</span><span class="o">=</span><span class="n">device</span><span class="p">,</span> <span class="n">sycl_queue</span><span class="o">=</span><span class="n">sycl_queue</span>
201+
<span class="p">)</span>
202+
<span class="n">it_sz</span> <span class="o">=</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">dtype</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="o">.</span><span class="n">itemsize</span>
203+
<span class="n">strides</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">el</span> <span class="o">//</span> <span class="n">it_sz</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">strides</span><span class="p">)</span>
204+
195205
<span class="n">sycl_queue_normalized</span> <span class="o">=</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">get_normalized_queue_device</span><span class="p">(</span>
196206
<span class="n">device</span><span class="o">=</span><span class="n">device</span><span class="p">,</span> <span class="n">sycl_queue</span><span class="o">=</span><span class="n">sycl_queue</span>
197207
<span class="p">)</span>
@@ -2050,16 +2060,53 @@ <h1>Source code for dpnp.dpnp_array</h1><div class="highlight"><pre>
20502060
<span class="nd">@property</span>
20512061
<span class="k">def</span><span class="w"> </span><span class="nf">strides</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
20522062
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
2053-
<span class="sd"> Return memory displacement in array elements, upon unit</span>
2054-
<span class="sd"> change of respective index.</span>
2063+
<span class="sd"> Tuple of bytes to step in each dimension when traversing an array.</span>
20552064

2056-
<span class="sd"> For example, for strides ``(s1, s2, s3)`` and multi-index</span>
2057-
<span class="sd"> ``(i1, i2, i3)`` position of the respective element relative</span>
2058-
<span class="sd"> to zero multi-index element is ``s1*s1 + s2*i2 + s3*i3``.</span>
2065+
<span class="sd"> The byte offset of element ``(i[0], i[1], ..., i[n])`` in an array `a`</span>
2066+
<span class="sd"> is::</span>
20592067

2060-
<span class="sd"> &quot;&quot;&quot;</span>
2068+
<span class="sd"> offset = sum(dpnp.array(i) * a.strides)</span>
20612069

2062-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_array_obj</span><span class="o">.</span><span class="n">strides</span>
2070+
<span class="sd"> For full documentation refer to :obj:`numpy.ndarray.strides`.</span>
2071+
2072+
<span class="sd"> See Also</span>
2073+
<span class="sd"> --------</span>
2074+
<span class="sd"> :obj:`dpnp.lib.stride_tricks.as_strided` : Return a view into the array</span>
2075+
<span class="sd"> with given shape and strides.</span>
2076+
2077+
<span class="sd"> Examples</span>
2078+
<span class="sd"> --------</span>
2079+
<span class="sd"> &gt;&gt;&gt; import dpnp as np</span>
2080+
<span class="sd"> &gt;&gt;&gt; y = np.reshape(np.arange(2 * 3 * 4, dtype=np.int32), (2, 3, 4))</span>
2081+
<span class="sd"> &gt;&gt;&gt; y</span>
2082+
<span class="sd"> array([[[ 0, 1, 2, 3],</span>
2083+
<span class="sd"> [ 4, 5, 6, 7],</span>
2084+
<span class="sd"> [ 8, 9, 10, 11]],</span>
2085+
<span class="sd"> [[12, 13, 14, 15],</span>
2086+
<span class="sd"> [16, 17, 18, 19],</span>
2087+
<span class="sd"> [20, 21, 22, 23]]], dtype=np.int32)</span>
2088+
<span class="sd"> &gt;&gt;&gt; y.strides</span>
2089+
<span class="sd"> (48, 16, 4)</span>
2090+
<span class="sd"> &gt;&gt;&gt; y[1, 1, 1]</span>
2091+
<span class="sd"> array(17, dtype=int32)</span>
2092+
<span class="sd"> &gt;&gt;&gt; offset = sum(i * s for i, s in zip((1, 1, 1), y.strides))</span>
2093+
<span class="sd"> &gt;&gt;&gt; offset // y.itemsize</span>
2094+
<span class="sd"> 17</span>
2095+
2096+
<span class="sd"> &gt;&gt;&gt; x = np.reshape(np.arange(5*6*7*8, dtype=np.int32), (5, 6, 7, 8))</span>
2097+
<span class="sd"> &gt;&gt;&gt; x = x.transpose(2, 3, 1, 0)</span>
2098+
<span class="sd"> &gt;&gt;&gt; x.strides</span>
2099+
<span class="sd"> (32, 4, 224, 1344)</span>
2100+
<span class="sd"> &gt;&gt;&gt; offset = sum(i * s for i, s in zip((3, 5, 2, 2), x.strides))</span>
2101+
<span class="sd"> &gt;&gt;&gt; x[3, 5, 2, 2]</span>
2102+
<span class="sd"> array(813, dtype=int32)</span>
2103+
<span class="sd"> &gt;&gt;&gt; offset // x.itemsize</span>
2104+
<span class="sd"> 813</span>
2105+
2106+
<span class="sd"> &quot;&quot;&quot;</span>
2107+
2108+
<span class="n">it_sz</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">itemsize</span>
2109+
<span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">el</span> <span class="o">*</span> <span class="n">it_sz</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_array_obj</span><span class="o">.</span><span class="n">strides</span><span class="p">)</span>
20632110

20642111
<div class="viewcode-block" id="dpnp_array.sum">
20652112
<a class="viewcode-back" href="../../reference/generated/dpnp.dpnp_array.dpnp_array.sum.html#dpnp.dpnp_array.dpnp_array.sum">[docs]</a>
@@ -2562,23 +2609,20 @@ <h1>Source code for dpnp.dpnp_array</h1><div class="highlight"><pre>
25622609

25632610
<span class="c1"># resize on last axis only</span>
25642611
<span class="n">axis</span> <span class="o">=</span> <span class="n">ndim</span> <span class="o">-</span> <span class="mi">1</span>
2565-
<span class="k">if</span> <span class="n">old_sh</span><span class="p">[</span><span class="n">axis</span><span class="p">]</span> <span class="o">!=</span> <span class="mi">1</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">!=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">old_strides</span><span class="p">[</span><span class="n">axis</span><span class="p">]</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
2612+
<span class="k">if</span> <span class="p">(</span>
2613+
<span class="n">old_sh</span><span class="p">[</span><span class="n">axis</span><span class="p">]</span> <span class="o">!=</span> <span class="mi">1</span>
2614+
<span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">!=</span> <span class="mi">0</span>
2615+
<span class="ow">and</span> <span class="n">old_strides</span><span class="p">[</span><span class="n">axis</span><span class="p">]</span> <span class="o">!=</span> <span class="n">old_itemsz</span>
2616+
<span class="p">):</span>
25662617
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
25672618
<span class="s2">&quot;To change to a dtype of a different size, &quot;</span>
25682619
<span class="s2">&quot;the last axis must be contiguous&quot;</span>
25692620
<span class="p">)</span>
25702621

25712622
<span class="c1"># normalize strides whenever itemsize changes</span>
2572-
<span class="k">if</span> <span class="n">old_itemsz</span> <span class="o">&gt;</span> <span class="n">new_itemsz</span><span class="p">:</span>
2573-
<span class="n">new_strides</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span>
2574-
<span class="n">el</span> <span class="o">*</span> <span class="p">(</span><span class="n">old_itemsz</span> <span class="o">//</span> <span class="n">new_itemsz</span><span class="p">)</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">old_strides</span>
2575-
<span class="p">)</span>
2576-
<span class="k">else</span><span class="p">:</span>
2577-
<span class="n">new_strides</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span>
2578-
<span class="n">el</span> <span class="o">//</span> <span class="p">(</span><span class="n">new_itemsz</span> <span class="o">//</span> <span class="n">old_itemsz</span><span class="p">)</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">old_strides</span>
2579-
<span class="p">)</span>
2580-
<span class="n">new_strides</span><span class="p">[</span><span class="n">axis</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
2581-
<span class="n">new_strides</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">new_strides</span><span class="p">)</span>
2623+
<span class="n">new_strides</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span>
2624+
<span class="n">old_strides</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">if</span> <span class="n">i</span> <span class="o">!=</span> <span class="n">axis</span> <span class="k">else</span> <span class="n">new_itemsz</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ndim</span><span class="p">)</span>
2625+
<span class="p">)</span>
25822626

25832627
<span class="n">new_dim</span> <span class="o">=</span> <span class="n">old_sh</span><span class="p">[</span><span class="n">axis</span><span class="p">]</span> <span class="o">*</span> <span class="n">old_itemsz</span>
25842628
<span class="k">if</span> <span class="n">new_dim</span> <span class="o">%</span> <span class="n">new_itemsz</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
@@ -2588,9 +2632,10 @@ <h1>Source code for dpnp.dpnp_array</h1><div class="highlight"><pre>
25882632
<span class="p">)</span>
25892633

25902634
<span class="c1"># normalize shape whenever itemsize changes</span>
2591-
<span class="n">new_sh</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">old_sh</span><span class="p">)</span>
2592-
<span class="n">new_sh</span><span class="p">[</span><span class="n">axis</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_dim</span> <span class="o">//</span> <span class="n">new_itemsz</span>
2593-
<span class="n">new_sh</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">new_sh</span><span class="p">)</span>
2635+
<span class="n">new_sh</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span>
2636+
<span class="n">old_sh</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">if</span> <span class="n">i</span> <span class="o">!=</span> <span class="n">axis</span> <span class="k">else</span> <span class="n">new_dim</span> <span class="o">//</span> <span class="n">new_itemsz</span>
2637+
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ndim</span><span class="p">)</span>
2638+
<span class="p">)</span>
25942639

25952640
<span class="k">return</span> <span class="n">dpnp_array</span><span class="p">(</span>
25962641
<span class="n">new_sh</span><span class="p">,</span>

pull/2754/_modules/dpnp/dpnp_array_api_info.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
</script>
1515

1616
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
17-
<title>dpnp.dpnp_array_api_info &mdash; Data Parallel Extension for NumPy 0.20.0dev2+17.g665bbc7b684 documentation</title>
17+
<title>dpnp.dpnp_array_api_info &mdash; Data Parallel Extension for NumPy 0.20.0dev2+19.gd68603fccb7 documentation</title>
1818
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=03e43079" />
1919
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
2020

2121

2222
<script src="../../_static/jquery.js?v=5d32c60e"></script>
2323
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
24-
<script src="../../_static/documentation_options.js?v=4a91de6c"></script>
24+
<script src="../../_static/documentation_options.js?v=0e011d4e"></script>
2525
<script src="../../_static/doctools.js?v=9bcbadda"></script>
2626
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
2727
<script src="../../_static/js/theme.js"></script>

pull/2754/_modules/dpnp/dpnp_flatiter.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
</script>
1515

1616
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
17-
<title>dpnp.dpnp_flatiter &mdash; Data Parallel Extension for NumPy 0.20.0dev2+17.g665bbc7b684 documentation</title>
17+
<title>dpnp.dpnp_flatiter &mdash; Data Parallel Extension for NumPy 0.20.0dev2+19.gd68603fccb7 documentation</title>
1818
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=03e43079" />
1919
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
2020

2121

2222
<script src="../../_static/jquery.js?v=5d32c60e"></script>
2323
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
24-
<script src="../../_static/documentation_options.js?v=4a91de6c"></script>
24+
<script src="../../_static/documentation_options.js?v=0e011d4e"></script>
2525
<script src="../../_static/doctools.js?v=9bcbadda"></script>
2626
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
2727
<script src="../../_static/js/theme.js"></script>

pull/2754/_modules/dpnp/dpnp_iface.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
</script>
1515

1616
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
17-
<title>dpnp.dpnp_iface &mdash; Data Parallel Extension for NumPy 0.20.0dev2+17.g665bbc7b684 documentation</title>
17+
<title>dpnp.dpnp_iface &mdash; Data Parallel Extension for NumPy 0.20.0dev2+19.gd68603fccb7 documentation</title>
1818
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=03e43079" />
1919
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
2020

2121

2222
<script src="../../_static/jquery.js?v=5d32c60e"></script>
2323
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
24-
<script src="../../_static/documentation_options.js?v=4a91de6c"></script>
24+
<script src="../../_static/documentation_options.js?v=0e011d4e"></script>
2525
<script src="../../_static/doctools.js?v=9bcbadda"></script>
2626
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
2727
<script src="../../_static/js/theme.js"></script>

0 commit comments

Comments
 (0)