Commit Graph

19 Commits

Author SHA1 Message Date
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
Roland Fredenhagen 181291cb2d
Allow trailing punctuation in macros 2023-03-09 12:41:08 +01:00
Sébastien Crozet 711ac67da9 Deplecate Dynamic and Dynamic::new 2023-01-14 16:22:40 +01:00
sterlingjensen 724117e5ad Cleanup examples and doc links
Close example code fences and normalize containing head line in touched files.
Remove stale reference to `slice_assume_init` (commit 8c6ebf27), fix long dead internal links in deprecation notices.
2022-03-22 12:03:18 -05:00
Wanja Zaeske 104cb944b9 fix #1073: typo in name of macros feature 2022-02-14 13:55:16 +01:00
Rémi Lauzier c35f792b4f
Fix some warnings 2021-07-27 19:24:55 -04:00
Crozet Sébastien 8810b85a2f Add a point! macro for construction points
This macro is similar to the `vector!` macro, except that it builds a point instead of a vector.
2021-05-24 17:53:59 +02:00
Andreas Longva 8552fc8385 Cargo fmt 2021-05-03 13:52:34 +02:00
Andreas Longva 0bde07f95c Document that feature needs to be enabled, and require macros feature for tests 2021-05-03 13:52:34 +02:00
Andreas Longva b96c75549d Document macros 2021-05-03 13:52:34 +02:00
Andreas Longva 07d41e457b vector! and dvector! macros 2021-05-03 13:52:34 +02:00
Andreas Longva 5c843022c2 Implement dmatrix![] macro 2021-05-03 13:52:34 +02:00
Andreas Longva 9142dc8f84 Implement SMatrix::from_array_storage and use it in matriX! impl
This allows us to avoid injecting unsafe code into every macro
invocation, which seems desirable.
2021-05-03 13:52:34 +02:00
Andreas Longva ec2a5a3909 Construct ArrayStorage directly in matrix![] 2021-05-03 13:52:34 +02:00
Andreas Longva e60136fbb1 Update nalgebra-macros to nalgebra 0.26 and const generics 2021-05-03 13:52:34 +02:00
Andreas Longva 1dccdb1f20 Exhaustive tests for small dimensions 2021-05-03 13:52:34 +02:00
Andreas Longva ed833506a9 Fix warnings, refactor code 2021-05-03 13:52:34 +02:00
Andreas Longva ab95cf7020 Initial impl using syn and quote 2021-05-03 13:52:34 +02:00
Andreas Longva e97692255b Initial hacked together prototype without syn 2021-05-03 13:52:34 +02:00