Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from rust-ndarray:master #1

Open
wants to merge 822 commits into
base: master
Choose a base branch
from

Conversation

pull[bot]
Copy link

@pull pull bot commented Jan 27, 2020

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Jan 27, 2020
@pull pull bot added the merge-conflict Resolve conflicts manually label Feb 19, 2020
jturner314 and others added 28 commits July 30, 2022 16:03
Fix CI failures (mostly linting with clippy)
Cherry pick non-breaking portions of #1171 to 0.15.x
Make ArrayBase::get_ptr(_mut) public to enable indexing into raw views.
Fix formatting.
Fixed typos, reformulated sentences for an overall clearer document.
Try to make the master branch shipshape
Add NumPy examples combining slicing and assignment
bluss and others added 30 commits August 8, 2024 20:58
Update CI settings: Use PR check instead of Merge Queue, and check rustdoc
Lost in the recent workspace refactor.
We compute A B -> C with matrices A, B, C

With the blas (cblas) interface it supports matrices that adhere to
certain criteria. They should be contiguous on one dimension (stride=1).

We glance a little at how numpy does this to try to catch all cases.

In short, we accept A, B contiguous on either axis (row or column
major). We use the case where C is (weakly) row major, but if it is
column major we transpose A, B, C => A^t, B^t, C^t so that we are back
to the C row major case.

(Weakly = contiguous with stride=1 on that inner dimension, but stride
for the other dimension can be larger; to differentiate from strictly
whole array contiguous.)

Minor change to the gemv function, no functional change, only updating
due to the refactoring of blas layout functions.

Fixes #1278
If we have a matrix of dimension say 5 x 5, BLAS requires the leading
stride to be >= 5. Smaller cases are possible for read-only array views
in ndarray(broadcasting and custom strides).

In this case we mark the array as not BLAS compatible
Using cblas we can simplify this further to a more satisfying
translation (from ndarray to BLAS), much simpler logic.

Avoids creating and handling an extra layer of array views.
Add a crate with a mock blas implementation, so that we can assert that
cblas_sgemm etc are called (depending on memory layout).
Fix using BLAS for all compatible cases of memory layout
Use git's tformat to get a newline on the last entry, and
then we include the last commit hash in the listing too.
It separates feature selection for different dependency classes (dev,
build, regular), which makes sense even if it seems to have no impact at
the moment.
Further clarify transpose logic by putting it into BlasOrder methods.
Implement a checkerboard pattern in input data just to test with some
another kind of input.
…1418)

* Fixes infinite recursion and off-by-one error

* Avoids overflow using saturating arithmetic

* Removes unused import

* Fixes bug for isize::MAX for triu

* Fix formatting

* Uses broadcast indices to remove D::Smaller: Copy trait bound
Refactor and simplify BLAS gemm call further
Last mut did not ensure the array was unique before calling uget_mut.
The required properties were protected by a debug assertion, but a clear
bug in release mode.

Adding tests that would have caught this.
Necessary for allowing format-on-save to use nightly for this repo only.
Just removed double and
* implement forward finite differneces on arrays

* implement tests for the  method

* remove some heap allocations
Fixes no_std + approx combination

These two features can coexist; fixing them included:
- Slightly altering tests to avoid `std` fns
- Adding `feature = "std"` on some "approx" tests
- Adding a line to the test script to catch this in the future
This is carefully constructed to allow Miri to test most of `ndarray` without slowing down CI/CD very badly; as a result, it skips a number of slow tests. See #1446 for a list.

It also excludes `blas` because Miri cannot call `cblas_gemm`, and it excludes `rayon` because it considers the still-running thread pool to be a leak. `rayon` can be re-added when rust-lang/miri#1371 is resolved.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⤵️ pull merge-conflict Resolve conflicts manually
Projects
None yet
Development

Successfully merging this pull request may close these issues.