Comments (6)
- It is true, that projected can do everything smearing does. But it is a bit awkward to use projected to get a single sub-correlator. I would use it in there for debugging and i plan to add an option to not just pick a single smearing but a sub-matrix
- This is true, i left it in there for testing only. It can go, if you want. But i think it is nice to have the simple function for a quick comparison.
- smearing symmetric can (and should) be used whenever a correlator is symmetric under flipping the source and sink. I just used it in the Eigenvalue method, because the cholesky decomposition breaks with non-symmetric matrices.
- Yes, sum was just there for a test. It should be deleted.
from pyerrors.
Thanks for your assessment.
- I removed the
sum
method in commit 07ca32f as you suggested. - I agree that we should keep
smearing_symmetric
. I am not 100% happy with the namesmearing
as the matrices used for the GEVP do not necessarily only contain different smearing levels but could contain other correlation functions of operators coupling to the same quantum numbers. Maybe we can discuss this in our next call. - For both
smearing
andEigenvalue
I see two options:- We could keep them in the namespace of the Corr class.
I would then suggest thatsmearing
internally callsprojected
with the appropriate arguments to improve future maintenance.Eigenavalue
is still lacking a docstring. - Alternatively we could remove the two functions from the module, move them to the tests and use them to independently verify their counterparts.
- We could keep them in the namespace of the Corr class.
from pyerrors.
Okay, regarding the Eigenvalue Method. I do not know, what your needs are exactly. But it is relatively easy to get the eigenvalues back from the eigenvectors.
With the norm:
leads to
Or in code-form C.projected(C.GEVP())
gives the eigenvalue.
This is why i recently changed the norm in projected()
.
There is a good reason to do it this way instead of using the eigenvalues directly.
If you (for example) use the effective mass of the (direct-)eigenvalue to get a ground state,
you might overestimate the error, because the error also includes a measure of how well the GEVP was solved.
That is something, we do not really care about. If i give you any vector, you should be able to project it and get a plateau.
If i gave you a "bad" vector, the plateau will be shorter and or noisier. This should encode all the loss in statistics.
We could of course introduce an extra method which does C.projected(C.GEVP())
for you or the GEVP()
method could include the option to return the eigenvalues. I do not really think, this is needed.
from pyerrors.
That sounds very reasonable. So you would propose to change the Eigenvalue
method to internally call something like C.projected(C.GEVP())
? Maybe @s-kuberski can assess whether that would work also for the applications he has in mind.
from pyerrors.
Yes, i can not come up with an example, where this would not work.
from pyerrors.
I'll try to check this...
from pyerrors.
Related Issues (20)
- numerical differentiation in derived_obs not working HOT 5
- Automatic windowing method fails for gapped and irregular chains HOT 4
- Issues with _filter_zeroes and Corr HOT 4
- Exception when applying .symmetric() to Corr containing None HOT 1
- Gamma_method() is broken for Obs that are NaN
- Multi-dimensional fits
- Bug coming from difference in search methods in sfcf inputs HOT 2
- `Corr.show()` draws prange in same color as error bars. HOT 1
- No dobs-related functions from the input submodule can be used HOT 1
- GEVP eigenvectors with errors HOT 7
- Warning in pandas tests
- Numpy 1.25 breaks a few linalg functions HOT 3
- Failing python 3.12 pytest workflow
- Duplicate data cause `gamma_method()` to fail with an unhelpful message HOT 3
- plot_history unexpected behaviour for gapped idl HOT 2
- read_hd5 in pyerrors 2.9.0 not fully backwards compatible to <=2.8.2 HOT 1
- Read specific interval with read_ms5_xsf() HOT 2
- Files keyword for multiple reps in read_sfcf HOT 2
- pyerrors does not work with the upcoming numpy 2 release HOT 8
- Corr.__getitem__ unexpected behaviour HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyerrors.