-
Notifications
You must be signed in to change notification settings - Fork 147
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
Drop subtyping of DenseArray
#55
Comments
👍 from me, these reasons seem compelling. |
The question is then whether to do this separately from an attempt to add the size as a type parameter. |
Though I'm leaning towards traits for that. |
The options for putting the size as a type parameter seem somewhat poor without better compiler support. I think it'd be worth trying a traits-based version. |
See #57 |
Closed
oschulz
pushed a commit
to oschulz/StaticArrays.jl
that referenced
this issue
Apr 4, 2023
* lazy docs * Document lazy things * More care with indexing
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I had originally defined
with the thought that a lot of functionality could be shared with
Base.LinAlg
functions, such as automatically calling out to BLAS functions and so-on.In the end, I don't feel this has been as successful as I hoped. Most of the functions lack type-stability because
Base
makes a habit of callingsimilar
(with the same size). So not only do users not get, e.g., anSMatrix
back (they get anMMatrix
), the code inside the functions (and sometimes the output) is frequently not type-stable and is probably much slower than just usingBase.Array
.Further, most of the decompositions actually fail. Only
eig
seems to work well, and it is also not type stable internally.And finally, we already have
StaticArray
s which are not dense, likeRotation
and probably in the future things like static unit ranges and so-on.So the proposal is to change to
and to therefore drop some free functionality (and implement things ourselves).
The text was updated successfully, but these errors were encountered: