-
Notifications
You must be signed in to change notification settings - Fork 4
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
Detach the EHVec
class from Matrix
#303
Conversation
05ef9fc
to
30899d5
Compare
faead37
to
a4bc6a4
Compare
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #303 +/- ##
===================================
Coverage 26% 26%
===================================
Files 69 71 +2
Lines 3674 3688 +14
===================================
+ Hits 952 957 +5
- Misses 2722 2731 +9
☔ View full report in Codecov by Sentry. |
a4bc6a4
to
4e4946a
Compare
4e4946a
to
15b429b
Compare
15b429b
to
4154d3d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Totally fine with this... but I'm a bit sad that I can't have a Matrix<std::complex>
.
What was the error?
|
Description
The
EHVec
class is currently a publicMatrix<fftw_complex>
. It is desirable to convertMatrix<>
to used strided vector storage and remove any MATLAB dependencies.The former doesn't work for
EHVec
since thefftw_complex
type is a double[2], which throws an error when used in templatedstd::vector<T>
functions. Additionally,EHVec
is used in such a way thatfftw
needs a continuous buffer to perform the forward/backward transform, which a strided vector does not guarantee.As such, it is necessary to provide
EHVec
with it's own (MATLAB-free) class. This enablesMatrix
and its other derivatives to be freed of MATLAB influence.EHVec
task.DispersiveMultiLayer
no longer uses MATLAB #324, targets the expected state ofmain
.Testing
EHVec
continue to pass after the refactor.EHVecTest
class since it is no longer a member of thearrays.h
file, and it only had a single unit test in the first place (so a class was overkill).