Commit Graph

521 Commits

Author SHA1 Message Date
Sébastien Crozet
5ad68f486d
Introduce Storage::forget_elements() to fix memory leak in Matrix::generic_resize() (#1416)
* Add Storage::forget

* Adjust implementations of Reallocator to use Storage::forget

* Fix formatting

* Rename forget to forget_elements and add safety comments

* Update comments in Reallocator implementations

---------

Co-authored-by: Nick Mertin <nickmertin@gmail.com>
2024-06-23 11:46:20 +02:00
Andreas Borgen Longva
eb228faa2b
Improved stack! implementation, tests (#1375)
* Add macro for concatenating matrices

* Replace DimUnify with DimEq::representative

* Add some simple cat macro output generation tests

* Fix formatting in cat macro code

* Add random prefix to cat macro output

* Add simple quote_spanned for cat macro

* Use `generic_view_mut` in cat macro

* Fix clippy lints in cat macro

* Clean up documentation for cat macro

* Remove identity literal from cat macro

* Allow references in input to cat macro

* Rename cat macro to stack

* Add more stack macro tests

* Add comment to explain reason for prefix in stack! macro

* Refactor matrix!, stack! macros into separate modules

* Take all blocks by reference in stack! macro

* Make empty stack![] invocation well-defined

* Fix stack! macro incorrect reference to data

* More extensive tests for stack! macro

* Move nalgebra-macros tests to nalgebra tests

By testing matrix!, stack! macros etc. in nalgebra, we ensure that
these macros are used in the same way that users will be using them.

* Fix stack! code generation tests

* Add back nalgebra as dev-dependency of nalgebra-macros

* Fix accidental wrong matrix! macro references in docs

* Rewrite stack! documentation for clarity

* Formatting

* Skip formatting of macro, rustfmt messes it up

* Rewrite stack! impl for improved clarity, Span behavior

This improves error messages upon dimension mismatch, among other
things. I've also tried to make the implementation easier to understand,
adding some comments to help the reader understand the individual steps.

* Use SameNumberOfRows/Columns instead of DimEq in stack! macro

This gives more accurate compiler errors if matrix dimensions
are mismatched.

* Check that stack! panics at runtime for basic dimension mismatch

* Add suggested edge cases from initial PR to tests

* stack! impl: use fixed prefix everywhere

This ensures that the expected generated code in tests
is the actual generated code when used in the wild.

* nalgebra-macros: Remove clippy pedantic, fix clippy complaints

pedantic seems to be mostly intent on wasting the programmer's time

* Add stack! sanity tests for built-ins and Complex

* Fix formatting in test

* Improve readability of format_ident! calls in stack! impl

* fix trybuild tests

* chore: run tests with a specific rust version

* More trybuild fixes

---------

Co-authored-by: Birk Tjelmeland <git@birktj.no>
Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
2024-06-23 11:29:28 +02:00
Sébastien Crozet
292abfbaa0
chore: update to simba 0.9 (#1415) 2024-06-22 19:06:20 +02:00
Markus Mayer
42a9dbeb54 Fix typo in ArrayStorage documentation comment
Signed-off-by: Markus Mayer <widemeadows@gmail.com>
2024-06-17 12:27:10 -07:00
Sébastien Crozet
c23807ac5d
feat: use GAT to remove the scalar type T from the Allocator trait (#1397) 2024-06-12 11:16:06 +02:00
Andreas Borgen Longva
9bc7f8b0d8
Merge pull request #1383 from derchr/column-major-fix
Fix false row-major comment in doc
2024-04-30 14:22:19 +02:00
Adrian H
e84ea21c74
Fixed a typo in documentation in matrix_view.rs 2024-04-22 19:51:49 -07:00
Derek Christ
28d04b61cd Fix false row-major comment in doc
In the documentation of RawStorage::stride it was falsely claimed that
the storage of the matrix happens in a row-major fashion. In fact it is
column-major.
2024-04-18 18:07:21 +02:00
Yotam Ofek
095c561b60
Apply suggestions from code review
Co-authored-by: tpdickso <terence.dickson.prf@gmail.com>
2024-03-20 19:55:03 +02:00
Yotam Ofek
d884a7e2d0 fmt 2024-03-19 16:39:28 +00:00
Yotam Ofek
546d06b541 Update src/base/storage.rs
Co-authored-by: tpdickso <terence.dickson.prf@gmail.com>
2024-03-19 16:39:28 +00:00
Yotam Ofek
adc3a8103b Fix UB in RawStorageMut::swap_unchecked_linear 2024-03-19 16:39:28 +00:00
Benjamin Saunders
7866bcee5c Remove CUDA support relying on abandoned toolchain 2024-01-11 23:09:17 -08:00
Julian Knodt
1e0cb7bc09
Fix Clippy Warnings (#1300) 2023-12-16 13:54:38 -08:00
Bruce Mitchener
c3fe38b318 docs: Fix unbalanced backticks. 2023-12-10 14:04:53 -08:00
Sébastien Crozet
a91e3b0d89
Merge pull request #1315 from yotamofek/owned-view-iter
Allow creating matrix iter with an owned view
2023-11-12 23:29:41 +01:00
Sébastien Crozet
06b8d38970 fix no-std builds. 2023-11-12 23:17:17 +01:00
Yotam Ofek
1195eadd1a Allow creating matrix iter with an owned view 2023-11-12 08:19:29 +00:00
Alessandro Rocco Scisca
0887b875a5 Implement Default trait for sparse matrix types 2023-10-30 17:50:56 +00:00
Bruce Mitchener
1d9a4bf6ec clippy: Fix needless_borrow warnings. 2023-08-19 00:36:24 +07:00
Bruce Mitchener
cb2ed212ed clippy: Don't need lazy eval for len calls. 2023-08-15 14:46:35 +07:00
Andreas Borgen Longva
6ac9d8995c
Merge pull request #1276 from waywardmonkeys/fix-rkyv-feature-doc-warnings
docs: Fix 2 warnings when building with rkyv.
2023-08-15 09:19:07 +02:00
Bruce Mitchener
226761323f docs: Fix 2 warnings when building with rkyv. 2023-08-14 17:23:59 +07:00
Bruce Mitchener
a2fd72dfb9 split_at is only used by Rayon code.
This fixes an unused code warning. Since the code is `pub(crate)`,
it was only available within the crate and only used by Rayon
code, so it is no functional change to not compile it except
when the right feature is enabled.

Also, fix a minor typo in some non-doc comments.
2023-08-14 17:21:45 +07:00
Andreas Borgen Longva
8d7763ab8f
Merge pull request #1275 from waywardmonkeys/no-default-features-unused-import-warnings
Fix import warnings when `--no-default-features`.
2023-08-14 08:57:45 +02:00
Andreas Borgen Longva
3fdeeca09c
Merge pull request #1272 from waywardmonkeys/unused-lifetimes
clippy: Remove unused lifetimes.
2023-08-14 08:36:50 +02:00
Bruce Mitchener
14b00f6bf6 Fix import warnings when --no-default-features. 2023-08-14 11:40:03 +07:00
Bruce Mitchener
a51886ed3f clippy: Remove unused lifetimes. 2023-08-14 09:21:56 +07:00
Andreas Borgen Longva
32a07aca3c
Merge pull request #1267 from waywardmonkeys/docs-constraints-to-be
docs: grammar: "Constrains ... to be"
2023-08-10 09:02:16 +02:00
Bruce Mitchener
8f59f4dcf6 docs: grammar: "Constrains ... to be"
(Also pick up a small typo in a non-doc comment in the same area
of code.)
2023-08-10 10:59:14 +07:00
Bruce Mitchener
c9c829c7a2 docs: Improve view alias docs.
* Indicate whether they are immutable/mutable clearly.
* Link to the other form (immutable link to mutable, mutable to
  immutable).
* Consistently include the text about it being an alias and to
  look elsewhere for the methods.
2023-08-10 09:26:15 +07:00
Sébastien Crozet
c63503de04
chore: remove explicit bytecheck dependency 2023-07-09 11:36:44 +02:00
Hennadii Chernyshchyk
922b0dbfa3
Derive Clone only on non-mutable version 2023-07-08 17:47:53 +03:00
Hennadii Chernyshchyk
0754bd28f3
Add Clone to MatrixIter and MatrixIterMut 2023-06-27 14:02:20 +03:00
Sébastien Crozet
1a271ac541
Merge pull request #1236 from vasilNnikolov/fix_bug_1218
Fix bug 1218
2023-04-30 15:27:44 +02:00
Sébastien Crozet
e9d2533955
Merge pull request #1231 from JulianKnodt/dev
Add `.item()` to `Matrix1`
2023-04-30 14:54:45 +02:00
wisp3rwind
151084d644 docs: correct row-major -> column-major for Matrix{1-6}xX storage
cf. Github discussion https://github.com/dimforge/nalgebra/discussions/1225
2023-04-28 13:35:54 +02:00
vasil
75405b1e24 fix bug, add test in tests folder 2023-04-25 01:25:36 +03:00
vasil
fc56abe481 add simple test, remove comment from old variance impl 2023-04-25 00:15:56 +03:00
Vasil Nikolov
032002dce9 initial, unoptimized algoritm 2023-04-24 01:22:57 +03:00
Vasil Nikolov
029bbc9ecc add unit test for variance 2023-04-24 00:46:06 +03:00
julianknodt
d9af8650bb Add .*_scalar() to Matrix1
Allows for converting a `Matrix1` to a scalar without having to index.
2023-04-23 12:32:51 -07:00
hqurve
705051f639 fix: remove Scalar trait bound for Matrix PartialEq and Eq 2023-04-08 10:26:54 -04:00
Sébastien Crozet
248654bc17
Merge pull request #1220 from Ralith/serde-array-tuples
Serialize statically sized matrices as tuples
2023-04-07 16:21:48 +02:00
Benjamin Saunders
5c0e773242 Serialize statically sized matrices as tuples
Breaking change. Consistent with how serde serializes plain arrays.
2023-03-13 22:45:27 -07:00
Chris Ohk
fd97a82926 fix: Correct minor typos 2023-02-01 15:48:06 +09:00
Sébastien Crozet
711ac67da9 Deplecate Dynamic and Dynamic::new 2023-01-14 16:22:40 +01:00
Andreas Longva
c506bd577a Fix broken compilation for serde-serialize 2023-01-14 16:22:40 +01:00
Andreas Longva
afabf4bad2 ReshapableStorage for slices + tests for owned reshape
In the process of implementing ReshapbleStorage for SliceStorage(Mut),
I discovered that there appears to be no tests for the existing
reshape_generic functionality on owned matrices.
2023-01-14 16:22:40 +01:00
Andreas Longva
4221c44a2b Rename Dynamic -> Dyn
Provide a type alias to avoid breaking code. Make Dyn a
tuple struct so that we can use the succinct syntax
Dyn(n) instead of Dyn::new(n).
2023-01-14 16:22:40 +01:00