<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/numpy.git/numpy/core/include, branch v1.17.0rc2</title>
<subtitle>github.com: numpy/numpy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/'/>
<entry>
<title>MAINT: move location of bitgen.h</title>
<updated>2019-06-27T23:27:47+00:00</updated>
<author>
<name>mattip</name>
<email>matti.picus@gmail.com</email>
</author>
<published>2019-06-27T23:17:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=14c333972d64fce85d06d74bc673045f32da7b5f'/>
<id>14c333972d64fce85d06d74bc673045f32da7b5f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>BUG: fix compilation of 3rdparty modules with Py_LIMITED_API enabled</title>
<updated>2019-06-13T08:21:04+00:00</updated>
<author>
<name>Maksim Shabunin</name>
<email>maksim.shabunin@gmail.com</email>
</author>
<published>2019-06-06T13:27:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=b36f02b9246aacaac2ee999995694cc6868eb81b'/>
<id>b36f02b9246aacaac2ee999995694cc6868eb81b</id>
<content type='text'>
There are no macros PyTuple_GET_SIZE and PyTuple_GET_ITEM available when compiling with enabled Py_LIMITED_API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are no macros PyTuple_GET_SIZE and PyTuple_GET_ITEM available when compiling with enabled Py_LIMITED_API.
</pre>
</div>
</content>
</entry>
<entry>
<title>BUG: Adding macro HAVE_ATTRIBUTE_TARGET_@ISA@_WITH_INTRINSICS</title>
<updated>2019-04-19T17:47:15+00:00</updated>
<author>
<name>Raghuveer Devulapalli</name>
<email>raghuveer.devulapalli@intel.com</email>
</author>
<published>2019-03-28T22:07:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=651e03c0019d4c4c6ca8c43cb7d7c0d344a72cc1'/>
<id>651e03c0019d4c4c6ca8c43cb7d7c0d344a72cc1</id>
<content type='text'>
1) use __builtin_cpu_supports("avx512f") only for gcc ver &gt;= 5

2) Introduced two new macro's:
HAVE_ATTRIBUTE_TARGET_@ISA@_WITH_INTRINSICS for ensuring compiler can
compile functions that use intrinsics and are compiled with avx2/avx512f
attributes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1) use __builtin_cpu_supports("avx512f") only for gcc ver &gt;= 5

2) Introduced two new macro's:
HAVE_ATTRIBUTE_TARGET_@ISA@_WITH_INTRINSICS for ensuring compiler can
compile functions that use intrinsics and are compiled with avx2/avx512f
attributes
</pre>
</div>
</content>
</entry>
<entry>
<title>ENH: vectorizing float32 implementation of np.exp &amp; np.log</title>
<updated>2019-04-19T17:47:15+00:00</updated>
<author>
<name>Raghuveer Devulapalli</name>
<email>raghuveer.devulapalli@intel.com</email>
</author>
<published>2019-03-05T17:13:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=9754a207828f377654c79873e38d475bb87d98de'/>
<id>9754a207828f377654c79873e38d475bb87d98de</id>
<content type='text'>
This commit implements vectorized single precision exponential and
natural log using AVX2 and AVX512.

Accuracy:

| Function | Max ULP Error | Max Relative Error |
|----------|---------------|--------------------|
| np.exp   | 2.52          | 2.1E-07            |
| np.log   | 3.83          | 2.4E-07            |

Performance:

(1) Micro-benchmarks: measured execution time of np.exp and np.log using
timeit package in python. Each function is executed 1000 times and this
is repeated 100 times. The standard deviation for all the runs was less
than 2% of their mean value and hence not included in the data. The
vectorized implementation was upto 7.6x faster than the scalar version.

| Function | NumPy1.16 | AVX2   | AVX512 | AVX2 speedup | AVX512 speedup |
| -------- | --------- | ------ | ------ | ------------ | -------------- |
| np.exp   | 0.395s    | 0.112s | 0.055s | 3.56x        | 7.25x          |
| np.log   | 0.456s    | 0.147s | 0.059s | 3.10x        | 7.64x          |

(2) Logistic regression: exp and log are heavily used in training neural
networks (as part of sigmoid activation function and loss function
respectively). This patch significantly speeds up training a logistic
regression model. As an example, we measured how much time it takes to
train a model with 15 features using 1000 training data points. We
observed a 2x speed up to train the model to achieve a loss function
error &lt; 10E-04.

| Function       | NumPy1.16  | AVX2   | AVX512 | AVX2 speedup | AVX512 speedup |
| -------------- | ---------- | ------ | ------ | ------------ | -------------- |
| logistic.train | 121.0s     | 75.02s | 60.60s | 1.61x        | 2.02x          |
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit implements vectorized single precision exponential and
natural log using AVX2 and AVX512.

Accuracy:

| Function | Max ULP Error | Max Relative Error |
|----------|---------------|--------------------|
| np.exp   | 2.52          | 2.1E-07            |
| np.log   | 3.83          | 2.4E-07            |

Performance:

(1) Micro-benchmarks: measured execution time of np.exp and np.log using
timeit package in python. Each function is executed 1000 times and this
is repeated 100 times. The standard deviation for all the runs was less
than 2% of their mean value and hence not included in the data. The
vectorized implementation was upto 7.6x faster than the scalar version.

| Function | NumPy1.16 | AVX2   | AVX512 | AVX2 speedup | AVX512 speedup |
| -------- | --------- | ------ | ------ | ------------ | -------------- |
| np.exp   | 0.395s    | 0.112s | 0.055s | 3.56x        | 7.25x          |
| np.log   | 0.456s    | 0.147s | 0.059s | 3.10x        | 7.64x          |

