xerus issueshttps://git.hemio.de/xerus/xerus/-/issues2019-06-21T13:10:28Zhttps://git.hemio.de/xerus/xerus/-/issues/223Release Version 4.0.02019-06-21T13:10:28ZFuchsi*Release Version 4.0.0**Blocked by issues:**
- #225
- #222
- #221
- #220
- #219
- #215
- #212
- #11
**On the day of release:**
- [x] remove deprecated branches in repository
- [ ] ensure Changelog is up to date
- [ ] update VERSION file
- [ ] create release commit and tag it (update its description in gitlab!)**Blocked by issues:**
- #225
- #222
- #221
- #220
- #219
- #215
- #212
- #11
**On the day of release:**
- [x] remove deprecated branches in repository
- [ ] ensure Changelog is up to date
- [ ] update VERSION file
- [ ] create release commit and tag it (update its description in gitlab!)Version 4.0https://git.hemio.de/xerus/xerus/-/issues/218Promote Docker2019-06-19T07:34:52ZRoteKeksePromote DockerVersion 4.1Philipp TrunschkePhilipp Trunschkehttps://git.hemio.de/xerus/xerus/-/issues/216Add convenience functions for modifying the TensorNetwork graph.2019-02-15T10:43:30ZPhilipp TrunschkeAdd convenience functions for modifying the TensorNetwork graph.There are some operations on `TensorNetworks` that are not as simple as they should be.
As an example I think that a `TensorNetworks` should have the functions
- `TensorNetwork::remove_node(const size_t _nodeId)` : removes the node from the TensorNetwork and inserts the newly created external links at the end of `externalLinks` (in the order they had on the node tensor)
- `TensorNetwork::remove_link(const size_t _nodeId1, const size_t _nodeId2)` : removes the link between the given nodes and inserts the newly created external links at the end of `externalLinks`
The first function is useful when computing the gradient of a `TensorNetwork` w.r.t. the given node.
The second one will probably be used mainly as a subroutine of the first one.
Related tasks like `add_node` can be done using Einstein notation. Maybe we can find something similar for these tasks.There are some operations on `TensorNetworks` that are not as simple as they should be.
As an example I think that a `TensorNetworks` should have the functions
- `TensorNetwork::remove_node(const size_t _nodeId)` : removes the node from the TensorNetwork and inserts the newly created external links at the end of `externalLinks` (in the order they had on the node tensor)
- `TensorNetwork::remove_link(const size_t _nodeId1, const size_t _nodeId2)` : removes the link between the given nodes and inserts the newly created external links at the end of `externalLinks`
The first function is useful when computing the gradient of a `TensorNetwork` w.r.t. the given node.
The second one will probably be used mainly as a subroutine of the first one.
Related tasks like `add_node` can be done using Einstein notation. Maybe we can find something similar for these tasks.https://git.hemio.de/xerus/xerus/-/issues/205compilation errors on MacOS2018-05-12T07:56:25ZFuchsi*compilation errors on MacOSfrom a mail sent to us:
````
I encounter a problem when trying to install Xerus on my macbook with clang++. When I typed ‘make install -j4’, I got the error message as in the attached screenshot.
I have installed all the libraries as stated in Xerus’ documentation. Is there something else that I missed? I hope you would help me with resolving this issue. Also attached is the config file that I used.
In addition, some info about my macbook:
- macOS High Sierra
- Apple LLVM version 9.0.0 (clang-900.0.38)
Thank you very much for your time!
````
In the attached screenshot there is an error in simplenumerics.cpp line 64: an ambiguous call to misc::pow.from a mail sent to us:
````
I encounter a problem when trying to install Xerus on my macbook with clang++. When I typed ‘make install -j4’, I got the error message as in the attached screenshot.
I have installed all the libraries as stated in Xerus’ documentation. Is there something else that I missed? I hope you would help me with resolving this issue. Also attached is the config file that I used.
In addition, some info about my macbook:
- macOS High Sierra
- Apple LLVM version 9.0.0 (clang-900.0.38)
Thank you very much for your time!
````
In the attached screenshot there is an error in simplenumerics.cpp line 64: an ambiguous call to misc::pow.https://git.hemio.de/xerus/xerus/-/issues/194improve speed of Ax=b solve operations for matrices2017-05-09T14:42:09ZFuchsi*improve speed of Ax=b solve operations for matricesperform checks similar to matlab: https://de.mathworks.com/help/matlab/ref/mldivide.html
for dense matrices:
- [X] not square operator -> use QR or SVD
- [ ] implement check & solver for permuted triangular matrices
- [x] not Hermitian -> LU solver
- [x] all positive / all negative diagonal -> try cholesky
- [X] default to LDL solver otherwise
for sparse:
- [ ] check for diagonality -> scale input
- [ ] check bandwidth < threshold -> banded solver
- [ ] implement check & solver for permuted triangular matrices
- [ ] not Hermitian -> LU solver
- [ ] all positive / all negative diagonal -> try cholesky
- [X] default to LDL solver otherwiseperform checks similar to matlab: https://de.mathworks.com/help/matlab/ref/mldivide.html
for dense matrices:
- [X] not square operator -> use QR or SVD
- [ ] implement check & solver for permuted triangular matrices
- [x] not Hermitian -> LU solver
- [x] all positive / all negative diagonal -> try cholesky
- [X] default to LDL solver otherwise
for sparse:
- [ ] check for diagonality -> scale input
- [ ] check bandwidth < threshold -> banded solver
- [ ] implement check & solver for permuted triangular matrices
- [ ] not Hermitian -> LU solver
- [ ] all positive / all negative diagonal -> try cholesky
- [X] default to LDL solver otherwiseVersion Xhttps://git.hemio.de/xerus/xerus/-/issues/193Tutorials2019-06-17T12:23:06ZFuchsi*Tutorials- [x] basic layout of the library and nomenclature
- [X] how to build xerus
- [X] quick-start
- basic usage tutorials
- [x] tensors (creation, modification etc.)
- [x] indices and equations
- [x] solve and decompositions
- [ ] TTTensors
- [ ] ALS and PerformanceData
- [ ] IHT and ADF
- [ ] TensorNetworks and arbitrary contractions
- [ ] TTTangentVectors and riemannian algorithms
- advanced tutorials
- [x] optimizing your program
- [X] debugging with xerus
- examples
- [x] quickstart
- [x] als
- [x] cascade
- [ ] some tensor completion (ie to integrate a low-rank approximable function)
- [ ] geodesics? (or something else with riemannian tangent vectors)- [x] basic layout of the library and nomenclature
- [X] how to build xerus
- [X] quick-start
- basic usage tutorials
- [x] tensors (creation, modification etc.)
- [x] indices and equations
- [x] solve and decompositions
- [ ] TTTensors
- [ ] ALS and PerformanceData
- [ ] IHT and ADF
- [ ] TensorNetworks and arbitrary contractions
- [ ] TTTangentVectors and riemannian algorithms
- advanced tutorials
- [x] optimizing your program
- [X] debugging with xerus
- examples
- [x] quickstart
- [x] als
- [x] cascade
- [ ] some tensor completion (ie to integrate a low-rank approximable function)
- [ ] geodesics? (or something else with riemannian tangent vectors)Version 4.0RoteKekseRoteKeksehttps://git.hemio.de/xerus/xerus/-/issues/190pydoc strings2019-03-12T15:25:44ZFuchsi*pydoc stringsVersion Xhttps://git.hemio.de/xerus/xerus/-/issues/186tests for python-interface2019-06-13T10:57:05ZFuchsi*tests for python-interfaceTo ensure that the python wrapper works as intended we should write a number of unittests in python. As any of these tests also test the library itself it might be worthwhile to replace a larger portion of the unittests with a python variant.
One aspect should be a comparison to numpy-results.
Current errors in the pybind11-bindings:
- [x] `xe.Tensor(xe.TTTensor([2]))` raises `ValueError`
- [x] segfault in `test_pickle.py` with python2-bindingsTo ensure that the python wrapper works as intended we should write a number of unittests in python. As any of these tests also test the library itself it might be worthwhile to replace a larger portion of the unittests with a python variant.
One aspect should be a comparison to numpy-results.
Current errors in the pybind11-bindings:
- [x] `xe.Tensor(xe.TTTensor([2]))` raises `ValueError`
- [x] segfault in `test_pickle.py` with python2-bindingsVersion 4.0https://git.hemio.de/xerus/xerus/-/issues/172Add TT-Cross Approximation2019-03-04T11:39:27ZSebastian WolfAdd TT-Cross ApproximationVersion XPhilipp TrunschkePhilipp Trunschkehttps://git.hemio.de/xerus/xerus/-/issues/130more example systems2019-03-04T12:56:09ZFuchsi*more example systemsWhen writing example systems, consider adding them to the library and / or homepage as examples.
possible examples include:
- Hennon-Heiles potential in schredinger eq
- masters equation
- some tensor completion / recovery
- standard hamiltonians (spin systems)
- simple fem system (diffusion?) with qtt
- uq systemWhen writing example systems, consider adding them to the library and / or homepage as examples.
possible examples include:
- Hennon-Heiles potential in schredinger eq
- masters equation
- some tensor completion / recovery
- standard hamiltonians (spin systems)
- simple fem system (diffusion?) with qtt
- uq systemVersion Xhttps://git.hemio.de/xerus/xerus/-/issues/118new contraction heuristics2017-07-13T14:42:00ZFuchsi*new contraction heuristics- [ ] implement brute force search for small number of nodes
- [ ] write more elaborate heuristics
- [ ] statistics about which heuristics were the best how often- [ ] implement brute force search for small number of nodes
- [ ] write more elaborate heuristics
- [ ] statistics about which heuristics were the best how oftenVersion Xhttps://git.hemio.de/xerus/xerus/-/issues/79Allow transformations between arbitary TensorNetworks without casting to Full...2019-03-04T13:30:32ZSebastian WolfAllow transformations between arbitary TensorNetworks without casting to FullTensor.Version Xhttps://git.hemio.de/xerus/xerus/-/issues/69SparseTensor aware contraction heuristics2019-03-04T13:31:16ZSebastian WolfSparseTensor aware contraction heuristicsThe complexity of sparse contractions is significantly different to the dense one and therefore requires new heuristics to detemrine the contraction order.The complexity of sparse contractions is significantly different to the dense one and therefore requires new heuristics to detemrine the contraction order.Version Xhttps://git.hemio.de/xerus/xerus/-/issues/55get rid of lapacke dependency2020-04-29T19:00:47ZFuchsi*get rid of lapacke dependencyThe lapacke dependency is annoying (cannot be assumed to be installed), we only need few functions of it and those can easily be written manually.
- [ ] import lapacke source to 3rdParty folder
- [ ] unify functions to get rid of unnecessary transpositions
- [ ] allocate a thread_local work array to get rid of allocations per call
- [ ] use performance analysis (from makefile) to benchmarkThe lapacke dependency is annoying (cannot be assumed to be installed), we only need few functions of it and those can easily be written manually.
- [ ] import lapacke source to 3rdParty folder
- [ ] unify functions to get rid of unnecessary transpositions
- [ ] allocate a thread_local work array to get rid of allocations per call
- [ ] use performance analysis (from makefile) to benchmarkVersion XPhilipp TrunschkePhilipp Trunschkehttps://git.hemio.de/xerus/xerus/-/issues/50Kill all the TODOs in the sources2018-04-23T01:03:35ZSebastian WolfKill all the TODOs in the sourcesHeroicshttps://git.hemio.de/xerus/xerus/-/issues/48doxygen modern layout2018-04-23T01:03:35ZFuchsi*doxygen modern layoutVersion XFuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/42templatized value_t to allow calculations with complex numbers2019-03-04T13:54:41ZFuchsi*templatized value_t to allow calculations with complex numbersThis would also simplify issue #39 and is required for most quantum calculations.
- [ ] overloaded wrapper functions for lapacke, blas and suitesparse
- [ ] prob. two template types: value_t and real_t (return value of forb_norm eg. should not be complex)
- [ ] optionally interaction between different templatized versions (eg. Tensor<double> with Tensor<float>?)This would also simplify issue #39 and is required for most quantum calculations.
- [ ] overloaded wrapper functions for lapacke, blas and suitesparse
- [ ] prob. two template types: value_t and real_t (return value of forb_norm eg. should not be complex)
- [ ] optionally interaction between different templatized versions (eg. Tensor<double> with Tensor<float>?)Version Xhttps://git.hemio.de/xerus/xerus/-/issues/40coding conventions & instructions on how to create a pull request2019-04-01T00:36:43ZFuchsi*coding conventions & instructions on how to create a pull requestto allow others to contribute we should explain our coding standards, eg:
naming schemes arguments with _, function_names, variableNames, Classes, etc.etc.to allow others to contribute we should explain our coding standards, eg:
naming schemes arguments with _, function_names, variableNames, Classes, etc.etc.Version 4.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/38flop counts of all operations to better be able to compare algorithms2018-04-01T11:07:03ZFuchsi*flop counts of all operations to better be able to compare algorithmsruntimes are ok, but heavily dependent on optimization efforts. FLOP counts are much more robust across architectures and independent of the writing effort put into the algorithms.runtimes are ok, but heavily dependent on optimization efforts. FLOP counts are much more robust across architectures and independent of the writing effort put into the algorithms.Version X