(2) Logistic regression: exp and log are heavily used in training neural
networks (as part of sigmoid activation function and loss function
respectively). This patch significantly speeds up training a logistic
regression model. As an example, we measured how much time it takes to
train a model with 15 features using 1000 training data points. We
observed a 2x speed up to train the model to achieve a loss function
error &lt; 10E-04.

| Function       | NumPy1.16  | AVX2   | AVX512 | AVX2 speedup | AVX512 speedup |
| -------------- | ---------- | ------ | ------ | ------------ | -------------- |
| logistic.train | 121.0s     | 75.02s | 60.60s | 1.61x        | 2.02x          |
</pre>
</div>
</content>
</entry>
<entry>
<title>BUG: Add timsort without breaking the API.</title>
<updated>2019-02-07T21:54:27+00:00</updated>
<author>
<name>Charles Harris</name>
<email>charlesr.harris@gmail.com</email>
</author>
<published>2019-02-07T02:01:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=d3eb626ef41e1302631b5154037567b9cc02630d'/>
<id>d3eb626ef41e1302631b5154037567b9cc02630d</id>
<content type='text'>
In order to maintain forward compatibility it is necessary to keep the
size of PyArray_ArrFuncs struct fixed. The usual trick of adding new
elements to the end of the structure is not available in this case
because the struct may be instanciated by user types and we have no way
to know whether the new or old struct is in play.

The solution adopted here is the reuse the (a)mergesort slots for stable
sorts of all kinds, with the actual kind set when the struct is
initialized. The '(a)mergesort' option thus becomes an alias for
'stable', but we keep it for backwards compatibility.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to maintain forward compatibility it is necessary to keep the
size of PyArray_ArrFuncs struct fixed. The usual trick of adding new
elements to the end of the structure is not available in this case
because the struct may be instanciated by user types and we have no way
to know whether the new or old struct is in play.

The solution adopted here is the reuse the (a)mergesort slots for stable
sorts of all kinds, with the actual kind set when the struct is
initialized. The '(a)mergesort' option thus becomes an alias for
'stable', but we keep it for backwards compatibility.
</pre>
</div>
</content>
</entry>
<entry>
<title>ENH: preliminary numeric timsort</title>
<updated>2019-01-21T12:42:36+00:00</updated>
<author>
<name>wtli</name>
<email>liwt31@163.com</email>
</author>
<published>2018-11-12T03:59:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=19952f4ad0345f8ea0398b4983384c3dc8a8f3bb'/>
<id>19952f4ad0345f8ea0398b4983384c3dc8a8f3bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>BUG: Added parens to macro argument expansions</title>
<updated>2019-01-15T19:30:46+00:00</updated>
<author>
<name>Joseph Fox-Rabinovitz</name>
<email>madphysicist@users.noreply.github.com</email>
</author>
<published>2019-01-15T19:30:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=ac39d763bc2700f6595d806a4bca8a2a62cecab6'/>
<id>ac39d763bc2700f6595d806a4bca8a2a62cecab6</id>
<content type='text'>
Some of the arguments were not being expanded in parens. Should be a pretty straightforward fix. This is not an exhaustive fix, but most of the other macros in this file look OK.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some of the arguments were not being expanded in parens. Should be a pretty straightforward fix. This is not an exhaustive fix, but most of the other macros in this file look OK.</pre>
</div>
</content>
</entry>
<entry>
<title>BUG: reference cycle in np.vectorize (#11977)</title>
<updated>2019-01-09T14:28:09+00:00</updated>
<author>
<name>Matti Picus</name>
<email>matti.picus@gmail.com</email>
</author>
<published>2019-01-09T14:28:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=f5b6850f231de80b067e06e01d11bec4bd535c58'/>
<id>f5b6850f231de80b067e06e01d11bec4bd535c58</id>
<content type='text'>
This implements cyclic support by adding `tp_traverse` to ufuns which may contain
a user provided object function (`np.frompyfunc`). Ufuncs that do not add this are not
added to the circular reference count tracking.

The ufunc does not need to implement `tp_clear` because it is an immutable object.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This implements cyclic support by adding `tp_traverse` to ufuns which may contain
a user provided object function (`np.frompyfunc`). Ufuncs that do not add this are not
added to the circular reference count tracking.

The ufunc does not need to implement `tp_clear` because it is an immutable object.</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #12419 from timfel/fix-fill-funcs</title>
<updated>2018-11-24T22:26:04+00:00</updated>
<author>
<name>Charles Harris</name>
<email>charlesr.harris@gmail.com</email>
</author>
<published>2018-11-24T22:26:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=b47ed76ebfbbd91b5d475eb19043a98e95dc2ad5'/>
<id>b47ed76ebfbbd91b5d475eb19043a98e95dc2ad5</id>
<content type='text'>
Fix PyArray_FillFunc function definitions</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix PyArray_FillFunc function definitions</pre>
</div>
</content>
</entry>
<entry>
<title>ENH: Fix PyArray_FillFunc definitions to return an int as per typedef</title>
<updated>2018-11-19T14:22:12+00:00</updated>
<author>
<name>Tim Felgentreff</name>
<email>tim.felgentreff@oracle.com</email>
</author>
<published>2018-11-19T14:18:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/numpy.git/commit/?id=46e9fd95d96fc15b567bf3c324129fe89bdc0713'/>
<id>46e9fd95d96fc15b567bf3c324129fe89bdc0713</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
